2016年国赛高教杯数学建模
A题 系泊系统的设计
近浅海观测网的传输节点由浮标系统、系泊系统和水声通讯系统组成(如图1所示)。某型传输节点的浮标系统可简化为底面直径2m、高2m的圆柱体,浮标的质量为1000kg。系泊系统由钢管、钢桶、重物球、电焊锚链和特制的抗拖移锚组成。锚的质量为600kg,锚链选用无档普通链环,近浅海观测网的常用型号及其参数在附表中列出。钢管共4节,每节长度1m,直径为50mm,每节钢管的质量为10kg。要求锚链末端与锚的链接处的切线方向与海床的夹角不超过16度,否则锚会被拖行,致使节点移位丢失。水声通讯系统安装在一个长1m、外径30cm的密封圆柱形钢桶内,设备和钢桶总质量为100kg。钢桶上接第4节钢管,下接电焊锚链。钢桶竖直时,水声通讯设备的工作效果最佳。若钢桶倾斜,则影响设备的工作效果。钢桶的倾斜角度(钢桶与竖直线的夹角)超过5度时,设备的工作效果较差。为了控制钢桶的倾斜角度,钢桶与电焊锚链链接处可悬挂重物球。
图1 传输节点示意图(仅为结构模块示意图,未考虑尺寸比例)
系泊系统的设计问题就是确定锚链的型号、长度和重物球的质量,使得浮标的吃水深度和游动区域及钢桶的倾斜角度尽可能小。
问题1 某型传输节点选用II型电焊锚链22.05m,选用的重物球的质量为1200kg。现将该型传输节点布放在水深18m、海床平坦、海水密度为1.025×103kg/m3的海域。若海水静止,分别计算海面风速为12m/s和24m/s时钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。
问题2 在问题1的假设下,计算海面风速为36m/s时钢桶和各节钢管的倾斜角度、锚链形状和浮标的游动区域。请调节重物球的质量,使得钢桶的倾斜角度不超过5度,锚链在锚点与海床的夹角不超过16度。
问题3 由于潮汐等因素的影响,布放海域的实测水深介于16m~20m之间。布放点的海水速度最大可达到1.5m/s、风速最大可达到36m/s。请给出考虑风力、水流力和水深情况下的系泊系统设计,分析不同情况下钢桶、钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。
说明 近海风荷载可通过近似公式F=0.625×Sv2(N)计算,其中S为物体在风向法平面的投影面积(m2),v为风速(m/s)。近海水流力可通过近似公式F=374×Sv2(N)计算,其中S为物体在水流速度法平面的投影面积(m2),v为水流速度(m/s)。
整体求解过程概述(摘要)
本文通过受力分析、最小二乘法、非线性规划、变步长搜索算法等方法,建立了系泊系统状态模型、多目标非线性规划模型对系泊系统的设计问题进行了研究。
针对问题一,首先建立以锚为原点、风向为x轴,竖直方向为z轴,海床所在平面为O-xy平面,风向所在铅锤面为O-xz平面的标准坐标系,从而刻画浮标的游动区域。其次,为描述系泊系统的状态,通过对该系统的各组成部分进行隔离受力分析,确定了浮标所受的杆拉力与风速、吃水深度的表达式,以及钢杆、钢桶、锚链倾角的递推关系,并结合海水深度的几何约束,最终建立了系泊系统状态模型;接着,基于锚链着地现象的考虑,对着地处的锚链进行了受力分析,从而得到了着地锚链的倾角关系,并结合未着地的倾角关系以及海水深度的几何约束,建立了系泊系统状态的修正模型;最后,本文针对复杂多元非线性方程组的求解问题,设计了基于最小二乘法的搜索算法,求解出了海面风速分别为12m/s和24m/s时,钢桶和各节钢管的倾斜角度、锚链形状、浮标吃水深度与游动区域,见图5.4.3,见表5.4.2。
针对问题二,首先利用问题一建立的系泊系统状态模型和基于最小二乘法的搜索算法,对海面风速为36m/s时,钢桶与各节钢管的倾斜角度、锚链形状、浮标吃水深度和游动区域进行了求解见文中XXX页,XX表。其次,针对题目所给出的系泊系统设计要求,将浮标吃水深度,浮标的游动区域,钢桶的倾角作为优化目标,以各个构件在竖直方向投影的几何约束作为约束条件,以重物球的配重作为决策变量,建立了多目标非线性规划模型。接着,采用熵权法对各优化目标分配权重,从而将多目标规划问题转化为单目标规划问题。最后,利用循环搜索算法对模型进行求解,得到的满足设计要求的配重范围为2200<=mq<=4100kg、最佳配重为2894kg。
针对问题三,首先基于海水流速与近海风速夹角的考虑,建立了以锚为原点,海水流速方向为x轴, 竖直方向为z轴, 海床所在平面为O-xy平面, 水流速度所在法平面为O-xz平面的标准坐标系,从而描述浮标的游动区域。其次,根据海水流速与海水深度的关系,结合"近海水流力"的近似公式,从而得到水流力与海水深度的关系。接着,对系泊系统进行受力分析,确定了各参数间的关系,进而建立了系泊系统的三维状态模型。再次,结合问题二对优化目标的分析,以锚链型号,锚链长度,重物球配重作为决策变量,建立了多目标非线性规划模型。最后,考虑到模型的复杂程度,通过变步长搜索算法对模型进行求解,结果如表7.3.2所示。
本文的特色在于将机理分析与多目标规划相结合,运用熵权法将多目标问题转化为单目标问题,使得求解结果更加客观。此外,对于解空间较复杂的模型,设计了变步长搜索算法,在保证了求解的精度的同时,极大地提高了运算的时间复杂程度,为日后系泊系统的设计的发展提供了参考依据。
模型假设:
1. 假设浮标在水面上不存在偏斜;
2. 假设各构件均为刚体,不发生变形;
3. 假设问题三中海水流速随深度呈抛物分布;
4. 假设海水流速方向水平。
问题分析:
问题一的分析
问题一要求建立系泊系统内钢桶和各节钢管倾斜角度,锚链形状和浮标吃水深度变化的数学模型,因此需要对不同结构分别进行受力分析,从而找到题目要求的各个参数的递推关系,进而构建本问题的非线性方程组。 其次,为了分析各个参数与风速的关系,则需要根据"近海风荷载"的近似公式,对浮标进行进一步受力分析。 此外,为了求解出海面风速为12m/s和24m/s时钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域,需要求解之前构建的非线性方程,进而确定各个参数。考虑到解空间不大,因此本文采用基于最小二乘法的搜索算法进行求解。
问题二的分析
为了计算海面风速为36m/s时,钢桶和各节钢管的倾斜角度,锚链形状和浮标的游动区域,则只要将海面风速带入模型一进行求解即可。 为了满足钢桶的倾斜角度不超过5度,锚链在锚点与海床的夹角不超过16度的要求,需要建立以重物配重为决策变量,海水深度为几何约束条件的多目标非线性规划模型。由于数据规模不大,本文采用循环搜索算法对模型进行求解。
问题三的分析
为了分析在海水深度、海水速度,风速变化情况下钢桶、钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域,需要依据问题二的思路建立多目标非线性规划模型,决策变量为锚链型号、锚链长度以及重物配重。
模型的建立与求解整体论文缩略图
全部论文请见下方" 只会建模 QQ名片" 点击QQ名片即可
程序代码:
bash
mq=1200;%ÖØÎïÇòÖÊÁ¿
n=210;%êÁ´¸ÕÌå¸öÊý
min=inf;
minh=0;
minH=0;
minbeta=0;
minthita1=zeros(1,4);
minthita2=zeros(1,n)+pi/2;
minFt2=zeros(1,n+1);
for h=0:0.0001:2
Ft=zeros(1,5);%¸Ö¹Ü²¿·ÖµÄ¸÷À-Á¦
alpha=zeros(1,5);%¸Ö¹Ü²¿·Ö¸÷À-Á¦µÄ·½Ïò
thita1=zeros(1,4);%¸÷¸Ö¹ÜµÄ·½Ïò
beta=0;%¸ÖÍ°µÄ·½Ïò
Ft2=zeros(1,n+1);%êÁ´²¿·ÖµÄ¸÷À-Á¦
gama=zeros(1,n+1);%êÁ´²¿·Ö¸÷À-Á¦µÄ·½Ïò
thita2=zeros(1,n)+pi/2;%¸÷êÁ´µÄ·½Ïò
%¸¡±ê²¿·Ö
v=24;%·çËÙ
S=2*(2-h);
m=1000;%¸¡±êÖÊÁ¿
rou=1025;%º£Ë®ÃܶÈ
g=9.8;%ÖØÁ¦¼ÓËÙ¶È
V=pi*1^2*h;%³ÔË®Ìå>>ý
Ffeng=0.625*S*v^2;%·çÁ¦
Ffu=rou*g*V;%¸¡Á¦
Gfu=m*g;%¸¡±êÖØÁ¦
if Ffu-Gfu<0
continue;
end
alpha(1)=atan(Ffeng/(Ffu-Gfu));
Ft(1)=sqrt(Ffeng^2+(Ffu-Gfu)^2);
%¸Ö¹Ü²¿·Ö
Vg=1*pi*0.025^2;%¸Ö¹ÜÌå>>ý
Ggang=10*g;%¸Ö¹ÜÖØÁ¦
Fgfu=rou*g*Vg;
for i=1:4
alpha(i+1)=atan((Ft(i)*sin(alpha(i)))/(Ft(i)*cos(alpha(i))+Fgfu-Ggang));
Ft(i+1)=Ft(i)*sin(alpha(i))/sin(alpha(i+1));
thita1(i)=atan(Ft(i)*sin(alpha(i))*1/((Fgfu-Ggang)*1/2+Ft(i)*cos(alpha(i)))
);
end
Vt=1*pi*0.15^2;%¸ÖÍ°Ìå>>ý
Vq=mq/7800;%ÖØÎïÇòÌå>>ý
Gt=100*g;%¸ÖÍ°²¿·ÖÖØÁ¦
Gq=mq*g;%ÖØÎïÇòÖØÁ¦
Ftfu=rou*g*Vt;%¸ÖÍ°¸¡Á¦
Fqfu=rou*g*Vq;%ÖØÁ¦Çò¸¡Á¦
gama(1)=atan(Ft(5)*sin(alpha(5))/(Ftfu+Ft(5)*cos(alpha(5))-Gt-Gq+Fqfu));
Ft2(1)=Ft(5)*sin(alpha(5))/sin(gama(1));
beta=atan(Ft(5)*sin(alpha(5))*1/((Ftfu-Gt)*1/2+Ft(5)*cos(alpha(5))*1));
%êÁ´²¿·Ö
mm=0.735;%êÁ´ÖÊÁ¿
roum=6450;%êÁ´ÃܶÈ
Vm=mm/roum;%êÁ´Ìå>>ý
Fmfu=rou*g*Vm;%êÁ´¸¡Á¦
Gm=mm*g;%êÁ´ÖØÁ¦
Lm=0.105;%êÁ´³¤¶È
for i=1:n
gama(i+1)=atan(Ft2(i)*sin(gama(i))/(Ft2(i)*cos(gama(i))+Fmfu-Gm));
if gama(i+1)<0
gama(i+1)=gama(i+1)+pi;
end
Ft2(i+1)=Ft2(i)*sin(gama(i))/sin(gama(i+1));
thita2(i)=atan(Ft2(i)*sin(gama(i))*Lm/((Fmfu-Gm)*Lm/2+Ft2(i)*cos(gama(i))*L
m));
if thita2(i)<0
thita2(i)=thita2(i)+pi;
end
end
H=h+sum(cos(thita1))+cos(beta)+Lm*sum(cos(thita2));
if abs(H-18)<min
minh=h;
min=abs(H-18);
minH=H;
minthita1=thita1;
minthita2=thita2;
minbeta=beta;
minFt2=Ft2;
end
end
bash
function [r,minh,minbeta,minthita2,minH] = tuodir(n,mq)
%UNTITLED3 Summary of this function goes here
% Detailed explanation goes here
min=inf;
minh=0;
minH=0;
minbeta=0;
minthita1=zeros(1,4);
minthita2=zeros(1,n)+pi/2;
mini=0;
for h=0.6:0.0001:0.72
Ft=zeros(1,5);%¸Ö¹Ü²¿·ÖµÄ¸÷À-Á¦
alpha=zeros(1,5);%¸Ö¹Ü²¿·Ö¸÷À-Á¦µÄ·½Ïò
thita1=zeros(1,4);%¸÷¸Ö¹ÜµÄ·½Ïò
beta=0;%¸ÖÍ°µÄ·½Ïò
Ft2=zeros(1,n+1);%êÁ´²¿·ÖµÄ¸÷À-Á¦
gama=zeros(1,n+1);%êÁ´²¿·Ö¸÷À-Á¦µÄ·½Ïò
thita2=zeros(1,n)+pi/2;%¸÷êÁ´µÄ·½Ïò
%¸¡±ê²¿·Ö
v=12;%·çËÙ
S=2*(2-h);
m=1000;%¸¡±êÖÊÁ¿
rou=1025;%º£Ë®ÃܶÈ
g=9.8;%ÖØÁ¦¼ÓËÙ¶È
V=pi*1^2*h;%³ÔË®Ìå>>ý
Ffeng=0.625*S*v^2;%·çÁ¦
Ffu=rou*g*V;%¸¡Á¦
Gfu=m*g;%¸¡±êÖØÁ¦
if Ffu-Gfu<0
continue;
end
alpha(1)=atan(Ffeng/(Ffu-Gfu));
Ft(1)=sqrt(Ffeng^2+(Ffu-Gfu)^2);
%¸Ö¹Ü²¿·Ö
Vg=1*pi*0.025^2;%¸Ö¹ÜÌå>>ý
Ggang=10*g;%¸Ö¹ÜÖØÁ¦
Fgfu=rou*g*Vg;
for i=1:4
alpha(i+1)=atan((Ft(i)*sin(alpha(i)))/(Ft(i)*cos(alpha(i))+Fgfu-Ggang));
Ft(i+1)=Ft(i)*sin(alpha(i))/sin(alpha(i+1));
thita1(i)=atan(Ft(i)*sin(alpha(i))*1/((Fgfu-Ggang)*1/2+Ft(i)*cos(alpha(i)))
);
end
%¸ÖÍ°²¿·Ö
Vt=1*pi*0.15^2;%¸ÖÍ°Ìå>>ý
Vq=mq/7800;%ÖØÎïÇòÌå>>ý
Gt=100*g;%¸ÖÍ°²¿·ÖÖØÁ¦
Gq=mq*g;%ÖØÎïÇòÖØÁ¦
Ftfu=rou*g*Vt;%¸ÖÍ°¸¡Á¦
Fqfu=rou*g*Vq;%ÖØÁ¦Çò¸¡Á¦
gama(1)=atan(Ft(5)*sin(alpha(5))/(Ftfu+Ft(5)*cos(alpha(5))-Gt-Gq+Fqfu));
Ft2(1)=Ft(5)*sin(alpha(5))/sin(gama(1));
beta=atan(Ft(5)*sin(alpha(5))*1/((Ftfu-Gt)*1/2+Ft(5)*cos(alpha(5))*1));
%êÁ´²¿·Ö
mm=0.735;%êÁ´ÖÊÁ¿
roum=6450;%êÁ´ÃܶÈ
Vm=mm/roum;%êÁ´Ìå>>ý
Fmfu=rou*g*Vm;%êÁ´¸¡Á¦
Gm=mm*g;%êÁ´ÖØÁ¦
Lm=0.105;%êÁ´³¤¶È
for i=1:n
gama(i+1)=atan(Ft2(i)*sin(gama(i))/(Ft2(i)*cos(gama(i))+Fmfu-Gm));
if gama(i+1)<0
gama(i+1)=gama(i+1)+pi;
end
Ft2(i+1)=Ft2(i)*sin(gama(i))/sin(gama(i+1));
thita2(i)=atan(Ft2(i)*sin(gama(i))*Lm/((Fmfu-Gm)*Lm/2+Ft2(i)*cos(gama(i))*L
m));
if thita2(i)<0
thita2(i)=thita2(i)+pi;
end
H=h+sum(cos(thita1))+cos(beta)+Lm*sum(cos(thita2));%½áËãÒ>>´Î
if gama(i+1)>pi/2-0.015
break;
end
end
if i<n&&abs(H-18)<min
minh=h;
minH=H;
minthita1=thita1;
minthita2=thita2;
minbeta=beta;
mini=i;
end
end
r=Lm*sum(sin(minthita2))+sin(minbeta)+sum(sin(minthita1));
end