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:800
 H((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:9
 a1=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:8
 yita(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:800
 H((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:9
 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 8);%yita 表示重叠率
for j=1:8
 yita(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:800
 H(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/deta
 yita(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名片即可

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ITIL4之IT服务战略

战略和IT战略 战略 的概念最早源于军事领域&#xff0c;意在通过对战争全局的精心规划和指挥&#xff0c;利用有限资源高效达成政治和军事目标。这一思想逐渐扩展到商业、管理乃至信息技术领域&#xff0c;成为指导长远发展和资源配置的核心框架。 IT战略 是将军事战略的智慧…

内网安全-隧道搭建穿透上线FRPNPSSPPNgrokEW项目

旨在代理连接肉鸡后实现本地渗透肉鸡网络架构 Linux&#xff1a;Proxychains Windows&#xff1a;Sockscap Proxifier 穿透项目&#xff1a;Ngrok Frp Spp Nps EW(停更) 优点&#xff1a;穿透加密数据&#xff0c;中间平台&#xff0c;防追踪&#xff0c;解决网络问题 https://…

第二步 完善MBR

文章目录 前言一、什么是MBR&#xff1f;二、我们需要什么样的MBR&#xff1f;三、设计我们的MBR&#xff01;1、打印“1 MBR”2、加载次引导程序——loader 四、实践检验&#xff01; 查看系列文章点这里&#xff1a; 操作系统真象还原 前言 在上一篇文章 第一步 从启动BIOS开…

保障数据安全:数据防泄漏加密软件功能对比

在数字时代&#xff0c;数据安全成为企业必须重视的关键问题。随着信息技术的飞速发展&#xff0c;数据的传输、存储和处理变得愈发便捷&#xff0c;但这也为数据泄露带来了更大的风险。为了应对这一挑战&#xff0c;数据防泄漏加密软件应运而生&#xff0c;成为保障数据安全的…

解决 : ERROR: Rosdep experienced an error: The read operation timed out

问题描述 安装过程中的 rosdep update 报错超时问题&#xff0c;需要访问github进行更新&#xff0c;由于国内网络受限&#xff0c;不能正常访问github&#xff0c;从而导致 rosdep update超时。 解决方法 修改rosdep的python源文件&#xff0c;通过代理地址 https://ghprox…

华为认证大数据是什么?华为认证大数据有用吗?

华为大数据是用来搜集整理大数据&#xff0c;提供解决方案的数据中心。华为大数据解决方案是华为公司推出的一种综合性云解决方案&#xff0c;主要针对广告营销、电商、车联网等大数据应用场景的云计算大数据方案&#xff0c;帮助企业用户构建大数据平台&#xff0c;解决企业的…

【源码】购物返利源码每日分红 服务器打包完整版淘宝/京东/亚马逊等刷单平台源码

购物返利源码每日分红 服务器打包完整版淘宝/京东/亚马逊等刷单平台源码 好友分享的购物返利系统带分红&#xff0c;功能很强大的&#xff0c;类似矿机那种源码&#xff01;请勿违法用途&#xff01;源码和数据库都不缺。简单看了下搭建还是非常简单的&#xff01; 东西如下图&…

数据结构与算法学习笔记九---循环队列的表示和实现(C++)

目录 前言 1.为什么要使用循环队列 2.队列的顺序存储方式的实现 1.定义 2.队列初始化 3.销毁 4.清空队列 5.队列是否为空 6.队列长度 7.队头 8.入队 9.出队 10.遍历队列 11.完整代码 3.参考资料 前言 这篇文章介绍循环队列的表示和用法。 1.为什么要使用循环队…

短视频赛道有哪些:成都鼎茂宏升文化传媒公司

短视频赛道有哪些&#xff1a;探索多元化的内容领域 随着科技的飞速发展和人们生活节奏的加快&#xff0c;短视频已成为现代人生活中不可或缺的一部分。它以其简短、直观、易于分享的特点&#xff0c;迅速占领了各个年龄层和社会群体的心智。然而&#xff0c;短视频的赛道并非…

vue2基础语法03——过滤器filter

vue2基础语法03——过滤器filter 1. 前言1.1 需求1.2 不用过滤器实现1.2.1 插值语法、计算属性、方法实现1.2.2 更多关于计算属性 和 方法 2. 使用过滤器实现2.1 说明2.2 例子12.3 例子2——优化2.3.1 默认字母不分割2.3.2 默认字母以分割 2.4 过滤器使用地方 3. 全局过滤器4. …

C++智能指针之唯一指针(std::unique_ptr)

1 概述 从C11开始C语言越来向现代化语言转变。尤其是智能指针的引入&#xff0c;代码中不会直接使用new/delete了。C11智能指针有三种分别是&#xff1a;shared_ptr&#xff0c;weak_ptr 和unique_ptr 。 2 唯一指针(unique_ptr) unique_ptr是C11引入的&#xff0c;用来管理指…

上位机图像处理和嵌入式模块部署(树莓派4b安装dockerros1、ros2)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们讨论过树莓派4b安装ros的问题&#xff0c;当时的解决方案就是利用docker来安装ros。我们都知道&#xff0c;每一个ros版本都是和特定的ubu…

mysql权限体系

提示&#xff1a;根据课程视频总结知识点------2024.05.15 文章目录 权限处理逻辑1、 能不能连接2、能不能执行操作 权限授予与回收1、创建用户2、授予权限3、查看权限4、回收权限5、 权限级别 账户安全管理1、用户权限设定原则2、历史文件泄密 用户权限设定原则1. 只读用户--数…

C++|树形关联式容器(set、map、multiset、multimap)介绍使用

目录 一、关联式容器介绍 1.1概念 1.2键值对 1.3树形结构的关联式容器 1.3.1pair模板介绍 1.3.2make_pair的介绍 二、set的介绍和使用 2.1set介绍 2.2set使用 2.2.1构造 2.2.2容量 2.2.3修改 三、map的介绍和使用 3.1map介绍 3.2map使用 3.2.1构造 3.2.2容量 …

VC++6.0 Sqlite3调用例子

1,为什么要使用Sqlite3? SQLite 是一个软件库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。 2,为什么使用SQLite version 3.8.4.3 2014-04-03 16:53:12的版本…

邮件发送API的功能有哪些?API的调用限制?

邮件发送API的响应速度如何&#xff1f;如何选择API发送邮件&#xff1f; 邮件发送API提供了高效、灵活且可靠的邮件发送功能&#xff0c;使得邮件营销、用户通知、系统告警等场景变得轻松自如。那么&#xff0c;邮件发送API具体都有哪些功能呢&#xff1f;让AokSend来探索吧&…

Spark SQL ---结构化数据文件处理

DataFrame概述 DataFrame的创建 创建DataFrame的两种基本方式&#xff1a; •已存在的RDD调用toDF()方法转换得到DataFrame。 •通过Spark读取数据源直接创建DataFrame。 若使用SparkSession方式创建DataFrame&#xff0c;可以使用spark.read从不同类型的文件中加载数据创建…

【美团面试2024/05/14】前端面试题滑动窗口

一、题目描述 设有一字符串序列 s&#xff0c;确定该序列中最长的无重复字母的子序列&#xff0c;并返回其长度。 备注 0 < s.length < 5 * 104 s 由英文字母、数字、符号和空格组成 示例1 输入 s "abcabcbb" 输出 3 二、原题链接 这道题在LeetCode上的原题链…

运维别卷系列 - 云原生监控平台 之 06.prometheus pushgateway 实践

文章目录 [toc]Pushgateway 简介Pushgateway 部署创建 svc创建 deployment Pushgateway 测试删除 Pushgateway 上对应 lable 的数据 Pushgateway 简介 WHEN TO USE THE PUSHGATEWAY Pushgateway 是一种中介服务&#xff0c;允许您从无法抓取的作业中推送指标。 The Pushgateway…

Python NumPy数组的创建方法

Numpy是Python中科学计算的基础包&#xff0c;其核心对象就是ndarray&#xff08;n维数组&#xff09;。利用数组可以快速执行逻辑&#xff0c;形状操作&#xff0c;统计和傅里叶变换等运算&#xff0c;其效率比Python原生的数组效率更高。因此使用Numpy的第一件事就是创建Nump…