全国大学生数学建模竞赛2016A题系泊系统的设计MATLAB程序

目录

一、第1问

1.1 第一次遍历寻找浮标吃水深度MATLAB程序

1.2 第二次遍历寻找浮标吃水深度MATLAB程序

1.3 代入遍历结果浮标吃水深度MATLAB程序

二、第2问

2.1 遍历寻找满足条件重物球质量最小解MATLAB程序

2.2 加入多目标优化遍历寻找满足条件重物球质量MATLAB程序

2.3 代入遍历优化结果重物球质量MATLAB程序

三、第3问

3.1 遍历不同锚链型号与长度以及重物球的质量MATLAB程序

3.2 三次遍历代入锚链型号与长度以及重物球的质量求浮标吃水深度MATLAB程序

3.2.1 第一次遍历

3.2.2 第二次遍历 

3.2.3 第三次遍历

3.3 代入遍历所得浮标吃水深度以及锚链型号与长度以及重物球的质量MATLAB程序


一、第1问

针对问题一,选取系泊系统相对静止状态为研究对象,进行静力学分析建立系泊系统各部分的受力平衡和力矩平衡模型,将所处海域的水深大小对系泊系统的垂直高度起限制作用作为系统纵向约束条件。将浮标的游动区域转化为游动半径进行研究,游动半径为浮标与锚的水平距离。假定浮标的吃水深度,对系泊系统的受力情况进行递推,得到系统各部分倾斜角度。对浮标的吃水深度在 0~2 米的范围变步长划分,进行循环遍历,建立垂直高度模型,寻找其满足系统纵向约束条件的值,并得到在不同风速下系泊系统的状态。结果发现,风速为12m/s 时,钢桶的角度为1.200 钢管的角度依次为1.158 、1.166 、1.174 、1.182,浮标的吃水深度为 0.683 米时,浮标的游动半径为 14.604 米,游动区域的面积大致为 670.029 平方米。风速为 24m/s 时,钢桶的角度为 4.563,钢管的角度依次为 4.410 、 4.438 、4.467 、4.496,浮标的吃水深度为 0.697 米,浮标的游动半径为17.780 米,游动区域的面积大致为 993.147 平方米。利用悬链线模型求解锚链形状,与原结果进行比较,发现图形相近,验证模型正确。对模型进行灵敏度分析,验证模型的鲁棒性较好。

1.1 第一次遍历寻找浮标吃水深度MATLAB程序

%% 浮标1
g=9.807;%重力加速度
p=1025;%海水密度
m1=1000;%浮标质量
v=12;%海面风速

count0=0;
HH=zeros(10,1);
for h1=0.50:0.01:0.75 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

V1=pi*h1;%浮标吃水体积
syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

G1=m1*g;
B1=p*g*V1;
Ffeng=0.625*((2-h1)*2)*v^2;
eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));
r1=0;%横坐标长度

%% 钢管2
m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度

%% 重物球4
m4=1200;%重物球质量
p4=7850;%钢的密度
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index3=find(a3>0);
a3=double(a3(index3));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度

%% 各锚链节5
L5=0.105;%单个锚链长度
m5=7*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;

T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
h5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
r0=r1+sum(r2)+r3+x(211,1);%游动半径
HH(count0)=H;
end
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);

1.2 第二次遍历寻找浮标吃水深度MATLAB程序

%% 浮标1
g=9.807;%重力加速度
p=1025;%海水密度
m1=1000;%浮标质量
v=12;%海面风速

count0=0;
HH=zeros(10,1);
for h1=0.680:0.001:0.690 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

V1=pi*h1;%浮标吃水体积
syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

G1=m1*g;
B1=p*g*V1;
Ffeng=0.625*((2-h1)*2)*v^2;
eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));
r1=0;%横坐标长度

%% 钢管2
m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度

%% 重物球4
m4=1200;%重物球质量
p4=7850;%钢的密度
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index3=find(a3>0);
a3=double(a3(index3));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度

%% 各锚链节5
L5=0.105;%单个锚链长度
m5=7*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;

T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
h5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
r0=r1+sum(r2)+r3+x(211,1);%游动半径
HH(count0)=H;
end
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);

1.3 代入遍历结果浮标吃水深度MATLAB程序

%% 浮标1
g=9.807;%重力加速度
p=1025;%海水密度
m1=1000;%浮标质量
v=12;%海面风速

h1=0.683;%吃水深度

V1=pi*h1;%浮标吃水体积
syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

G1=m1*g;
B1=p*g*V1;
Ffeng=0.625*((2-h1)*2)*v^2;
eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));
r1=0;%横坐标长度

%% 钢管2
m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度

%% 重物球4
m4=1200;%重物球质量
p4=7850;%钢的密度
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index3=find(a3>0);
a3=double(a3(index3));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度

%% 各锚链节5
L5=0.105;%单个锚链长度
m5=7*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;

T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
h5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
r0=r1+sum(r2)+r3+x(211,1);%游动半径
plot(x,y,'linewidth',2)
axis([0 20 0 20])
xlabel('x','FontSize',28);
ylabel('y','FontSize',28);
set(gca,'FontSize',28,'linewidth',1);

%% 导出数据7
filterName=["钢管角度","钢桶角度","浮标吃水深度","浮标游动半径","锚链末端夹角","链结漂浮个数","系统总高度"];
xlswrite('problem1.xlsx',filterName,'v=12','A1');
xlswrite('problem1.xlsx',a2,'v=12','A2');
xlswrite('problem1.xlsx',a3,'v=12','B2');
xlswrite('problem1.xlsx',h1,'v=12','C2');
xlswrite('problem1.xlsx',r0,'v=12','D2');
xlswrite('problem1.xlsx',90-a5(210),'v=12','E2');
xlswrite('problem1.xlsx',count00,'v=12','F2');
xlswrite('problem1.xlsx',H,'v=12','G2');

二、第2问

针对问题二,首先判断在问题一的假设下,系泊系统对风速为 36m/s 的适 应能力,得出系统不满足题目要求。建立整体力学模型和基于重物球质量的系 泊系统设计优化模型,将钢桶的倾斜角度、浮标的吃水深度、浮标的游动区域、锚链在锚点与海床的夹角、重物球的质量均达到最小的多目标优化转化为 单目标进行优化。根据上下边界条件,求得重物球质量的调节范围,对范围变 步长划分进行循环遍历,寻找其最优值,使系统的稳定性达到最大。结果得到 重物球质量的最优值为 5527kg,系统的稳定性最好。

2.1 遍历寻找满足条件重物球质量最小解MATLAB程序

%% 求极限值
g=9.807;%重力加速度
p=1025;%海水密度
v=36;%海面风速

h1=2;%先取最大值就极值
m1=1000;%浮标质量
V=pi*h1;%浮标体积
B=p*g*V;%浮标最大浮力
G=m1*g;%浮标重力
FFfeng=0.625*((2-h1)*2)*v^2;%F风

m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

L5=0.105;%单个锚链长度
m5=7*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;

syms fm4
p4=7850;%钢的密度
V4=fm4/p4;%重物球体积
G4=fm4*g;
B4=p*g*V4;
T41=G4-B4;
eq0=B+B2*4+B3+B4+B5*210-FFfeng*tand(16)-(G+G2*4+G3+G5*210)-fm4*g;%G铁max=F浮max-F风*tan16°-G其他
[fm4]=solve(eq0,fm4);
fm4=double(fm4);
fm4=round(fm4);
%% 总
for iii=1:200
m4=2200+iii*25; %循环遍历
%% 浮标1
count0=0;
HH=zeros(10,1);
%% 重复遍历1
for h1=0.70:0.1:1.50 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index31=find(a3>0);
a3=double(a3(index31));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end

%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
HH(count0)=H;
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end

count1=10;
for n=1:9
    count1=count1-1;
    if HH(count1)<18
        new1=0.7+0.1*(count1-1);
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复遍历2
for h1=new1:0.01:new1+0.1 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index32=find(a3>0);
a3=double(a3(index32));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end

%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
HH(count0)=H;
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end

count2=12;
for n=1:11
    count2=count2-1;
    if HH(count2)<18
        new2=new1+0.01*(count2-1);
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复遍历3
for h1=new2:0.001:new2+0.01 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index33=find(a3>0);
a3=double(a3(index33));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度

HH(count0)=H;

% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end
count3=12;
for n=1:11
    count3=count3-1;
    if HH(count3)<18
        new31=abs(HH(count3)-18);
        new32=abs(HH(count3+1)-18);
        if  new31<new32
            new3= new2+0.001*(count3-1);
        else
            new3= new2+0.001*(count3);
        end
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复计算4
h1=new3;%吃水深度
m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));
r1=0;%横坐标长度

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index3=find(a3>0);
a3=double(a3(index3));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
h5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
r0=r1+sum(r2)+r3+x(211,1);%游动半径
%%
if a3<5&&a5(210)>74
    break
end
end
plot(x,y,'linewidth',2)
axis([0 20 0 20])
xlabel('x','FontSize',28);
ylabel('y','FontSize',28);
set(gca,'FontSize',28,'linewidth',1);

%% 导出数据7
filterName=["钢管角度","钢桶角度","浮标吃水深度","浮标游动半径","锚链末端夹角","链结漂浮个数","系统总高度","重物质量"];
xlswrite('problem2(优化前).xlsx',filterName,'v=36','A1');
xlswrite('problem2(优化前).xlsx',a2,'v=36','A2');
xlswrite('problem2(优化前).xlsx',a3,'v=36','B2');
xlswrite('problem2(优化前).xlsx',h1,'v=36','C2');
xlswrite('problem2(优化前).xlsx',r0,'v=36','D2');
xlswrite('problem2(优化前).xlsx',90-a5(210),'v=36','E2');
xlswrite('problem2(优化前).xlsx',count00,'v=36','F2');
xlswrite('problem2(优化前).xlsx',H,'v=36','G2');
xlswrite('problem2(优化前).xlsx',m4,'v=36','H2');

2.2 加入多目标优化遍历寻找满足条件重物球质量MATLAB程序

%% 求极限值
g=9.807;%重力加速度
p=1025;%海水密度
v=36;%海面风速

h1=2;%先取最大值就极值
m1=1000;%浮标质量
V=pi*h1;%浮标体积
B=p*g*V;%浮标最大浮力
G=m1*g;%浮标重力
FFfeng=0.625*((2-h1)*2)*v^2;%F风

m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

L5=0.105;%单个锚链长度
m5=7*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;

syms fm4
p4=7850;%钢的密度
V4=fm4/p4;%重物球体积
G4=fm4*g;
B4=p*g*V4;
T41=G4-B4;
eq0=B+B2*4+B3+B4+B5*210-FFfeng*tand(16)-(G+G2*4+G3+G5*210)-fm4*g;%G铁max=F浮max-F风*tan16°-G其他
[fm4]=solve(eq0,fm4);
fm4=double(fm4);
fm4=round(fm4);
%% 总
ei=0;
mi=zeros(15,1);
for iii=1:15
m4=2225+iii*(fm4-2225)/15; %循环遍历
%% 浮标1
count0=0;
HH=zeros(10,1);
%% 重复遍历1
for h1=0.70:0.1:1.90 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index31=find(a3>0);
a3=double(a3(index31));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end

%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
HH(count0)=H;
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end

count1=14;
for n=1:13
    count1=count1-1;
    if HH(count1)<18
        new1=0.7+0.1*(count1-1);
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复遍历2
for h1=new1:0.01:new1+0.1 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index32=find(a3>0);
a3=double(a3(index32));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end

%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
HH(count0)=H;
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end

count2=12;
for n=1:11
    count2=count2-1;
    if HH(count2)<18
        new2=new1+0.01*(count2-1);
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复遍历3
for h1=new2:0.001:new2+0.01 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index33=find(a3>0);
a3=double(a3(index33));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度

HH(count0)=H;

% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end
count3=12;
for n=1:11
    count3=count3-1;
    if HH(count3)<18
        if count3==11
             new3= new2+0.001*(count3-1);
        else
             new31=abs(HH(count3)-18);
             new32=abs(HH(count3+1)-18);
        if   new31<new32
             new3= new2+0.001*(count3-1);
        else
             new3= new2+0.001*(count3);
        end
        end
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复计算4
h1=new3;%吃水深度
m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));
r1=0;%横坐标长度

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index3=find(a3>0);
a3=double(a3(index3));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
h5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
r0=r1+sum(r2)+r3+x(211,1);%游动半径
%% 多目标优化
ei=ei+1;
a3max=5;%角度a3极限值
h1max=2;%吃水深度h1极限值
r0max=27.05;%R0游动半径极限值
a5210max=90-16;%锚链与锚夹角a5(210)极限值
mi(ei)=a3/a3max+h1/h1max+r0/r0max+(90-a5(210))/(a5210max)+m4/(m4+fm4);
end
new4=find(mi==min(mi));
new4=2225+new4*(fm4-2225)/15;

2.3 代入遍历优化结果重物球质量MATLAB程序

%% 求极限值
g=9.807;%重力加速度
p=1025;%海水密度
v=36;%海面风速

h1=2;%先取最大值就极值
m1=1000;%浮标质量
V=pi*h1;%浮标体积
B=p*g*V;%浮标最大浮力
G=m1*g;%浮标重力
FFfeng=0.625*((2-h1)*2)*v^2;%F风

m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

L5=0.105;%单个锚链长度
m5=7*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;

syms fm4
p4=7850;%钢的密度
V4=fm4/p4;%重物球体积
G4=fm4*g;
B4=p*g*V4;
T41=G4-B4;
eq0=B+B2*4+B3+B4+B5*210-FFfeng*tand(16)-(G+G2*4+G3+G5*210)-fm4*g;%G铁max=F浮max-F风*tan16°-G其他
[fm4]=solve(eq0,fm4);
fm4=double(fm4);
fm4=round(fm4);
%% 总
m4=5527; %最优解
%% 浮标1
count0=0;
HH=zeros(10,1);
%% 重复遍历1
for h1=0.70:0.1:1.90 %吃水深度
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index31=find(a3>0);
a3=double(a3(index31));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end

%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
HH(count0)=H;
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end

count1=14;
for n=1:13
    count1=count1-1;
    if HH(count1)<18
        new1=0.7+0.1*(count1-1);
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复遍历2
for h1=new1:0.01:new1+0.1 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index32=find(a3>0);
a3=double(a3(index32));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end

%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
HH(count0)=H;
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end

count2=12;
for n=1:11
    count2=count2-1;
    if HH(count2)<18
        new2=new1+0.01*(count2-1);
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复遍历3
for h1=new2:0.001:new2+0.01 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index33=find(a3>0);
a3=double(a3(index33));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度

HH(count0)=H;

% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end
count3=12;
for n=1:11
    count3=count3-1;
    if HH(count3)<18
        if count3==11
             new3= new2+0.001*(count3);
        else
             new31=abs(HH(count3)-18);
             new32=abs(HH(count3+1)-18);
        if   new31<new32
             new3= new2+0.001*(count3-1);
        else
             new3= new2+0.001*(count3);
        end
        end
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复计算4
h1=new3;%吃水深度
m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
Ffeng=0.625*((2-h1)*2)*v^2;%F风

syms fT1;%拉力T(下同)
syms fsi1;%角度SITA(下同)

eq11=B1-G1-fT1*cosd(fsi1);
eq12=Ffeng-fT1*sind(fsi1);
[fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
index1=find(fT1>0);
T1=double(fT1(index1));
si1=double(fsi1(index1));
r1=0;%横坐标长度

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index3=find(a3>0);
a3=double(a3(index3));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度

%% 各锚链节5
T5=zeros(211,1);
si5=zeros(211,1);
a5=zeros(211,1);
h5=zeros(211,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:210
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(211,1);
y=zeros(211,1);
x(1)=0;
y(1)=0;
count=211;
count00=0;%链接漂浮个数
for ii=1:210
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(211,1);%总高度
r0=r1+sum(r2)+r3+x(211,1);%游动半径

plot(x,y,'linewidth',2)
axis([0 20 0 20])
xlabel('x','FontSize',28);
ylabel('y','FontSize',28);
set(gca,'FontSize',28,'linewidth',1);
%% 导出数据7
filterName=["钢管角度","钢桶角度","浮标吃水深度","浮标游动半径","锚链末端夹角","链结漂浮个数","系统总高度","重物质量"];
xlswrite('problem2(优化后).xlsx',filterName,'v=36','A1');
xlswrite('problem2(优化后).xlsx',a2,'v=36','A2');
xlswrite('problem2(优化后).xlsx',a3,'v=36','B2');
xlswrite('problem2(优化后).xlsx',h1,'v=36','C2');
xlswrite('problem2(优化后).xlsx',r0,'v=36','D2');
xlswrite('problem2(优化后).xlsx',90-a5(210),'v=36','E2');
xlswrite('problem2(优化后).xlsx',count00,'v=36','F2');
xlswrite('problem2(优化后).xlsx',H,'v=36','G2');
xlswrite('problem2(优化后).xlsx',m4,'v=36','H2');

三、第3问

针对问题三,增加水流力这一影响因素,对系泊系统各部分受力分析进行调整。利用问题一的方法,选取不同锚链型号,长度以及重物球的质量,进行变步长遍历。沿用问题二建立的优化模型,求解最佳设计方案,使系泊系统能 够适应极端环境。结果得到锚链型号为Ⅴ号,链环个数为 125 个,重物球质量为5000kg,系统的稳定性最好。选取两组不同的水深、海水速度、风速,对设计的系泊系统进行检验,得到系泊系统的稳定性好。 

3.1 遍历不同锚链型号与长度以及重物球的质量MATLAB程序

%% 初始化
g=9.807;%重力加速度
p=1025;%海水密度
v=36;%海面风速
v0=1.5;%水速

h1=2;%先取最大值就极值
m1=1000;%浮标质量
V=pi*h1;%浮标体积
B=p*g*V;%浮标最大浮力
G=m1*g;%浮标重力
FFfeng=0.625*((2-h1)*2)*v^2;%F风

m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

L5=0.105;%单个锚链长度
m5=7*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;




N=[0.078,3.2;0.105,7;0.120,12.5;0.150,19.5;0.180,28.12];
mi=zeros(10,1);
ei=0;
for nn=1:5
L5=N(nn,1);%单个锚链长度
m5=N(nn,2)*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;
S=(20-5)/L5;
S=round(S);
for s=S:25:150+S
syms ffm4
p4=7850;%钢的密度
V4=ffm4/p4;%重物球体积
G4=ffm4*g;
B4=p*g*V4;
T41=G4-B4;
eq0=B+B2*4+B3+B4+B5*S-FFfeng*tand(16)-(G+G2*4+G3+G5*S)-ffm4*g;%G铁max=F浮max-F风*tan16°-G其他
[ffm4]=solve(eq0,ffm4);
fm4=double(ffm4);
fm4=round(fm4);
for iii=1:15
m4=2225+iii*(fm4-2225)/15; %循环遍历
%% 浮标1
count0=0;
HH=zeros(10,1);
%% 重复遍历1
for h1=0.70:0.1:1.90 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
S1=2*h1;%受水投影面积
Ffeng=0.625*((2-h1)*2)*v^2;%F风
Fshui1=374*S1*v0^2;

si1=atand((Fshui1+Ffeng)/(B1-G1));
T1=sqrt((B1-G1)^2+(Fshui1+Ffeng)^2);

% syms fT1;%拉力T(下同)
% syms fsi1;%角度SITA(下同)
% eq11=B1-G1-fT1*cosd(fsi1);
% eq12=Ffeng-fT1*sind(fsi1);
% [fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
% index1=find(fT1>0);
% T1=double(fT1(index1));
% si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
S2=0.05*1;
Fshui2=374*S2*v0^2;
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n))+Fshui2)/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=sqrt((T2(n)*cosd(si2(n))+B2-G2)^2+(T2(n)*sind(si2(n))+Fshui2)^2);
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
S3=0.3*1;
Fshui3=374*S3*v0^2;
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31)+Fshui3)^2);
si32=atand((T31*sind(si31)+Fshui3)/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index31=find(a3>0);
a3=double(a3(index31));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(S+1,1);
si5=zeros(S+1,1);
a5=zeros(S+1,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:S
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end

%% 绘图6
x=zeros(S+1,1);
y=zeros(S+1,1);
x(1)=0;
y(1)=0;
count=S+1;
count00=0;%链接漂浮个数
for ii=1:S
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(S+1,1);%总高度
HH(count0)=H;
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end
if min(HH)>20
        continue
end

count1=14;
for n=1:13
    count1=count1-1;
    if HH(count1)<20
        new1=0.7+0.1*(count1-1);
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复遍历2
for h1=new1:0.01:new1+0.1 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
S1=2*h1;%受水投影面积
Ffeng=0.625*((2-h1)*2)*v^2;%F风
Fshui1=374*S1*v0^2;

si1=atand((Fshui1+Ffeng)/(B1-G1));
T1=sqrt((B1-G1)^2+(Fshui1+Ffeng)^2);

% syms fT1;%拉力T(下同)
% syms fsi1;%角度SITA(下同)
% eq11=B1-G1-fT1*cosd(fsi1);
% eq12=Ffeng-fT1*sind(fsi1);
% [fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
% index1=find(fT1>0);
% T1=double(fT1(index1));
% si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
S2=0.05*1;
Fshui2=374*S2*v0^2;
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n))+Fshui2)/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=sqrt((T2(n)*cosd(si2(n))+B2-G2)^2+(T2(n)*sind(si2(n))+Fshui2)^2);
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
S3=0.3*1;
Fshui3=374*S3*v0^2;
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31)+Fshui3)^2);
si32=atand((T31*sind(si31)+Fshui3)/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index31=find(a3>0);
a3=double(a3(index31));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(S+1,1);
si5=zeros(S+1,1);
a5=zeros(S+1,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:S
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end

%% 绘图6
x=zeros(S+1,1);
y=zeros(S+1,1);
x(1)=0;
y(1)=0;
count=S+1;
count00=0;%链接漂浮个数
for ii=1:S
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(S+1,1);%总高度
HH(count0)=H;
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end
if min(HH)>20
        continue
end
count2=12;
for n=1:11
    count2=count2-1;
    if HH(count2)<20
        new2=new1+0.01*(count2-1);
        break
    end
end
count0=0;
HH=zeros(10,1);
%% 重复遍历3
for h1=new2:0.001:new2+0.01 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
S1=2*h1;%受水投影面积
Ffeng=0.625*((2-h1)*2)*v^2;%F风
Fshui1=374*S1*v0^2;

si1=atand((Fshui1+Ffeng)/(B1-G1));
T1=sqrt((B1-G1)^2+(Fshui1+Ffeng)^2);

% syms fT1;%拉力T(下同)
% syms fsi1;%角度SITA(下同)
% eq11=B1-G1-fT1*cosd(fsi1);
% eq12=Ffeng-fT1*sind(fsi1);
% [fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
% index1=find(fT1>0);
% T1=double(fT1(index1));
% si1=double(fsi1(index1));

%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
S2=0.05*1;
Fshui2=374*S2*v0^2;
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n))+Fshui2)/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=sqrt((T2(n)*cosd(si2(n))+B2-G2)^2+(T2(n)*sind(si2(n))+Fshui2)^2);
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度

%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
S3=0.3*1;
Fshui3=374*S3*v0^2;
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31)+Fshui3)^2);
si32=atand((T31*sind(si31)+Fshui3)/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index31=a3>0;
a3=double(a3(index31));

h3=L3*cosd(a3);%高度

%% 各锚链节5
T5=zeros(S+1,1);
si5=zeros(S+1,1);
a5=zeros(S+1,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:S
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end

%% 绘图6
x=zeros(S+1,1);
y=zeros(S+1,1);
x(1)=0;
y(1)=0;
count=S+1;
count00=0;%链接漂浮个数
for ii=1:S
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(S+1,1);%总高度
HH(count0)=H;
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
end
count3=12;
for n=1:11
    count3=count3-1;
    if HH(count3)<20
        if count3==11
             new3= new2+0.001*(count3-1);
        else
             new31=abs(HH(count3)-20);
             new32=abs(HH(count3+1)-20);
        if   new31<new32
             new3= new2+0.001*(count3-1);
        else
             new3= new2+0.001*(count3);
        end
        end
        break
    end
end

count0=0;
HH=zeros(10,1);
%% 重复计算4
h1=new3;
m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
S1=2*h1;%受水投影面积
Ffeng=0.625*((2-h1)*2)*v^2;%F风
Fshui1=374*S1*v0^2;

si1=atand((Fshui1+Ffeng)/(B1-G1));
T1=sqrt((B1-G1)^2+(Fshui1+Ffeng)^2);

% syms fT1;%拉力T(下同)
% syms fsi1;%角度SITA(下同)
% eq11=B1-G1-fT1*cosd(fsi1);
% eq12=Ffeng-fT1*sind(fsi1);
% [fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
% index1=find(fT1>0);
% T1=double(fT1(index1));
% si1=double(fsi1(index1));
r1=0;%横坐标长度
%% 钢管2
T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
S2=0.05*1;
Fshui2=374*S2*v0^2;
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n))+Fshui2)/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=sqrt((T2(n)*cosd(si2(n))+B2-G2)^2+(T2(n)*sind(si2(n))+Fshui2)^2);
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度
%% 重物球4
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
T31=T2(5);%取第2段的值
si31=si2(5);
S3=0.3*1;
Fshui3=374*S3*v0^2;
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31)+Fshui3)^2);
si32=atand((T31*sind(si31)+Fshui3)/(T31*cosd(si31)+B3-G3-T41));
syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index31=find(a3>0);
a3=double(a3(index31));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度
%% 各锚链节5
T5=zeros(S+1,1);
si5=zeros(S+1,1);
a5=zeros(S+1,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:S
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end

%% 绘图计算值6
x=zeros(S+1,1);
y=zeros(S+1,1);
x(1)=0;
y(1)=0;
count=S+1;
count00=0;%链接漂浮个数
for ii=1:S
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(S+1,1);%总高度
r0=r1+sum(r2)+r3+x(S+1,1);%游动半径
%% 多目标优化
ei=ei+1;
a3max=5;%角度a3极限值
h1max=2;%吃水深度h1极限值
r0max=27.05;%R0游动半径极限值
a5210max=90-16;%锚链与锚夹角a5(S)极限值
if a3<5&&a5(S)>74
    mi(ei)=a3/a3max+h1/h1max+r0/r0max+(90-a5(S))/(a5210max)+m4/(m4+fm4);
else
    mi(ei)=inf;
end
end
end
end
new4=find(mi==min(mi));

3.2 三次遍历代入锚链型号与长度以及重物球的质量求浮标吃水深度MATLAB程序

3.2.1 第一次遍历

%% 浮标1
g=9.807;%重力加速度
p=1025;%海水密度
m1=1000;%浮标质量
v=36;%海面风速
v0=1.5;%海水水速
nnn=125;%锚链节个数

count0=0;
HH=zeros(10,1);
for h1=0.50:0.1:1.9 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
S1=2*h1;%受水投影面积
Ffeng=0.625*((2-h1)*2)*v^2;%F风
Fshui1=374*S1*v0^2;

si1=atand((Fshui1+Ffeng)/(B1-G1));
T1=sqrt((B1-G1)^2+(Fshui1+Ffeng)^2);

r1=0;%横坐标长度

%% 钢管2
m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
S2=0.05*1;
Fshui2=374*S2*v0^2;
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n))+Fshui2)/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=sqrt((T2(n)*cosd(si2(n))+B2-G2)^2+(T2(n)*sind(si2(n))+Fshui2)^2);
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end

% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度

%% 重物球4
m4=5000;%重物球质量
p4=7850;%钢的密度
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

T31=T2(5);%取第2段的值
si31=si2(5);
S3=0.3*1;
Fshui3=374*S3*v0^2;
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31)+Fshui3)^2);
si32=atand((T31*sind(si31)+Fshui3)/(T31*cosd(si31)+B3-G3-T41));

syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index3=find(a3>0);
a3=double(a3(index3));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度

%% 各锚链节5
L5=0.180;%单个锚链长度
m5=28.12*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;

T5=zeros(nnn+1,1);
si5=zeros(nnn+1,1);
a5=zeros(nnn+1,1);
h5=zeros(nnn+1,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:nnn
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(nnn+1,1);
y=zeros(nnn+1,1);
x(1)=0;
y(1)=0;
count=nnn+1;
count00=0;%链接漂浮个数
for ii=1:nnn
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(nnn+1,1);%总高度
r0=r1+sum(r2)+r3+x(nnn+1,1);%游动半径
HH(count0)=H;
end
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);

3.2.2 第二次遍历 

%% 浮标1
g=9.807;%重力加速度
p=1025;%海水密度
m1=1000;%浮标质量
v=36;%海面风速
v0=1.5;%海水水速
nnn=125;%锚链节个数

count0=0;
HH=zeros(10,1);
for h1=1.8:0.01:1.9 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
S1=2*h1;%受水投影面积
Ffeng=0.625*((2-h1)*2)*v^2;%F风
Fshui1=374*S1*v0^2;

si1=atand((Fshui1+Ffeng)/(B1-G1));
T1=sqrt((B1-G1)^2+(Fshui1+Ffeng)^2);

r1=0;%横坐标长度

%% 钢管2
m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
S2=0.05*1;
Fshui2=374*S2*v0^2;
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n))+Fshui2)/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=sqrt((T2(n)*cosd(si2(n))+B2-G2)^2+(T2(n)*sind(si2(n))+Fshui2)^2);
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end

% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度

%% 重物球4
m4=5000;%重物球质量
p4=7850;%钢的密度
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

T31=T2(5);%取第2段的值
si31=si2(5);
S3=0.3*1;
Fshui3=374*S3*v0^2;
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31)+Fshui3)^2);
si32=atand((T31*sind(si31)+Fshui3)/(T31*cosd(si31)+B3-G3-T41));

syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index3=find(a3>0);
a3=double(a3(index3));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度

%% 各锚链节5
L5=0.180;%单个锚链长度
m5=28.12*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;

T5=zeros(nnn+1,1);
si5=zeros(nnn+1,1);
a5=zeros(nnn+1,1);
h5=zeros(nnn+1,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:nnn
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(nnn+1,1);
y=zeros(nnn+1,1);
x(1)=0;
y(1)=0;
count=nnn+1;
count00=0;%链接漂浮个数
for ii=1:nnn
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(nnn+1,1);%总高度
r0=r1+sum(r2)+r3+x(nnn+1,1);%游动半径
HH(count0)=H;
end
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);

3.2.3 第三次遍历

%% 浮标1
g=9.807;%重力加速度
p=1025;%海水密度
m1=1000;%浮标质量
v=36;%海面风速
v0=1.5;%海水水速
nnn=125;%锚链节个数

count0=0;
HH=zeros(10,1);
for h1=1.86:0.001:1.87 %吃水深度(遍历寻找最优解)
count0=count0+1;%循环计数

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
S1=2*h1;%受水投影面积
Ffeng=0.625*((2-h1)*2)*v^2;%F风
Fshui1=374*S1*v0^2;

si1=atand((Fshui1+Ffeng)/(B1-G1));
T1=sqrt((B1-G1)^2+(Fshui1+Ffeng)^2);

r1=0;%横坐标长度

%% 钢管2
m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
S2=0.05*1;
Fshui2=374*S2*v0^2;
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n))+Fshui2)/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=sqrt((T2(n)*cosd(si2(n))+B2-G2)^2+(T2(n)*sind(si2(n))+Fshui2)^2);
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end

% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度

%% 重物球4
m4=5000;%重物球质量
p4=7850;%钢的密度
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

T31=T2(5);%取第2段的值
si31=si2(5);
S3=0.3*1;
Fshui3=374*S3*v0^2;
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31)+Fshui3)^2);
si32=atand((T31*sind(si31)+Fshui3)/(T31*cosd(si31)+B3-G3-T41));

syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index3=find(a3>0);
a3=double(a3(index3));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度

%% 各锚链节5
L5=0.180;%单个锚链长度
m5=28.12*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;

T5=zeros(nnn+1,1);
si5=zeros(nnn+1,1);
a5=zeros(nnn+1,1);
h5=zeros(nnn+1,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:nnn
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(nnn+1,1);
y=zeros(nnn+1,1);
x(1)=0;
y(1)=0;
count=nnn+1;
count00=0;%链接漂浮个数
for ii=1:nnn
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(nnn+1,1);%总高度
r0=r1+sum(r2)+r3+x(nnn+1,1);%游动半径
HH(count0)=H;
end
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);

3.3 代入遍历所得浮标吃水深度以及锚链型号与长度以及重物球的质量MATLAB程序

%% 浮标1
g=9.807;%重力加速度
p=1025;%海水密度
m1=1000;%浮标质量
v=12;%海面风速
v0=1.5;%海水水速
nnn=125;%锚链节个数

h1=1.841;%吃水深度

m1=1000;%浮标质量
V1=pi*h1;%浮标体积
B1=p*g*V1;%浮标最大浮力
G1=m1*g;%浮标重力
S1=2*h1;%受水投影面积
Ffeng=0.625*((2-h1)*2)*v^2;%F风
Fshui1=374*S1*v0^2;

si1=atand((Fshui1+Ffeng)/(B1-G1));
T1=sqrt((B1-G1)^2+(Fshui1+Ffeng)^2);

r1=0;%横坐标长度

%% 钢管2
m2=10;%每节钢管质量
V2=pi*0.025^2*1;%钢管体积
L2=1;
G2=m2*g;
B2=p*g*V2;

T2=zeros(5,1);
si2=zeros(5,1);
a2=zeros(4,1);
T2(1)=T1(1);si2(1)=si1(1);
S2=0.05*1;
Fshui2=374*S2*v0^2;
for n=1:4
    si2(n+1)=atand((T2(n)*sind(si2(n))+Fshui2)/(T2(n)*cosd(si2(n))+B2-G2));
    T2(n+1)=sqrt((T2(n)*cosd(si2(n))+B2-G2)^2+(T2(n)*sind(si2(n))+Fshui2)^2);
    a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
end
% for i=1:3
%     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
%     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
%     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
%     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
%     sol2=struct2cell(sol2);%结构体转元胞数组
%     
%     index2=find(sol2{1,1}>0);%寻找大于0的解
%     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
%     si2(i+1)=double(sol2{2,1}(index2(1),1));
%     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
%     fT2(i+1)=T2(i+1);
%     fsi2(i+1)=si2(i+1);
%     fa2(i+1)=a2(i+1);
% end
h2=L2*cosd(a2);%高度
r2=abs(L2*sind(a2));%横坐标长度

%% 重物球4
m4=5000;%重物球质量
p4=7850;%钢的密度
V4=m4/p4;%重物球体积
G4=m4*g;
B4=p*g*V4;
T41=G4-B4;

%% 钢桶3
m3=100;%钢桶质量
V3=pi*0.15^2*1;%钢桶体积
L3=1;
G3=m3*g;
B3=p*g*V3;

T31=T2(5);%取第2段的值
si31=si2(5);
S3=0.3*1;
Fshui3=374*S3*v0^2;
T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31)+Fshui3)^2);
si32=atand((T31*sind(si31)+Fshui3)/(T31*cosd(si31)+B3-G3-T41));

syms fa3
eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
[fa3]=solve(eq3,fa3);%解方程
a3=double(fa3);
index3=find(a3>0);
a3=double(a3(index3));

h3=L3*cosd(a3);%高度
r3=abs(L3*sind(a3));%横坐标长度

%% 各锚链节5
L5=0.180;%单个锚链长度
m5=28.12*L5;%单个锚链质量
p5=7850;%钢的密度
V5=m5/p5;%单个锚链体积
G5=m5*g;
B5=p*g*V5;

T5=zeros(nnn+1,1);
si5=zeros(nnn+1,1);
a5=zeros(nnn+1,1);
h5=zeros(nnn+1,1);
T5(1)=T32;si5(1)=si32;%取第3段的值
a5(1)=si32;
for i=1:nnn
    si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
    T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
    a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
    if si5(i+1)<0
        abs(si5(i+1));
    end
    if abs(a5(i+1))<1
       a5(i+1)=90;
    end
end
%% 绘图6
x=zeros(nnn+1,1);
y=zeros(nnn+1,1);
x(1)=0;
y(1)=0;
count=nnn+1;
count00=0;%链接漂浮个数
for ii=1:nnn
    if a5(count)==0
       a5(count)=90;
    end
    x(ii+1)=x(ii)+L5*sind(a5(count));
    y(ii+1)=y(ii)+L5*cosd(a5(count));
    count=count-1;
    if a5(ii)~=90
        count00=count00+1;
    end
end
H=h1+sum(h2)+h3+y(nnn+1,1);%总高度
r0=r1+sum(r2)+r3+x(nnn+1,1);%游动半径
plot(x,y,'linewidth',2)
axis([0 20 0 20])
xlabel('x','FontSize',28);
ylabel('y','FontSize',28);
set(gca,'FontSize',28,'linewidth',1);
% %% 浮标1
% g=9.807;%重力加速度
% p=1025;%海水密度
% m1=1000;%浮标质量
% v=24;%海面风速
% 
% h1=0.697;%吃水深度
% 
% V1=pi*h1;%浮标吃水体积
% syms fT1;%拉力T(下同)
% syms fsi1;%角度SITA(下同)
% 
% G1=m1*g;
% B1=p*g*V1;
% Ffeng=0.625*((2-h1)*2)*v^2;
% eq11=B1-G1-fT1*cosd(fsi1);
% eq12=Ffeng-fT1*sind(fsi1);
% [fT1,fsi1]=solve(eq11,eq12,fT1,fsi1);
% index1=find(fT1>0);
% T1=double(fT1(index1));
% si1=double(fsi1(index1));
% r1=0;%横坐标长度
% 
% %% 钢管2
% m2=10;%每节钢管质量
% V2=pi*0.025^2*1;%钢管体积
% L2=1;
% G2=m2*g;
% B2=p*g*V2;
% 
% T2=zeros(5,1);
% si2=zeros(5,1);
% a2=zeros(4,1);
% T2(1)=T1(1);si2(1)=si1(1);
% for n=1:4
%     si2(n+1)=atand((T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+B2-G2));
%     T2(n+1)=(T2(n)*sind(si2(n)))/(sind(si2(n+1)));
%     a2(n)=atand((T2(n+1)*sind(si2(n+1))+T2(n)*sind(si2(n)))/(T2(n)*cosd(si2(n))+T2(n+1)*cosd(si2(n+1))));
% end
% % for i=1:3
% %     eq21=fT2(i)*cosd(fsi2(i))+B2-m2*g-fT2(i+1)*cosd(fsi2(i+1));%受力
% %     eq22=fT2(i)*sind(fsi2(i))-fT2(i+1)*sind(fsi2(i+1));%受力
% %     eq23=0.5*fT2(i)*L2*sind(fa2(i+1)-fsi2(i))-0.5*fT2(i+1)*L2*sind(fsi2(i+1)-fa2(i+1));%力矩
% %     sol2=solve(eq21,eq22,eq23,fT2(i+1),fsi2(i+1),fa2(i+1));%解方程
% %     sol2=struct2cell(sol2);%结构体转元胞数组
% %     
% %     index2=find(sol2{1,1}>0);%寻找大于0的解
% %     T2(i+1)=double(sol2{1,1}(index2(1),1));%写入答案
% %     si2(i+1)=double(sol2{2,1}(index2(1),1));
% %     a2(i+1)=double(sol2{3,1}(index2(1),1))+180;
% %     fT2(i+1)=T2(i+1);
% %     fsi2(i+1)=si2(i+1);
% %     fa2(i+1)=a2(i+1);
% % end
% h2=L2*cosd(a2);%高度
% r2=abs(L2*sind(a2));%横坐标长度
% 
% %% 重物球4
% m4=1200;%重物球质量
% p4=7850;%钢的密度
% V4=m4/p4;%重物球体积
% G4=m4*g;
% B4=p*g*V4;
% T41=G4-B4;
% 
% %% 钢桶3
% m3=100;%钢桶质量
% V3=pi*0.15^2*1;%钢桶体积
% L3=1;
% G3=m3*g;
% B3=p*g*V3;
% 
% T31=T2(5);%取第2段的值
% si31=si2(5);
% T32=sqrt((T31*cosd(si31)+B3-G3-T41)^2+(T31*sind(si31))^2);
% si32=atand((T31*sind(si31))/(T31*cosd(si31)+B3-G3-T41));
% syms fa3
% eq3=0.5*T32*L3*sind(si32-fa3)-0.5*T41*L3*sind(fa3)-0.5*T31*L3*sind(fa3-si31);%力矩平衡
% [fa3]=solve(eq3,fa3);%解方程
% a3=double(fa3);
% index3=find(a3>0);
% a3=double(a3(index3));
% 
% h3=L3*cosd(a3);%高度
% r3=abs(L3*sind(a3));%横坐标长度
% 
% %% 各锚链节5
% L5=0.105;%单个锚链长度
% m5=7*L5;%单个锚链质量
% p5=7850;%钢的密度
% V5=m5/p5;%单个锚链体积
% G5=m5*g;
% B5=p*g*V5;
% 
% T5=zeros(nnn+1,1);
% si5=zeros(nnn+1,1);
% a5=zeros(nnn+1,1);
% h5=zeros(nnn+1,1);
% T5(1)=T32;si5(1)=si32;%取第3段的值
% a5(1)=si32;
% for i=1:nnn
%     si5(i+1)=atand((T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+B5-G5));
%     T5(i+1)=sqrt((T5(i)*cosd(si5(i))+B5-G5)^2+(T5(i)*sind(si5(i)))^2);
%     a5(i+1)=atand((T5(i+1)*sind(si5(i+1))+T5(i)*sind(si5(i)))/(T5(i)*cosd(si5(i))+T5(i+1)*cosd(si5(i+1))));
%     if si5(i+1)<0
%         abs(si5(i+1));
%     end
%     if abs(a5(i+1))<1
%        a5(i+1)=90;
%     end
% end
% %% 绘图6
% x=zeros(nnn+1,1);
% y=zeros(nnn+1,1);
% x(1)=0;
% y(1)=0;
% count=nnn+1;
% count00=0;%链接漂浮个数
% for ii=1:nnn
%     if a5(count)==0
%        a5(count)=90;
%     end
%     x(ii+1)=x(ii)+L5*sind(a5(count));
%     y(ii+1)=y(ii)+L5*cosd(a5(count));
%     count=count-1;
%     if a5(ii)~=90
%         count00=count00+1;
%     end
% end
% H=h1+sum(h2)+h3+y(nnn+1,1);%总高度
% r0=r1+sum(r2)+r3+x(nnn+1,1);%游动半径
% hold on
% plot(x,y,'linewidth',2)
% axis([0 20 0 20])
% xlabel('x','FontSize',28);
% ylabel('y','FontSize',28);
% set(gca,'FontSize',28,'linewidth',1);
% 
% legend('悬链线模型结果','受力递推模型结果');
% 
%% 导出数据7
filterName=["钢管角度","钢桶角度","浮标吃水深度","浮标游动半径","锚链末端夹角","链结漂浮个数","系统总高度","重物质量","锚链型号"];
xlswrite('problem3.xlsx',filterName,'v=12','A1');
xlswrite('problem3.xlsx',a2,'v=12','A2');
xlswrite('problem3.xlsx',a3,'v=12','B2');
xlswrite('problem3.xlsx',h1,'v=12','C2');
xlswrite('problem3.xlsx',r0,'v=12','D2');
xlswrite('problem3.xlsx',90-a5(nnn),'v=12','E2');
xlswrite('problem3.xlsx',count00,'v=12','F2');
xlswrite('problem3.xlsx',H,'v=12','G2');
xlswrite('problem3.xlsx',m4,'v=12','H2');
xlswrite('problem3.xlsx',5,'v=12','I2');
  • 27
    点赞
  • 163
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论
根据引用提供的信息,系统设计可以通过多重搜索算法来减少程序运行时间。首先,根据系统的力学分析和受力平衡方程,确定最优设计的三个决策变量,包括锚链线密度、锚链长度和重物球质量。然后,根据优化目标值最小,使用多重搜索算法对锚链线密度、锚链长度和重物球质量进行遍历,以找到系统的最优设计。 对于海洋边界作为国家的领土区分线的观测网传输节点的系统设计,根据引用提供的信息,我们需要考虑钢管、钢桶、重物球、电焊锚链和抗拖移锚的设计。根据问要求,我们选用II型电焊锚链22.05m和重物球质量为1200kg。将传输节点布放在水深18m、海床平坦、海水密度为1.025×103kg/m3的海域。 然后,根据引用提供的信息,我们可以使用基于刚体力学分析的系统参数计算方程组来计算钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。在给定海面风速和海水静止的情况下,根据力矩平衡和受力平衡的约束,可以得到相应的定量解析式。将给定的数据代入计算,可以求解出不同情况下钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。 综上所述,根据引用、和提供的信息,我们可以使用多重搜索算法和基于刚体力学分析的系统参数计算方程组来设计近浅海观测网传输节点的系统。这样可以求解出最优设计和考虑不同情况下的钢桶和钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [6.2016年国赛A系统设计”](https://blog.csdn.net/a1920993165/article/details/108032310)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [2016年数学A目、解思路、matlab代码(二)](https://blog.csdn.net/weixin_43102634/article/details/102688512)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糖—果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值