EE 105, Feedback Control Systems (Prof. Khan)
I. SIMILARITY TRANSFORMS
Consider the following system:
xk+1 =
2 1 0 1 0 0 3 0 1
| {z }
A
xk+
0 0 1
| {z }
B
uk. (1)
Problem 1
(a) Show that the controllability matrix is given by
C =
0 0 0 0 0 0 1 1 1
. (2)
Is the system controllable ?
We have C = [B AB A2B]. The rank is 1 so the system is not controllable.
(b) Is the system stabilizable ?
The eigenvalues of A are −0.41, 1, 2.41, which are distinct so the matrix of eigenvectors is invertible. Let V be the matrix of eigenvectors, then the similar system defined as xk = V zk has the following matrices,
A = Ve −1AV = D, B = Ve −1B. (3)
It can be verified that D is a diagonal matrix with 1, −0.41, 2.41. We now look at V−1B, which is given by:
1 0 0
. (4)
To address stabilizability, we look at the diagonal elements of D that correspond to 0s in V−1B. In this case, they are −0.41 and 2.41, also known as the ‘uncontrollable modes of the system’. Since one of the uncontrollable mode is unstable (absolute value greater than one, i.e., lies outside the unit circle), the system is not stabilizable.
Problem 2
Let rank(C) = nc. We consider a different state transformation by choosing a matrix V1 such that V1 contains nc linearly independent columns from C. The rest, n − nc, columns in V1 are chosen such that they are linearly independent of the already chosen columns.
In this example, nc= 1, so we choose ncindependent columns from C; obviously this column is [0 0 1]T(, c1). Now we choose n − nc = 3 − 1 = 2 (linearly independent) columns that are also linearly independent of c1. Our transformation matrix becomes
V1 =
0 0 1 0 1 0 1 0 0
, (5)
where it is trivial to note that the last two columns are linearly independent (among themselves) and also with c1 (the first column in V1).
(a) Compute the similar system given by xk= V1zk. The similar system has the following matrices:
A = V1−1AV1 =
1 0 3 0 0 1 0 1 2
, B = V1−1B =
1 0 0
. (6)
(b) Is controllability obvious ?
Solution: The above transformation always results into the following structure.
A = V1−1AV1
"
Anc×nc Anc×(n−nc)
0(n−nc)×nc A(n−nc)×(n−nc)
#
, B = V1−1B =
1
0(nc−1)×1
0(n−nc)×1
, (7) which can be thought of as two coupled subsystems such that the bottom subsystem (with A(n−nc)×(n−nc)) does not receive anything from the top subsystem (with Anc×nc; and the input to the top subsystem cannot reach the bottom) and does not have any input. Hence, the bottom system is not controllable.
In particular, if we split the transformed state, zk, into znkc×1 and z(n−nk c)×1, then from the above equation we have the following two subsystems.
znk+1c×1 = Anc×ncznkc×1+ Anc×(n−nc)z(n−nk c)×1+
"
1
0(nc−1)×1
#
uk, (8)
z(n−nk+1 c)×1 = A(n−nc)×(n−nc)z(n−nk c)×1+ 0uk. (9) Clearly the bottom subsystem is uncontrollable.
Problem 3
If a system is controllable, then it can be transformed into what is called a controllable canonical form. To get this transformation, we compute the controllability matrix, C, and define p to be the last row of C−1. Now we construct the transformation matrix as
V2−1 =
p pA
... pAn−1
. (10)
The transformation is given by1 x = V2xc. (For now we are assuming single input, m = 1.) (a) Compute the similar system given by xk = V2xc,k with a different input matrix, b = [1 0 0]T.
We select p as the last row of C−1. In this case, p = [0 − 1 13]. The transformation matrix, V2, is given by
V2 =
0 −1 13 0 0 13 1 0 13
−1
(11)
The similar system has the following matrices:
A = Ve 2−1AV2 =
0 1 0
0 0 1
−1 −1 3
, B = Ve 2−1B =
0 0 ... 1
. (12)
The above transformation assumes the existence of C−1. (This is how we choose p). So the controllability is already assumed. However, the particular structure of the eA and eB matrices is very helpful in designing controller gains etc. The controllability should also be obvious from structural (graphical) control, i.e., system digraphs (directed graphs). The (n − 1) × (n − 1) matrix of the off-diagonal 1’s in eA is called companion form.
(b) There is a very nice structure in this canonical form, can you spot ? (Hint: Notice the last row of V2−1AV2 and compare with the coefficients of det(zI − A).)
The characteristic polynomial of A is
det(zI − A) = z3− 3z2+ z + 1 , z3+ a1z2+ a2z + a3. (13) It is clear that the coefficients of the characteristic polynomial appears with a negative sign in the controllable canonical form. It can be shown that control gain design reduces to matching the coefficients of the desired polynomial (coming from desired eigenvalues) to the last row of the canonical system matrix after putting uk= [k1 k2 . . . kn]
| {z }
K
xk.
1Notice that the Eq. (4) involves an inverse and the transformation does not.
(c) Compare the three transformations explored.
See comments within.
II. CONTROLLABILITY
Consider discrete-time LTI systems with system and input matrices given by:
(i)
A =
2 1 1 1 1 1 3 0 1
, b =
0 0 1
; (14)
(ii)
A =
1 1 0 1 1 1 0 1 1
, b =
0 1 0
; (15)
(iii)
A =
2 0 0 1 1 0 0 1 3
, B =
0 0 1 0 0 1
. (16)
Problem 1 Find if the above systems are controllable.
(i) rank(C) = 3, the system is controllable.
(ii) rank(C) = 2, the system is not controllable.
(iii) rank(C) = 2, the system is not controllable.
Problem 2 For the systems that are not controllable, are they stabilizable ?
System (ii) is not controllable. To check for stabilizability, we perform the eigen transforma- tion. The eigenvalues of A are −0.4142, 1, 2.4142. We note that V−1B has 0 as the second element corresponding to the eigenvalue of 1. This system is not stablizable as the initial conditions do not decay to zero; however since the i.c. are not unbounded, this special case is called a neutrally stable system.
System (iii) is not controllable. To check for stabilizability, we perform the eigen transfor- mation. The eigenvalues of A are trivially found as 2, 1, 3. We note that V−1B has 0 row for eigenvalue 2, so the system is not stabilizable.
III. CONTROLGAIN
Consider the following system:
xk+1 =
2 1 0 1 0 0 3 0 1
xk+
1 0 0
uk. (17)
Problem 1 Use Ackermann’s formula to compute the gain K such that the closed-loop eigenvalues lie at:
(i) 0, 0, 0;
K = [0 0 1]C−1A3 = [3 1 13]
(ii) 0.5, 0.5 ± j0.01;
Desired closed-loop pole locations result into the following polynomial:
z3− 1.5z2+ 0.7501z − 0.125. (18)
Compute γc(A) = A3− 1.5A2 + 0.7501A − 0.125I3 and use Ackermann’s formula:
K = [0 0 1]C−1γcA = [1.5 1.125 0.0417]
(iii) 0, 0.9, −0.9. Desired closed-loop pole locations result into the following polynomial:
z3 − 0.81z. (19)
Compute γc(A) = A3− 0.81A and use Ackermann’s formula:
K = h
0 0 1 i
C−1γcA,
= h
3 1 0.0633 i .
In each case, plot the system evolution for k = 0, 1, . . . , 20 and x(0) = [2 0 − 3]T. Verify that in the first case above the system goes to 0 in n = 3 steps.
Here is the MATLAB code followed by the plot.
clear clc close all
A = [2 1 0; 1 0 0; 3 0 1]
B = [1; 0; 0]
C = ctrb(A,B);
P1 = [0 0 0];
K1 = acker(A,B,P1);
P2 = [0.5 0.5+0.01i 0.5-0.01i];
K2 = acker(A,B,P2);
P3 = [0 0.9 -0.9];
K3 = acker(A,B,P3);
z1 = poly(P1);
z2 = poly(P2);
z3 = poly(P3);
g1 = Aˆ3 + z1(2)*Aˆ2 + z1(3)*A + z1(4)*eye(3);
g2 = Aˆ3 + z2(2)*Aˆ2 + z2(3)*A + z2(4)*eye(3);
g3 = Aˆ3 + z3(2)*Aˆ2 + z3(3)*A + z3(4)*eye(3);
K1a = [0 0 1]*inv(C)*g1;
K2a = [0 0 1]*inv(C)*g2;
K3a = [0 0 1]*inv(C)*g3;
x1(:,1) = [2;0;-3];
x2(:,1) = [2;0;-3];
x3(:,1) = [2;0;-3];
for cnt1 = 1:19
x1(:,cnt1+1) = A*x1(:,cnt1) + B*(-K1)*x1(:,cnt1);
x2(:,cnt1+1) = A*x2(:,cnt1) + B*(-K2)*x2(:,cnt1);
x3(:,cnt1+1) = A*x3(:,cnt1) + B*(-K3)*x3(:,cnt1);
end
subplot(331), stem(x1(1,:)), s1 = legend('$x_{1,k}$');
ylabel('$\beta_1=0, \beta_2=0, \beta_3=0$', 'interp', 'latex') subplot(332), stem(x1(2,:)), s2 = legend('$x_{2,k}$');
subplot(333), stem(x1(3,:)), s3 = legend('$x_{3,k}$');
set(s1, 'interp', 'latex'), set(s2, 'interp', 'latex'), set(s3, 'interp', 'latex')
subplot(334), stem(x2(1,:)), s1 = legend('$x_{1,k}$');
ylabel('$\beta_1=0.5, \beta_{2,3}=0.5\pm0.01j$', 'interp', 'latex') subplot(335), stem(x2(2,:)), s2 = legend('$x_{2,k}$');
subplot(336), stem(x2(3,:)), s3 = legend('$x_{3,k}$');
set(s1, 'interp', 'latex'), set(s2, 'interp', 'latex'), set(s3, 'interp', 'latex')
subplot(337), stem(x3(1,:)), s1 = legend('$x_{1,k}$');
ylabel('$\beta_1=0, \beta_{2,3}=\pm0.9$', 'interp', 'latex') subplot(338), stem(x3(2,:)), s2 = legend('$x_{2,k}$');
subplot(339), stem(x3(3,:)), s3 = legend('$x_{3,k}$');
set(s1, 'interp', 'latex'), set(s2, 'interp', 'latex'), set(s3, 'interp', 'latex')
0 5 10 15 20
-1=0;-2=0;-3=0 -2 -1 0 1 2
x1;k
0 5 10 15 20
-2 -1 0 1 2
x2;k
0 5 10 15 20
-3 -2 -1 0 1 2 3
x3;k
0 5 10 15 20
-1=0:5;-2;3=0:5'0:01j -0.5
0 0.5 1 1.5 2
x1;k
0 5 10 15 20
-0.5 0 0.5 1 1.5 2
x2;k
0 5 10 15 20
-4 -2 0 2 4 6 8
x3;k
0 5 10 15 20
-1=0;-2;3='0:9 -2 -1 0 1 2
x1;k
0 5 10 15 20
-2 -1 0 1 2
x2;k
0 5 10 15 20
-3 -2 -1 0 1 2 3
x3;k