資源簡介
船舶數據,運動模型,簡易分析數學模型。matlab語言編寫
代碼片段和文件信息
function?[xdotU]?=?mariner(xuiU0)
%?[xdot?U]?=?mariner(xui)?返回真實速度U?in?m/s?以及狀態變量x?=?[?u?v?r?x?y?psi?delta?n?]‘
%的偏差
%?
%輸入變量有:
%?u?????=?與常規速度Uo之間的偏差,U0默認值為U0?=?7.7175?m/s?=?15?knots.?
%?v?????=?搖擺速度與0之間的偏差?(m/s)
%?r?????=?偏航角速度與0之間的偏差?(rad/s)
%?x?????=?x方向的位置?(m)
%?y?????=?y方向的位置?(m)
%?psi???=?偏航角與0之間的偏差?(rad)
%?delta??=?真實的舵偏角?(rad)
%?ui????=?控制舵角指令(rad),即控制器輸出
%?U0????=?常規速度?(m/s)
%?輸出變量
%?xdot為狀態變量的微分
%?U????=?真實速度?(m/s)
%?確認輸入值是否符合要求
%?如果輸入不是7維,則輸出錯誤信息
if?(length(x)??~=?7)error(‘x-vector?must?have?dimension?7?!‘);?end??
%?如果控制舵角指令不是1維,則輸出錯誤信息
if?(length(ui)?~=?1)error(‘ui?must?be?a?scalar?input!‘);?end
%?如果沒有輸入U0信息,則采用默認值
if?nargin==2?U0?=?7.7175;?end
?
%?對變量賦值及歸一化
L?=?60.93;
U?=?sqrt((U0?+?x(1))^2?+?x(2)^2);??%?真實速度
delta_c?=?-ui;???
u?????=?x(1)/U;???
v?????=?x(2)/U;??
r?????=?x(3)*L/U;?
psi????=?x(6);?
delta??=?x(7);?
delta_max??=?40;???????????%?最大舵角??????(deg)
Ddelta_max?=?15;????????????%?最大舵角速度??(deg/s)
m??=?798e-5;
Iz?=?39.2e-5;
xG?=?-0.023;
%?舵力及力矩在0值附近展開系數賦值
Xudot??=??-42e-5;??? Yvdot?=??-748e-5;??? Nvdot?=?4.646e-5;
Xu????=?-184e-5;??? Yrdot?=-9.354e-5;??? Nrdot?=?-43.8e-5;
Xuu???=?-110e-5;??? Yv????=?-1160e-5;??? Nv????=??-264e-5;
Xuuu??=?-215e-5;??? Yr????=??-499e-5;??? Nr????=??-166e-5;
Xvv???=?-899e-5;??? Yvvv??=?-8078e-5;??? Nvvv??=??1636e-5;
Xrr????=??18e-5;??? Yvvr??=?15356e-5;??? Nvvr??=?-5483e-5;
Xdd???=??-95e-5;??? Yvu???=?-1160e-5;??? Nvu???=??-264e-5;
Xudd??=?-190e-5;??? Yru???=??-499e-5;??? Nru???=??-166e-5;
Xrv???=??798e-5;??? Yd????=???278e-5;??? Nd????=??-139e-5;
Xvd???=???93e-5;??? Yddd??=???-90e-5;??? Nddd??=????45e-5;
Xuvd??=???93e-5;??? Yud???=???556e
評論
共有 條評論