({{, (RefLink[FindSystemModelEquilibrium, paclet:ref/FindSystemModelEquilibrium])[model] 
searches for an equilibrium to the model model.}, {, (RefLink[FindSystemModelEquilibrium, paclet:ref/FindSystemModelEquilibrium])[model,{{{(Subscript[x, 1]),(Subscript[x, 10])},…},{{(Subscript[u, 1]),(Subscript[u, 10])},…},{{(Subscript[y, 1]),(Subscript[y, 10])},…}}]
searches for an equilibrium, starting from the points (Subscript[x, i])=(Subscript[x, i0]), (Subscript[u, i])=(Subscript[u, i0]) and (Subscript[y, i])=(Subscript[y, i0]).}, {, (RefLink[FindSystemModelEquilibrium, paclet:ref/FindSystemModelEquilibrium])[model,{(Subscript[x, 1])==(Subscript[v, 1]),…},…]
searches for an equilibrium, with variable (Subscript[x, i]) constrained to have the value (Subscript[v, i]) etc. }})

OpenersNotesSection(Spacer1)Details and Options

The model can be a (RefLink[SystemModel, paclet:ref/SystemModel]) object, a full model name string or a shortened model name accepted by (RefLink[SystemModel, paclet:ref/SystemModel]).

(RefLink[FindSystemModelEquilibrium, paclet:ref/FindSystemModelEquilibrium]) returns a list {{{(Subscript[x, 1]),(Subscript[(OverHat[x]), 1])},…},{{(Subscript[u, 1]),(Subscript[(OverHat[u]), 1])},…},{{(Subscript[y, 1]),(Subscript[(OverHat[y]), 1])},…}}, where (Subscript[(OverHat[x]), i]), (Subscript[(OverHat[u]), j]) and (Subscript[(OverHat[y]), k]) are the computed equilibrium values for states, inputs and outputs.

With no explicit starting point given, (RefLink[SystemModel, paclet:ref/SystemModel])[model]["GroupedInitialValues"] is used.

An equilibrium for a differential algebraic system F(x'(t),x(t),u(t))==0 is a value (OverHat[x]) and (OverHat[u]) such that F(0,(OverHat[x]),(OverHat[u]))==0.

(RefLink[FindSystemModelEquilibrium, paclet:ref/FindSystemModelEquilibrium]) will attempt to find a local equilibrium point. In general, many equilibrium points may exist for a system.

The following option can be given:

OpenersPrimaryExamplesSection(Spacer1)Examples  (13)

OpenersExampleSection0(Spacer1)Basic Examples  (3)

Find an equilibrium, starting the search at initial values:

FindSystemModelEquilibrium[]

Use given start values for states:

FindSystemModelEquilibrium[,{{{"H",55},{"Tu",60},{"Tx",60}},{},{}}]

Find an equilibrium for one of the included (WebLink[introductory hierarchical, http://reference.wolfram.com/system-modeler/libraries/IntroductoryExamples/IntroductoryExamples.Hierarchical.html]) examples:

model=Last@SystemModelExamples["Models","IntroductoryExamples.Hierarchical.*"]

FindSystemModelEquilibrium[model]

OpenersExampleSection1(Spacer1)Scope  (3)

Give start values for states, inputs and outputs:

FindSystemModelEquilibrium[,{{{"H",0.75},{"Tu",38},{"Tx",38}},{{"u1",5.23},{"u2",3.08}},{{"y1",5.23},{"y2",3.08}}}]

Use constraints on inputs and outputs, and start values for states:

FindSystemModelEquilibrium[,{"u1"==5.23,"y1"==3.75},{{{"H",0.75},{"Tu",38},{"Tx",38}},{},{}}]

Find an equilibrium point with given constraints:

FindSystemModelEquilibrium[,{"u1"==5.23,"u2"==3.08}]

OpenersExampleSection2(Spacer1)Applications  (5)

Find an equilibrium point for a single water tank with inflow and outflow:

FindSystemModelEquilibrium[,{"h"==1}]

Linearize a model around an equilibrium point:

model=;

{state,input,output}=FindSystemModelEquilibrium[model,{"H"==0.75,"Tu"==38,"Tx"==38}];

SystemModelLinearize[model,{state,input}]

Linearize around an equilibrium point and analyze the stability:

model=;

{state,input,output}=FindSystemModelEquilibrium[model,{"H"==0.75,"Tu"==38,"Tx"==38}];

ss=SystemModelLinearize[model,{state,input}];

NyquistPlot[ss,PlotRange->Full]

Eigenvalues[ss[[1,1]]]

Design a PI controller for keeping the level in a tank with inflow and outflow constant:

model=;

Find the equilibrium where the level "h" is constrained to be 2:

h0=2;

{state,input,output}=FindSystemModelEquilibrium[model,{"h"==h0}]

Linearize and close the loop around a PI controller:

tf=TransferFunctionModel@SystemModelLinearize[model,{state,input}];

piTf=TransferFunctionModel[kp (1+1/((Subscript[τ, i]) \[FormalS])),\[FormalS]];

cltf=SystemsModelFeedbackConnect[SystemsModelSeriesConnect[piTf,tf]];

Show the closed-loop step response for a family of PI controllers:

Manipulate[
Plot[Evaluate[h0+OutputResponse[cltf/.{kp->gain,(Subscript[τ, i])->iTime},UnitStep[t],{t,20}]],{t,0,20},PlotStyle->Thick,GridLines->Automatic,Frame->True,PlotRange->{h0,4}],
{{gain,1.4,"(Subscript[k, p])"},0.01,10},{{iTime,1.6,"(Subscript[τ, i])"},0.01,10},SaveDefinitions->True]

Simple pendulum swinging through any angle:

Equilibrium with the pendulum hanging straight down:

model=;

FindSystemModelEquilibrium[model]

Pendulum standing straight up above its axis:

FindSystemModelEquilibrium[model,{{{"x",-3.1},{"v",0}},{},{}}]//Chop

FindSystemModelEquilibrium[model,{{{"x",+3.1},{"v",0}},{},{}}]//Chop

Level curves of the first integral give the potential energy of the system:

model["SystemEquations"]

fi=((v^2)/2)-9.81Cos[x];

The pendulum has one stable and two unstable equilibrium points:

Show[
Plot3D[fi,{x,-2π,2π},{v,-2.5,2.5},MeshFunctions->{#3&},AxesLabel->Automatic,Mesh->5,PlotPoints->50],Graphics3D[{Blue,PointSize[Large],Point[{{0,0,-9.2},{-Pi,0,10},{Pi,0,10}}]}]]

OpenersExampleSection3(Spacer1)Properties & Relations  (2)

Equilibrium points (Subscript[x, 0]), (Subscript[u, 0]) for an ODE x'(t)==f(x(t),u(t)) satisfy f((Subscript[x, 0]),(Subscript[u, 0]))==0:

model=;

eqs=model["SystemEquations",t]/.model["ParameterValues"]

f=Cases[eqs,Derivative[1][_][t]==rhs_:>rhs];

Find an equilibrium point (Subscript[x, 0]) and (Subscript[u, 0]):

{x0,u0,y0}=FindSystemModelEquilibrium[model,{"H"==0.75,"Tu"==38,"Tx"==38}]

Verify f((Subscript[x, 0]),(Subscript[u, 0]))==0:

f/.(Rule[QuantityVariable[#1,_][t],#2]&@@@Join[x0,u0])

Many equilibrium points may exist:

Table[FindSystemModelEquilibrium[,{"H"==h0}],{h0,0.2,1,0.2}]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[SystemModelLinearize, paclet:ref/SystemModelLinearize])  ▪  (RefLink[SystemModel, paclet:ref/SystemModel])  ▪  (RefLink[SystemModelExamples, paclet:ref/SystemModelExamples])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[System Model Analytics & Design, paclet:guide/SystemModelAnalyticsDesign])}})}})

({{(Spacer1), ({{(Spacer1)Related Links}, {(Spacer1)▪(WebLink[(Spacer1)Wolfram SystemModeler Documentation, http://reference.wolfram.com/system-modeler/])}})}})