Dado um sistema duplo integrador:
e o índice de desempenho é:
obter a lei de controle de realimentação. Deverão ser apresentadas:
(a) as contas das matrizes a serem utilizadas, a equação do controle ótimo, etc.
(b) os arquivos de simulação no MATLAB ou OCTAVE que resolvam numericamente o sistema ótimo;
(c) as curvas dos estados ótimos;
(d) a curva do controle ótimo.
(a) as contas das matrizes a serem utilizadas, a equação do controle ótimo, etc.
(b) os arquivos de simulação no MATLAB ou OCTAVE que resolvam numericamente o sistema ótimo;
(c) as curvas dos estados ótimos;
(d) a curva do controle ótimo.
Passo 1
O sistema é dado por
com
O índice de desempenho é
com
Precisamos usar o método LQR contínuo, que envolve resolver a Riccati algébrica contínua
e depois computar a lei de controle ótimo
Passo 2
Aplicamos no MATLAB/Octave o comando :
care
para obter
A = [\(01\); -\(21\)];
B = [0;1];
Q = [\(23\); \(35\)];
R \(=0.25\);
[P,~,~] = care(A,B,Q,R);
K = R\ (B' * P);
Isso retorna numericamente
Passo 3
Portanto, a lei de controle ótima é
Passo 4
Segue um arquivo de simulação em MATLAB/Octave (
sim_lqr.m
):% \(sim_lqr\).m
A = [\(01\); -\(21\)];
B = [0;1];
Q = [\(23\); \(35\)];
R \(=0.25\);
[P,~,~] = care(A,B,Q,R);
K = R \ (B' * P);
x\(0=\) [2; -3];
tspan = [\(010\)];
% dinâmica fechada
f = @(t,x) (A - B*K)*x;
% simulação com ode45
[tt, xx] = ode45(f, tspan, x0);
% controle ótimo
uu = - (K * xx')';
% plotagem
figure;
plot(tt, xx(:,1), 'b', tt, xx(:,2), 'r','LineWidth',1.5);
xlabel('t'); ylabel('x_i(t)');
legend('x_1(t)','x_2(t)'); grid on;
title('Estados ótimos');
figure;
plot(tt, uu, 'k','LineWidth',1.5);
xlabel('t'); ylabel('u(t)'); grid on;
title('Controle ótimo');
Passo 5
Executando
sim_lqr
obtemos:- (c) as curvas de
e decaindo exponencialmente até zero; - (d) a curva de
, também tendendo a zero, conforme superfícies de controle linear.
Resposta
(a) Definindo
resolvemos a Riccati
e obtemos
Logo
(b) O arquivo de simulação
(c) As curvas de e
são geradas pelo primeiro gráfico do script.
(d) A curva de é gerada pelo segundo gráfico do script.
sim_lqr.m
está acima.(c) As curvas de
(d) A curva de