Ship Yaw Model

A Nomoto model of a ship's yaw dynamics

Details

Symbolic systems model suitable for analysis, control design, simulation, and deployment.

Examples

Basic Examples (3) 

Retrieve the model:

In[1]:=
ResourceData[\!\(\*
TagBox["\"\<Ship Yaw Model\>\"",
#& ,
BoxID -> "ResourceTag-Ship Yaw Model-Input",
AutoDelete->True]\)]
Out[1]=

The icon:

In[2]:=
ResourceData[\!\(\*
TagBox["\"\<Ship Yaw Model\>\"",
#& ,
BoxID -> "ResourceTag-Ship Yaw Model-Input",
AutoDelete->True]\), "Icon"]
Out[2]=

The annotation:

In[3]:=
ResourceData[\!\(\*
TagBox["\"\<Ship Yaw Model\>\"",
#& ,
BoxID -> "ResourceTag-Ship Yaw Model-Input",
AutoDelete->True]\), "Annotation"]
Out[3]=

Scope & Additional Elements (4) 

Available content elements:

In[4]:=
\!\(\*
TagBox[
RowBox[{"ResourceObject", "[", "\"\<Ship Yaw Model\>\"", "]"}],
#& ,
BoxID -> "ResourceTag-Ship Yaw Model-Input",
AutoDelete->True]\)["ContentElements"]
Out[4]=

The available model types:

In[5]:=
ResourceData[\!\(\*
TagBox["\"\<Ship Yaw Model\>\"",
#& ,
BoxID -> "ResourceTag-Ship Yaw Model-Input",
AutoDelete->True]\), "AvailableModelTypes"]
Out[5]=

The operating point:

In[6]:=
ResourceData[\!\(\*
TagBox["\"\<Ship Yaw Model\>\"",
#& ,
BoxID -> "ResourceTag-Ship Yaw Model-Input",
AutoDelete->True]\), "OperatingPoint"]
Out[6]=

The parameters:

In[7]:=
ResourceData[\!\(\*
TagBox["\"\<Ship Yaw Model\>\"",
#& ,
BoxID -> "ResourceTag-Ship Yaw Model-Input",
AutoDelete->True]\), "Parameters"]
Out[7]=

Analysis (7) 

The numerical model:

In[8]:=
ship = ResourceData[\!\(\*
TagBox["\"\<Ship Yaw Model\>\"",
#& ,
BoxID -> "ResourceTag-Ship Yaw Model-Input",
AutoDelete->True]\), "NumericStateSpaceModel"]
Out[8]=
Design a tracking controller with poles at the desired locations:
In[9]:=
sspec = <|"InputModel" -> ship, "TrackedOutputs" -> 1|>;
In[10]:=
cd = StateFeedbackGains[
  sspec, {-0.5, -0.35, -0.3, -0.25 + 0.1 I, -0.25 - 0.1 I}, "Data"]
Out[10]=
The closed-loop system:
In[11]:=
csys = cd["ClosedLoopSystem"]
Out[11]=
The response for various heading angle references:
In[12]:=
Table[OutputResponse[csys, ref, {t, 0, 50}], {ref, 4, 20, 4}];
Plot[%, {t, 0, 50}, Sequence[
 PlotRange -> All, GridLines -> Automatic, PlotLabels -> {4, 8, 12, 16, 20}]]
Out[13]=
Obtain the controller model:
In[14]:=
cm = cd["ControllerModel"]
Out[14]=
The controller inputs:
In[15]:=
cinps[ref_] := Join[{ref}, OutputResponse[csys, ref, {t, 0, 50}], StateResponse[csys, ref, {t, 0, 50}][[1 ;; 3]]]
The control effort increases as the reference value increases:
In[16]:=
Table[OutputResponse[cm, cinps[ref], {t, 0, 50}], {ref, 4, 20, 4}];
Plot[%, {t, 0, 30}, Sequence[
 PlotRange -> All, PlotLegends -> {4, 8, 12, 16, 20}]]
Out[17]=

Suba Thomas, "Ship Yaw Model" from the Wolfram Data Repository (2025)  

Data Resource History

Source Metadata

Publisher Information