.Modelica_LinearSystems2.StateSpace.Internal.invariantZeros2

Information

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 z that make the following matrix singular:

| A B | | I 0 |
| |  −  z* | |
| C D | | 0 0 |

where I is the identity matrix of the same size as A and 0 are zero matrices of appropriate dimensions.

Unlike to function StateSpace.Analysis.invariantZeros for general systems, it is assumed in StateSpace.Analysis.invariantZeros that the generalized system matrix [A, B; C, D] has upper Hessenberg form. Especially for SISO system this is achieved when A is of upper Hessenberg form and [1, n] matrix C is of form C = k*[0, 0, ..., 0, 1].

The advantage of this function in comparison to the general invariantZeros function is the lower computational effort because systems with arbitrary system functions are first transformed into an upper Hessenberg form system.

This function is used in fromStateSpace transformation functions which use Hessenberg form systems anyway.

Currently, there is the restriction that the number of inputs and the number of outputs must be identical. Other systems have to be treated like p*q SISO systems where p is the number of putputs and q the number of inputs of the MIMO system.

Interface

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

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