2023年国赛高教杯数学建模B题多波束测线问题解题全过程文档及程序

2023年国赛高教杯数学建模

B题 多波束测线问题

原题再现

  单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀速直线传播,在不同界面上产生反射,利用这一原理,从测量船换能器垂直向海底发射声波信号,并记录从声波发射到信号接收的传播时间,通过声波在海水中的传播速度和传播时间计算出海水的深度,其工作原理如图 1 所示。由于单波束测深过程中采取单点连续的测量方法,因此,其测深数据分布的特点是,沿航迹的数据十分密集,而在测线间没有数据。
在这里插入图片描述
  多波束测深系统是在单波束测深的基础上发展起来的,该系统在与航迹垂直的平面内一次能发射出数十个乃至上百个波束,再由接收换能器接收由海底返回的声波,其工作原理如图 2所示。多波束测深系统克服了单波束测深的缺点,在海底平坦的海域内,能够测量出以测量船测线为轴线且具有一定宽度的全覆盖水深条带(图 3)。
在这里插入图片描述
  多波束测深条带的覆盖宽度 𝑊 随换能器开角 𝜃 和水深 𝐷 的变化而变化。若测线相互平行且海底地形平坦,则相邻条带之间的重叠率定义为 𝜂 = 1 −𝑑/𝑊,其中 𝑑 为相邻两条测线的间距,𝑊 为条带的覆盖宽度(图 4)。若 𝜂 < 0,则表示漏测。为保证测量的便利性和数据的完整性,相邻条带之间应有 10%~20% 的重叠率。
  但真实海底地形起伏变化大,若采用海区平均水深设计测线间隔,虽然条带之间的平均重叠率可以满足要求,但在水深较浅处会出现漏测的情况(图 5),影响测量质量;若采用海区最浅处水深设计测线间隔,虽然最浅处的重叠率可以满足要求,但在水深较深处会出现重叠过多的情况(图 6),数据冗余量大,影响测量效率。
在这里插入图片描述
  问题 1 与测线方向垂直的平面和海底坡面的交线构成一条与水平面夹角为 𝛼 的斜线(图7),称 𝛼 为坡度。请建立多波束测深的覆盖宽度及相邻条带之间重叠率的数学模型。
在这里插入图片描述
  若多波束换能器的开角为 120∘,坡度为 1.5∘,海域中心点处的海水深度为 70 m,利用上述模型计算表 1 中所列位置的指标值,将结果以表 1 的格式放在正文中,同时保存到result1.xlsx文件中。
在这里插入图片描述
  问题 2 考虑一个矩形待测海域(图 8),测线方向与海底坡面的法向在水平面上投影的夹角为 𝛽,请建立多波束测深覆盖宽度的数学模型。
在这里插入图片描述
  若多波束换能器的开角为 120∘,坡度为 1.5∘,海域中心点处的海水深度为 120 m,利用上述模型计算表 2 中所列位置多波束测深的覆盖宽度,将结果以表 2 的格式放在正文中,同时保存到 result2.xlsx 文件中。
在这里插入图片描述
  问题 3 考虑一个南北长 2 海里、东西宽 4 海里的矩形海域内,海域中心点处的海水深度为 110 m,西深东浅,坡度为 1.5∘,多波束换能器的开角为 120∘。请设计一组测量长度最短、可完全覆盖整个待测海域的测线,且相邻条带之间的重叠率满足 10%~20% 的要求。
  问题 4 海水深度数据(附件.xlsx)是若干年前某海域(南北长 5 海里、东西宽 4 海里)单波束测量的测深数据,现希望利用这组数据为多波束测量船的测量布线提供帮助。在设计测线时,有如下要求:(1) 沿测线扫描形成的条带尽可能地覆盖整个待测海域;(2) 相邻条带之间的重叠率尽量控制在 20% 以下;(3) 测线的总长度尽可能短。在设计出具体的测线后,请计算如下指标:(1) 测线的总长度;(2) 漏测海区占总待测海域面积的百分比;(3) 在重叠区域中,重叠率超过 20% 部分的总长度。
  注 在附件中,横、纵坐标的单位是海里,海水深度的单位是米。1 海里=1852 米。

整体求解过程概述(摘要)

  多波束测深系统是由单波束测深发展而来的水深测量系统,研究多波束测线布设对于海洋测绘具有重要意义。本文建立测线优化模型,运用各类几何方法、向量分析、最小二乘法、贪心算法、模拟退火等方法研究多波束测深的覆盖宽度、相邻条带之间的重叠率以及测线布设问题。
  针对问题一:首先简要介绍多波束测量仪的工作原理,以海域中心点为坐标原点建立合适的坐标系。其次利用相似三角形原理计算海水深度,并通过几何知识推导关键角的关系式,然后基于正弦定理计算覆盖宽度。接着利用几何知识推导重叠率的计算公式并代入变量计算。最后得到特定位置处的指标,存放在 result1.xlsx 中。同时进行结果分析,并利用控制变量法探究覆盖宽度、重叠率随各参数的变化。
  针对问题二:以海域坡面中心为坐标原点建立三维空间坐标系,参考问题一,首先利用向量分析,根据向量叉乘得到测线方向与其在水平面上的投影组成的平面和海底坡面的交线的点向式方程,代入相应坐标求得海水深度。其次,利用线面角计算公式求得水平面与覆盖宽度所在直线的夹角。然后根据问题一建立的模型求解得到特定位置处的覆盖宽度,存放在 result2.xlsx 中。最后进行结果分析以及原因分析。
  针对问题三:对于一个具体的矩形海域,首先利用数学证明得到平行等深线走向进行测线布设是最佳方案。其次建立以测线总长度最短为目标,以测线完全覆盖海域、相邻条带之间的重叠率的取值范围为约束条件,建立单目标优化模型。然后基于贪心算法的循环遍历法,确定最优测线布设为 34 条,得到测线总长度为 125936m。最后利用模拟退火对测线布设仿真检验,发现两种方法计算得到的误差很小,由此验证了模型的可靠性,并对开角、坡度进行灵敏度分析。
  针对问题四:首先利用单波束测量数据确定海域初貌,发现其地形起伏大,难以求解测线布设。其次参考问题三,利用等深线图对该海域进行初步划分。基于最小二乘法将各划分区域拟合成便于求解的坡面方程,通过粒子群算法求解得到坡面方程,并对拟合效果不佳的区域进行进一步划分。然后仍以测线的总长度最小为优化目标,修正问题三的约束条件,建立单目标优化模型。仍采用贪心算法求解各区域测线布设,得到测线的总长度、漏测海区占总待测海域面积的百分比、叠率超过 20%部分的总长度分别为 622 海里、3.48%、30 海里。最后进行结果分析和原因分析。文章的最后,对本文建立的模型进行评价,并在考虑检查线的情况对模型进行一定程度的改进。

模型假设:

  1. 假设不考虑探测船的垂荡纵摇等运动对测深作业造成的影响。
  2. 假设进行测深作业时,海面上没有漂浮海冰等障碍物影响测线方向的布设。
  3. 假设声波在海水中作匀速直线传播,不会在中途遇到小颗粒等发生折射现象。
  4. 假设单波束测量的海水深度数据较为准确,基本符合该海域的地形,可以为多波束测线布设提供正确参考。

问题分析:

  问题一的分析
  在问题一中,要求在海底坡度为α的情况下建立多波束测深的覆盖宽度和相邻条带之间重叠率的数学模型,并在多波束换能器开角、坡度、海域中心处海水深度等具体参数值下求解海水深度、覆盖宽度和重叠率。首先,以海域中心为坐标原点建立三维空间直角坐标系,由几何知识推导出海水深度的计算公式,在此基础上利用正弦定理得到覆盖宽度的表达式。对于重叠率的计算,根据题目给出海底地形平坦的计算公式推导出重叠率的一般定义式,据此得到重叠率的计算公式。至此,模型建立完成,将具体参数值带入我们的模型中,即可分别得到海水深度、覆盖宽度和重叠率的求解结果。
  问题二的分析
  在问题二中,已知一个矩形海域,其测线方向与海底坡面的法向在水平面的投影的夹角为β,要求我们建立覆盖宽度的数学模型,再代入具体参数求解不同位置、不同测线方向夹角的覆盖宽度。由问题一的模型,只要已知水平面与覆盖宽度所在直线的夹角、该位置处的海水深度,就可以求解覆盖宽度,因此我们需要利用立体几何知识建立数学模型得到这两个参数的计算公式,再利用问题一的模型,即可得到问题二覆盖宽度的求解模型,代入具体参数求解即可。
  问题三的分析
  在问题三中,给出一个具体的矩形海域,要求我们为该海域设计一组测线,满足测量长度最短、可完全覆盖整片待测海域、相邻条带之间的重叠率在 10%~20%等限制条件。对于多波束测深的测线布设,需要从测线方向和测线间距两个方面考虑,根据国家明确规定,测线方向平行等深线方向最佳,我们对此进行了证明;对于测线间距建立单目标优化模型,在求解时,首先考虑边界覆盖情况,确定东海岸第一条测线,然后基于贪心算法逐步优化求解第二、第三条测线……从而得到最优测线布设。最后,采用模拟退火对求解结果进行仿真验证。
  问题四的分析
  在问题四中,基于某海域的单波束测量数据,为多波束测量提供测线布设方案。为保证测量的完整性和效率,测线扫描形成的条带要尽量覆盖整片海域;相邻条带重叠率在 20%以下为宜;测线长度应尽量短。由于海底地形起伏较大,整片海域直接测量,效果不佳,因此需要根据等深线对海域进行划分,对不同区域分别进行测线布设。根据已知海水深度数据基于最小二乘法确定坡面方程,将各海域地形转化为坡面,利用问题三建立的优化模型确定最优布设方案。

模型的建立与求解整体论文缩略图

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

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:(代码和文档not free)

%求解第一问中的计算结果
H=zeros(1 9);%H 为测线距中心处的不同距离对应的海水深度
for i=-800:200:800H((i+1000)/200)=70-i*tan(1.5/180*pi);
end
l1=zeros(1 9);%l1 表示左半边覆盖宽度
l2=zeros(1 9);%l2 表示右半边覆盖宽度
l=zeros(1 9);%l 表示覆盖宽度
for i=1:9a1=90-1.5-120/2;l1(i)=H(i)/sin(a1/180*pi)*sin(120/360*pi);a2=90+1.5-120/2;l2(i)=H(i)/sin(a2/180*pi)*sin(120/360*pi);
end
l=l1+l2;
yita=zeros(1 8); %yita 表示重叠率
for j=1:8yita(j)=(200/cos(1.5/180*pi)-(200/cos(1.5/180*pi)-l2(j))-
(200/cos(1.5/180*pi)-l1(j+1)))/l(j+1)*100;
end
% jud=zeros(1 8); %jud 表示判断测线之前是否重叠
% for k=1:8
% if (k-1)*200/cos(1.5/180*pi)+l2(k)<k*200/cos(1.5/180*pi)-l1(k+1)
% jud(k)=0;
% yita(1 k)=0;
% end
% end
y=zeros(3 9);
y(1 :)=H(1 :);
y(2 :)=l(1 :);
y(3 2:9)=yita(1 :);
y
function y=problem_1_f(alaha theta)
%该函数的作用是将坡度、开角代入到函数中得到问题一中要求的计算结
果
H=zeros(1 9);%H 为测线距中心处的不同距离对应的海水深度
for i=-800:200:800H((i+1000)/200)=70-i*tan(1.5/180*pi);
end
l1=zeros(1 9);%l1 表示左半边覆盖宽度
l2=zeros(1 9);%l2 表示右半边覆盖宽度
l=zeros(1 9);%l 表示覆盖宽度
for i=1:9a1=90-alaha-theta/2;l1(i)=H(i)/sin(a1/180*pi)*sin(theta/360*pi);a2=90+alaha-theta/2;l2(i)=H(i)/sin(a2/180*pi)*sin(theta/360*pi);
end
l=l1+l2;
yita=zeros(1 8);%yita 表示重叠率
for j=1:8yita(j)=(200/cos(alaha/180*pi)-(200/cos(alaha/180*pi)-l2(j))-
(200/cos(alaha/180*pi)-l1(j+1)))/l(j+1)*100;
end
y=zeros(3 9);
y(1 :)=H(1 :);
y(2 :)=l(1 :);
y(3 2:9)=yita(1 :);
end
function y=problem_1_f1(alaha theta deta)
%该函数的作用是将坡度、开角、测线距中心点的距离代入到函数中得到
问题一中要求的计算结果
H=zeros(1 1600/deta+1);%H 为测线距中心处的不同距离对应的海水深度
for i=-800:deta:800H(int8((i+800+deta)/deta))=70-i*tan(1.5/180*pi);
end
l1=zeros(1 1600/deta+1);%l1 表示左半边覆盖宽度
l2=zeros(1 1600/deta+1);%l2 表示右半边覆盖宽度
l=zeros(1 1600/deta+1);%l 表示覆盖宽度
for i=1:1600/deta+1
a1=90-alaha-theta/2;l1(i)=H(i)/sin(a1/180*pi)*sin(theta/360*pi);a2=90+alaha-theta/2;l2(i)=H(i)/sin(a2/180*pi)*sin(theta/360*pi);
end
l=l1+l2;
yita=zeros(1 1600/deta);%yita 表示重叠率
for j=1:1600/detayita(j)=(deta/cos(alaha/180*pi)-(deta/cos(alaha/180*pi)-l2(j))-
(deta/cos(alaha/180*pi)-l1(j+1)))/l(j+1)*100;
end
y=zeros(3 1600/deta+1);
y(1 :)=H(1 :);
y(2 :)=l(1 :);
y(3 2: 1600/deta+1)=yita(1 :);
end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件设计师笔记和错题

笔记截图 数据库 模式是概念模式 模式/内模式 存在概念级和内部级之间&#xff0c;实现了概念模式和内模式的互相转换 外模式/模式映像 存在外部级和概念级之间&#xff0c;实现了外模式和概念模式的互相转换。 数据的物理独立性&#xff0c; 概念模式和内模式之间的映像…

字符串_字符函数和字符串函数

C语言中对字符和字符串的处理很是频繁&#xff0c;但是C语言本身是没有字符串类型的&#xff0c;字符串通常放在常量字符串中或者字符数组中。 字符串常量适用于那些对它不做修改的字符串函数。 目录 1.函数介绍 1.1strlen 1.1.1strlen函数的模拟实现 1.2strcpy 1.2.1st…

2024年5月16日 十二生肖 今日运势

小运播报&#xff1a;2024年5月16日&#xff0c;星期四&#xff0c;农历四月初九 &#xff08;甲辰年己巳月庚辰日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;猴、鼠、鸡 需要注意&#xff1a;牛、兔、狗 喜神方位&#xff1a;西北方 财神方位&#xff1a;…

英飞凌SiC模块为小米电动车提供动力

至2027年之际&#xff0c;SiC功率模块与裸片产品将荣耀登场&#xff0c;助力小米电动汽车新品SU7璀璨问世。英飞凌&#xff0c;这家业界翘楚&#xff0c;将倾其所能&#xff0c;为小米SU7 Max提供两颗HybridPACK Drive G2 CoolSiC 1200 V模块&#xff0c;如同给电动汽车的心脏注…

算法练习第22天|39. 组合总和、40.组合总和II

39. 组合总和 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/combination-sum/description/ 题目描述&#xff1a; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数…

char x[]---char*---string---sizeof

字符串数组 #include <iostream>int main(){char c_str[]"abcd";char c_str1[]{a,b,c,d};std::cout<<sizeof(c_str)<<std::endl;std::cout<<sizeof(c_str1)<<std::endl;return 0; } char*存储的字符串个数 char*字符串所占字节大小 c…

信创电脑|暴雨新增兆芯KX-7000处理器版本

IT世界 5 月 15 日消息&#xff0c;暴雨公司信创家族新上架了一款搭载兆芯KX-7000系列处理器、摩尔线程8GB 显卡、16G DDR5 内存以及 512G SSD 的新配置台式电脑主机。 兆芯 KX-7000 处理器采用开先的 8 核 Chiplet互联架构&#xff0c;最高频率3.7 GHz&#xff0c;拥有 32MB 的…

后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解

JDBC 简化JDBC的开发 JDBC仅仅是一套接口 是一套规范 Mybatis是持久层框架 用于简化JDBC的开发 使用Java语言操作关系型数据库的一套API 原始的JDBC程序 package com.bigdate.mybatis;import com.bigdate.mybatis.mapper.UserMapper; import com.bigdate.mybatis.pojo.Use…

容联云零代码平台容犀desk:重新定义坐席工作台

在数智化浪潮的推动下&#xff0c;企业亟待灵活适应市场变化、快速响应客户需求&#xff0c;同时还要控制成本并提升效率&#xff0c;传统的软件开发模式因开发周期长、成本高、更新迭代慢等问题&#xff0c;逐渐难以满足企业灵活多变的业务需求。 容犀Desk&#xff0c;观察到…

Vue.js的发展史(一)

Vue.js的发展史&#xff08;一&#xff09; 什么是Vue? Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发…

Spring Security实现用户认证二:前后端分离时自定义返回Json内容

Spring Security实现用户认证二&#xff1a;前后端分离时自定义返回Json内容 1 前后端分离2 准备工作依赖WebSecurityConfig配置类 2 自定义登录页面2.1 Spring Security的默认登录页面2.2 自定义配置formLogin 3 自定义登录成功处理器4 自定义登录失败处理器5 自定义登出处理器…

经济寒冬 | 品牌策划人还可以去哪些行业发展?

在这个经济寒冬下&#xff0c;咱们品牌策划人也需要考虑后路问题了。 随着市场竞争的加剧和消费者需求的不断变化&#xff0c;品牌策划人的工作不再只是简单的广告宣传和市场推广。 咱们需要重新思考自己的角色&#xff0c;寻找新的生存和发展之道。 当然&#xff0c;品牌策…

VUE之旅—day2

文章目录 Vue生命周期和生命周期的四个阶段created应用—新闻列表渲染mounted应用—进入页面搜索框就获得焦点账单统计&#xff08;Echarts可视化图表渲染&#xff09; Vue生命周期和生命周期的四个阶段 思考&#xff1a; 什么时候可以发送初始化渲染请求&#xff1f;&#xff…

前端本地调试云效上Vue项目的构建产物

一、问题背景 前两天前端小伙伴&#xff0c;在云效上构建了一个前端项目&#xff0c;构建结果显示成功&#xff0c;访问后发现Console控制台报错&#xff1a;ReferenceError: defineComponent is not defined 在此之前的版本&#xff0c;构建和访问并没有此异常&#xff0c;而…

【设计模式】JAVA Design Patterns——Abstract-document(抽象文档模式)

&#x1f50d; 目的 使用动态属性&#xff0c;并在保持类型安全的同时实现非类型化语言的灵活性。 &#x1f50d; 解释 抽象文档模式使您能够处理其他非静态属性。 此模式使用特征的概念来实现类型安全&#xff0c;并将不同类的属性分离为一组接口 真实世界例子 考虑由多个部…

eMMC和SD模式速率介绍

概述 在实际项目开发中我们常见的问题是有人会问,“当前项目eMMC、SD所使用模式是什么? 速率是多少?”。这些和eMMC、SD的协议中要求的,要符合协议。接下来整理几张图来介绍。 eMMC 模式介绍 一般情况下我们项目中都是会支持到HS400 8bit 1.8V,最大时钟频率为200MHZ,通…

会议邀请函:Prometheus开源无人机平台-无人机追踪无人车代码实战|第四届中国智能汽车创新大会

扫描上方海报二维码&#xff0c;参与报名 阿木实验室&#xff1a;为机器人研发提供开源软硬件工具和课程服务&#xff0c;让研发更高效&#xff01; 技术发展的日新月异&#xff0c;阿木实验室将紧跟技术的脚步&#xff0c;不断把机器人行业最新的技术和硬件推荐给大家。如果你…

C#【进阶】委托和事件

委托和事件 文章目录 1、委托1、委托概念2、基本语法3、定义自定义委托4、使用自定义委托5、委托变量可以存储多个函数6、系统定义好的委托思考 怪物死亡数据更新 2、事件1、事件概念2、事件的使用3、为什么有事件思考 热水器 3、匿名函数1、匿名函数概念2、基本语法3、使用4、…

iLogtail 社区开源之夏活动来了!

作者&#xff1a;玄飏 在这个充满活力的夏日&#xff0c;随着阳光一同灿烂的是开源精神的光辉与创新的火花。iLogtail 社区高兴地宣布&#xff0c;我们正式加入开源之夏 2024 的行列&#xff0c;诚邀每一位怀揣梦想与激情的学生开发者&#xff0c;共同开启一场探索技术前沿、贡…

机器学习入门介绍

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 目录 三大方向机器学习产生的原因机器如何学习…