資源簡(jiǎn)介
壓縮包里的excel是用getdate獲取的船模試驗(yàn)數(shù)據(jù),用于和仿真試驗(yàn)對(duì)比。本代碼依據(jù)的數(shù)值計(jì)算求見(jiàn)過(guò)程詳見(jiàn)姚建喜所編《船舶操縱性理論基礎(chǔ)》。仿真結(jié)果表明對(duì)船舶運(yùn)動(dòng)模型數(shù)值求解,預(yù)報(bào)船舶的操縱性是可行的。

代碼片段和文件信息
%%?定義船舶主尺度變量
Loa?=325.5000;
Lpp?=320;
B?=58;
T?=20.8000;
Cb?=0.8100;
Xg?=11.1300;
Iz?=2.00*10^12;
Vs?=7.9732;
m=Lpp*B*T*Cb*1.025*1000*1.006;
u=Vs;
L=Lpp;
q=1025;
%給船舶運(yùn)動(dòng)狀態(tài)賦初值
du=0;
dt=0.01;%時(shí)間步進(jìn)為0.01s
v=0;
r=0;
u1=0;
v1=0;
r1=0;
a=0;%定義初值舵角
c=0;%定義初始首向角
xe=0;
ye=0;
C=zeros(1000000);
Xe=zeros(1000000);
Ye=zeros(1000000);
idx=0;%步進(jìn)參數(shù)
%%?循環(huán)迭代計(jì)算各個(gè)時(shí)刻所需數(shù)值
while?idx<550000
idx=idx+1;
Xe(idx)=xe;%將每次計(jì)算的大地坐標(biāo)儲(chǔ)存進(jìn)數(shù)組
Ye(idx)=ye;%將每次計(jì)算的大地坐標(biāo)儲(chǔ)存進(jìn)數(shù)組
xe=xe+(u*cos(c)-v*sin(c))*dt;
ye=ye+(u*sin(c)+v*cos(c))*dt;
x=0.5*q*u^2*L^2;%力的無(wú)因次比
y=0.5*q*u^2*L^2;%Y力的無(wú)因次比
n=0.5*q*u^2*L^3;%力矩的無(wú)因次比
z=u;%速度v的無(wú)因次比
s=u/L;%角速度的無(wú)因次比
z1=u^2/L;%加速度的無(wú)因次比
s1=u^2/L^2;%角加速度的無(wú)因次比
%%?水動(dòng)力導(dǎo)數(shù)有因次話(huà)
Xa?=?0*x;
Xaa?=?-0.00272*x;
Xaaa?=?0*x;
Xu?=?-0.0022*x/u;
Xuu?=?0.0015*x/u/u;
Xuuu?=?0*x/u/u/u;
Xu1?=-0.001135*x/z1;
Xv?=?0*x/u;
Xvv?=?0.00159*x/u/u;
Xvvv?=0*x/u/u/u;
Xr?=?0*x/s;
Xrr?=0.00338*x/s/s;
Xrrr?=0*x/s/s/s;
Xva?=0.001609*x/u;
Xra?=-0.001034*x/s;
Xvr?=0.01391*x/u/s;
Ya?=0.00408*y;
Yaa?=-0.000114*y;
Yaaa?=-0.003059*y;
Yv?=-0.01902*y/u;
Yvv?=0.000639*y/u/u;
Yvvv?=-0.1287*y/u/u/u;
Yv1?=-0.014508*y/z1;
Yr?=0.005719*y/s;
Yrr?=-0.000002*y/s/s;
Yrrr?=-0.000048*y/s/s/s;
Yr1?=-0.001209*y/s1;
Yua?=-0.00456*y/u;
Yvvr?=0.0211*y/u/u/s;
Yvrr?=-0.02429*y/u/s/s;
Yvaa?=0.00326*y/u;
Yvva?=0.003018*y/u/u;
Yraa?=-0.002597*y/s;
Yrra?=0.000895*y/s/s;
Na?=-0.001834*n;
Naa?=-0.00056*n;
Naaa?=0.001426*n;
Nv?=-0.007886*n/u;
Nvv?=-0.000308*n/u/u;
Nvvv?=0.00175*n/u/u/u;
Nv1?=-0.000588*n/z1;
Nr?=-0.003701*n/s;
Nrr?=-0.000002*n/s/s;
Nrrr?=-0.000707*n/s/s/s;
Nr1?=-0.000567*n/s1;
Nua?=0.00232*n/u;
Nvvr?=-0.019*n/u/u/s;
Nvrr?=0.003726*n/u/s/s;
Nvaa?=-0.001504*n/u;
Nvva?=-0.001406*n/u/u;
Nraa?=0.001191*n/s;
Nrra?=-0.000398*n/s/s;
%%?計(jì)算當(dāng)前時(shí)刻船舶運(yùn)動(dòng)參數(shù)
Fx=Xu*du+Xuu*du^2+Xuuu*du^3+Xvv*v^2+(m*Xg+Xrr)*r^2+(m+Xvr)*v*r+Xaa*a^2+Xva*v*a+Xra*r*a;
Fy=-m*u*r+Yv*v+Yvvv*v^3+Yr*r+Yrrr*r^3+Yvrr*v*r^2+Yvvr*v^2*r+Ya*a+Yaaa*a^3+Yua*du*a+Yvaa*v*a^2+Yvva*v^2*a+Yraa*r*a^2+Yrra*r^2*a;
Fn=-m*Xg*u*r+Nv*v+Nvvv*v^3+Nr*r+Nrrr*r^3+Nvrr*v*r^2+Nvvr*v^2*r+Na*a+Naaa*a^3+Nua*du*a+Nvaa*v*a^2+Nvva*v^2*a+Nraa*r*a^2+Nrra*r^2*a;????
u2=u+Fx*dt/(m-Xu1);
v2=v+(Fy*(Iz-Nr1)-Fn*(m*Xg-Yr1))*dt/((m-Yv1)*(Iz-Nr1)-(m*Xg-Nv1));
r2=r+(Fn*(m-Yv1)-Fy*(m*Xg-Nv1))*dt/((m-Yv1)*(Iz-Nr1)-(m*Xg-Nv1));??
du=u2-Vs;
u=u2;
v=v2;
r=r2;
c1=c+r*dt;
c=c1;
C(idx)=c;
%%?設(shè)置舵角變化
a=a-2.34*pi*dt/180;
if??abs(a)>=35*pi/180;
????a=-35*pi/180;
end
end
plot(Ye/LXe/L);
hold?on;
[~?~?raw]?=?xlsread(‘?dāng)?shù)據(jù).xlsx‘‘Sheet1‘‘D1:E65‘);
%%?創(chuàng)建輸出變量讀取船模試驗(yàn)數(shù)據(jù)
data?=?reshape([raw{:}]size(raw));
%%?將導(dǎo)入的數(shù)組分配給列變量名稱(chēng)
Y=?data(:1);
X=?data(:2);
%%?清除臨時(shí)變量
clearvars?data?raw;
plot(YX‘--‘);
hold?off;
%%?設(shè)置圖例
xlabel(‘Ye/L?[-]‘);
ylabel(‘Xe/L?[-]‘);
legend(‘Sim‘‘Exp‘)
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????2973??2019-01-17?11:46??新建文件夾\turningtest.m
?????文件???????3305??2019-01-16?22:27??新建文件夾\zigzagtest.m
?????文件??????15587??2019-01-16?21:33??新建文件夾\數(shù)據(jù).xlsx
?????目錄??????????0??2019-03-12?15:55??新建文件夾
-----------?---------??----------?-----??----
????????????????21865????????????????????4
評(píng)論
共有 條評(píng)論