基于力学分析的系泊系统设计附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

摘要  

为了适应海上石油的开发和深海恶劣环境条件的要求,系泊系统在各个国家的不同海域得到了广泛的应用。本文通过对各物体稳态时采用受力分析和力矩分析,建立多目标线性规划模型、基于变步长迭代收敛的区域寻优数学模型等对系泊系统进行分析和解决。

针对问题一,在稳态下对物体进行受力分析和力矩分析,并建立相应模型,通过MATLAB求解可得:风速为12m/s时,钢桶在海面竖直方向上的倾斜角度为1.3185°,钢管在海面水平方向上的倾斜角度从上到下分别为88.6322°、88.6335°、88.6348°、88.6361°,浮标的吃水深度和游动半径分别为0.6361m、14.7060m,最后一节锚链在水平方向上的倾斜角度为0°;风速为24m/s时,钢桶在海面竖直方向上的倾斜角度为4.9895°,钢管在海面水平方向上的倾斜角度从上到下分别为84.8326°、84.8373°、84.8421°、84.8468°,浮标的吃水深度和游动半径分别为0.6507m、17.8541m,最后一节锚链在水平方向上的倾斜角度为5.9075°。

针对问题二,建立与问题一相似的数学模型,用MATLAB求解出:在问题一的条件下,风速为36m/s时,钢桶在海面竖直方向上的倾斜角度为10.2463°,钢管在海面水平方向上的倾斜角度分别为79.4181°、79.4355°、79.4359°、79.4448°,浮标的吃水深度和游动半径分别为0.6745m、18.9535m,最后一节锚链在水平方向上的夹角为21.6429°;为满足约束条件钢桶竖直方向倾角小于5°和最后一节锚链与海底的夹角小于16°,建立多目标线性规划模型,采用变步长迭代收敛,对重物球的质量进行快速搜索。运用MATLAB求解得:在满足前提条件的情况下,风速为36m/s时,钢桶在海面竖直方向上的倾斜角度为4.5304°,钢管在海面水平方向的倾斜角度从上到下依次为85.3858°、85.3880°、85.3902°、85.3924°,浮标的吃水深度和游动半径分别为0.9368m、 18.6201m,最后一节锚链在水平方向上的倾斜角度为15.9886°,重物球的最小质量为2346kg。浮标的吃水深度和重物球的质量呈正相关。

针对问题三,通过在问题一的假设中加入水流速度因素的考虑,通过控制变量法,可以得出:海水深度、海水流速度增加时,钢桶对于法平面的倾角、最后一节锚链与海床之间的夹角以及浮标游动半径均减小,但浮标吃水深度增大;风速越大,钢桶对于法平面的倾角与最后一节锚链与海床的夹角越小,浮标游动半径和吃水深度越大;最终,针对目标布放点海域,20.15m长的V型锚链配以4250kg的重物球可达到最佳效果。

一、问题重述

1.1问题背景

系泊系统分为单点系泊和多点系泊,适用于恶劣的海上情况,因此在各个国家不同海域得到了广泛应用。[1]就系泊系统而言,根据已知的条件来确定电焊锚链的型号和长度和重物球的质量,使其浮游系统的吃水深度和游动区域较小,港通的倾斜角度尽可能小,当在遭遇极端海况时保证结构物和系泊系统本身的安全。

1.2问题重述

我们可以通过题目中给出的已知信息和条件,针对不同的问题建立数学模型和算法,来逐步求解以下问题:

问题一:已知链条的型号、长度和重物球的质量,现将该型传输节点放在水深18m的海域,且海床平坦,海水密度为1.025×103kg/m3。求在海面风速为12m/s和24m/s的两种条件下,钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。

问题二:在问题1的假设下,计算当海面风速为36m/s时钢桶和各节钢管的倾斜角度、锚链形状和浮标的游动区域。并且调节重物球的质量,使得钢桶的倾斜角度不超过5度,锚链在锚点与海床的夹角不超过16度,来保证设备的工作效果。

问题三:由于受潮汐等因素的影响,海水深度介于16m~20m之间,海水的最大速度可达到1.5m/s、风速最大可达到36m/s。在考虑风力、水流力和水深情况下的系泊系统设计,分析在不同情况下钢桶、钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。

二、问题分析

在设计系泊系统时需要确定锚链的型号和长度、重物球的质量,使其浮游系统的吃水深度和游动区域较小,钢桶的倾斜程度尽可能小,来保证系泊系统设备的工作效果。

2.1 问题一

传输节点选用II型电焊锚链22.05m,重物球的质量为1200kg,且传输节点的吃水深度为18m,海床平坦、海水密度为1.025×103kg/m3。当海水静时止,分别计算海面风速为12m/s和24m/s时钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。选取物体与物体位置相对固定的点为作为参考点,进行受力分析。已知钢管、钢桶、锚链与受力方向会有一个夹角产生,力对物体产生转动作用是会产生力矩。在稳态时,物体受力平衡,合外力为零,因此建立物体受力的平衡方程和力矩平衡方程。联立方程,通过钢管、钢桶、锚链在竖直方向的长度满足水深时,求出浮标的吃水深度和每节钢管、钢桶、锚链与海平面的夹角的度数。从而可以求得浮标的游动区域,通过求出锚链角度和已知的锚链长度,利用MATLAB做出锚链的形状。

2.2 问题二

 海面风速为36m/s时,求解钢桶和各节钢管的倾斜角度、锚链形状和浮标的游动区域,可以通过问题一模型的建立,以浮标的吃水深度为变量,利用MATLAB来得到相关数值;调节重物球的质量,使得钢桶的倾斜角度不超过5度,锚链在锚点与海床的夹角不超过16度的情况下,建立多目标线性规划模型,对吃水深度和重物球质量赋予权重,其中s为最优符合系数。和基于变步长迭代收敛的区域寻优数学建模的方法,初始时采用较大的迭代步骤,计算出最优解所在的稳定区域之后,减小迭代步骤,逐步逼近,从而使最优解稳定在一个误差较小的范围内。通过MATLAB,计算出重物球满足要求的质量和浮标吃水深度和重物球的关系。

2.3问题三

当由于潮汐等因素的影响,布放海域的实测水深介于16m~20m之间。布放点的海水速度最大可达到1.5m/s、风速最大可达到36m/s。考虑风力、水流力和水深情况下的系泊系统设计,针对问题一建立的模型,风力、水流力和水深分别给出不同的取值,通过问题一参考体系和参考对象得出相应的受力平衡方程式和力矩平衡方程式来计算钢桶、钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。钢桶的倾斜角度不超过5度,锚链在锚与海床的夹角不超过16度,浮标的游动区域尽可能小来确定锚链的型号。

三、模型假设

1.假设重物球是实心且质地均匀的钢球。

2.取重力加速度的大小为9.80655(南海黄岩岛附近)。

3.假设风向与海平面平行,且风速保持稳定。

4.假设海水流向与风向相同。

5.假设布放点海域各深度海水流速相同,且流速稳定。

6.假设各锚链首尾相连,不存在重叠现象。

7.假设各部位均为刚体,不发生形变。

五、模型的建立和求解

系泊系统的设计问题就是确定锚链的型号、长度和重物球的质量,使得浮标的吃水深度和游动区域及钢桶的倾斜角度尽可能小。因此,根据题目所给的信息和条件,建立以下模型来求解:

5.1模型一的建立与求解

5.1.1模型一的建立

已知近浅海观测网的传输节点由浮标系统、系泊系统和水声通讯系统组成。通过受力分析,来建立受力平衡方程式和力矩平衡方程式来求解:

图1 传输节点示意图

(1)对浮标进行受力分析

⛄ 部分代码

<span style="color:#333333"><span style="background-color:#fafafa"><code>close,clc</code><code>close <span style="color:#dd1144">all</span></code><code>fx=<span style="color:#dd1144">[];                                         %Tcos</span></code><code>fy=<span style="color:#dd1144">[];                                         %Tsin</span></code><code> </code><code>%锚链选型</code><code>romao=<span style="color:#dd1144">3.2;                                     %锚链单位长度的质量</span></code><code>mjcd=<span style="color:#dd1144">0.078;                                    %锚链每节长度  </span></code><code>​</code><code>js=<span style="color:#dd1144">floor(22.05/mjcd);                          %锚链节数</span></code><code>shuishen=<span style="color:#dd1144">18;                                   %海水深度</span></code><code>v=<span style="color:#dd1144">24;                                          %风速</span></code><code>vhai=<span style="color:#dd1144">0;                                        %水流速度</span></code><code>​</code><code>m=<span style="color:#dd1144">[1,1,1,1,1];                                 %钢管与钢桶每部分质量</span></code><code>l=<span style="color:#dd1144">[1,1,1,1,1];                                 %钢管至钢桶每部分高度</span></code><code>​</code><code>for <span style="color:#dd1144">j=1:js                                     %锚链节数</span></code><code>    ml=<span style="color:#dd1144">mjcd*romao;                             %每节锚链质量</span></code><code>    m=<span style="color:#dd1144">[m,ml];                                  %钢管至锚链质量</span></code><code>    l=<span style="color:#dd1144">[l,mjcd];                                %钢管至锚链每部分高度</span></code><code>end</code><code>​</code><code>shuli=<span style="color:#dd1144">[];</span></code><code>gebushuli=<span style="color:#dd1144">[];</span></code><code>phy=<span style="color:#dd1144">[];</span></code><code>h1=<span style="color:#dd1144">[];</span></code><code>k=<span style="color:#dd1144">1;</span></code><code>g=<span style="color:#dd1144">9.80665;                                     %重力加速度</span></code><code>mml=<span style="color:#dd1144">1200;                                      %重物球质量</span></code><code>ro=<span style="color:#dd1144">1025;                                       %海水密度</span></code><code>phy1=<span style="color:#dd1144">{};</span></code><code>​</code><code>for <span style="color:#dd1144">i=1:(js+5)</span></code><code>    if  <span style="color:#dd1144">i<5                                    %钢管竖直方向受力</span></code><code>        v1=<span style="color:#dd1144">0.025^2*pi*1;                       %钢管体积</span></code><code>        shuli=<span style="color:#dd1144">m(i)*g-ro*g*v1;     </span></code><code>        gebushuli=<span style="color:#dd1144">[gebushuli,shuli];</span></code><code>    elseif <span style="color:#dd1144">i==5                                %钢桶</span></code><code>        v2=<span style="color:#dd1144">0.15^2*pi*1;</span></code><code>        shuli=<span style="color:#dd1144">m(i)*g-ro*g*v2; </span></code><code>        gebushuli=<span style="color:#dd1144">[gebushuli,shuli];</span></code><code>    elseif <span style="color:#dd1144">i>=6</span></code><code>        zl=<span style="color:#dd1144">romao*mjcd;</span></code><code>        v3=<span style="color:#dd1144">zl./7850;</span></code><code>        shuli=<span style="color:#dd1144">m(i)*g-ro*g*v3; </span></code><code>        gebushuli=<span style="color:#dd1144">[gebushuli,shuli];</span></code><code>    end</code><code>end </code><code>​</code><code>for <span style="color:#dd1144">h=0.3:0.0001:0.8</span></code><code>    phy=<span style="color:#dd1144">zeros(1,(js+5));</span></code><code>    fbfeng=<span style="color:#dd1144">feng(v,h,vhai);</span></code><code>    fbfu=<span style="color:#dd1144">fu(h);</span></code><code>    <span style="color:#afafaf">fx(1)</span>=<span style="color:#dd1144">fbfeng;</span></code><code>    <span style="color:#afafaf">fy(1)</span>=<span style="color:#dd1144">fbfu;</span></code><code>    for <span style="color:#dd1144">j=1:(js+5)</span></code><code>        if <span style="color:#dd1144">j==5</span></code><code>            vz=<span style="color:#dd1144">mml/7085;</span></code><code>            f11=<span style="color:#dd1144">mml*g-ro*vz*g;</span></code><code>            <span style="color:#afafaf">fx(6)</span>=<span style="color:#dd1144">fx(5)+374*(pi*(0.3^2))*(vhai^2);</span></code><code>            <span style="color:#afafaf">fy(6)</span>=<span style="color:#dd1144">fy(5)-gebushuli(5)-f11;            </span></code><code>            %单位为度</code><code>            <span style="color:#afafaf">phy(j)</span>=<span style="color:#dd1144">atan(((2*fy(j))-gebushuli(j))/(fx(j)*2))/pi*180;</span></code><code>        elseif <span style="color:#dd1144">j~=5</span></code><code>            <span style="color:#afafaf">fx(j+1)</span>=<span style="color:#dd1144">fx(j)+374*(cosd(phy(j))*(vhai^2));</span></code><code>            <span style="color:#afafaf">fy(j+1)</span>=<span style="color:#dd1144">fy(j)-gebushuli(j);</span></code><code>            %单位为度</code><code>            <span style="color:#afafaf">phy(j)</span>=<span style="color:#dd1144">atan(((2*fy(j))-gebushuli(j))/(fx(j)*2))/pi*180;</span></code><code>        end</code><code>        if <span style="color:#dd1144">fy(j)<0</span></code><code>            break</code><code>        end</code><code>    end</code><code>    <span style="color:#afafaf">phy1{k}</span>=<span style="color:#dd1144">phy;</span></code><code>    h1=<span style="color:#dd1144">sind(phy).*l</span></code><code>    <span style="color:#afafaf">H(k)</span>=<span style="color:#dd1144">sum(h1)+h;</span></code><code>    k=<span style="color:#dd1144">k+1;</span></code><code>    phy=<span style="color:#dd1144">[];</span></code><code>end</code><code> </code><code><span style="color:#afafaf">[h_min,u]</span>=<span style="color:#dd1144">min(abs(shuishen-H(:)))</span></code><code>jd=<span style="color:#dd1144">phy1{u};</span></code><code>yy=<span style="color:#dd1144">0;</span></code><code>xx=<span style="color:#dd1144">0;</span></code><code>xx1=<span style="color:#dd1144">[];</span></code><code>yy1=<span style="color:#dd1144">[];</span></code><code>yfx=<span style="color:#dd1144">sind(phy1{u}).*l;</span></code><code>xfx=<span style="color:#dd1144">cosd(phy1{u}).*l;</span></code><code>​</code><code>for <span style="color:#dd1144">i=length(yfx):-1:6</span></code><code>    yy=<span style="color:#dd1144">yy+yfx(i);</span></code><code>    yy1=<span style="color:#dd1144">[yy1,yy];</span></code><code>    xx=<span style="color:#dd1144">xx+xfx(i);</span></code><code>    xx1=<span style="color:#dd1144">[xx1,xx];</span></code><code>end</code><code>​</code><code>plot(xx1,yy1)</code><code><span style="color:#afafaf">axis([0</span> <span style="color:#dd1144">18 -1 14]) %xmin是x最小,xmax是x最大,ymin,ymax类似</span></code><code>xlabel('x轴')</code><code>ylabel('y轴')</code><code>title('锚链I形状')</code><code>R=<span style="color:#dd1144">sum(cosd(jd).*l);</span></code><code> </code><code>%浮标风力</code><code>function <span style="color:#dd1144">[fbfeng]=feng(v,h,vhai)</span></code><code>D=<span style="color:#dd1144">2;</span></code><code>fbfeng=<span style="color:#dd1144">0.625*D*(2-h)*(v^2)+374*D*h*(vhai^2);</span></code><code>end</code><code>​</code><code>%浮标竖直受力</code><code>function <span style="color:#dd1144">[fbfu]=fu(h)</span></code><code>ro=<span style="color:#dd1144">1025;                                       %海水密度</span></code><code>g=<span style="color:#dd1144">9.80665;                                     %重力加速度</span></code><code>r=<span style="color:#dd1144">1;                                           %浮标半径</span></code><code>mfb=<span style="color:#dd1144">1000;                                      %浮标质量</span></code><code>fbfu=<span style="color:#dd1144">ro*g*pi*r*r*h-mfb*g;</span></code><code>end</code></span></span>

⛄ 运行结果

⛄ 参考文献

[1]赵杰, 刚体定点转动力矩的功, 滁州师专学报, 22-23, 1999.

[2]马兰, 刘勇, 基于变步长迭代收敛的区域寻优数学建模, 科技通报, 30(6):16-18, 2014.

[3]司守奎, 孙兆亮, 数学建模算法与应用, 北京: 国防工业出版社, 2015.

[4]唐永刚, 毛晖, 超大型FPSO软轭架转塔式单点系泊系统设计研究, 船舶工程, 32(6):60-61,2010.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料

🍅 仿真咨询

1.卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3.旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划
4.无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
5.传感器部署优化、通信协议优化、路由优化、目标定位
6.信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号
7.生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化
8.微电网优化、无功优化、配电网重构、储能配置
9.元胞自动机交通流 人群疏散 病毒扩散 晶体生长

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值