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