Code covered by the BSD License
Highlights from
Shark
-
J=rpy2J(rpy)
J=rpy2J(rpy); computes generalised Jacobian matrix which
-
R_eb=rpy2R_eb(rpy)
R_eb=rpy2R_eb(rpy), computes the rotation matrix of e-frame wrt b-frame,
-
[Cl,Cd,xcp]=a2clcdxc(alfa)
[Cl,Cd,xcp]=a2clcdxc(alfa) computes hydrodynamic coefficients Cl and Cd
-
[v1,v2,v3]=vehicle()
-
a2clcd(alfa)
[Cl, Cd] = a2clcd(alfa) computes hydrodynamic coefficients Cl and Cd
-
demos
DEMOS Demo list for Shark.
-
shark()
(the function shark adds the needed folders to the matlab path)
-
tc=tau_cor(veh,v,vr)
tc=tau_cor(veh,v,vr) calculates coriolis forces from
-
td=tau_damp(veh,vr,de)
td=tau_damp(veh,vr,de); calculates damping forces from
-
tr=tau_rest(veh,p)
tr=tau_rest(veh,p); calculates restoring forces from
-
xdot=vxdot(xu)
computes state derivatives as a function of state and input
-
z=vp(x,y)
-
contents.m
-
linattk.m
-
NLKSF
-
OPLOOP
-
xtrlmod
-
View all files
from
Shark
by Giampiero Campa
Nonlinear 6DOF Model of an Underwater Vehicle
|
| xdot=vxdot(xu)
|
function xdot=vxdot(xu)
% computes state derivatives as a function of state and input
global veh;
de=xu(12+[1:8]); % fin angles
tau_b=xu(12+[9:14]); % external force and moment wrt b
tau_e=xu(12+[15:20]); % external force and moment wrt e
v_cee=xu(12+[21:23]); % current velocity
a_cee=xu(12+[24:26]); % current acceleration
p=xu(1:6); % generalized position (eta)
v=xu(7:12); % generalized velocity (ni)
% rotation matrix
R_eb=rpy2R_eb(p(4:6));
% vc and vcdot
vc=[R_eb*v_cee; zeros(3,1)];
vcdot=[R_eb*a_cee-vp(v(4:6),R_eb*v_cee); zeros(3,1)];
% state derivative
pdot=rpy2J(p(4:6))*v;
vdot=vcdot+veh.iM*(tau_cor(veh,v,v-vc)+tau_damp(veh,v-vc,de)+...
tau_rest(veh,p)+tau_b+[R_eb*tau_e(1:3);R_eb*tau_e(4:6)]);
xdot=[pdot;vdot]; % final result
|
|
Contact us at files@mathworks.com