SystemsModelVectorRelativeOrders[sys]
gives the vector-relative orders of the systems model sys.
SystemsModelVectorRelativeOrders
SystemsModelVectorRelativeOrders[sys]
gives the vector-relative orders of the systems model sys.
Details and Options
- SystemsModelVectorRelativeOrders is also known as vector-relative degrees.
- The relative order of an output
of sys is essentially the number of times it must be differentiated for the input
of sys to appear explicitly. - Output
has relative order
if after
differentiations of the output,
. - The vector-relative orders are the list of the relative orders
for each output. - The matrix
is called the decoupling matrix and needs to have rank
. - The system sys can be a TransferFunctionModel, StateSpaceModel, or AffineStateSpaceModel.
- The following options can be given:
-
MaxIterations Automatic maximum number of differentiations ZeroTest Automatic zero test
Examples
open all close allBasic Examples (1)
Compute the vector-relative orders of a system:
SystemsModelVectorRelativeOrders[AffineStateSpaceModel[{{-Subscript[x, 2], Subscript[x, 1]*
Subscript[x, 3], Subscript[x, 1]},
{{0, 1}, {1, 0}, {0, Subscript[x, 3]}}, {Subscript[x, 2],
Subscript[x, 3]}, {{0, 0}, {0, 0}}}, {Subscript[x, 1],
Subscript[x, 2], Subscript[x, 3]},
{Subscript[, 1], Subscript[, 2]}, {Automatic, Automatic}, Automatic, SamplingPeriod -> None]]Scope (4)
The vector-relative order of a single-output system:
SystemsModelVectorRelativeOrders[AffineStateSpaceModel[{{-Subscript[x, 2], Subscript[x, 1]*
Subscript[x, 2]}, {{0, 0}, {Cos[Subscript[x, 1]], 1}},
{Subscript[x, 1]}, {{0, 0}}}, {Subscript[x, 1],
Subscript[x, 2]}, {Subscript[, 1], Subscript[, 2]}, {Automatic}, Automatic,
SamplingPeriod -> None]]The vector-relative orders of a multiple-output system:
SystemsModelVectorRelativeOrders[AffineStateSpaceModel[{{Sin[Subscript[x, 1]], -Subscript[x, 1],
Subscript[x, 1]*Subscript[x, 2]*Subscript[x, 3]},
{{0, 0}, {1, 0}, {0, E^Subscript[x, 1]}}, {Subscript[x, 2],
Subscript[x, 3]}, {{0, 0}, {0, 0}}}, {Subscript[x, 1],
Subscript[x, 2], Subscript[x, 3]},
{Subscript[, 1], Subscript[, 2]}, {Automatic, Automatic}, Automatic, SamplingPeriod -> None]]The vector-relative orders of a StateSpaceModel:
SystemsModelVectorRelativeOrders[StateSpaceModel[{{{2, 2, 0, 0}, {1, 2, 2, 2}, {2, 3, 2, -2}, {3, 2, -3, -3}},
{{1, 0}, {0, 1}, {0, 0}, {0, 0}}, {{1, 0, 0, 0}, {0, 0, 1, 0}}, {{0, 0}, {0, 0}}},
SamplingPeriod -> None, SystemsModelLabels -> None]]The vector-relative order of a TransferFunctionModel:
SystemsModelVectorRelativeOrders[TransferFunctionModel[{{{1, -4 + s}},
{{1 + 10*s, s*(1 + 10*s)}}}, s]]Applications (2)
Determine the number of states in the feedback-linearized and residual system:
asys = AffineStateSpaceModel[{{-Subscript[x, 1]^3 + Subscript[x, 1]*
Subscript[x, 2], Subscript[x, 1], -Subscript[x, 3],
Subscript[x, 1]^2 + Subscript[x, 2]},
{{0}, {2 + 2*Subscript[x, 3]}, {1}, {0}}, {Subscript[x, 4]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3],
Subscript[x, 4]}, {u}, {Automatic}, Automatic, SamplingPeriod -> None];
vro = SystemsModelVectorRelativeOrders[asys]The number of states in the linear subsystem:
Total[vro]Feedback linearize the system:
ℱ = FeedbackLinearize[asys]ℱ["LinearSystem"]The number of states in the residual subsystem:
SystemsModelOrder[asys] - Total[vro]ℱ["ResidualSystem"]In AsymptoticOutputTracker, the decay rates are assigned based on relative orders:
asys = AffineStateSpaceModel[{{Subscript[x, 2][t] +
Subscript[x, 2][t]^2, Subscript[x, 3][t] -
Subscript[x, 1][t]*Subscript[x, 4][t] +
Subscript[x, 4][t]*Subscript[x, 5][t],
Subscript[x, 2][t]*Subscript[x, 4][t] +
Subscript[x, 1][t]*Subscript[x, 5][t] -
Subscript[x, 5][t]^2, Subscript[x, 5][t],
Subscript[x, 2][t]^2},
{{0, 1}, {0, 0}, {Cos[Subscript[x, 1][t] -
Subscript[x, 5][t]], 1}, {0, 0}, {0, 1}},
{Subscript[x, 1][t] - Subscript[x, 5][t],
Subscript[x, 4][t]}, {{0, 0}, {0, 0}}},
{{Subscript[x, 1][t], 0.1},
{Subscript[x, 2][t], 0.3},
{Subscript[x, 3][t], 0}, {Subscript[x, 4][t],
0.4}, {Subscript[x, 5][t], 1}},
{Subscript[, 1][t], Subscript[, 2][t]}, {Automatic, Automatic},
t, SamplingPeriod -> None];SystemsModelVectorRelativeOrders[asys]The first three poles correspond to the first output and the last two to the second:
ref = {Sin[t], Cos[t]};
fb = AsymptoticOutputTracker[asys, ref, {-2, -3, -4, -10, -12}]The first output has slower decay rates and hence takes longer to start following the reference input:
OutputResponse[SystemsModelStateFeedbackConnect[asys, fb], {0, 0}, {t, 0, 2.5}];Plot[Evaluate[{%, ref}//Flatten], {t, 0, 2.5}, IconizedObject[«plotOpts»]]Properties & Relations (7)
The length of the vector-relative orders is equal to the number of outputs:
asys = AffineStateSpaceModel[{{(-Sin[Subscript[x, 1]])*Subscript[x, 2],
(-Subscript[x, 2])*Subscript[x, 3], 0},
{{0, 0, 1, 0}, {0, 1, 0, 1 + Subscript[x, 2]},
{1, 0, 1 + Subscript[x, 2], 0}}}, {Subscript[x, 1],
Subscript[x, 2], Subscript[x, 3]},
{Subscript[, 1], Subscript[, 2], Subscript[, 3], Subscript[, 4]},
{Automatic, Automatic, Automatic}, Automatic, SamplingPeriod -> None];Use SystemsModelDimensions to get the number of outputs:
Length[SystemsModelVectorRelativeOrders[asys]] == Last[SystemsModelDimensions[asys]]For scalar systems with no zero dynamics, the vector-relative order equals the order:
asys = AffineStateSpaceModel[{{-Subscript[x, 2], -Subscript[x, 3],
(-Subscript[x, 1])*Subscript[x, 2]},
{{0}, {0}, {1 - Subscript[x, 1]}}, {Subscript[x, 1]}, {{0}}},
{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]},
{u}, {Automatic}, Automatic, SamplingPeriod -> None];Use SystemsModelOrder to get the order of the system:
SystemsModelVectorRelativeOrders[asys] == {SystemsModelOrder[asys]}If the vector-relative orders are finite, a linearizing feedback control can be computed:
SystemsModelVectorRelativeOrders[asys = AffineStateSpaceModel[{{-Subscript[x, 2], Subscript[x, 1]*
Subscript[x, 3], -Subscript[x, 1] + Subscript[x, 3]},
{{1, 0}, {0, 1}, {0, 1 + Subscript[x, 3]}}, {Subscript[x, 1]},
{{0, 0}}}, {Subscript[x, 1], Subscript[x, 2],
Subscript[x, 3]}, {Subscript[u, 1], Subscript[u, 2]},
{Automatic}, Automatic, SamplingPeriod -> None]]Use FeedbackLinearize to compute the linearizing feedback:
FeedbackLinearize[asys]If the sum of vector-relative orders is equal to the order, there are no zero dynamics:
asys = AffineStateSpaceModel[
{{Subscript[x, 3] + (Subscript[x, 2]*
(1 + Subscript[x, 3]^2))/(1 + Subscript[x, 3]),
Subscript[x, 3]/(1 + Subscript[x, 3]),
Subscript[x, 1]*Subscript[x, 2]},
{{2*Subscript[x, 2]*((1 + Subscript[x, 2])/
(1 + Subscript[x, 3]))}, {-(1 + Subscript[x, 2])/
(1 + Subscript[x, 3])}, {1}},
{Subscript[x, 1] + Subscript[x, 2]^2}, {{0}}},
{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]},
{u1}, {Automatic}, Automatic, SamplingPeriod -> None];Total[SystemsModelVectorRelativeOrders[asys]] == SystemsModelOrder[asys]FeedbackLinearize[asys, Automatic, "ZeroDynamics"]The relative orders give the lengths of the integrator chains of the feedback-linearized system:
asys = AffineStateSpaceModel[{{0, -Subscript[x, 2] - Subscript[x, 3],
Subscript[x, 2] + Subscript[x, 3]},
{{Subscript[x, 1], -Subscript[x, 2]},
{Subscript[x, 1], 0}, {-Subscript[x, 1],
Subscript[x, 2]}}, {Subscript[x, 1] + Subscript[x, 2] +
Subscript[x, 3], Subscript[x, 1] + Subscript[x, 3]},
{{0, 0}, {0, 0}}}, {Subscript[x, 1], Subscript[x, 2],
Subscript[x, 3]}, {Subscript[, 1], Subscript[, 2]}, {Automatic, Automatic},
Automatic, SamplingPeriod -> None];Output 1 has a single integrator and output 2 has a double integrator:
SystemsModelVectorRelativeOrders[asys]TransferFunctionModel[FeedbackLinearize[asys, Automatic, "LinearSystem"]]The vector-relative orders are invariant wrt a coordinate transform:
asys = AffineStateSpaceModel[{{3*Subscript[x, 2], Subscript[x, 1]*
Subscript[x, 2], -Subscript[x, 3]^3},
{{-1, 0}, {1 + Subscript[x, 2], 0}, {0, 1 + Subscript[x, 2]}},
{Subscript[x, 1] + Subscript[x, 2], Subscript[x, 3]},
{{0, 0}, {0, 0}}}, {Subscript[x, 1], Subscript[x, 2],
Subscript[x, 3]}, {Subscript[, 1], Subscript[, 2]}, {Automatic, Automatic},
Automatic, SamplingPeriod -> None];asys1 = StateSpaceTransform[asys, {{Subscript[x, 1] -> Subscript[z, 1] + Subscript[z, 3] Subscript[z, 2], Subscript[x, 2] -> Subscript[z, 2] - Subscript[z, 1], Subscript[x, 3] -> Subscript[z, 3]}, {Subscript[z, 1], Subscript[z, 2], Subscript[z, 3]}}];SystemsModelVectorRelativeOrders /@ {asys, asys1}The vector-relative orders correspond to the asymptotic orders of the transfer functions:
sys = TransferFunctionModel[{{{1, 2}, {1, 1}}, {{2 + ^3, 3 + ^3}, {1 + ^2, 2 + ^2}}}, ,
SamplingPeriod -> None, SystemsModelLabels -> None];SystemsModelVectorRelativeOrders[sys]Output 1 (first row) has asymptotic order 3, and output 2 (second row) has asymptotic order 2:
Series[sys[s], {s, ∞, 3}]//MatrixFormPossible Issues (3)
For the decoupling matrix to be invertible, the outputs must be independent:
SystemsModelVectorRelativeOrders[AffineStateSpaceModel[{{Subscript[x, 1], Subscript[x, 1]*
Subscript[x, 2]}, {{1 + Subscript[x, 2], 0}, {1, -1}},
{Subscript[x, 1], Subscript[x, 1]}, {{0, 0}, {0, 0}}},
{Subscript[x, 1], Subscript[x, 2]},
{Subscript[, 1], Subscript[, 2]}, {Automatic, Automatic}, Automatic, SamplingPeriod -> None]]There must be at least as many inputs as outputs:
SystemsModelVectorRelativeOrders[AffineStateSpaceModel[{{-Subscript[x, 2], Subscript[x, 1] +
Subscript[x, 2]}, {{1}, {1 + Subscript[x, 1]}},
{Subscript[x, 1], Subscript[x, 2]}, {{0}, {0}}},
{Subscript[x, 1], Subscript[x, 2]}, {Subscript[, 1]},
{Automatic, Automatic}, Automatic, SamplingPeriod -> None]]If an operating point is specified, the decoupling matrix is evaluated at that point:
SystemsModelVectorRelativeOrders[sys = AffineStateSpaceModel[{{-Subscript[x, 2], Subscript[x, 1] +
Subscript[x, 2]}, {{0}, {Subscript[x, 1]}},
{Subscript[x, 1]}, {{0}}}, {{Subscript[x, 1], 0},
{Subscript[x, 2], 0}}, {Subscript[u, 1]}, {Automatic}, Automatic,
SamplingPeriod -> None]]Although the system is feedback linearizable, there is a singularity at the operating point:
FeedbackLinearize[sys, Automatic, "FeedbackCompensator"]Related Guides
History
Text
Wolfram Research (2014), SystemsModelVectorRelativeOrders, Wolfram Language function, https://reference.wolfram.com/language/ref/SystemsModelVectorRelativeOrders.html.
CMS
Wolfram Language. 2014. "SystemsModelVectorRelativeOrders." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SystemsModelVectorRelativeOrders.html.
APA
Wolfram Language. (2014). SystemsModelVectorRelativeOrders. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SystemsModelVectorRelativeOrders.html
BibTeX
@misc{reference.wolfram_2026_systemsmodelvectorrelativeorders, author="Wolfram Research", title="{SystemsModelVectorRelativeOrders}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/SystemsModelVectorRelativeOrders.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_systemsmodelvectorrelativeorders, organization={Wolfram Research}, title={SystemsModelVectorRelativeOrders}, year={2014}, url={https://reference.wolfram.com/language/ref/SystemsModelVectorRelativeOrders.html}, note=[Accessed: 13-June-2026]}