functioninvariantZerosWithRealMatrix
Compute invariant zeros of linear state space system (system given by A,B,C,D matrices)
Information
Syntax
InvariantZeros = StateSpace.Internal.invariantZerosWithRealMatrix(A,B,C,D)
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.
The zeros are returned as a matrix InvariantZeros[:,2] where InvariantZeros[i,1] is the real and InvariantZeros[i,2] is the imaginary part of the complex zero i.
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.
Inputs
| Type | Name | Default | Description |
|---|---|---|---|
| Real[:,size(A, 1)] | A | State matrix of linear state space system | |
| Real[size(A, 1),:] | B | Input matrix of linear state space system | |
| Real[:,size(A, 1)] | C | Output matrix of linear state space system | |
| Real[size(C, 1),size(B, 2)] | D | Feedforward matrix of linear state space system |
Outputs
| Type | Name | Default | Description |
|---|---|---|---|
| Real[:,2] | InvariantZeros | Finite, invariant zeros of linear state space system; size(Zeros,1) <= size(A,1); Zeros[:,1]: Real part, Zeros[:,2]: Imaginary part |
Revisions
| Date | Author | Comment |
|---|---|---|
| 2010-05-31 | Marcus Baur, DLR-RM | Realization |