.Modelica_LinearSystems2.DiscreteStateSpace.Conversion.toDiscreteZerosAndPolesMIMO

Information

Syntax

dzp = DiscreteStateSpace.Conversion.toDiscreteZerosAndPolesMIMO(dss)

Description

Computes a matrix of DiscreteZerosAndPoles records

           product(q + n1[i]) * product(q^2 + n2[i,1]*q + n2[i,2])
dzp = k * ---------------------------------------------------------
           product(q + d1[i]) * product(q^2 + d2[i,1]*q + d2[i,2])

of a system from discrete state space representation, i.e. isolating the uncontrollable and unobservable parts and the eigenvalues and invariant zeros of the controllable and observable sub systems are calculated. The algorithm applies the method described in [1] for each single-input-output pair.

Example

  Modelica_LinearSystems2.DiscreteStateSpace ss=Modelica_LinearSystems2.DiscreteStateSpace(
    A = [0.9048, 0.0,    0.0;
         0.0,    0.8187, 0.0;
         0.0,    0.0,    0.7408]

    B = [0.0,      0.09516;
         0.0906,   0.09063;
        -0.0864,   0.0],

    C = [0.0, 1.0, 1.0;
         1.0, 1.0, 1.0],

    D = [1.0, 0.0;
         0.0, 1.0],

    B2 = [0.0,  0.0;
          0.0,  0.0;
          0.0,  0.0],
    Ts = 0.1);

algorithm
  dzp:=Modelica_LinearSystems2.DiscreteStateSpace.Conversion.toDiscreteZerosAndPolesMIMO(dss);

// dzp = [1*(q^2 - 1.55531*q + 0.61012)/( (q - 0.818731)*(q - 0.740818) )
    Ts = 0.1
    method =StepExact,
 0.0906346/(q - 0.818731)
    Ts = 0.1
    method =StepExact;
0.0042407*(q + 0.846461)/( (q - 0.818731)*(q - 0.740818) )
    Ts = 0.1
    method =StepExact,
 1*(q - 0.870319)*(q - 0.667452)/( (q - 0.904837)*(q - 0.818731) )
    Ts = 0.1
    method =StepExact]

References

 [1] Varga, A and Sima, V. (1981):
Numerically stable algorithm for transfer function matrix evaluation. Int. J. Control, Vol. 33, No. 6, pp. 1123-1133.
 

Interface

encapsulated function toDiscreteZerosAndPolesMIMO
  import Modelica;
  import Modelica_LinearSystems2;
  import Modelica_LinearSystems2.DiscreteZerosAndPoles;
  import Modelica_LinearSystems2.DiscreteStateSpace;
  input DiscreteStateSpace dss "Discrete state space object";
  output DiscreteZerosAndPoles dzp[size(dss.C, 1), size(dss.B, 2)] "Matrix of discrete zeros-and-poles objects";
end toDiscreteZerosAndPolesMIMO;

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