Buscar

LISTA - CONTROLE ROBUSTO

Prévia do material em texto

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA CELSO SUCKOW DA 
FONSECA 
Disciplina: Controle Robusto 
Discente: Gabriela Fernandes Mesquita Cunha 
 
LISTA 1 
1. Considere o seguinte sistema 
 
(a) O sistema é controlável? 
(b) O sistema é observável? 
(c) Obtenha a função de transferência deste sistema. 
(d) Mostre que os autovalores de A são os polos desta função de 
transferência. 
(e) Calcule os zeros 
(f) Obtenha a matriz exponencial eA. Dica: Use o comando expm() no 
Octave. 
Código feito no Software MATLAB. 
close all 
clear all 
clc 
 
% Gabriela Fernandes Mesquita Cunha 
 
% Controle Robusto 
 
% Lista 1 - Questão 1 
 
% Letras A e B 
 
A = [-1 0 3; 0 5 9; 1 1 -3] 
B = [-1; 0; 1] 
C = [5 10 -2] 
D = [0] 
 
c = [B A*B A^2 *B] % Matriz controlabilidade 
det (c) 
 
O = [C; C*A; C*A^2] % Matriz observabilidade 
det (O) 
 
% Letra C - Função de transferência 
 
[num,den] = ss2tf(A,B,C,D); 
g = tf(num,den) 
 
% Letra D e E - autovalores de A são polos da função de transferência 
 
[num,den] = ss2tf(A,B,C,D); 
g = tf(num,den) 
 
autovalor = eig(A) 
polos = pole(g) 
zeros = zero(g) 
 
% Letra F - matriz exponencial 
expm(A) 
 
Resposta: 
 
A = 
 
 -1 0 3 
 0 5 9 
 1 1 -3 
 
 
B = 
 
 -1 
 0 
 1 
 
 
C = 
 
 5 10 -2 
 
 
D = 
 
 0 
 
 
c = 
 
 -1 4 -16 
 0 9 9 
 1 -4 25 
 
 
ans = 
 
 -81 
 
 
O = 
 
 5 10 -2 
 -7 48 111 
 118 351 78 
 
 
ans = 
 
 -2.3403e+04 
 
 
g = 
 
 -7 s^2 + 125 s + 45 
 -------------------- 
 s^3 - s^2 - 29 s - 9 
 
Continuous-time transfer function. 
 
 
g = 
 
 -7 s^2 + 125 s + 45 
 -------------------- 
 s^3 - s^2 - 29 s - 9 
 
Continuous-time transfer function. 
 
 
autovalor = 
 
 -4.7294 
 -0.3148 
 6.0443 
 
 
polos = 
 
 6.0443 
 -4.7294 
 -0.3148 
 
 
zeros = 
 
 18.2102 
 -0.3530 
 
 
ans = 
 
 3.3439 18.3878 19.6920 
 55.1634 373.7084 390.0565 
 6.5640 43.3396 45.3793 
 
>> 
 
2. O que é uma função de transferência própria, estritamente própria e 
imprópria? 
A função própria é quando a ordem do polinômio do denominador é maior ou igual a 
ordem do numerador. A função estritamente própria é quando a ordem do polinômio do 
denominador é maior do que o numerador. A função imprópria é quando a ordem do 
polinômio do denominador é menor do que a do numerador. 
 
3. Mostre que para um sistema autônomo x˙ = Ax, caso exista P = P 0 > 0 tal que 
A0P + P A < 0, então os autovalores de A possuem parte real negativa. 
Considere V(x)>0, ∀ x ≠ 0 ↔ P<0. 
Agora devemos verificar que �̇�(x)<0, o que significa por diferencial de Gateaux que 
V’(x) = [ ∇𝑉(𝑥), 𝑥′]. 
Usando a fórmula de Leibniz, temos: 
�̇�(x) = �̇�’Px + x’P�̇� < 0 
= (Ax)’Px + x’P(Ax) < 0 
= x’(A’P+PA)x<0 ↔ A’P + PA < 0. 
4. Obtenha uma realização em espaço de estados da seguinte função de 
transferência. 
 
Código feito no Software MATLAB. 
clear all 
clc 
close all 
 
% Gabriela Fernandes Mesquita Cunha 
 
% Controle Robusto - Lista 1 
 
% Questão 4 
 
% Espaço de Estados da função de transferência 
 
numG = [1 1 0] 
denG = [1 -2 2 1] 
[A,B,C,D] = tf2ss(numG,denG) 
 
RESPOSTA 
numG = 
 1 1 0 
 
denG = 
 1 -2 2 1 
 
A = 
 2 -2 -1 
 1 0 0 
 0 1 0 
B = 
 1 
 0 
 0 
 
C = 
 1 1 0 
 
D = 
 0 
5. Utilizando o teorema de Lyapunov, elabore um código para verificar a 
estabilidade utilizando LMIs. Anexe seu código. 
 
Código feito no Software MATLAB. 
 
close all 
clear all 
clc 
 
% Gabriela Fernandes Mesquita Cunha 
 
% Controle Robusto 
 
% Lista 1 - Questão 5 
 
A = [-6 0 3; 0 -7 9; 1 1 -8]; 
B = [-1; 0; 1]; 
C = [5 10 -2]; 
% Matriz simétrica 
P = sdpvar(3,3) 
 
% Definir LMI 
T = A'*P+P*A; 
F = [P>=0; T<=0; trace(P)==1]; 
about = optimize(F)% Resolver LMI 
P = double (P) 
eig(P) 
 
Resposta: 
Linear matrix variable 3x3 (symmetric, real, 6 variables) 
Coeffiecient range: 1 to 1 
SeDuMi 1.3 by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003. 
Alg = 2: xz-corrector, theta = 0.250, beta = 0.500 
Put 1 free variables in a quadratic cone 
eqs m = 6, order n = 9, dim = 21, blocks = 4 
nnz(A) = 27 + 0, nnz(ADA) = 36, nnz(L) = 21 
 it : b*y gap delta rate t/tP* t/tD* feas cg cg prec 
 0 : 1.12E+02 0.000 
 1 : 0.00E+00 2.36E+01 0.000 0.2116 0.9000 0.9000 0.88 1 1 1.0E+01 
 2 : 0.00E+00 4.61E+00 0.000 0.1953 0.9000 0.9000 1.04 1 1 2.8E+00 
 3 : 0.00E+00 9.82E-02 0.000 0.0213 0.9900 0.9900 1.21 1 1 5.5E-01 
 4 : 0.00E+00 2.11E-06 0.000 0.0000 1.0000 1.0000 1.00 1 1 1.4E-05 
 5 : 0.00E+00 2.71E-13 0.000 0.0000 1.0000 1.0000 1.00 1 5 1.7E-12 
 
iter seconds digits c*x b*y 
 5 1.0 14.6 3.0799862182e-15 0.0000000000e+00 
|Ax-b| = 6.6e-14, [Ay-c]_+ = 2.3E-15, |x|= 1.3e+00, |y|= 6.3e-01 
 
Detailed timing (sec) 
 Pre IPM Post 
3.568E+00 4.026E+00 2.340E-01 
Max-norms: ||b||=0, ||c|| = 1, 
Cholesky |add|=0, |skip| = 2, ||L.L|| = 1. 
 
about = 
 
 yalmipversion: '20210331' 
 matlabversion: '9.0.0.341360 (R2016a)' 
 yalmiptime: 1.7061 
 solvertime: 7.9999 
 info: 'Successfully solved (SeDuMi-1.3)' 
 problem: 0 
 
 
P = 
 
 0.2921 0.0293 0.1007 
 0.0293 0.2875 0.1893 
 0.1007 0.1893 0.4204 
 
 
ans = 
 
 0.1438 
 0.2681 
 0.5881 
 
>> 
 
Portanto, o sistema é estável! 
 
6. Encontre o valor da norma H∞ do seguinte sistema via LMI. Anexe seu 
código e verifique sua resposta com o comando ’norm(sys,inf)’ no 
Octave/Matlab. 
 
Código feito no Software MATLAB. 
close all 
clear all 
clc 
 
% Gabriela Fernandes Mesquita Cunha 
 
% Controle Robusto 
 
% Lista 1 - Questão 6 
 
A = [-6 0 3; 0 -7 9; 1 1 -8] 
B = [-1 0 1] 
C = [5 10 -2] 
D = [0] 
 
P=sdpvar(3,3) 
 
% Teorema de Lyapunov 
T = A'*P + P*A 
F = [P >=0; T <=0; trace(P)>=1] 
 
about = optimize(F) 
P_f = double(P) 
 
eig(P_f) 
 
norm(A , inf) 
 
Resposta: 
 
A = 
 
 -6 0 3 
 0 -7 9 
 1 1 -8 
 
 
B = 
 
 -1 0 1 
 
 
C = 
 
 5 10 -2 
 
 
D = 
 
 0 
 
Linear matrix variable 3x3 (symmetric, real, 6 variables) 
Coeffiecient range: 1 to 1 
Linear matrix variable 3x3 (symmetric, real, 6 variables) 
Coeffiecient range: 1 to 18 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
| ID| Constraint| Coefficient range| 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
| #1| Matrix inequality 3x3| 1 to 1| 
| #2| Matrix inequality 3x3| 1 to 18| 
| #3| Element-wise inequality 1x1| 1 to 1| 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
SeDuMi 1.3 by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003. 
Alg = 2: xz-corrector, theta = 0.250, beta = 0.500 
eqs m = 6, order n = 8, dim = 20, blocks = 3 
nnz(A) = 27 + 0, nnz(ADA) = 36, nnz(L) = 21 
 it : b*y gap delta rate t/tP* t/tD* feas cg cg prec 
 0 : 1.21E+02 0.000 
 1 : 0.00E+00 3.20E+01 0.000 0.2641 0.9000 0.9000 0.11 1 1 2.0E+01 
 2 : 0.00E+00 5.83E+00 0.000 0.1824 0.9000 0.9000 0.70 1 1 3.8E+00 
 3 : 0.00E+00 1.48E-01 0.000 0.0254 0.9900 0.9900 1.02 1 1 9.5E-02 
 4 : 0.00E+00 5.35E-06 0.000 0.0000 1.0000 1.0000 1.00 1 1 3.4E-06 
 5 : 0.00E+00 5.86E-13 0.000 0.0000 1.0000 1.0000 1.00 1 1 3.8E-13 
 
iter seconds digits c*x b*y 
 5 0.3 3.9 -7.2271733344e-15 0.0000000000e+00 
|Ax-b| = 3.0e-13, [Ay-c]_+ = 0.0E+00, |x|= 7.9e-14, |y|= 1.6e+00 
 
Detailed timing (sec) 
 Pre IPM Post 
7.400E-02 2.570E-01 2.001E-02 
Max-norms: ||b||=0, ||c|| = 1, 
Cholesky |add|=0, |skip|= 0, ||L.L|| = 1. 
 
about = 
 
 yalmipversion: '20210331' 
 matlabversion: '9.0.0.341360 (R2016a)' 
 yalmiptime: 1.1277 
 solvertime: 0.3793 
 info: 'Successfully solved (SeDuMi-1.3)' 
 problem: 0 
 
 
P_f = 
 
 0.6930 0.1137 0.2983 
 0.1137 0.7359 0.5501 
 0.2983 0.5501 1.1062 
 
 
ans = 
 
 0.3180 
 0.6107 
 1.6064 
 
 
ans = 
 
 16 
 
>> 
 
7. Encontre o valor da norma H2 do seguinte sistema via LMI. Anexe seu 
código e verifique sua resposta com o comando ’norm(sys,2)’ no 
Octave/Matlab. 
 
Código feito no Software MATLAB. 
 
close all 
clear all 
clc 
 
% Gabriela Fernandes Mesquita Cunha 
 
% Controle Robusto 
 
% Lista 1 - Questão 7 
A = [-6 0 3; 0 -7 9; 1 1 -8] 
B = [-1 0 1] 
C = [5 10 -2] 
D = [0] 
 
P=sdpvar(3,3) 
 
%Teorema de Lyapunov 
T = A'*P + P*A 
F = [P >=0; T <=0; trace(P)>=1] 
about = optimize(F) 
P_f = double(P) 
 
eig(P_f) 
 
norm(A , 2) 
 
Resposta: 
 
A = 
 
 -6 0 3 
 0 -7 9 
 1 1 -8 
 
 
B = 
 
 -1 0 1 
 
 
C = 
 
 5 10 -2 
 
 
D = 
 
 0 
 
Linear matrix variable 3x3 (symmetric, real, 6 variables) 
Coeffiecient range: 1 to 1 
Linear matrix variable 3x3 (symmetric, real, 6 variables) 
Coeffiecient range: 1 to 18 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
| ID| Constraint| Coefficient range| 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
| #1| Matrix inequality 3x3| 1 to 1| 
| #2| Matrix inequality 3x3| 1 to 18| 
| #3| Element-wise inequality 1x1| 1 to 1| 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
SeDuMi 1.3 by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003. 
Alg = 2: xz-corrector, theta = 0.250, beta = 0.500 
eqs m = 6, order n = 8, dim = 20, blocks = 3 
nnz(A) = 27 + 0, nnz(ADA) = 36, nnz(L) = 21 
 it : b*y gap delta rate t/tP* t/tD* feas cg cg prec 
 0 : 1.21E+02 0.000 
 1 : 0.00E+00 3.20E+01 0.000 0.2641 0.9000 0.9000 0.11 1 1 2.0E+01 
 2 : 0.00E+00 5.83E+00 0.000 0.1824 0.9000 0.9000 0.70 1 1 3.8E+00 
 3 : 0.00E+00 1.48E-01 0.000 0.0254 0.9900 0.9900 1.02 1 1 9.5E-02 
 4 : 0.00E+00 5.35E-06 0.000 0.0000 1.0000 1.0000 1.00 1 1 3.4E-06 
 5 : 0.00E+00 5.86E-13 0.000 0.0000 1.0000 1.0000 1.00 1 1 3.8E-13 
 
iter seconds digits c*x b*y 
 5 0.4 3.9 -7.2271733344e-15 0.0000000000e+00 
|Ax-b| = 3.0e-13, [Ay-c]_+ = 0.0E+00, |x|= 7.9e-14, |y|= 1.6e+00 
 
Detailed timing (sec) 
 Pre IPM Post 
8.200E-02 2.380E-01 1.501E-02 
Max-norms: ||b||=0, ||c|| = 1, 
Cholesky |add|=0, |skip| = 0, ||L.L|| = 1. 
 
about = 
 
 yalmipversion: '20210331' 
 matlabversion: '9.0.0.341360 (R2016a)' 
 yalmiptime: 1.0341 
 solvertime: 0.3599 
 info: 'Successfully solved (SeDuMi-1.3)' 
 problem: 0 
 
 
P_f = 
 
 0.6930 0.1137 0.2983 
 0.1137 0.7359 0.5501 
 0.2983 0.5501 1.1062 
 
 
ans = 
 
 0.3180 
 0.6107 
 1.6064 
 
 
ans = 
 
 13.9137 
 
>> 
8. Considere uma matriz A dada, mostre que o problema 
 
é uma LMI. 
 
 
 
9. Considere o seguinte sistema SISO incerto 
 
com planta nominal dada por 
 
Considerando o seguinte modelo de incerteza multiplicativa 
 
tal que 
 
encontre Wm(s) para representação ∆ do sistema. 
 
Código feito no Software MATLAB. 
close all 
clear all 
clc 
 
% Gabriela Fernandes Mesquita Cunha 
 
% Controle Robusto 
 
% Lista 1 - Questão 9 
 
w = logspace(-1,3,50) 
K0 = 1; 
T0 = 1/15; 
 
s = tf('s') 
 
Gnom = K0/(T0*s+1) 
Gnom_frd = frd(Gnom,w) 
 
for K=0.8*K0:0.08*K0:1.2*K0 
 for T=0.7*T0:0.07*T0:1.3*T0 
 Gp = K/(T*s+1) 
 diff = (Gp/Gnom-1) 
 %Diagrama de bode em relação a magnitude 
 bodemag(Gp,'c--',w) 
 hold on 
 end 
end 
 
[freq,resp_db] = ginput(10); 
resp = db2mag(resp_db) 
 
sys = frd(resp,freq) 
 
Wa = fitmagfrd(sys,2) 
 
Wa= tf(Wa) % Função de transferêcia relativa a Wa 
print('Wa') 
 
Resposta: 
 
w = 
 
 1.0e+03 * 
 
 Columns 1 through 12 
 
 0.0001 0.0001 0.0001 0.0002 0.0002 0.0003 0.0003 0.0004 0.0004 
0.0005 0.0007 0.0008 
 
 Columns 13 through 24 
 
 0.0010 0.0012 0.0014 0.0017 0.0020 0.0024 0.0029 0.0036 0.0043 
0.0052 0.0063 0.0075 
 
 Columns 25 through 36 
 
 0.0091 0.0110 0.0133 0.0160 0.0193 0.0233 0.0281 0.0339 0.0409 
0.0494 0.0596 0.0720 
 
 Columns 37 through 48 
 
 0.0869 0.1048 0.1265 0.1526 0.1842 0.2223 0.2683 0.3237 0.3907 
0.4715 0.5690 0.6866 
 
 Columns 49 through 50 
 
 0.8286 1.0000 
 
 
s = 
 
 s 
 
Continuous-time transfer function. 
 
 
Gnom = 
 
 1 
 ------------- 
 0.06667 s + 1 
 
Continuous-time transfer function. 
 
 
Gnom_frd = 
 
 Frequency(rad/s) Response 
 ---------------- -------- 
 0.1000 1.000e+00 - 0.0067i 
 0.1207 9.999e-01 - 0.0080i 
 0.1456 9.999e-01 - 0.0097i 
 0.1758 9.999e-01 - 0.0117i 
 0.2121 9.998e-01 - 0.0141i 
 0.2560 9.997e-01 - 0.0171i 
 0.3089 9.996e-01 - 0.0206i 
 0.3728 9.994e-01 - 0.0248i 
 0.4498 9.991e-01 - 0.0300i 
 0.5429 9.987e-01 - 0.0361i 
 0.6551 9.981e-01 - 0.0436i 
 0.7906 9.972e-01 - 0.0526i 
 0.9541 9.960e-01 - 0.0634i 
 1.1514 9.941e-01 - 0.0763i 
 1.3895 9.915e-01 - 0.0918i 
 1.6768 9.877e-01 - 0.1104i 
 2.0236 9.821e-01 - 0.1325i 
 2.4421 9.742e-01 - 0.1586i 
 2.9471 9.628e-01 - 0.1892i 
 3.5565 9.468e-01 - 0.2245i 
 4.2919 9.243e-01 - 0.2645i 
 5.1795 8.935e-01 - 0.3085i 
 6.2506 8.520e-01 - 0.3551i 
 7.5431 7.982e-01 - 0.4014i 
 9.1030 7.308e-01 - 0.4435i 
 10.9854 6.509e-01 - 0.4767i 
 13.2571 5.614e-01 - 0.4962i 
 15.9986 4.678e-01 - 0.4990i 
 19.3070 3.764e-01 - 0.4845i 
 23.2995 2.930e-01 - 0.4551i 
 28.1177 2.215e-01 - 0.4153i 
 33.9322 1.635e-01 - 0.3698i 
 40.9492 1.183e-01 - 0.3230i 
 49.4171 8.436e-02 - 0.2779i 
 59.6362 5.950e-02 - 0.2366i 
 71.9686 4.163e-02 - 0.1997i 
 86.8511 2.896e-02 - 0.1677i 
 104.8113 2.007e-02 - 0.1402i 
 126.4855 1.387e-02 - 0.1169i 
 152.6418 9.564e-03 - 0.0973i 
 184.2070 6.587e-03 - 0.0809i 
 222.2996 4.532e-03 - 0.0672i 
 268.2696 3.117e-03 - 0.0557i 
 323.7458 2.142e-03 - 0.0462i 
 390.6940 1.472e-03 - 0.0383i 
 471.4866 1.011e-03 - 0.0318i 
 568.9866 6.945e-04 - 0.0263i 
 686.6488 4.770e-04 - 0.0218i 
 828.6428 3.276e-04 - 0.0181i 
 1000.0000 2.249e-04 - 0.0150i 
 
Continuous-time frequency response. 
 
 
Gp = 
 
 0.8 
 ------------- 
 0.04667 s + 1 
 
Continuous-time transfer function. 
 
 
diff = 
 
 0.006667 s - 0.2 
 ---------------- 
 0.04667 s + 1 
 
Continuous-time transfer function. 
 
 
Gp = 
 
 0.8 
 ------------- 
 0.05133 s + 1 
 
Continuous-time transfer function. 
 
 
diff = 
 
 0.002 s - 0.2 
 -------------0.05133 s + 1 
 
Continuous-time transfer function. 
 
 
Gp = 
 
 0.8 
 ----------- 
 0.056 s + 1 
 
Continuous-time transfer function. 
 
 
diff = 
 
 -0.002667 s - 0.2 
 ----------------- 
 0.056 s + 1 
 
Continuous-time transfer function. 
 
 
Gp = 
 
 0.8 
 ------------- 
 0.06067 s + 1 
 
Continuous-time transfer function. 
 
 
diff = 
 
 -0.007333 s - 0.2 
 ----------------- 
 0.06067 s + 1 
 
 
 
 
10. Verifique a estabilidade de malha fechada com realimentação unitária 
com a seguinte planta incerta 
 
em que 
 
Código feito no Software MATLAB. 
close all 
clear all 
clc 
 
% Gabriela Fernandes Mesquita Cunha 
 
% Controle Robusto 
 
% Lista 1 - Questão 10 
 
syms s 
syms delta0 
syms delta1 
syms delta2 
syms delta3 
syms delta4 
P_s = ((delta1*s)+delta0)/((s^2)*(delta4*(s^2)+(delta3*s)+delta2)); 
G_s = P_s/(1+P_s); 
F = simplify(G_s); 
w0 = 3; 
z0 = 4; 
w1 = -4; 
z1 = -2; 
w2 = 5; 
z2 = 6; 
w3 = -3; 
z3 = -1; 
w4 = 1; 
z4 = 2; 
K1 = w0+(w1*s)+(z2*s^2)+(z3*s^3)+(w4*s^4) 
K2 = w0+(z1*s)+(z2*s^2)+(w3*s^3)+(w4*s^4) 
K3 = z0+(w1*s)+(w2*s^2)+(z3*s^3)+(z4*s^4) 
K4 = z0+(z1*s)+(w2*s^2)+(w3*s^3)+(z4*s^4) 
s = tf('s'); 
K1 = w0+(w1*s)+(z2*s^2)+(z3*s^3)+(w4*s^4) 
G1 = 1/(K1) 
polosK1 = roots(G1.den{1}) % obter os polos. 
K2 = w0+(z1*s)+(z2*s^2)+(w3*s^3)+(w4*s^4) 
G2 = 1/(K2) 
polosK2 = roots(G2.den{1}) % obter os polos. 
K3 = z0+(w1*s)+(w2*s^2)+(z3*s^3)+(z4*s^4) 
G3 = 1/(K3) 
polosK3 = roots(G3.den{1}) % obter os polos. 
K4 = z0+(z1*s)+(w2*s^2)+(w3*s^3)+(z4*s^4) 
G4 = 1/(K4) 
polosK4 = roots(G4.den{1}) % obter os polos. 
 
Resposta: 
 
K1 = 
 
s^4 - s^3 + 6*s^2 - 4*s + 3 
 
 
K2 = 
 
s^4 - 3*s^3 + 6*s^2 - 2*s + 3 
 
 
K3 = 
 
2*s^4 - s^3 + 5*s^2 - 4*s + 4 
 
 
K4 = 
 
2*s^4 - 3*s^3 + 5*s^2 - 2*s + 4 
 
 
K1 = 
 
 s^4 - s^3 + 6 s^2 - 4 s + 3 
 
Continuous-time transfer function. 
 
 
G1 = 
 
 1 
 --------------------------- 
 s^4 - s^3 + 6 s^2 - 4 s + 3 
 
Continuous-time transfer function. 
 
 
polosK1 = 
 
 0.1322 + 2.2836i 
 0.1322 - 2.2836i 
 0.3678 + 0.6619i 
 0.3678 - 0.6619i 
 
 
K2 = 
 
 s^4 - 3 s^3 + 6 s^2 - 2 s + 3 
 
Continuous-time transfer function. 
 
 
G2 = 
 
 1 
 ----------------------------- 
 s^4 - 3 s^3 + 6 s^2 - 2 s + 3 
 
Continuous-time transfer function. 
 
 
polosK2 = 
 
 1.4695 + 1.7578i 
 1.4695 - 1.7578i 
 0.0305 + 0.7554i 
 0.0305 - 0.7554i 
 
 
K3 = 
 
 2 s^4 - s^3 + 5 s^2 - 4 s + 4 
 
Continuous-time transfer function. 
 
 
G3 = 
 
 1 
 ----------------------------- 
 2 s^4 - s^3 + 5 s^2 - 4 s + 4 
 
Continuous-time transfer function. 
 
 
polosK3 = 
 
 -0.3012 + 1.4834i 
 -0.3012 - 1.4834i 
 0.5512 + 0.7544i 
 0.5512 - 0.7544i 
 
 
K4 = 
 
 2 s^4 - 3 s^3 + 5 s^2 - 2 s + 4 
 
Continuous-time transfer function. 
 
 
G4 = 
 
 1 
 ------------------------------- 
 2 s^4 - 3 s^3 + 5 s^2 - 2 s + 4 
 
Continuous-time transfer function. 
 
 
polosK4 = 
 
 0.9101 + 1.1516i 
 0.9101 - 1.1516i 
 -0.1601 + 0.9501i 
 -0.1601 - 0.9501i 
 
>> 
 
Portanto, é instável. 
 
11. Considere o seguinte sistema politópico incerto 
 
no qual, 0 ≤ α ≤ 1, 
 
 
Encontre uma lei robusta de realimentação de estados u = Kx que estabilize 
o sistema. Simule e mostre que sua lei de fato é estabilizante para α = α ∗ ∈ 
{0, 0.1, 0.2, · · · , 1}. 
 
Código feito no Software MATLAB. 
close all 
clear all 
clc 
 
% Gabriela Fernandes Mesquita Cunha 
 
% Controle Robusto 
 
% Lista 1 - Questão 11 
 
alfa = 0.9; 
A1 = [1 -3; 0 -5]; 
A2 = [-3 0; 6 -2]; 
B1 = [1; 1]; 
B2 = [2; -1]; 
Q = sdpvar(2,2); 
Y = sdpvar(1,2,'full'); 
T1 = [A1*Q + Q*A1'+B1*Y+Y'*B1']; 
T2 = [A1*Q + Q*A1'+B2*Y+Y'*B2']; 
T3 = [A2*Q + Q*A2'+B1*Y+Y'*B1']; 
T4 = [A2*Q + Q*A2'+B2*Y+Y'*B2']; 
T = [T1; T2; T3; T4] 
F = [T<=0; Q>=0; trace(Q)>=10] 
about = optimize(F, trace(Q)) 
Q_f = double(Q); 
Y_f = double(Y); 
P = inv(Q_f) 
K = Y_f*P 
A = A1*alfa+A2*(1-alfa); 
B = B1*alfa+B2*(1-alfa); 
sys_cl = ss(A+B*K, [0;0], eye(2),0) 
pole(sys_cl) 
 
Resposta: 
 
Linear matrix variable 8x2 (full, real, 5 variables) 
Coeffiecient range: 1 to 12 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
| ID| Constraint| Coefficient range| 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
| #1| Element-wise inequality 16x1| 1 to 12| 
| #2| Matrix inequality 2x2| 1 to 1| 
| #3| Element-wise inequality 1x1| 1 to 10| 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
SeDuMi 1.3 by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003. 
Alg = 2: xz-corrector, theta = 0.250, beta = 0.500 
eqs m = 5, order n = 20, dim = 22, blocks = 2 
nnz(A) = 57 + 0, nnz(ADA) = 25, nnz(L) = 15 
 it : b*y gap delta rate t/tP* t/tD* feas cg cg prec 
 0 : 1.79E+01 0.000 
 1 : -2.41E+00 6.19E+00 0.000 0.3452 0.9000 0.9000 -0.77 1 1 7.4E+01 
 2 : -1.02E+01 1.53E+00 0.000 0.2464 0.9000 0.9000 -0.47 1 1 3.7E+01 
 3 : -1.46E+01 3.50E-01 0.000 0.2294 0.9000 0.9000 0.83 1 1 8.0E+00 
 4 : -1.00E+01 1.22E-02 0.000 0.0348 0.9900 0.9900 1.84 1 1 1.7E-01 
 5 : -1.00E+01 4.00E-07 0.000 0.0000 1.0000 1.0000 1.01 1 1 5.6E-06 
 6 : -1.00E+01 4.74E-14 0.000 0.0000 1.0000 1.0000 1.00 1 2 6.7E-13 
 
iter seconds digits c*x b*y 
 6 0.4 13.3 -1.0000000000e+01 -1.0000000000e+01 
|Ax-b| = 8.8e-13, [Ay-c]_+ = 1.2E-13, |x|= 1.0e+00, |y|= 1.8e+01 
 
Detailed timing (sec) 
 Pre IPM Post 
7.300E-02 2.690E-01 1.700E-02 
Max-norms: ||b||=1, ||c|| = 10, 
Cholesky |add|=0, |skip| = 0, ||L.L|| = 1. 
 
about = 
 
 yalmipversion: '20210331' 
 matlabversion: '9.0.0.341360 (R2016a)' 
 yalmiptime: 1.1722 
 solvertime: 0.3858 
 info: 'Successfully solved (SeDuMi-1.3)' 
 problem: 0 
 
 
P = 
 
 1.0437 -0.0061 
 -0.0061 0.1106 
 
 
K = 
 
 -9.4194 -1.3925 
 
 
sys_cl = 
 
 A = 
 x1 x2 
 x1 -9.761 -4.232 
 x2 -6.936 -5.814 
 
 B = 
 u1 
 x1 0 
 x2 0 
 
 C = 
 x1 x2 
 y1 1 0 
 y2 0 1 
 
 D = 
 u1 
 y1 0 
 y2 0 
 
Continuous-time state-space model. 
 
 
ans = 
 
 -13.5535 
 -2.0218 
>>