.Modelica_LinearSystems2.StateSpace.Analysis.invariantZeros

Information

Syntax

zeros = StateSpace.Analysis.invariantZeros(ss)

Description

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, whereby I is the identity matrix of the same size as A.

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.

Example

  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}

References

 [1] Emami-Naeini, A. and Van Dooren, P. (1982):
Computation of Zeros of Linear Multivariable Systems. Automatica, 18, pp. 415-430.
 

Interface

encapsulated function invariantZeros
  import Modelica;
  import MatricesMSL = Modelica.Math.Matrices;
  import Modelica_LinearSystems2.StateSpace;
  import Modelica_LinearSystems2;
  import Modelica_LinearSystems2.Math.Matrices;
  import Complex;
  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;

Revisions

Date Author Comment
2010-05-31 Marcus Baur, DLR-RM Realization

Generated at 2024-12-26T19:25:54Z by OpenModelicaOpenModelica 1.24.3 using GenerateDoc.mos