.Modelica_LinearSystems2.StateSpace.Transformation.toObservabilityForm

Information

Syntax

tss = StateSpace.Transformation.toObservabilityForm(ss)

Description

This function computes the observability form of a SISO state space system, i.e.

tss:
der(z) = inv(T)*A*T*z + inv(T)*B*u
    y  = C*inv(T)*z + D*u

with

T = [C; C*A; ...; C*A^(n-1)]

is the observability matrix of the original state space system. In comparison to the corresponding transfer function

        b0 + b1*s + ... + bn*s^n
G(s) = --------------------------
        a0 + a1*s + ... + an*s^n

the canonical observability form is

    | 0   0   ...   0   -a0   |        | b0   - a0*bn   |
    | 1   0   ...   0   -a1   |        | b1   - a1*bn   |
A = | 0   1   ...   0   -a2   |,   B = |     ...        |
    |... ...  ...  ...  -a3   |        | bn-2 - an-2*bn |
    | 0  ...  ...   1   -an-1 |        | bn-1 - an-1*bn |

C = [0, 0, ..., 1],                D = [bn]

Matrix T has to be invertible, i.e. the system has to be observable. The transformed system has the same eigenvalues.

Example

  Modelica_LinearSystems2.StateSpace ss=Modelica_LinearSystems2.StateSpace(
    A=[-1, 1; 1, -2],
    B=[1; 0],
    C=[1, 1],
    D=[2]);

algorithm
  tss:=Modelica_LinearSystems2.StateSpace.Transformation.toObservabilityForm(ss);
//  tss=StateSpace(
      A=[0, -1; 1, -3],
      B=[3; 1],
      C=[0, 1],
      D=[2])

See also

toSimilarForm, toControllabilityForm

Interface

encapsulated function toObservabilityForm
  import Modelica;
  import Modelica_LinearSystems2.StateSpace;
  input StateSpace ss "State space system";
  output StateSpace tss(redeclare Real A[size(ss.A, 1), size(ss.A, 2)], redeclare Real B[size(ss.B, 1), size(ss.B, 2)], redeclare Real C[size(ss.C, 1), size(ss.C, 2)], redeclare Real D[size(ss.D, 1), size(ss.D, 2)]) "Transformed state space system";
end toObservabilityForm;

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