gives the minimal state-space model of the state-space model sys.
MinimalStateSpaceModel[sys,{z1,…}]
specifies the new coordinates zi.
MinimalStateSpaceModel
gives the minimal state-space model of the state-space model sys.
MinimalStateSpaceModel[sys,{z1,…}]
specifies the new coordinates zi.
Details and Options
- The minimal state-space model is both controllable and observable, and has the minimal number of states.
- The system sys can be a standard or descriptor StateSpaceModel or AffineStateSpaceModel.
Examples
open all close allBasic Examples (1)
Compute a minimal realization:
MinimalStateSpaceModel[StateSpaceModel[{{{Subscript[a, 1], 0, 0}, {0, Subscript[a, 2], 0},
{0, 0, Subscript[a, 3]}}, {{Subscript[b, 1]},
{Subscript[b, 2]}, {0}}, {{Subscript[c, 1], 0,
Subscript[c, 3]}}, {{0}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]Scope (6)
Obtain a model with the minimal number of states:
MinimalStateSpaceModel[StateSpaceModel[{{{1/2, 3/2}, {-5/2, -7/2}}, {{-1}, {3}}, {{1/2, 1/2}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None]]A minimal realization of a symbolic model:
MinimalStateSpaceModel[StateSpaceModel[{{{0, 1, 0}, {0, 0, 1}, {0, (-Subscript[p, 2])*
Subscript[p, 3], -Subscript[p, 2] - Subscript[p, 3]}},
{{0}, {0}, {1}}, {{0, Subscript[z, 2], 1}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]]A minimal realization does not contain uncontrollable modes:
MinimalStateSpaceModel[StateSpaceModel[{{{-1, 0, 0}, {0, -2, 0}, {0, 0, -3}}, {{1}, {0}, {1}}, {{1, 1, 1}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None]]A minimal realization does not contain unobservable modes:
MinimalStateSpaceModel[StateSpaceModel[{{{-1, 0, 0}, {0, -2, 0}, {0, 0, -3}}, {{1}, {1}, {1}}, {{1, 0, 1}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None]]The minimal realization of a descriptor system:
MinimalStateSpaceModel[StateSpaceModel[{{{-1, 0, 0, 0}, {0, -1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -5}},
{{0}, {1}, {0}, {1}}, {{1, -14, 97, -512}}, {{0}}, {{0, -1, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0},
{0, 0, 0, 1}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]The minimal realization of an affine system:
asys = AffineStateSpaceModel[{{-Subscript[x, 1]/(1 + Subscript[x, 3]),
(-(1 + Subscript[x, 3])^(-1))*
(Subscript[x, 1]*Subscript[x, 3] + Subscript[x, 2]*
(1 + Subscript[x, 3])), -Subscript[x, 3]},
{{(1 + Subscript[x, 3])^(-1)}, {-1 - (1 + Subscript[x, 3])^(-1)}, {0}},
{Subscript[x, 3] + Subscript[x, 1]*(1 + Subscript[x, 3])},
{{0}}}, {Subscript[x, 1], Subscript[x, 2],
Subscript[x, 3]}, Automatic, {Automatic}, Automatic, SamplingPeriod -> None];MinimalStateSpaceModel[asys]MinimalStateSpaceModel[asys, {Subscript[z, 1]}]Applications (2)
Remove any uncontrollable or unobservable modes:
MinimalStateSpaceModel[StateSpaceModel[{{{-1, 0, 0, 0}, {0, -2, 0, 0}, {0, 0, -3, 0}, {0, 0, 0, -4}},
{{1}, {0}, {1}, {2}}, {{1, 1, 0, 1}}, {{0}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]A parallel mass-spring-damper system is not completely controllable and observable. Design a controller based on the minimal system:
pars = {m -> 1, g -> 9.8, k -> 64, c -> 4};ssm = StateSpaceModel[{{{0, 1, 0, 0}, {-k/m, -c/m, 0,
0}, {0, 0, 0, 1}, {0, 0, -k/m, -c/m}},
{{0}, {1/(2*m)}, {0}, {1/(2*m)}}, {{1/2, 0, 1/2, 0}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> {{F}, {y},
{Subscript[x, 1], Subscript[OverDot[x], 1],
Subscript[x, 2], Subscript[OverDot[x], 2]}}];Subscript[ssm, m] = MinimalStateSpaceModel[ssm]Design a controller based on the minimal system:
κ = StateFeedbackGains[Subscript[ssm, m], {-4 - 2 I, -4 + 2 I}];
ℓ = EstimatorGains[Subscript[ssm, m], {-6, -8}];𝒸 = EstimatorRegulator[Subscript[ssm, m], {ℓ, κ}, "Data"]csys = 𝒸[{"ClosedLoopSystem", <|"InputModel" -> ssm|>}] /. parsSimulate the response of the closed-loop system and compare it with the open-loop system:
orc = OutputResponse[{csys, {0.1, 0, -0.3, 0, 0, 0}}, 0, {t, 0, 10}];
or = OutputResponse[{ssm /. pars, {0.1, 0, -0.3, 0}}, 0, {t, 0, 10}];Plot[{or, orc}, {t, 0, 4}, PlotRange -> All, PlotLegends -> {"open-loop response", "closed-loop response"}]Properties & Relations (4)
MinimalStateSpaceModel computes the subspace that is both controllable and observable:
ssm = StateSpaceModel[{{{Subscript[a, 1], 0, 0}, {0, Subscript[a, 2], 0},
{0, 0, Subscript[a, 3]}}, {{0, 0}, {Subscript[b, 1], 0},
{0, Subscript[b, 2]}}, {{Subscript[c, 1], 0, 0},
{0, 0, Subscript[c, 3]}},
{{Subscript[d, 11], Subscript[d, 12]},
{Subscript[d, 21], Subscript[d, 22]}}}, SamplingPeriod -> None,
SystemsModelLabels -> None];{MinimalStateSpaceModel[ssm], Last[ObservableDecomposition[Last[ControllableDecomposition[ssm]]]]}A minimal realization is both controllable and observable:
msys = MinimalStateSpaceModel[StateSpaceModel[{{{1, 1, 0, 0}, {0, 1, 0, 1}, {0, 1, 1, 0}, {0, 0, 0, 1}},
{{0, 1}, {1, 0}, {0, 1}, {0, 0}}, {{1, 1, 1, 0}}, {{0, 0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]];{ControllableModelQ[msys], ObservableModelQ[msys]}Minimal realizations are not unique:
ssm = StateSpaceModel[{{{-1, 0}, {0, -1}}, {{1, 0}, {0, 1}}, {{1, 1}, {1, 1}}, {{0, 0}, {0, 0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];{Subscript[ssm, m1] = MinimalStateSpaceModel[ssm], Subscript[ssm, m2] = StateSpaceTransform[Subscript[ssm, m1], {{(-1/2)}}]}Both are minimal realizations of the same transfer function:
Table[Simplify[TransferFunctionModel[ss]], {ss, {Subscript[ssm, m1], Subscript[ssm, m2]}}]MinimalStateSpaceModel is equivalent to TransferFunctionCancel for scalar systems:
tfm = TransferFunctionModel[{{{s*(1 + s)*(2 + s)}},
(2 + s)*(3 + s)*(4 + s)}, s];{TransferFunctionModel@MinimalStateSpaceModel@StateSpaceModel@tfm, TransferFunctionExpand@TransferFunctionCancel@tfm}Related Guides
Text
Wolfram Research (2010), MinimalStateSpaceModel, Wolfram Language function, https://reference.wolfram.com/language/ref/MinimalStateSpaceModel.html (updated 2014).
CMS
Wolfram Language. 2010. "MinimalStateSpaceModel." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/MinimalStateSpaceModel.html.
APA
Wolfram Language. (2010). MinimalStateSpaceModel. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MinimalStateSpaceModel.html
BibTeX
@misc{reference.wolfram_2026_minimalstatespacemodel, author="Wolfram Research", title="{MinimalStateSpaceModel}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/MinimalStateSpaceModel.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_minimalstatespacemodel, organization={Wolfram Research}, title={MinimalStateSpaceModel}, year={2014}, url={https://reference.wolfram.com/language/ref/MinimalStateSpaceModel.html}, note=[Accessed: 12-June-2026]}