zeros = StateSpace.Analysis.invariantZeros(ss)
Computes the invariant zeros of a system in state space form:
der(x) = A*x + B*u y = C*x + D*u
The invariant zeros of this system are defined as the variables s that make the Rosenbrock matrix of the system
| sI-A -B | | | | C D |
singular.
This function applies the algorithm described in [1] where the system (A, B, C, D) is reduced to a new system (Ar, Br Cr, Dr) with the same zeros and with Dr of full rank.
Modelica_LinearSystems2.StateSpace ss=Modelica_LinearSystems2.StateSpace( A=[1, 1, 1;0, 1, 1;0,0,1], B=[1;0;1], C=[0,1,1], D=[0]); Complex zeros[:]; algorithm zeros := Modelica_LinearSystems2.StateSpace.Analysis.invariantZeros(ss); // zeros = {1, 0}
encapsulated function invariantZeros import Modelica; import MatricesMSL = Modelica.Math.Matrices; import Complex; import Modelica_LinearSystems2.StateSpace; import Modelica_LinearSystems2; import Modelica_LinearSystems2.Math.Matrices; import Modelica_LinearSystems2.WorkInProgress; input StateSpace ss "Linear system in state space form"; output Complex Zeros[:] "Finite, invariant zeros of ss; size(Zeros,1) <= size(ss.A,1)"; end invariantZeros;
Date | Author | Comment |
---|---|---|
2010-05-31 | Marcus Baur, DLR-RM | Realization |