Universidade Federal de Alagoas
Glauber Rodrigues Leite
Sistemas de Controle 2 - AB1
Questão 1
Considerando a função de transferência:
Podemos separar denominador do numerador no diagrama de blocos de forma que
Assim
Analogamente
Resultando no seguinte diagrama:
1
Tomando e , construimos a representação do sistema em espaço de estados da seguinte
maneira:
A = [0, 1, 0; 0, 0, 1; -5.008, -25.1026, -5.03247]
A = 3×3
0 1.0000 0
0 0 1.0000
-5.0080 -25.1026 -5.0325
B = [0, 0, 1]'
B = 3×1
0
0
1
C = [5.008, 25.04, 0]
C = 1×3
5.0080 25.0400 0
Para verificar se o sistema é controlável, calculamos a matriz de controlabilidade e seu rank (posto):
Contr = [B, A*B, (A^2)*B, (A^3)*B]
Contr = 3×4
0 0 1.0000 -5.0325
0 1.0000 -5.0325 0.2232
1.0000 -5.0325 0.2232 120.1971
disp(['Rank = ', num2str(rank(Contr))]);
2
Rank = 3
Como a matriz de controlabilidade é rank cheio, concluimos que o sistema é controlável
De forma análoga, para checar se o sistema é observável, construimos a matriz de observabilidade e
calculamos seu posto:
Obser = [C; C*A; C*(A^2)]
Obser = 3×3
5.0080 25.0400 0
0 5.0080 25.0400
-125.4003 -628.5691 -121.0050
disp(['Rank = ', num2str(rank(Obser))]);
Rank = 3
Como a matriz de observabilidade também é rank cheio, concluimoAs que o sistema é observável
Questão 2
Para , podemos considerar , e .
•
•
•
Na representação de espaço de estados, temos:
A = [0, 1, 0; 0, 0, 1; -6, -11, -6];
B = [0,0,6]';
C = [1, 0, 0];
Para transformar a representação em um sistema diagonal, precisamos encontrar os autovalores da matriz
A. Para isso, podemos partir da equação característica:
syms s
det(s*eye(3) - A)
3
ans =
Encontrando as raízes que serão os autovalores :
roots([1, 6, 11, 6])
ans = 3×1
-3.0000
-2.0000
-1.0000
Com isso, construimos a matriz
P = [1, 1, 1; -1, -2, -3; 1, 4, 9];
Agora fazemos de forma que
A_n = (P^-1) * A * P
A_n = 3×3
-1.0000 0.0000 -0.0000
0.0000 -2.0000 0.0000
-0.0000 -0.0000 -3.0000
B_n = (P^-1) * B
B_n = 3×1
3.0000
-6.0000
3.0000
C_n = C * P
C_n = 1×3
1 1 1
ou seja:
Para descobrir a função de transferência, fazemos . Sabemos que:
4
Calculamos
syms s
C_n * pinv([s+1, 0, 0; 0, s+2, 0; 0, 0, s+3]) * B_n
ans =
Ou seja, a função de transferência será:
Questão 3
A equação característica de um sistema representado por espaço de estados é dada por .
Para o sistema
temos
syms omega_0 s;
A = [0, 1; -omega_0^2, 1];
B = [0, 1]';
C = [1, 0];
det(s*eye(2) - A)
ans =
Mas nossa equação caracterísitica desejada é . Portanto, devemos aplicar
uma lei de controle para tentar ajustar a equação dos sistema à equação desejada. Daí
syms k1 k2;
K = [k1, k2];
5
det(s*eye(2) - (A - B*K))
ans =
Comparando com a equação característica desejada, calculamos K que trará os pólos do sistema
para
eqn1 = k1 + omega_0^2 == 4*omega_0^2;
k1 = solve(eqn1, k1)
k1 =
eqn2 = k2 - 1 == 4 * omega_0;
k2 = solve(eqn2, k2)
k2 =
Para o caso particular em que , e :
omega = 1;
k1 = subs(k1, omega);
k2 = subs(k2, omega);
K = double([k1, k2])
K = 1×2
3 5
A = double(subs(A, omega))
A = 2×2
0 1
-1 1
Podemos, então, calcular a resposta ao impulso do sistema controlado:
H_c = ss(A - B*K, B, C, 0)
H_c =
A =
x1 x2
x1 0 1
x2 -4 -4
B =
u1
x1 0
x2 1
C =
x1 x2
y1 1 0
6
D =
u1
y1 0
Continuous-time state-space model.
t = 0:.1:5;
y = initial(H_c, [1, 0], t);
plot(t, y);
rlocus(H_c)
7
Questão 4
(Rodar a seção da questão 3 antes de rodar esta seção)
Sendo nosso sistema controlado descrito por
A = [0, 1; -4, -4];
B = [0; 1];
C = [1, 0];
Primeiramente checamos se o sistema é observável:
Ob = [C; C*A];
disp(['Rank = ', num2str(rank(Ob))]);
Rank = 2
Por ter rank cheio, o sistema é dito observável.
Temos a seguinte equação característica:
8
com dois pólos reais em -2.
A equação característica desejada, com pólos cinco vezes mais rápidos, é dada por:
Para projetar o observador, precisamos descobrir a matriz L de forma que:
syms s l1 l2
L = [l1; l2];
det(s*eye(2) - (A - L*C))
ans =
•
•
l1 = 20 - 4;
l2 = 100 - 4 - 4*l1;
L = [l1; l2]
L = 2×1
16
32
Nossa nova representação de espaço de estados será
H_o = ss(A - L*C, B, C, 0)
H_o =
A =
x1 x2
x1 -16 1
x2 -36 -4
B =
u1
x1 0
x2 1
C =
x1 x2
y1 1 0
D =
u1
y1 0
9
Continuous-time state-space model.
t = 0:.1:5;
y = initial(H_o, [1, 0], t);
plot(t, y);
Com pólos em
eig(A - L*C)
ans = 2×1
-10.0000
-10.0000
Questão 5
O sistema descrito pela função de transferência é representado por espaços de estados na
forma:
A = -3;
B = 1;
10
C = 1;
D = 0;
Aplicando uma lei de controle para realimentação de estado completo K, temos
Adicionando a ação integral, o sistema fica:
com equação característica
syms k k_e s
det(s*eye(2) - [A - B * k, B * k_e; -C, 0])
ans =
A equação característica desejada, com dois pólos reais em -5 é
Então e , o que resulta no seguinte sistema:
k = 7;
k_e = 25;
A = [A - B * k, B * k_e; -C, 0];
B = [0; 1];
C = [1, 0];
H = ss(A, B, C, D);
step(H)
11
12