Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
As ststed earlier, there are an in…nite number of possible state space realiza-
tions (models) for any given system. Some of these representations (canonical
forms) are more useful than others, they are:
where u is the input and y is the output. Taking the Laplace transform
of both sides we get:
Y (s)(sn + a1 sn 1
+ : : : + an 1 s + an ) = U (s)(b0 sn + b1 sn 1
+ : : : + bn 1 s + bn )
Y (s) b 0 sn + b 1 sn 1 + : : : + b n 1 s + b n
= n (1)
U (s) s + a1 s n 1 + : : : + an 1 s + an
We will now consider the various canonical state space forms for a system
with the transfer function of equantion 1.
1
1.1 Controllable Canonical Form
The controllable canonical form has the following layout:
2 3 2 32 3 2 3
x_ 1 0 1 0 0 x1 0
6 x_ 2 7 6 0 0 1 0 7 6 x2 7 607
7 6 7 6
6 7 6 7
6 .. 7 6 .. .
. .
. . . .
. 7 6 .. 7 6 .. 7
6 . 7 = 6 . . . . . 7 6 7 + 6 7u
6 7 6 7 6 . 7 6.7
4x_ n 1 5 4 0 0 0 0 1 5 4xn 1 5 405
x_ n an an 1 an 2 a1 xn 1
2 3
x1
6 x2 7
6 7
6 .. 7
y = b n a b
n 0 b n 1 a b
n 1 0 b 1 a 1 0 6 . 7 + b0 u
b
6 7
4xn 1 5
xn
x_ 1 (t) 0 1 x1 (t) 0
= + u(t)
x_ 2 (t) 2 3 x2 (t) 1
x1 (t)
y(t) = 3 1
x2 (t)
Remark 2 Matlab (or Octave) uses the controllable canonical form by de-
fault when converting from a transfer function representation.
>>num = [1 3];
>>den = [1 3 2];
>>sys = tf2ss(num,den) %create an LTI SS object from transfer function
2
>>a =
0 1
-2 -3
b =
0
1
c =
3 1
d = 0
Note that the A matrix for observable canonical form is the transpose of
the A matrix for controllable canonical form.
3
1; b2 = 3:
x_ 1 (t) 0 2 x1 (t) 3
= + u(t)
x_ 2 (t) 1 3 x2 (t) 1
x1 (t)
y(t) = 0 1
x2 (t)
>>csys = canon(sys,’companion’)
>>a =
0 -2
1 -3
b =
3
1
c =
0 1
d = 0
4
Then the diagonal canonical form is given by
2 3 2 32 3 2 3
x_ 1 p1 0 x1 1
6 x_ 2 7 6 p 7 6 7 6 7
6 7 6 2 7 6 2 7 617
x
6 .. 7 = 6 .. 7 6 .. 7 + 6 .. 7 u
4.5 4 . 5 4 . 5 4.5
x_ n 0 pn xn 1
2 3
x1
6 x2 7
6 7
y = c1 c2 cn 6 .. 7 + b0 u
4.5
xn
x_ 1 (t) 1 0 x1 (t) 1
= + u(t)
x_ 2 (t) 0 2 x2 (t) 1
x1 (t)
y(t) = 2 1
x2 (t)
>>csys = canon(sys,’modal’)
>>a =
-1 0
0 -2
b =
1
1
c =
5
2 -1
d = 0