Fossen’s Marine Craft Model
Fossen’s marine craft model provides a mathematical framework for describing the nonlinear motion of marine craft in a compact matrix-vector form. Fossen first introduced these equations of motion in his 1991 doctoral thesis[1], marking a significant advancement over classical hydrodynamic models, traditionally expressed in component form. These earlier models often involved hundreds of elements, making it challenging to exploit inherent system properties such as passivity, symmetry and energy conservation. Fossen’s work unified these dynamics into a streamlined representation, enabling more effective analysis and design. This approach has since become an established model in the field of marine craft hydrodynamics and motion control, widely adopted in both academic research and industry applications[2][3][4].
This matrix-vector representation is particularly valuable for designing guidance, navigation, and control (GNC) systems. It is widely applied to marine craft, including ships, floating offshore structures, submarines, autonomous underwater vehicles (AUVs), and uncrewed surface vehicles (USVs). By leveraging system properties such as symmetry, skew symmetry, and the positive definiteness of matrices, Fossen’s marine craft model simplifies nonlinear stability analysis and provides an intuitive and robust framework for control system design.
Mathematical Formulation
The six-degrees-of-freedom (DOFs) marine craft equations of motion are expressed in matrix-vector form using generalized coordinates \(\boldsymbol{\eta} = [x, y, z, \phi, \theta, \psi]^\top\) to represent the position and orientation, and the generalized velocity \(\boldsymbol{\nu} = [u, v, w, p, q, r]^\top\) to describe the linear and angular velocities. The generalized force acting on the craft, arising from propulsion, wind, waves, and ocean currents, are denoted \(\boldsymbol{\tau} = [X, Y, Z, K, M, N]^\top\). These variables represent the craft’s translational and rotational dynamics, with the vector elements following the standard terminology established by the Society of Naval Architects and Marine Engineers (SNAME)[5].
\[
\begin{aligned}
\dot{\boldsymbol{\eta}} & = \boldsymbol{J}(\boldsymbol{\eta}) \boldsymbol{\nu} \\
\boldsymbol{M} \dot{\boldsymbol{\nu}} + \boldsymbol{C}(\boldsymbol{\nu}) \boldsymbol{\nu} +
\boldsymbol{D}(\boldsymbol{\nu}) \boldsymbol{\nu} + \boldsymbol{g}(\boldsymbol{\eta}) & = \boldsymbol{\tau}
\end{aligned}
\]
where
-
\(\boldsymbol{M}\): Inertia matrix, combining rigid-body and added mass effects.
-
\(\boldsymbol{C}(\boldsymbol{\nu})\): Coriolis and centripetal matrix, combining rigid-body and added mass effects.
-
\(\boldsymbol{D}(\boldsymbol{\nu})\): Hydrodynamic damping matrix.
-
\(\boldsymbol{g}(\boldsymbol{\eta})\): Hydrostatic forces and moments.
-
\(\boldsymbol{J}(\boldsymbol{\eta})\): Transformation matrix relating velocities in the BODY and North-East-Down (NED) frames.
Kinematics
The kinematic equation can be represented using Euler angles or unit quaternions to describe the transformation from the BODY frame to the NED frame. The Tait–Bryan angles is the Euler angle representation typically used for marine craft. This involves sequential rotations in the order of yaw (z-axis), pitch (y-axis), and roll (x-axis). The transformation matrix is:
\[
\begin{aligned}
\boldsymbol{J}(\boldsymbol{\eta}) & = \begin{bmatrix}
\mathbf{R}_{zyx}(\boldsymbol{\eta}) & \mathbf{0}_{3\times3}\\
\mathbf{0}_{3\times3} & \mathbf{T}_{zyx}(\boldsymbol{\eta})
\end{bmatrix}
\end{aligned}
\]
where \(\mathbf{R}_{zyx}(\boldsymbol{\eta})\) is the rotation matrix for translational velocities, and \(\mathbf{T}_{zyx}(\boldsymbol{\eta})\) is the transformation matrix for rotational velocities given by[4]:
\[
\begin{aligned}
\mathbf{R}_{zyx}(\boldsymbol{\eta}) & = \boldsymbol{R}_z(\psi) \boldsymbol{R}_y(\theta) \boldsymbol{R}_x(\phi) \\
& =
\begin{bmatrix}
\mathrm{c}\psi\mathrm{c}\theta & -\mathrm{s}\psi\mathrm{c}\phi+\mathrm{c}\psi\mathrm{s}\theta\mathrm{s}\phi & \mathrm{s}\psi\mathrm{s}\phi+\mathrm{c}\psi\mathrm{c}\phi\mathrm{s}\theta \\
\mathrm{s}\psi\mathrm{c}\theta & \mathrm{c}\psi\mathrm{c}\phi+\mathrm{s}\phi\mathrm{s}\theta\mathrm{s}\psi & -\mathrm{c}\psi\mathrm{s}\phi+\mathrm{s}\theta\mathrm{s}\psi\mathrm{c}\phi \\
-\mathrm{s}\theta & \mathrm{c}\theta\mathrm{s}\phi & \mathrm{c}\theta\mathrm{c}\phi
\end{bmatrix}
\end{aligned}
\]
\[
\mathbf{T}_{zyx}(\boldsymbol{\eta}) =
\begin{bmatrix}
1 & \mathrm{s}\phi\mathrm{t}\theta & \mathrm{c}\phi\mathrm{t}\theta \\
0 & \mathrm{c}\phi & -\mathrm{s}\phi \\
0 & \mathrm{s}\phi/\mathrm{c}\theta & \mathrm{c}\phi/\mathrm{c}\theta
\end{bmatrix},\quad \theta \neq \pm (\pi/2 + k\pi), \quad \text{for all } k \in \mathbb{Z}
\]
where \(\mathrm{s}\cdot = \sin(\cdot)\), \(\mathrm{c}\cdot = \cos(\cdot)\), and \(\mathrm{t}\cdot = \tan(\cdot)\).
Kinetics
The system inertia matrix \(\boldsymbol{M} = \boldsymbol{M}_{RB} + \boldsymbol{M}_A\) and Coriolis and centripetal matrix \(\boldsymbol{C}(\boldsymbol{\nu}) = \boldsymbol{C}_{RB}(\boldsymbol{\nu}) + \boldsymbol{C}_A(\boldsymbol{\nu})\) consist of contributions from both the rigid-body dynamics of the vehicle and the hydrodynamic effects due to interaction with the surrounding fluid, also known as the added mass effect. The hydrodynamic damping matrix is denoted by \(\boldsymbol{D}(\boldsymbol{\nu})\), while \(\boldsymbol{g}(\boldsymbol{\eta})\) is the vector of gravitational and buoyancy forces. Let \(\boldsymbol{r}_G^b = [x_G, y_G, z_G]^\top\) and \(\boldsymbol{r}_B^b = [x_B, y_B, z_B]^\top\) denote the vectors from the body-fixed coordinate origin (CO) to the center of gravity (CG) and the center of buoyancy (CB), respectively. Let the cross product of two vectors be expressed as a matrix multiplication \(\mathbf{a} \times \mathbf{b} = \boldsymbol{S}(\mathbf{a}) \mathbf{b}\), where \(\boldsymbol{S}(\mathbf{a})\) is a skew-symmetric matrix:
\[
\boldsymbol{S}(\mathbf{a}) =
\begin{bmatrix}
0 & -a_3 & a_2 \\
a_3 & 0 & -a_1 \\
-a_2 & a_1 & 0
\end{bmatrix}
\]
This matrix encodes the antisymmetric nature of the cross-product operation. The mass matrix, as well as the Coriolis and
centripetal matrix, can be derived from Kirchhoff’s equations. This approach was formalized in Sagatun and Fossen’s 1991 theorem on the Lagrangian formulation of vehicle dynamics[6]. The specific matrices that govern the dynamics are detailed below, each representing a fundamental aspect of the system’s behavior:
\[
\begin{aligned}
\boldsymbol{M}_{RB} & =
\begin{bmatrix}
m\boldsymbol{I}_{3} & -m\boldsymbol{S}(\boldsymbol{r}_{G}^{b}) \\
m\boldsymbol{S}(\boldsymbol{r}_{G}^{b}) & \boldsymbol{I}_b^b
\end{bmatrix} \\
& =
\begin{bmatrix}
m & 0 & 0 & 0 & mz_G & -my_G \\
0 & m & 0 & -mz_G & 0 & mx_G \\
0 & 0 & m & my_G & -mx_G & 0 \\
0 & -mz_G & my_G & I_x & -I_{xy} & -I_{xz} \\
mz_G & 0 & -mx_G & -I_{yx} & I_y & -I_{yz} \\
-my_{G} & mx_G & 0 & -I_{zx} & -I_{zy} & I_z
\end{bmatrix}
\end{aligned}
\]
\[
\begin{aligned}
\boldsymbol{C}_{RB}(\boldsymbol{\nu}) & =
\left[
\begin{array}{cc}
\boldsymbol{0}_{3\times3} & -m\boldsymbol{S}(\boldsymbol{\nu}_{1}) - m\boldsymbol{S}(\boldsymbol{S}(\boldsymbol{\nu}_{2})\boldsymbol{r}_{G}^{b}) \\
-m\boldsymbol{S}(\boldsymbol{\nu}_{1}) - m\boldsymbol{S}(\boldsymbol{S}(\boldsymbol{\nu}_{2})\boldsymbol{r}_{G}^{b}) &
m\boldsymbol{S}(\boldsymbol{S}(\boldsymbol{\nu}_{1})\boldsymbol{r}_{G}^{b}) - \boldsymbol{S}(\boldsymbol{I}_{b}^b\boldsymbol{\nu}_{2})
\end{array}
\right] \\
& =
\left[
\begin{array}{ccc}
0 & 0 & 0 \\
0 & 0 & 0 \\
0 & 0 & 0 \\
-m(y_G q + z_G r) & m(y_G p + w) & m(z_G p - v) \\
m(x_G q - w) & -m(z_G r + x_G p) & m(z_G q + u) \\
m(x_G r + v) & m(y_G r - u) & -m(x_G p + y_G q)
\end{array}
\right. \\
& \qquad \qquad
\left.
\begin{array}{ccc}
m(y_G q + z_G r) & -m(x_G q - w) & -m(x_G r + v) \\
-m(y_G p + w) & m(z_G r + x_G p) & -m(y_G r - u) \\
-m(z_G p - v) & -m(z_G q + u) & m(x_G p + y_G q) \\
0 & -I_{yz}q - I_{xz}p + I_{z}r & I_{yz}r + I_{xy}p - I_{y}q \\
I_{yz}q + I_{xz}p - I_{z}r & 0 & -I_{xz}r - I_{xy}q + I_{x}p \\
-I_{yz}r - I_{xy}p + I_{y}q & I_{xz}r + I_{xy}q - I_{x}p & 0
\end{array}
\right]
\end{aligned}
\]
Here \(m\) is the rigid-body mass, \(\boldsymbol{I}_b^b\) is the inertia tensor about the CO, which is related to the inertia tensor about the CG, \(\boldsymbol{I}_g^b\), by the Huygens–Steiner’s parallel-axis theorem according to \(\boldsymbol{I}_b^b = \boldsymbol{I}_g^b - m \boldsymbol{S}^2(\boldsymbol{r}_G)\). The linear and angular velocity vectors are denoted by \(\boldsymbol{\nu}_1 = [u, v, w]^\top\) and \(\boldsymbol{\nu}_2 = [p, q, r]^\top\), respectively. As discussed in [3][4], there exist several matrix parametrizations of \(\boldsymbol{C}_{RB}(\boldsymbol{\nu})\). As shown later, it is advantageous to choose a parametrization that is independent of the linear velocity \(\boldsymbol{\nu}_1\), especially when including irrotational ocean currents using the relative velocity vector. The linear velocity-independent parametrization was derived by Fossen and Fjellstad in 1995[7]:
\[
\boldsymbol{C}^{\,\boldsymbol{\nu}_2}_{RB}(\boldsymbol{\nu}) =
\left[
\begin{array}{cc}
m\boldsymbol{S}(\boldsymbol{\nu}_2) & -m\boldsymbol{S}(\boldsymbol{\nu}_2)\boldsymbol{S}(\boldsymbol{r}_{G}^{b}) \\
m\boldsymbol{S}(\boldsymbol{r}_{G}^{b})\boldsymbol{S}(\boldsymbol{\nu}_2) & -\boldsymbol{S}( \boldsymbol{I}_{b}^b \boldsymbol{\nu}_2)
\end{array}
\right]
\]
The corresponding added mass matrices can be expressed as functions of the hydrodynamic derivatives, derived using a Lagrangian formulation based on Kirchhoff’s equations[6]:
\[
\begin{aligned}
\boldsymbol{M}_{A} & =
\begin{bmatrix}
\boldsymbol{M}_A^{(11)} & \boldsymbol{M}_A^{(12)} \\
\boldsymbol{M}_A^{(21)} & \boldsymbol{M}_A^{(22)}
\end{bmatrix} \\
& =
-\begin{bmatrix}
X_{\dot{u}} & X_{\dot{v}} & X_{\dot{w}} & X_{\dot{p}} & X_{\dot{q}} & X_{\dot{r}} \\
Y_{\dot{u}} & Y_{\dot{v}} & Y_{\dot{w}} & Y_{\dot{p}} & Y_{\dot{q}} & Y_{\dot{r}} \\
Z_{\dot{u}} & Z_{\dot{v}} & Z_{\dot{w}} & Z_{\dot{p}} & Z_{\dot{q}} & Z_{\dot{r}} \\
K_{\dot{u}} & K_{\dot{v}} & K_{\dot{w}} & K_{\dot{p}} & K_{\dot{q}} & K_{\dot{r}} \\
M_{\dot{u}} & M_{\dot{v}} & M_{\dot{w}} & M_{\dot{p}} & M_{\dot{q}} & M_{\dot{r}} \\
N_{\dot{u}} & N_{\dot{v}} & N_{\dot{w}} & N_{\dot{p}} & N_{\dot{q}} & N_{\dot{r}}
\end{bmatrix}
\end{aligned}
\]
where \(\boldsymbol{M}_A^{(12)} = \boldsymbol{M}_A^{(21)}\). The Coriolis and centripetal matrix, due to hydrodynamic added mass, is[6]:
\[
\begin{aligned}
\boldsymbol{C}_{A}(\boldsymbol{\nu}) & =
\left[
\begin{array}{cc}
\boldsymbol{0}_{3\times3} & -\boldsymbol{S}(\boldsymbol{M}_A^{(11)}\boldsymbol{\nu}_{1}
+\boldsymbol{M}_A^{(12)}\boldsymbol{\nu}_{2}) \\
-\boldsymbol{S}(\boldsymbol{M}_A^{(11)}\boldsymbol{\nu}_{1}
+\boldsymbol{M}_A^{(12)}\boldsymbol{\nu}_{2}) &
-\boldsymbol{S}(\boldsymbol{M}_A^{(21)}\boldsymbol{\nu}_{1}
+\boldsymbol{M}_A^{(22)}\boldsymbol{\nu}_{2})
\end{array}
\right] \\
& =
\left[
\begin{array}{cccccc}
0 & 0 & 0 & 0 & -a_{3} & a_{2} \\
0 & 0 & 0 & a_{3} & 0 & -a_{1} \\
0 & 0 & 0 & -a_{2} & a_{1} & 0 \\
0 & -a_{3} & a_{2} & 0 & -b_{3} & b_{2} \\
a_{3} & 0 & -a_{1} & b_{3} & 0 & -b_{1} \\
-a_{2} & a_{1} & 0 & -b_{2} & b_{1} & 0
\end{array}
\right]
\end{aligned}
\]
where
\[
\begin{aligned}
a_{1} & = X_{\dot{u}}u+X_{\dot{v}}v+X_{\dot{w}}w+X_{\dot{p}}p+X_{\dot{q}}q+X_{\dot{r}}r\\
a_{2} & = Y_{\dot{u}}u+Y_{\dot{v}}v+Y_{\dot{w}}w+Y_{\dot{p}}p+Y_{\dot{q}}q+Y_{\dot{r}}r\\
a_{3} & = Z_{\dot{u}}u+Z_{\dot{v}}v+Z_{\dot{w}}w+Z_{\dot{p}}p+Z_{\dot{q}}q+Z_{\dot{r}}r\\
b_{1} & = K_{\dot{u}}u+K_{\dot{v}}v+K_{\dot{w}}w+K_{\dot{p}}p+K_{\dot{q}}q+K_{\dot{r}}r\\
b_{2} & = M_{\dot{u}}u+M_{\dot{v}}v+M_{\dot{w}}w+M_{\dot{p}}p+M_{\dot{q}}q+M_{\dot{r}}r\\
b_{3} & = N_{\dot{u}}u+N_{\dot{v}}v+N_{\dot{w}}w+N_{\dot{p}}p+N_{\dot{q}}q+N_{\dot{r}}r
\end{aligned}
\]
The hydrodynamic damping matrix depends on linear and quadratic damping and even higher-order terms. This can be expressed by:
\[
\boldsymbol{D} = -\left[
\begin{array}{cccccc}
X_{u} & X_{v} & X_{w} & X_{p} & X_{q} & X_{r} \\
Y_{u} & Y_{v} & Y_{w} & Y_{p} & Y_{q} & Y_{r} \\
Z_{u} & Z_{v} & Z_{w} & Z_{p} & Z_{q} & Z_{r} \\
K_{u} & K_{v} & K_{w} & K_{p} & K_{q} & K_{r} \\
M_{u} & M_{v} & M_{w} & M_{p} & M_{q} & M_{r} \\
N_{u} & N_{v} & N_{w} & N_{p} & N_{q} & N_{r}
\end{array}
\right] + \boldsymbol{D}_n(\boldsymbol{\nu})
\]
where \(\boldsymbol{D}_n(\boldsymbol{\nu})\) captures the nonlinear velocity-dependent damping effects. If \(x_G = x_B\) and \(y_G = y_B\) (the CG is aligned with the CB in both longitudinal and lateral directions), and the craft has starboard-port symmetry, the restoring forces and moments, \(\boldsymbol{g}(\boldsymbol{\eta}) = \boldsymbol{G} \boldsymbol{\eta}\), for a surface craft can be expressed using the following restoring matrix:
\[
\boldsymbol{G} =
\begin{bmatrix}
0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & \rho g A_{wp} & 0 & -\rho g A_{wp} \mathrm{LCF} & 0 \\
0 & 0 & 0 & \rho g \nabla \mathrm{GM}_{T} & 0 & 0 \\
0 & 0 & -\rho g A_{wp} \mathrm{LCF} & 0 & \rho g \left( A_{wp} \mathrm{LCF}^2 + \nabla \mathrm{GM}_{L} \right) & 0 \\
0 & 0 & 0 & 0 & 0 & 0
\end{bmatrix}
\]
where \(\rho\) is the density of water, \(g\) is the acceleration of gravity, \(A_{wp}\) is the waterplane area, \(\mathrm{LCF}\) is the x-distance from the CO to the centroid of the waterplane, and \(\nabla\) is the displaced volume. At the same time, \(GM_T\) and \(GM_L\) are the transverse and lateral metacentric heights, respectively. For underwater vehicles, the waterplane area diminishes, and the restoring forces and moments take the following form:
\[
\boldsymbol{g}(\boldsymbol{\eta}) = \left[
\begin{array}{clcl}
& (W-B)\sin(\theta) & & \\
- & (W-B)\cos(\theta)\sin(\phi) & & \\
- & (W-B)\cos(\theta)\cos(\phi) & & \\
- & (y_G W-y_B B)\cos(\theta)\cos(\phi) & + & (z_G W-z_B B)\cos(\theta)\sin(\phi) \\
& (z_G W-z_B B)\sin(\theta) & + & (x_G W-x_B B)\cos(\theta)\cos(\phi) \\
- & (x_G W-x_B B)\cos(\theta)\sin(\phi) & - & (y_G W-y_B B)\sin(\theta)
\end{array}
\right]
\]
where \(W = m g\) is the weight and \(B = \rho g \nabla\) is the buoyancy force.
Properties
The matrices in Fossen's marine craft model satisfy the following properties:
-
Positive definite mass matrix:
\[
\boldsymbol{M} = \boldsymbol{M}^\top > 0 \quad \text{and} \quad \dot{\boldsymbol{M}} = \boldsymbol{0}
\]
-
Skew-symmetric Coriolis and centripetal matrix:
\[
\boldsymbol{\nu}^\top \boldsymbol{C}(\boldsymbol{\nu}) \boldsymbol{\nu} \equiv 0
\]
-
Strictly positive hydrodynamic damping matrix:
\[
\boldsymbol{\nu}^\top \boldsymbol{D}(\boldsymbol{\nu}) \boldsymbol{\nu} > 0, \quad
\text{for all } \boldsymbol{\nu} \neq \boldsymbol{0}
\]
The dissipative nature of the marine craft model is verified by the time differentiation of the Lyapunov function:
\[
V = \frac{1}{2} \boldsymbol{\nu}^\top \boldsymbol{M} \boldsymbol{\nu} +
\int_{\boldsymbol{0}}^{\boldsymbol{\eta}}
\left( \boldsymbol{J}(\boldsymbol{\xi})^\top \boldsymbol{g}(\boldsymbol{\xi}) \right)^\top d\boldsymbol{\xi}
\]
Exploiting the properties above, it can be shown that the time derivative satisfies the passivity condition[8]:
\[
\begin{aligned}
\dot{V} & = \boldsymbol{\nu}^\top \left( \boldsymbol{M} \dot{\boldsymbol{\nu}} + \boldsymbol{g}(\boldsymbol{\eta}) \right) \\
& = \boldsymbol{\nu}^\top \boldsymbol{\tau} - \boldsymbol{\nu}^\top \boldsymbol{D}(\boldsymbol{\nu}) \boldsymbol{\nu}
\end{aligned}
\]
This equation demonstrates the passivity property of the system, as the rate of change of the Lyapunov function, \(\dot{V}\), depends on the input power \(\boldsymbol{\nu}^\top \boldsymbol{\tau}\) and the dissipation term \(-\boldsymbol{\nu}^\top \boldsymbol{D}(\boldsymbol{\nu}) \boldsymbol{\nu}\). Since \(\boldsymbol{D}(\boldsymbol{\nu})\) is strictly positive, the dissipation term is strictly negative, ensuring energy dissipation and contributing to the asymptotic stability of the system.
Equations of Relative Motion
Environmental forces and moments can be included using relative velocity for ocean currents. At the same time, wind, and wave loads
\(\boldsymbol{\tau}_{\textrm{wind}}\) and \(\boldsymbol{\tau}_{\textrm{wave}}\)
can be added by linear superposition. The relative velocity, \(\boldsymbol{\nu}_r = \boldsymbol{\nu} - \boldsymbol{\nu}_c\), accounts for the influence of an irrotational ocean current with velocity \(\boldsymbol{\nu}_c = [u_c, v_c, w_c, 0, 0, 0]^\top\). This relative velocity modifies the hydrodynamic forces and moments, as the interaction of the vehicle or vessel with the surrounding fluid depends on the velocity relative to the water. The resulting model is:
\[
\boldsymbol{M}_{RB} \dot{\boldsymbol{\nu}} + \boldsymbol{C}_{RB}(\boldsymbol{\nu}) \boldsymbol{\nu}
+ \boldsymbol{M}_{A} \dot{\boldsymbol{\nu}}_r + \boldsymbol{C}_{A}(\boldsymbol{\nu}_r) \boldsymbol{\nu}_r
+ \boldsymbol{D}(\boldsymbol{\nu}_r) \boldsymbol{\nu}_r + \boldsymbol{g}(\boldsymbol{\eta})
= \boldsymbol{\tau} + \boldsymbol{\tau}_{\textrm{wind}} + \boldsymbol{\tau}_{\textrm{wave}}
\]
where
- Rigid-body forces: \(\boldsymbol{M}_{RB}\dot{\boldsymbol{\nu}} + \boldsymbol{C}_{RB}(\boldsymbol{\nu})\boldsymbol{\nu}\)
- Hydrodynamic forces: \(\boldsymbol{M}_{A}\dot{\boldsymbol{\nu}}_{r} + \boldsymbol{C}_{A}(\boldsymbol{\nu}_{r})\boldsymbol{\nu}_{r} + \boldsymbol{D}(\boldsymbol{\nu}_{r})\boldsymbol{\nu}_{r}\)
- Hydrostatic forces: \(\boldsymbol{g}(\boldsymbol{\eta})\)
- Propulsion forces: \(\boldsymbol{\tau}\)
- Wind forces: \(\boldsymbol{\tau}_{\textrm{wind}}\)
- Wave-induced forces: \(\boldsymbol{\tau}_{\textrm{wave}}\)
Simplified Relative Equations of Motion
The relative equations of motion can be simplified by adopting the rigid-body Coriolis and centripetal matrix \(\boldsymbol{C}^{\,\boldsymbol{\nu}_2}_{RB}(\boldsymbol \nu)\), which is independent of the linear velocity component
\(\boldsymbol\nu_1 = [u, v, w]^\top\). This key property was exploited by Hegrenæs in 2010[5][9], who showed that:
\[
\boldsymbol{M}_{RB} \dot{\boldsymbol{\nu}}
+ \boldsymbol{C}^{\,\boldsymbol{\nu}_2}_{RB} (\boldsymbol{\nu}) \boldsymbol{\nu}
\equiv \boldsymbol{M}_{RB} \dot{\boldsymbol{\nu}}_{r}
+ \boldsymbol{C}^{\,\boldsymbol{\nu}_2}_{RB}(\boldsymbol{\nu}_{r}) \boldsymbol{\nu}_{r}
\]
Using this result, the relative equations of motion are simplified to:
\[
\boldsymbol{M} \dot{\boldsymbol{\nu}}_r + \boldsymbol{C}(\boldsymbol{\nu}_r) \boldsymbol{\nu}_r
+ \boldsymbol{D}(\boldsymbol{\nu}_r) \boldsymbol{\nu}_r + \boldsymbol{g}(\boldsymbol{\eta})
= \boldsymbol{\tau} + \boldsymbol{\tau}_{\textrm{wind}}
+ \boldsymbol{\tau}_{\textrm{wave}}
\]
where
\(\boldsymbol{M} = \boldsymbol{M}_{RB} + \boldsymbol{M}_A\) and \(\boldsymbol{C}(\boldsymbol{\nu}_r) = \boldsymbol{C}_{RB}(\boldsymbol{\nu}_r) + \boldsymbol{C}_A(\boldsymbol{\nu}_r)\).
Numerical Integration of the Relative Equations of Motion
An irrotational ocean current implies its velocity field has no curl, leading to a potential flow description. In practical terms, this means the ocean current velocity, \(\boldsymbol{\nu}_c = [u_c, v_c, w_c, 0, 0, 0]^\top\), remains spatially uniform and constant (or nearly constant) in the NED frame, with no rotational components \((p_c = q_c = r_c = 0)\). Hence, the application of \(\dot{\boldsymbol{R}}_{zyx} = \boldsymbol{R}_{zyx}\boldsymbol{S}(\boldsymbol{\nu}_2)\) implies that the ocean current velocity vector satisfies:
\[
\dot{\boldsymbol{v}}_{c}^{n} = \dot{\boldsymbol{R}}_{zyx} \boldsymbol{v}_{c}^{b} + \boldsymbol{R}_{zyx} \dot{\boldsymbol{v}}_{c}^{b} \equiv \boldsymbol{0}
\quad \implies \quad
\dot{\boldsymbol{v}}_{c}^{b} = -\boldsymbol{S}(\boldsymbol{\nu}_2) \boldsymbol{v}_{c}^{b}
\]
where
\(\boldsymbol{v}_{c}^{b} = [u_c, v_c, w_c]^\top\) is the ocean current linear velocity vector expressed in the BODY frame. The numerical solution proceeds by integrating the differential equation for absolute velocity:
\[
\begin{aligned}
\dot{\boldsymbol{\nu}} & =
\left[
\begin{array}{c}
-\boldsymbol{S}(\boldsymbol{\nu}_2)\boldsymbol{v}_{c}^{b} \\
\boldsymbol{0}_{3\times1}
\end{array}
\right] \\
& + \boldsymbol{M}^{-1} \left( \boldsymbol{\tau} +
\boldsymbol{\tau}_{\textrm{wind}}
+\boldsymbol{\tau}_{\textrm{wave}}
- \boldsymbol{C}(\boldsymbol{\nu}_{r})\boldsymbol{\nu}_{r}-\boldsymbol{D}(\boldsymbol{\nu}_{r})\boldsymbol{\nu}_{r}
-\boldsymbol{g}(\boldsymbol{\eta})\right)
\end{aligned}
\]
Applications
Since its introduction in 1991, Fossen’s marine craft model has been referenced in thousands of research papers and technical documents. It is now a widely recognized framework for studying and developing dynamic models of marine craft, including ships, semisubmersibles, USVs, AUVs, submarines, and offshore structures. The model and its associated tools are available for implementation and further exploration through the Marine Systems Simulator (MSS) GitHub repository, providing a valuable resource for researchers and practitioners.
3-DOF Surface Craft
One of the most common applications of the model is in describing the surge–sway–yaw motions of a starboard-port symmetrical ship. For such vessels, the equations of relative motion can be expressed by \[ \boldsymbol{M} \dot{\boldsymbol{\nu}}_r + \boldsymbol{C}(\boldsymbol{\nu}_r)\boldsymbol{\nu}_r + \boldsymbol{D}(\boldsymbol{\nu}_r)\boldsymbol{\nu}_r = \boldsymbol{\tau} + \boldsymbol{\tau}_{\textrm{wind}} + \boldsymbol{\tau}_{\textrm{wave}}
\]
where
\(\boldsymbol{\nu}_r = [u_r, v_r, r]^\top\) and \(\boldsymbol{\eta} = [x, y, \psi]^\top\). The model matrices for 3-DOF surface vessels take the following form:
\[
\begin{aligned}
\boldsymbol{M}_{RB} & = \left[
\begin{array}{ccc}
m & 0 & 0\\
0 & m & mx_G \\
0 & mx_G & I_{z}
\end{array} \right] \\
\boldsymbol{M}_A & = \left[
\begin{array}{ccc}
- X_{\dot{u}} & 0 & 0\\
0 & -Y_{\dot{v}} & -Y_{\dot{r}} \\
0 & -N_{\dot{v}} & -N_{\dot{r}}
\end{array} \right] \\
\boldsymbol{C}(\boldsymbol{\nu}_r) & = \left[
\begin{array}{ccc}
0 & -mr & -mx_G r\\
mr & 0 & 0\\
mx_G r & 0 & 0
\end{array}
\right] \\
\boldsymbol{C}_{A}(\boldsymbol{\nu}_{r}) & = \left[
\begin{array}{ccc}
0 & 0 & Y_{\dot{v}}v_{r}+Y_{\dot{r}}r\\
0 & 0 & -X_{\dot{u}}u_{r}\\
-Y_{\dot{v}}v_{r}-Y_{\dot{r}}r & X_{\dot{u}}u_{r} & 0
\end{array} \right] \\
\boldsymbol{D} & = -\left[
\begin{array}{ccc}
X_{{u}} & 0 & 0\\
0 & Y_{{v}} & Y_{{r}} \\
0 & N_{{v}} & N_{{r}}
\end{array}
\right] \\
\boldsymbol{D}_n(\boldsymbol{\nu}_r) & = - \left[
\begin{array}{ccc}
X_{|u|u} |u_r| & 0 & 0 \\
0 & { Y}_{|v|v}\left\vert v_{r}\right\vert +{ Y}_{|r|v}\left\vert
r\right\vert & { Y}_{|v|r}\left\vert v_{r}\right\vert +{ Y}_{|r|r}\left\vert r\right\vert \\
0 & { N}_{|v|v}\left\vert v_{r}\right\vert +{ N}_{|r|v}\left\vert
r\right\vert & { N}_{|v|r}\left\vert v_{r}\right\vert + N
_{|r|r}\left\vert r\right\vert
\end{array} \right]
\end{aligned}
\]
References
-
Fossen, T. I.(1991). Nonlinear Modelling and Control of Underwater Vehicles. Dr. Ing. Thesis, Norges Tekniske Høgskole (NTH), Department of Engineering Cybernetics, Trondheim, Norway (now part of NTNU).
-
Fossen, T. I. (1994). Guidance and Control of Ocean Vehicles. Wiley, Chichester, UK.
-
Fossen, T. I. (2011). Handbook of Marine Craft Hydrodynamics and Motion Control. Wiley, Chichester, UK.
-
Fossen, T. I. (2021). Handbook of Marine Craft Hydrodynamics and Motion Control (2nd ed.). Wiley, Chichester, UK.
-
SNAME (1950). Nomenclature for Treating the Motion of a Submerged Body Through a Fluid. Technical and Research Bulletin, Vol. 1-5
-
Sagatun, S. I.; Fossen, T. I. (1991). Lagrangian Formulation of Underwater Vehicles’ Dynamics, Proceedings of the IEEE International Conference on Systems, Man and Cybernetics, Charlottesville, VA, pp. 1029–1034.
-
Fossen, T. I.; Fjellstad, O. E. (1995). Nonlinear Modelling of Marine Vehicles in 6 Degrees of Freedom. International Journal of Mathematical Modelling of Systems, 1(1), 17–28.
-
Brogliato, B; Lozano, R.; Maschke, B.; Egeland, O. (2006). Dissipative Systems Analysis and Control: Theory and Applications (2nd ed.), Springer.
-
Hegrenæs, Ø. (2010) Autonomous Navigation for Underwater Vehicles. PhD thesis. Department of Engineering Cybernetics, Norwegian University of Science and Technology, Trondheim, Norway.