dzp = DiscreteStateSpace.Conversion.toDiscreteZerosAndPolesMIMO(dss)
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.
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]
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;
Date | Author | Comment |
---|---|---|
2010-05-31 | Marcus Baur, DLR-RM | Realization |