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 |