資源簡介
matlab,船舶運動控制,速度大小,轉向效果,旋回分析
代碼片段和文件信息
%?主函數,文件名為boat_PD
t_f?=?200;???%?仿真事件設定
h???=?0.1;???%?采樣時間
Kp?=?1;??????%?控制器P增益
Td?=?10;?????%?控制器D增益
?
%?狀態x?=?[?u?v?r?x?y?psi?delta?]‘?賦初值
x?=?zeros(71);???
?
N?=?round(t_f/h);???????????????%?采樣量
xout?=?zeros(N+1length(x)+2);????%輸出變量賦初值
%?分支結構流程控制
for?i=1:N+1
????time?=?(i-1)*h;???????????????????
????r???=?x(3);
????psi?=?x(6);
????
????psi_ref?=?15*(pi/180);????????????%?控制目標角度
????delta?=?-Kp*((psi-psi_ref)+Td*r);??%?PD控制器
?
????%?調用M函數文件
????[xdotU]?=?mariner(xdelta);???????%?船舶模型
????
????%?存儲數據以便后續調用
????xout(i:)?=?[timex‘U];?
????
????%?數值積分,歐拉算法???
????x?=?x?+?h*xdot
end
%?從存儲的數據中給變量賦值
t?????=?xout(:1);
u?????=?xout(:2);?
v?????=?xout(:3);??????????
r?????=?xout(:4)*180/pi;???%??pi為Matlab特殊常量,表示圓周率
x?????=?xout(:5);
y?????=?
- 上一篇:[Matlab]時延微分方程教程
- 下一篇:自用的外匯EA,效果不錯
評論
共有 條評論