2 DOF Helicopter Model

Source Notebook

A model of a helicopter with two degrees of freedom (2 DOF)

Examples

Basic Examples (3) 

Retrieve the model:

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

The icon:

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

The annotation:

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

Scope & Additional Elements (4) 

Available content elements:

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

The available model types:

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

The operating point:

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

The parameters:

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

Analysis (3) 

The state space model and its parameters:

In[8]:=
{ssm, pars} = Table[ResourceData[\!\(\*
TagBox["\"\<2 DOF Helicopter Model\>\"",
#& ,
BoxID -> "ResourceTag-2 DOF Helicopter Model-Input",
AutoDelete->True]\), elems], {elems, {"StateSpaceModel", "Parameters"}}]
Out[8]=

A step input to the pitch motor affects the pitch and yaw simultaneously:

In[9]:=
OutputResponse[ssm /. pars, {UnitStep[t], 0}, {t, 0, 40}];
Grid[{Table[
   Plot[\[ScriptO]\[ScriptR][[1]], {t, 0, 40}, Sequence[
    PlotLabel -> Part[\[ScriptO]\[ScriptR], 2], AxesOrigin -> {0, 0}, ImageSize -> Small, PlotRange -> All]], {\[ScriptO]\[ScriptR], ({%, {\[Theta], \[Psi]}}\[Transpose])}]}]
Out[10]=

As does a step input to the yaw motor:

In[11]:=
OutputResponse[ssm /. pars, {0, UnitStep[t]}, {t, 0, 40}];
Grid[{Table[
   Plot[\[ScriptO]\[ScriptR][[1]], {t, 0, 40}, Sequence[
    PlotLabel -> Part[\[ScriptO]\[ScriptR], 2], AxesOrigin -> {0, 0}, ImageSize -> Small, PlotRange -> All]], {\[ScriptO]\[ScriptR], ({%, {\[Theta], \[Psi]}}\[Transpose])}]}]
Out[12]=

Suba Thomas, "2 DOF Helicopter Model" from the Wolfram Data Repository (2025)  

Data Resource History

Source Metadata

Publisher Information