当前位置: 首页 > news >正文

数模国赛——多波束测线问题模型建立研究分析

第一次参加数模国赛,太菜了~~~~意难平

问题一

画出与测线方向垂直的平面和海底坡面的交线构成一条与水平面夹角为𝐀的斜线的情况下的示意图进行分析,将覆盖宽度分为左覆盖宽度和右覆盖宽度,求出它们与海水深度和𝐀、𝐀(复制的原因,没复制对,懒得改了)的关系。根据所列关系式,我们先计算出各个点位的海水深度,再求出覆盖宽度与重叠率,得出在 测线距中心点处的距离-600m 时的海水深度 为85.711553m,覆盖宽度为 297.3525571m,与前一条测线的重叠率为 33.639959%,具体计算结果如表 1 所示。
在这里插入图片描述

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import math
pi = math.pi
tan1_point5=math.tan(1.5/180*pi)
angle_degrees = 1.5
angle_radians = math.radians(angle_degrees)
tan_value = math.tan(angle_radians)##事先算出 tan1.5 的值
print("tan(1.5 degrees) =", tan_value)
angle_degrees1 = 60
angle_radians1 = math.radians(angle_degrees1)
tan_value1 = math.tan(angle_radians1)##事先算出 tan60 的值
m=200*tan_value
##分别求出海水深度然后合并
value=70
2
ans1=[]
for i in range(1,5):
ans1.append(value-i*m)
ans1.reverse()
ans1.append(70)
ans2=[]
for i in range(1,5):
ans2.append(value+i*m)
D=ans1+ans2
D.reverse()
##计算覆盖宽度 W
w1=[]
w2=[]
W=[]
for i in range(len(D)):
x1=(D[i]*tan_value1)/(1-tan_value1*tan_value)
x2=(D[i]*tan_value1)/(1+tan_value1*tan_value)
w1.append(x1)
w2.append(x2)
W.append(x1+x2)
print(w1)
print(w2)
print(W)
##计算重叠率
x=[-800,-600,-400,-200,0,200,400,600,800]
y1=[]
y2=[]
for i in range(len(W)):
y1.append(x[i]-w1[i])
y2.append(x[i]+w2[i])
print(y1)
print(y2)
chongdie=[]
for i in range(1,len(W)):
chongdie.append((y2[i-1]-y1[i])/(y2[i-1]-y1[i-1]))
print(chongdie)

问题二

在这里插入图片描述
在这里插入图片描述

clc
clear
3
format long;%设置长小数格式
a=1.5/180*pi;
t=8;
D0=120;
theta=120/180*pi;
d=0.3*1852;%海里转化成米
for nbeta=1:1:t
beta=(nbeta-1)*pi*(360)/t*(t-1)/180/(t-1);
%检查 beta+pi/2 是否是 pi 的倍数
%如果 beta+pi/2 是 pi 的倍数,那么将 k1 设置为 0
%并将 k 设置为 a 的正切值的绝对值。
if mod(beta+pi/2,pi)==0;
k1=0;
k=abs(tan(a));
else
k=abs(tan(a)/sqrt(1+(tan(beta+pi/2))^2));
if 3*pi/2 > beta && pi/2 < beta;
k1=-tan(a)/sqrt(1+(tan(beta))^2);
else
k1=tan(a)/sqrt(1+(tan(beta))^2);
end
end
%深度计算
for n=1:1:t
x=(n-1)*d;
D(nbeta,n)=D0+x*k1;
end
%计算 w
for m=1:1:t
w1(nbeta,m)=D(nbeta,m)*sin(theta/2)/sin(pi/6-atan(k));
w2(nbeta,m)=D(nbeta,m)*sin(theta/2)/sin(pi/6+atan(k));
W(nbeta,m)=(w1(nbeta,m)+w2(nbeta,m))*cos(atan(k));
end
end

问题3

在这里插入图片描述
在这里插入图片描述

import numpy as np
import math
import geatpy as ea
class MyProblem(ea.Problem): 
def __init__(self):
4
name = 'MyProblem' 
M = 1 
maxormins = [1] 
-1:
Dim = 2 )
varTypes = [0] * Dim 
lb = [math.pi/2, 0] 
ub = [ math.pi, 2*1852] 
lbin = [ 0, 0] 
ubin = [ 0, 0] 
# 调用父类构造方法完成实例化
ea.Problem.__init__(self,
name,
M,
maxormins,
Dim,
varTypes,
lb,
ub,
lbin,
ubin)
def evalVars(self, Vars): # 目标函数
beta= Vars[:, [0]]
f = Vars[:, [1]]
score = 4*1852*1852*2/(-np.cos(beta)*f)
#先把角度转化为弧度
angle_degrees_1 = 1.5
angle_radians_1 = math.radians(angle_degrees_1)
angle_degrees_60 = 60
angle_radians_60 = math.radians(angle_degrees_60)
k=np.arctan(1/(np.sin(beta)*np.tan(angle_radians_1)))
D=[]
for d in range(23,216):
D.append(abs(np.sin(k)*d*np.sin(angle_radians_60)/np.sin(k-angle_radians_60))+abs(np.sin(k)*(d+f*np.si
n(beta)*np.tan(angle_radians_1))*np.sin(angle_radians_60)/np.sin(k+angle_radians_60))
+f*np.cos(beta)-0.2*d*np.sin(angle_radians_60)*(abs(np.sin(k)/np.sin(k+angle_radians_60))+abs(np.sin(k
)/np.sin(k-angle_radians_60))))
D.append(0.1*d*np.sin(angle_radians_60)*(abs(np.sin(k)/np.sin(k+angle_radians_60))+abs(np.sin(k)/np.si
n(k-angle_radians_60))))
5
-abs(np.sin(k)*d*np.sin(angle_radians_60)/np.sin(k-angle_radians_60))+abs(np.sin(k)*(d+f*np.sin(beta)*n
p.tan(angle_radians_1))*np.sin(angle_radians_60)/np.sin(k+angle_radians_60))
+f*np.cos(beta)
CV=np.hstack(D)
return score, CV
if __name__ == '__main__':
# 实例化问题对象
problem = MyProblem()
# 构建算法
algorithm = ea.soea_DE_rand_1_bin_templet(
problem,
ea.Population(Encoding='RI', NIND=100),
MAXGEN=200, 
logTras=1) 
algorithm.mutOper.F = 0.5 
algorithm.recOper.XOVR = 0.7 
# 求解
res = ea.optimize(algorithm,
verbose=True,
drawing=1,
outputMsg=True,
drawLog=False,
saveFlag=True)
print(res)

问题4

在这里插入图片描述
在这里插入图片描述

%读取数据
[X1,X2,X3]=xlsread("C:\Users\JJH\Desktop\CUMCM2023Problems\B 题\附件.xlsx");
x=X1(1,2:end);
y=X1(2:end,1);
z=X1(2:end,2:end);
cha=diff(z,1,2);
he=sum(cha(1,1:end));
average=he/250
[X Y]=meshgrid(x,y);
subplot(3,2,[1 2]);
meshz(X,Y,z);
subplot(3,2,3);
z1=triu(z);
meshz(X,Y,z1)
6
subplot(3,2,4);
z2=triu(z,-50);
meshz(X,Y,z2)
subplot(3,2,5);
z3=tril(z);
meshz(X,Y,z3)
subplot(3,2,6);
z4=tril(z,-50);
meshz(X,Y,z4)
shading interp

相关文章:

数模国赛——多波束测线问题模型建立研究分析

第一次参加数模国赛&#xff0c;太菜了~~~~意难平 问题一 画出与测线方向垂直的平面和海底坡面的交线构成一条与水平面夹角为&#x1d400;的斜线的情况下的示意图进行分析&#xff0c;将覆盖宽度分为左覆盖宽度和右覆盖宽度&#xff0c;求出它们与海水深度和&#x1d400;、…...

[AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)

文章目录 一、简介二、服务请求报文定义肯定响应支持的NRC三、示例流程Step 1:Step 2:报文示例:Step 1:请求RequestDownload(0x34)服务Step 2:请求TransferData (0x36)服务,传输数据Step 3:请求RequestTransferExit(0x37)服务总结:三、示例代码37_req_transfer_e…...

vue+canvas实现横跨整个页面的动态的波浪线(贝塞尔曲线)

本来写这个特效 我打算用css实现的,结果是一波三折,我太难了,最终没能用css实现,转战了canvas来实现。来吧先看效果图 当然这个图的波浪高度、频率、位置、速度都是可调的,请根据自己的需求调整,如果你讲波浪什么的调大一下 还有有摆动的效果哦。 以下是完整代码 <…...

LeetCode算法题解|​ 669. 修剪二叉搜索树​、108. 将有序数组转换为二叉搜索树、​538. 把二叉搜索树转换为累加树​

一、LeetCode 669. 修剪二叉搜索树​ 题目链接&#xff1a;669. 修剪二叉搜索树 题目描述&#xff1a; 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变…...

直播界很火的无线领夹麦克风快充方案 Type-C接口 PD快充+无线麦克风可同时进行

当前市场上流行一款很火的直播神器&#xff0c;无线领夹麦克风&#xff08;MIC&#xff09;&#xff0c;应用于网红直播&#xff0c;网课教学&#xff0c;采访录音&#xff0c;视频录制&#xff0c;视频会议等等场景。 麦克风对我们来说并不陌生&#xff0c;而且品类有很多。随…...

Jmeter 汉化中文语言

找到 bin -> jmeter.propertise 修改参数&#xff1a;languageen --> languagazh_CN OK&#xff01;...

centos9 stream 下 rabbitmq高可用集群搭建及使用

RabbitMQ是一种常用的消息队列系统&#xff0c;可以快速搭建一个高可用的集群环境&#xff0c;以提高系统的弹性和可靠性。下面是搭建RabbitMQ集群的步骤&#xff1a; 基于centos9 stream系统 1. 安装Erlang和RabbitMQ 首先需要在所有节点上安装Erlang和RabbitMQ。建议使用官…...

代码随想录算法训练营第10天|232. 用栈实现队列 225. 用队列实现栈

JAVA代码编写 232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除…...

线上Kafka集群如何调整消息存储时间

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 Kafka版本 kafka_2.13-3.5.0 背景 Kafka 默认消息存储时间为7天&#xff0c;实际线上的业务使用Kafka更多的是一些数据统计之类的业务&#xff0c;大多是朝生夕…...

[迁移学习]DA-DETR基于信息融合的自适应检测模型

原文标题为&#xff1a;DA-DETR: Domain Adaptive Detection Transformer with Information Fusion&#xff1b;发表于CVPR2023 一、概述 本文所描述的模型基于DETR&#xff0c;DETR网络是一种基于Transformer的目标检测网络&#xff0c;详细原理可以参见往期文章&#xff1a;…...

【MATLAB】全网唯一的13种信号分解+FFT傅里叶频谱变换联合算法全家桶

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 大家吃一顿火锅的价格便可以拥有13种信号分解FFT傅里叶频谱变换联合算法&#xff0c;绝对不亏&#xff0c;知识付费是现今时代的趋势&#xff0c;而且都是我精心制作的教程&#xff0c;有问题可随时反馈~也可单独获取某一…...

Nginx安装与配置

1.下载安装包 官网下载地址&#xff1a;nginx: download 可以先将安装包下载到本地再传到服务器&#xff0c;或者直接用wget命令将安装包下载到服务器&#xff0c;这里我们直接将安装包下载到服务器上。未安装wget命令的需要先安装wget&#xff0c;yum install -y wget [root…...

linux笔记总结-基本命令

参考&#xff1a; 1.Linux 和Windows比 比较 &#xff08;了解&#xff09; 1. 记住一句经典的话&#xff1a;在 Linux 世界里&#xff0c;一切皆文件 2. Linux目录结构 /lib • 系统开机所需要最基本的动态连接共享库&#xff0c;其作用类似于Windows里的DLL文件。几 乎所有…...

[PHP]禅道项目管理软件ZenTaoPMS源码包 v16.4

禅道项目管理软件ZenTaoPMS一键安装包是一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体&#xff0c;是一款专业的研发项目管理软件&#xff0c;完整地覆盖了项目管理的核心流程。注重实效的管理思想&#xff0c;合理的软件…...

Required String parameter ‘name‘ is not present

[org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter name is not present] 服务端有参数name&#xff0c;客户端没有传上来...

路由器基础(五): OSPF原理与配置

开放式最短路径优先 (Open Shortest Path First,OSPF) 是一个内部网关协议 (Interior Gateway Protocol,IGP),用于在单一自治系统(Autonomous System,AS) 内决策路由。OSPF 适合小型、中型、较大规模网络。OSPF 采用Dijkstra的最短路径优先算法 (Shortest Pat…...

Leetcode1128. 等价多米诺骨牌对的数量

Every day a Leetcode 题目来源&#xff1a;1128. 等价多米诺骨牌对的数量 解法1&#xff1a;暴力 代码&#xff1a; class Solution { public:int numEquivDominoPairs(vector<vector<int>> &dominoes){int n dominoes.size(), count 0;for (int i 0;…...

Dev-C调试的基本方法2-2

3.3 跳出函数 在图6所示的状态下&#xff0c;点击单步调试&#xff08;F7&#xff09;会继续调试下一行&#xff0c;而如果想结束在函数中的调试&#xff0c;则点击图4③所示的跳出函数&#xff0c;或CtrlF8按键跳出f()函数&#xff0c;程序将会停在图5所示的第11行处。 3.4 …...

企业之间的竞争,ISO三体系认证至关重要!

ISO三体系认证是指ISO 9001质量管理体系认证、ISO 14001环境管理体系认证、ISO 45001(OHSAS18001)职业健康安全管理体系认证。企业&#xff08;组织&#xff09;自愿申请、通过ISO三体系认证&#xff0c;并贯彻落实&#xff0c;确实能获益多多。 ISO 9001质量管理体系 我们经…...

node教程(四)Mongodb+mongoose

文章目录 一、mongodb1.简介1.1Mongodb是什么&#xff1f;1.2数据库是什么&#xff1f;1.3数据库的作用1.4数据库管理数据的特点 2.核心概念3.下载安装与启动4.命令行交互4.1数据库命令4.3文档命令 二、Mongoose1.介绍2.作用3.使用流程4.插入文档5.mongoose字段类型 一、mongod…...

别再只会抓HTTP了!手把手教你配置Fiddler抓取手机App的HTTPS请求(含证书安装避坑)

移动端HTTPS抓包实战&#xff1a;Fiddler配置与证书避坑指南 每次看到App里那些神秘的网络请求&#xff0c;你是不是也好奇它们到底在传输什么数据&#xff1f;作为开发者或测试人员&#xff0c;能够抓取和分析这些请求是基本功。但面对HTTPS加密流量&#xff0c;很多新手往往束…...

std::unique_lock vs std::lock_guard:C++线程锁选择指南(附性能测试)

std::unique_lock vs std::lock_guard&#xff1a;C线程锁的深度抉择与实战优化 在C多线程编程中&#xff0c;锁的选择往往决定了程序的性能表现和稳定性。当我们需要在std::unique_lock和std::lock_guard之间做出选择时&#xff0c;不能简单地认为"功能多就是好"。本…...

OpenClaw调试技巧:Qwen3-32B任务失败排查手册

OpenClaw调试技巧&#xff1a;Qwen3-32B任务失败排查手册 1. 为什么需要这份手册&#xff1f; 上周我尝试用OpenClaw自动整理项目文档时&#xff0c;遇到了一个诡异现象&#xff1a;同样的任务在白天能顺利完成&#xff0c;深夜运行时却频繁报错。经过72小时的问题追踪&#…...

5分钟搞定!用Docker Compose一键部署Penpot设计协作平台(含SMTP配置避坑指南)

5分钟极速部署Penpot&#xff1a;Docker Compose全流程指南与SMTP实战避坑 中小团队在设计协作工具选型时&#xff0c;往往陷入两难&#xff1a;商业软件成本高昂&#xff0c;开源方案部署复杂。Penpot作为Figma的开源替代品&#xff0c;凭借其完整的协作功能和零成本优势&…...

Beekeeper Studio:现代跨平台数据库管理工具的技术架构与实战应用

Beekeeper Studio&#xff1a;现代跨平台数据库管理工具的技术架构与实战应用 【免费下载链接】beekeeper-studio beekeeper-studio/beekeeper-studio: Beekeeper Studio 是一款开源的跨平台数据库客户端工具&#xff0c;支持多种数据库&#xff08;如MySQL, PostgreSQL, SQLit…...

效率飙升:借助快马平台生成全自动OpenClaw本地部署一体化工具

最近在折腾OpenClaw的本地部署时&#xff0c;发现传统方式实在太费时间了。每次都要手动查文档、拼命令、调环境&#xff0c;经常卡在某个依赖项版本冲突上。后来尝试用InsCode(快马)平台生成了一体化部署工具&#xff0c;效率直接翻倍。这里分享下具体实现思路和优化点&#x…...

核聚变装置逼近极限时会“漏水“:科学家发现热流平衡决定密度天花板

来源&#xff1a;科学剃刀人类距离可控核聚变又近了一步&#xff0c;但一道隐形天花板始终悬在头顶。当反应堆试图提高燃料密度以获得更多能量时&#xff0c;等离子体总会在某个临界点突然崩溃。这种"密度极限"现象困扰了聚变界四十年。现在&#xff0c;美国麻省理工…...

OpenClaw+ollama-QwQ-32B实战:自动化处理100份简历筛选

OpenClawollama-QwQ-32B实战&#xff1a;自动化处理100份简历筛选 1. 为什么选择自动化简历筛选 去年团队扩张时&#xff0c;我作为技术负责人参与了简历初筛工作。面对雪片般飞来的PDF简历&#xff0c;连续三天熬夜到凌晨两点手动整理关键信息后&#xff0c;我意识到必须寻找…...

ROS Noetic下大陆ARS408雷达点云数据解析:从CAN原始帧到RVIZ可视化,一个脚本全搞定

ROS Noetic下大陆ARS408雷达点云数据全链路解析与自动化实践 毫米波雷达在自动驾驶、机器人导航等领域扮演着关键角色。大陆ARS408作为一款高性价比的毫米波雷达&#xff0c;其点云数据的获取与可视化是许多开发者需要掌握的核心技能。本文将带您从底层CAN总线通信开始&#xf…...

OpenH264:开源H.264编解码库的技术实现与工程实践

OpenH264&#xff1a;开源H.264编解码库的技术实现与工程实践 【免费下载链接】openh264 Open Source H.264 Codec 项目地址: https://gitcode.com/gh_mirrors/op/openh264 OpenH264作为Cisco维护的开源H.264编解码库&#xff0c;在实时视频通信、流媒体传输和嵌入式设…...