Fuel Slosh Model

Source Notebook

A model of the fluid slosh dynamics in a spacecraft

Examples

Basic Examples (3) 

Retrieve the model:

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

The icon:

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

The annotation:

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

Scope & Additional Elements (4) 

Available content elements:

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

The available model types:

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

The operating point:

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

The parameters:

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

Visualizations (3) 

A transfer-function model of the system:

In[8]:=
tfm = TransferFunctionModel[ResourceData[\!\(\*
TagBox["\"\<Fuel Slosh Model\>\"",
#& ,
BoxID -> "ResourceTag-Fuel Slosh Model-Input",
AutoDelete->True]\), "TransferFunctionModel"] /. ResourceData[\!\(\*
TagBox["\"\<Fuel Slosh Model\>\"",
#& ,
BoxID -> "ResourceTag-Fuel Slosh Model-Input",
AutoDelete->True]\), "Parameters"], SystemsModelLabels -> {{\[ScriptR], Subscript[\[ScriptF], 1], Subscript[\[ScriptF], 2]}, {\[Theta], \[Psi], \[Omega], \[Gamma]}}]
Out[8]=

Obtain the transfer function of the thruster input 𝒻2 to the pendulum position ψ:

In[9]:=
tfmP = SystemsModelExtract[tfm, 3, 2]
Out[9]=

Its Bode plot:

In[10]:=
BodePlot[tfmP]
Out[10]=

Analysis (5) 

Only six of the eight states are controllable:

In[11]:=
ssm = ResourceData[\!\(\*
TagBox["\"\<Fuel Slosh Model\>\"",
#& ,
BoxID -> "ResourceTag-Fuel Slosh Model-Input",
AutoDelete->True]\), "StateSpaceModel"];
In[12]:=
{MatrixRank[ControllabilityMatrix[ssm]], SystemsModelOrder[ssm]}
Out[12]=

Determine indices of state pairs that are uncontrollable:

In[13]:=
notC = Select[Subsets[Range[8], {2}], ControllableModelQ[SystemsModelDelete[ssm, None, None, #]] &]
Out[13]=

The corresponding states:

In[14]:=
Grid[Table[Part[{
\[Theta][t], 
\[Psi][t], 
x[t], 
z[t], 
\[Omega][t], 
\[Gamma][t], 
vx[t], 
vz[t]}, i], {i, notC}], Sequence[
 Frame -> True, FrameStyle -> GrayLevel[0.5], Background -> {None, {{
RGBColor[0.88, 1, 0.88], 
RGBColor[1, 0.85, 0.85]}}}]]
Out[14]=

The subsystem with the third pair of uncontrollable states removed:

In[15]:=
SystemsModelDelete[ssm, None, None, notC[[3]]]
Out[15]=

It is controllable:

In[16]:=
ControllableModelQ[%]
Out[16]=

Suba Thomas, "Fuel Slosh Model" from the Wolfram Data Repository (2025)  

Data Resource History

Source Metadata

Data Downloads

Publisher Information