%matlab船舶数学模型
%可参考学习,不要抄袭。望学业进步
%船舶数学模型构建
clc,clear,close all;
%% 船舶设计参数
L=100;B=20.00;m=15000;T=10;
V=15;Xc=0.30;Cb=0.700;A=20.0;
%% 参数无量纲化
V=(1852/3600)*V;%速度国际单位
Rho=1025;%海水密度
m=m*Rho;
m1=m/((1/2)*Rho*L^3);
Xc1=Xc/L;
Izz=m*(L^2)/16;
Izz1=Izz/((1/2)*Rho*L^5);
%% 流体动力导数公式
dYdv=-(1+0.16*Cb*B/T-5.1*((B/L)^2))*pi*(T/L)^2;
dYdr=-(0.67*B/L-0.0033*(B/T)^2)*pi*(T/L)^2;
dNdv=-(1.1*B/L-0.041*B/T)*pi*(T/L)^2;
dNdr=-(1/12+0.017*Cb*B/T-0.33*B/L)*pi*(T/L)^2;
dYv=-(1+0.40*Cb*B/T)*pi*(T/L)^2;
dYr=-(-1/2+2.2*B/L-0.080*B/T)*pi*(T/L)^2;
dNv=-(1/2+2.4*T/L)*pi*(T/L)^2;
dNr=-(1/4+0.039*B/T-0.56*B/L)*pi*(T/L)^2;
Ydt=3.0*A/(L^2);
Ndt=-(1/2)*Ydt;
%% 流体动力导数修正
ddYv=-0.3*Ydt;
dYv=dYv+ddYv;
dYr=dYr+((-1/2)*ddYv);
dNv=dNv+((-1/2)*ddYv);
dNr=dNr+((1/4)*ddYv);
%% 构造二自由度状态空间型船舶线性数学模型
I1=[m1-dYdv,L*(m1*Xc1-dYdr);m1*Xc1-dNdv,L*(Izz1-dNdr)];
P1=[V*dYv/L,V*(dYr-m1);V*dNv/L,V*(dNr-m1*Xc1)];
Q1=[-(V^2)*Ydt/L;-(V^2)*Ndt/L];
a=inv(I1)*P1
b=inv(I1)*Q1
K=(b(1,1)*a(2,1)-b(2,1)*a(1,1))/(a(1,1)*a(2,2)-a(1,2)*a(2,1))
T=-((a(1,1)+a(2,2))/(a(1,1)*a(2,2)-a(1,2)*a(2,1))+b(2,1)/(b(1,1)*a(2,1)-b(2,1)*a(1,1)))