Académique Documents
Professionnel Documents
Culture Documents
[ ( )
]
(1)
Onde necessrio determinar o valor de para transladar a o diagrama de Bode a fim de
respeitar as barreiras, ou seja, passar entre elas sem toc-las. Atravs de tentativas determinou-se que o
valor de que respeita tal condio de 0,0075. Desta maneira pode-se obter o seguinte diagrama de
Bode da Equao (1).
Figura 2: Diagrama de Bode da Equao (1) representado pela curva em azul
Atravs do clculo da equao algbrica de Riccati e dos ganhos do filtro de Kalman, pode-se obter os
diagramas de Bode da malha objetivo representada pela seguinte pelo Modelo (2)
( ( )
) (2)
10
-2
10
-1
10
0
10
1
10
2
-40
-20
0
20
40
60
Singular Values
Frequency (rad/s)
S
i
n
g
u
l
a
r
V
a
l
u
e
s
(
d
B
)
Figura 3: Diagrama de Bode da malha objetivo representada pelo modelo (2)
Procedimento de Recuperao
Sabendo que o procedimento de recuperao, LTR (Loop Transfer Recovery), somente se
aplica no caso em que o modelo da planta tem os zeros de transmisso no SPE. Sendo assim tem-se que
verificar os zeros deste modelo de planta, e neste projeto os zeros foram: -3,2268; -0,2304 e -0.1494. Ou
seja, todos no SPE, logo possvel aplicar o mtodo de recuperao.
Desta maneira escolheu-se um valor de
d
a
y
1
Resposta do Sistema em Malha Fechada
0 5 10 15
0
1
2
3
4
5
6
7
8
x 10
-3
Tempo (s)
S
a
d
a
y
2
Resposta do Sistema em Malha Fechada
Cdigo do Programa:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Controle Robusto - Lista de Exerccios
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
clear all;
close all;
%%%Matrizes da Planta
A = [-.005131 0 0 0 0; 0 -.07366 0 0 0; 0 0 a33 0 0; 0 0 0 -.462 .9895; 0 0 0
-.9895 -.462];
B =[-.629 .624; .055 -.172; .03 -.108; -.186 -.139; -1.23 -.056];
C = [-.7223 -.517 .3386 -.1633 .1121; -.8913 .4728 .9876 .8425 .2186];
a33=-.2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
k=1;
for (w =0.01: 0.01: 1000)
for(n=1:20)
GN = C*inv(j*w*eye(5)-A)*B;
AT = (400/(-w*w+20*w*j+400))*eye(2);
GR = AT*GN;
ERR = (GR-GN)*inv(GN);
ERR1 =svd(ERR);
E(n) = max(ERR1); %valores singulares mximos
a33 = -.2+(.04/20)*n;
end
%Clculo do valor singular mximo
EM(k) =max(E);
k =k+1;
end
w = (.01:.01:1000); %Vetor de Freq
for(i=1:1E5)
EM1(i) =1/EM(i); %Barreira da Estabilidade
end
for(i=1:1E5)
DES(i) = 20/(1-EM(i)); %Barreira de Robustez do Desempenho
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Barreira de desempenho e estabilidade em ordem
for(i=1:50)
BAR(i) = 20*log10(DES(i));
end
for(i=10E2:500E2)
BAR(i) =20*log10(EM1(i));
end
for(i=51:(10E2-1))
BAR(i) = NaN;
end
for(i=(500E2+1):(1000E2))
BAR(i) = NaN;
end
a33=-.1829
xlabel('Frequncia rad/s'); % coloca rotulo no eixo x do grafico
ylabel('dB'); % coloca rotulo no eixo y do grafico
title('Controle Robusto Multivarivel');
semilogx(w,BAR,'r','LineWidth',1.6)
grid
hold on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Matrizes aumentadas (inclusao de integradores)
A2 = [zeros(2,2) zeros(2,5); B A];
B2 = [eye(2); zeros(5,2)];
C2 = [zeros(2,2) C];
D2 = zeros(2,2);
%Matriz L
LL = -inv(C*inv(A)*B);
LH =-inv(A)*B*LL;
L =[LL;LH];
%Determinar mi por tentativas para respeitar as barreiras
mi = 1/(sqrt(.0075));
%Valores singulares primeira
SYS=ss(A2, L,mi*C2,D2);
sigma(SYS,'b');
grid
hold on
%Eq de Riccati:
EAR = are(A2',mi*mi*C2'*C2,L*L');
%Ganhos do Filtro de Kalman
H =mi*mi*EAR*C2';
%Valores singulares da malha objetivo
SYS2 = ss(A2,H,C2,D2);
sigma(SYS2,'g');
grid
hold on
%Procedimento de recuperacao
%checar zeros da planta
SYS3 =ss(A2,B2,C2,D2);
ZE =zero(SYS3)
%Resoluo Eq. Riccati
p = 1/(1E-10);
EAR2 =are(A2, p*B2*B2',C2'*C2);
%Matriz de ganho de realimentacao:
G = p*B2'*EAR2;
%FT do Compensador
%Sistema em MA
k=1;
for(w2=.01:.01:1000)
COMP =G*inv(j*w2*eye(7)-A2+B2*G+H*C2)*H; %Matriz do compensador
PLANTA = C2*inv(j*w2*eye(7)-A2)*B2; %Matriz do compensador
SIS=PLANTA*COMP;
MA =svd(SIS);%Valores singulares
MA1(k) = max(MA);%Valor singular mximo
MA2(k) = min(MA);%Valor sing mnimo
CN = inv(eye(2)+PLANTA*COMP)*PLANTA*COMP; %Matriz CN
MF = svd(CN);
MF1(k) =max(MF);
MF2(k) =min(MF);
k=k+1;
end
w2 =(.01:.01:1000);%
%%%%%SIS
semilogx(w2,20*log10(MA1), 'k'); %Grafico do val. sing. mximos
hold on
grid
semilogx(w2,20*log10(MA2),'c'); %Grafico do val. sing. mnimoa
%%%%%CN
semilogx(w2,20*log10(MF1),'m'); %Grafico do val. sing. mximos de CN
hold on
grid
semilogx(w2,20*log10(MF2),'k'); %Grafico do val. sing. mnimoa de CN
%Dinamica do sistema
AF = [(A2-B2*G) B2*G; zeros(7,7) (A2-H*C2)];
BF =[zeros(7,2);H];
CF = [C2 zeros(2,7)];
DF =zeros(2,2);
SYSF = ss(AF,BF,CF,DF);
%Resposta do sistema
t = (0:.01:20);
for(i = 1:2001)
r(1,i)=1;
r(2,i)=0;
end
[Y,T,X]=lsim(SYSF,r,t);
figure(3)
plot(T,Y(:,1))
xlabel('Tempo (s)'); % coloca rotulo no eixo x do grafico
ylabel('Sada y1'); % coloca rotulo no eixo y do grafico
title('Resposta do Sistema em Malha Fechada');
figure(4)
plot(T,Y(:,2),'b','LineWidth',1.5)
xlabel('Tempo (s)'); % coloca rotulo no eixo x do grafico
ylabel('Sada y2'); % coloca rotulo no eixo y do grafico
title('Resposta do Sistema em Malha Fechada');