FindSystemModelEquilibrium[model]
searches for an equilibrium to the model model.
FindSystemModelEquilibrium[model,{{{x1,x10},…},{{u1,u10},…},{{y1,y10},…}}]
searches for an equilibrium, starting from the points xi=xi0, ui=ui0 and yi=yi0.
FindSystemModelEquilibrium[model,{x1v1,…},…]
searches for an equilibrium, with variable xi constrained to have the value vi etc.
FindSystemModelEquilibrium
FindSystemModelEquilibrium[model]
searches for an equilibrium to the model model.
FindSystemModelEquilibrium[model,{{{x1,x10},…},{{u1,u10},…},{{y1,y10},…}}]
searches for an equilibrium, starting from the points xi=xi0, ui=ui0 and yi=yi0.
FindSystemModelEquilibrium[model,{x1v1,…},…]
searches for an equilibrium, with variable xi constrained to have the value vi etc.
Details and Options
- FindSystemModelEquilibrium is typically used to find values of states, inputs and outputs for which the dynamics of a system model stop.
- The model can be a SystemModel object, a full model name string or a shortened model name accepted by SystemModel.
- FindSystemModelEquilibrium returns a list {{{x1,
},…},{{u1,
},…},{{y1,
},…}}, where
,
and
are the computed equilibrium values for states, inputs and outputs. - With no explicit starting point given, SystemModel[model]["GroupedInitialValues"] is used.
- An equilibrium for a differential algebraic system
is a value
and
such that
. - 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:
-
ProgressReporting $ProgressReporting control display of progress
Examples
open all close allBasic Examples (3)
Find an equilibrium, starting the search at initial values:
FindSystemModelEquilibrium[[image]]Use given start values for states:
FindSystemModelEquilibrium[[image], {{{"H", 55}, {"Tu", 60}, {"Tx", 60}}, {}, {}}]Find an equilibrium for one of the included introductory hierarchical examples:
model = Last@SystemModelExamples["Models", "IntroductoryExamples.Hierarchical.*"]FindSystemModelEquilibrium[model]Scope (3)
Give start values for states, inputs and outputs:
FindSystemModelEquilibrium[[image], {{{"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[[image], {"u1" == 5.23, "y1" == 3.75}, {{{"H", 0.75}, {"Tu", 38}, {"Tx", 38}}, {}, {}}]Find an equilibrium point with given constraints:
FindSystemModelEquilibrium[[image], {"u1" == 5.23, "u2" == 3.08}]Options (1)
ProgressReporting (1)
Control progress reporting with ProgressReporting:
FindSystemModelEquilibrium[[image], ProgressReporting -> False]Applications (5)
Find an equilibrium point for a single water tank with inflow and outflow:
FindSystemModelEquilibrium[[image], {"h" == 1}]Linearize a model around an equilibrium point:
model = [image];{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 = [image];{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 = [image];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] )), ];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, "SubscriptBox[k, p]"}, 0.01, 10}, {{iTime, 1.6, "SubscriptBox[τ, i]"}, 0.01, 10}, SaveDefinitions -> True]Simple pendulum swinging through any angle:
Equilibrium with the pendulum hanging straight down:
model = [image];FindSystemModelEquilibrium[model]Pendulum standing straight up above its axis:
FindSystemModelEquilibrium[model, {{{"x", -3.1}, {"v", 0}}, {}, {}}]//ChopFindSystemModelEquilibrium[model, {{{"x", +3.1}, {"v", 0}}, {}, {}}]//ChopLevel 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}}]}]]Properties & Relations (2)
Equilibrium points
,
for an ODE
satisfy
:
model = [image];eqs = model["SystemEquations", t] /. model["ParameterValues"]f = Cases[eqs, Derivative[1][_][t] == rhs_ :> rhs];Find an equilibrium point
and
:
{x0, u0, y0} = FindSystemModelEquilibrium[model, {"H" == 0.75, "Tu" == 38, "Tx" == 38}]f /. (Rule[QuantityVariable[#1, _][t], #2]&@@@Join[x0, u0])Many equilibrium points may exist:
Table[FindSystemModelEquilibrium[[image], {"H" == h0}], {h0, 0.2, 1, 0.2}]Related Guides
Related Links
History
Text
Wolfram Research (2018), FindSystemModelEquilibrium, Wolfram Language function, https://reference.wolfram.com/language/ref/FindSystemModelEquilibrium.html.
CMS
Wolfram Language. 2018. "FindSystemModelEquilibrium." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FindSystemModelEquilibrium.html.
APA
Wolfram Language. (2018). FindSystemModelEquilibrium. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FindSystemModelEquilibrium.html
BibTeX
@misc{reference.wolfram_2026_findsystemmodelequilibrium, author="Wolfram Research", title="{FindSystemModelEquilibrium}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/FindSystemModelEquilibrium.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_findsystemmodelequilibrium, organization={Wolfram Research}, title={FindSystemModelEquilibrium}, year={2018}, url={https://reference.wolfram.com/language/ref/FindSystemModelEquilibrium.html}, note=[Accessed: 13-June-2026]}