functiontoControllabilityForm
Perform the similarity transformation to the controllability canonical form
Information
Syntax
tss = StateSpace.Transformation.toControllabilityForm(ss)
Description
This function computes the controllability form of a SISO state space system, i.e.
tss:
der(z) = T*A*inv(T)*z + T*B*u
y = C*T*z + D*u
with
T = [B, A*B,..., A^(n-1)*B]
is the observability matrix of the original state space system. In comparison to the corresponding transfer function
b0 + b1*s + ... + bn*s^n
G(s) = --------------------------
a0 + a1*s + ... + an*s^n
the canonical observability form is
| 0 1 0 ... 0 0 | | 0 |
| 0 0 0 0 0 | | 0 |
A = | ... ... ... ... ... |, B = |...|
| 0 0 0 0 0 | | 0 |
| -a0 -a1 -a2 ... -an-1 | | 1 |
C = [ b0 - bn*a0, b1 - bn*a1, ..., bn-1 - bn*an-1], D = [bn]
Matrix T has to be invertible, i.e. the system has to be controllable. The transformed system has the same eigenvalues.
Example
Modelica_LinearSystems2.StateSpace ss=Modelica_LinearSystems2.StateSpace(
A=[-1, 1; 1, -2],
B=[1; 0],
C=[1, 1],
D=[2]);
algorithm
tss:=Modelica_LinearSystems2.StateSpace.Transformation.toControllabilityForm(ss);
// tss=StateSpace(
A=[0, 1; -1, -3],
B=[0; 1],
C=[3, 1],
D=[2])
See also
Inputs
| Type | Name | Default | Description |
|---|---|---|---|
| StateSpace | ss | State space system |
Outputs
| Type | Name | Default | Description |
|---|---|---|---|
| StateSpace | tss | Transformed state space system |
Revisions
| Date | Author | Comment |
|---|---|---|
| 2010-05-31 | Marcus Baur, DLR-RM | Realization |