• 大小: 4KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-07-17
  • 语言: Matlab
  • 标签: matlab  

资源简介

船舶数据,运动模型,简易分析数学模型。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

评论

共有 条评论