functiontoDiscreteStateSpace
Convert a DiscreteTransferFunction into a DiscreteStateSpace representation
Information
Syntax
dss = DiscreteTransferFunction.ConversiontoDiscreteStateSpace(dtf)
Description
Transforms a discrete transfer function into discrete state space representation. There are an infinite number of possible realizations. Here, the transfer function is transformed into controller canonical form, i.e. the transfer function
b4*z^4 + b3*z^3 + b2*z^2 + b1*z + b0
y = -------------------------------------- * u
a4*z^4 + a3*z^3 + a2*z^2 + a1*z + a0
is transformed into:
x_k+1 = A*x_k + B*u_k;
y_k = C*x_k + D*u_k;
with
A = [ 0 , 1 , 0 , 0;
0 , 0 , 1 , 0:
0 , 0 , 0 , 1;
-a0/a4, -a1/a4, -a2/a4, -a3/a4];
B = [ 0;
0;
0;
1/a4];
C = [b0-b4*a0/a4, b1-b4*a1/a4, b2-b4*a2/a4, b3-b4*a3/a4];
D = [b4/a4];
Example
DiscreteTransferFunction z = Modelica_LinearSystems2.DiscreteTransferFunction.z(); Modelica_LinearSystems2.DiscreteTransferFunction dtf=(z+1)/(z^3 + z^2 + z + 1); algorithm dss := Modelica_LinearSystems2.DiscreteTransferFunction.Conversion.toDiscreteStateSpace(dtf); // ss.A = [0, 1, 0; 0, 0, 1; -1, -1, -1], // ss.B = [0; 0; 1], // ss.C = [1, 1, 0], // ss.D = [0], // ss.B2 = [0; 0; 0],
Inputs
| Type | Name | Default | Description |
|---|---|---|---|
| DiscreteTransferFunction | dtf | discrete transfer function of a system |
Outputs
| Type | Name | Default | Description |
|---|---|---|---|
| DiscreteStateSpace | dss | Discrete state space record |