dtf = DiscreteStateSpace.Conversion.toDiscreteTransferFunctionMIMO(dss)
Computes a matrix of DiscreteTransferFunction records
n(z) b0 + b1*z + ... + bn*z^n
dtf = -------- = --------------------------
d(z) a0 + a1*z + ... + an*z^n
with repetitive application of Conversion.toDiscreteTransferFunction
Modelica_LinearSystems2.DiscreteStateSpace dss=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
dtf:=Modelica_LinearSystems2.DiscreteStateSpace.Conversion.toDiscreteZerosAndPoles(dss);
// dtf = [(1*z^2 - 1.55531*z + 0.61012)/(z^2 - 1.55955*z + 0.606531)
Ts = 0.1
method =StepExact,
0.0906346/(z - 0.818731)
Ts = 0.1
method =StepExact;
(0.0042407*z + 0.00358958)/(z^2 - 1.55955*z + 0.606531)
Ts = 0.1
method =StepExact,
(1*z^2 - 1.53777*z + 0.580896)/(z^2 - 1.72357*z + 0.740818)
Ts = 0.1
method =StepExact]
function toDiscreteTransferFunctionMIMO import Modelica_LinearSystems2; import Modelica; import Modelica_LinearSystems2.DiscreteTransferFunction; import Modelica_LinearSystems2.DiscreteStateSpace; import Modelica_LinearSystems2.DiscreteZerosAndPoles; input DiscreteStateSpace dss "Discrete state space object"; output DiscreteTransferFunction dtf[size(dss.C, 1), size(dss.B, 2)] "Matrix of discrete transfer function objects"; end toDiscreteTransferFunctionMIMO;
| Date | Author | Comment |
|---|---|---|
| 2010-05-31 | Marcus Baur, DLR-RM | Realization |