Submarine Longitudinal Model

Source Notebook

Model of the longitudinal dynamics of a submarine

Examples

Basic Examples (3) 

Retrieve the model:

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

The icon:

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

The annotation:

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

Scope & Additional Elements (5) 

Available content elements:

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

The transfer function model:

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

The input variables:

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

Other variables:

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

Temporal variable:

In[8]:=
ResourceData[\!\(\*
TagBox["\"\<Submarine Longitudinal Model\>\"",
#& ,
BoxID -> "ResourceTag-Submarine Longitudinal Model-Input",
AutoDelete->True]\), "TemporalVariable"]
Out[8]=

Analysis (3) 

The submarine's response to a disturbance in the states:

In[9]:=
OutputResponse[{ResourceData[\!\(\*
TagBox["\"\<Submarine Longitudinal Model\>\"",
#& ,
BoxID -> "ResourceTag-Submarine Longitudinal Model-Input",
AutoDelete->True]\)], {1, 0, 0.5, 0.2}}, {0, 0}, {t, 0, 20}]
Out[9]=

Without a controller, the depth and pitch are unstable:

In[10]:=
Grid[{Table[
   Plot[\[ScriptO]\[ScriptR][[1]], {t, 0, 20}, Sequence[
    PlotLabel -> Part[\[ScriptO]\[ScriptR], 2], PlotRange -> All, ImageSize -> Small]], {\[ScriptO]\[ScriptR], ({%, {\[ScriptZ], \[Theta]}}\[Transpose])}]}]
Out[10]=

This is because model has poles on the rhs of the complex plane:

In[11]:=
Eigenvalues[First@Normal@ResourceData[\!\(\*
TagBox["\"\<Submarine Longitudinal Model\>\"",
#& ,
BoxID -> "ResourceTag-Submarine Longitudinal Model-Input",
AutoDelete->True]\)]]
Out[11]=

Suba Thomas, "Submarine Longitudinal Model" from the Wolfram Data Repository (2025)  

Data Resource History

Source Metadata

Publisher Information