Problema LQR com horizonte infinito
2. Determine a lei de controle de realimentação ótima para o seguinte sistema:
\begin{aligned} & \dot{x}_{1}(t)=x_{2}(t)+u(t) \\\ & \dot{x}_{2}(t)=-x_{1}(t)-x_{2}(t)+u(t) \end{aligned}
e o índice de desempenho é:
J=\int_{0}^{\infty}\left[2 x_{1}^{2}(t)+4 x_{2}^{2}(t)+0,5 u^{2}(t)\right] d t
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 simulados numericamente;
(d) a curva do controle ótimo simulado numericamente.

Passo 1

O problema é um LQR de horizonte infinito para o sistema
\dot x(t)=A\,x(t)+B\,u(t),
onde
A=\begin{pmatrix}0 & 1\\\ -1 & -1\end{pmatrix},\quad B=\begin{pmatrix}1\\\ 1\end{pmatrix},
e o índice de desempenho é
J=\int_{0}^{\infty}\bigl(x^{T}Q\,x+u^{T}R\,u\bigr)\,dt
com
Q=\begin{pmatrix}2&0\\\ 0&4\end{pmatrix},\quad R=0{,}5.
Vamos determinar a lei de realimentação ótima u(t)=-K\,x(t) através da resolução da equação de Riccati algébrica e depois simular o sistema em malha fechada.

Passo 2

Definimos as matrizes do LQR:
A=\begin{pmatrix}0 & 1\\\ -1 & -1\end{pmatrix},\quad B=\begin{pmatrix}1\\\ 1\end{pmatrix},\quad Q=\begin{pmatrix}2 & 0\\\ 0 & 4\end{pmatrix},\quad R=0{,}5.

Passo 3

A equação de Riccati algébrica (ARE) é
A^{T}P + P\,A - P\,B\,R^{-1}B^{T}P + Q = 0.
Em MATLAB/Octave resolvemos diretamente com
P = \texttt{care}(A,B,Q,R)
ou usando
[K,P] = \texttt{lqr}(A,B,Q,R).
O ganho de realimentação ótimo é
K = R^{-1}B^{T}P.

Passo 4

A lei de controle ótima em realimentação de estados é
u(t) = -K\,x(t).

Passo 5

Para simular, fechamos o loop e integramos
\dot x(t) = (A - B\,K)\,x(t),\quad x(0)=x_{0}.
Escolhemos uma condição inicial, por exemplo
x_{0} = \begin{pmatrix}1\\\ 0\end{pmatrix},
e usamos o solver ode45 para obter x(t). Em seguida calculamos u(t)=-K\,x(t).

Passo 6

Arquivo MATLAB/Octave (salvar como lqr_infinito.m):
% \(lqr_infinito\).m
A = [\(01\); -1 -1];
B = [1;1];
Q = [\(20\); \(04\)];
R \(=0.5\);
[K,P] = lqr(A,B,Q,R);
% condição inicial
x\(0=\) [1; 0];
% dinâmica em malha fechada
sys = @(t,x) (A-B*K)*x;
% simulação
[t, X] = ode45(sys, [\(010\)], x0);
% controle ótimo
U = - (K*X')';
% plots
figure;
plot(t, X(:,1), 'b', t, X(:,2), 'r','LineWidth',1.5);
xlabel('t'); ylabel('Estados'); legend('x_1','x_2');
title('Trajetórias dos estados em malha fechada');
figure;
plot(t, U, 'k','LineWidth',1.5);
xlabel('t'); ylabel('u(t)');
title('Controle ótimo u(t)');

Passo 7

Rodando lqr_infinito, o MATLAB calcula numericamente K,\;P e gera duas figuras:
  • Curvas de x_{1}(t) e x_{2}(t) mostrando a convergência a zero.
  • Curva de u(t), o sinal de controle ótimo ao longo do tempo.

Resposta

A lei de realimentação ótima é
u(t) = -K\,x(t),
onde K é obtido em MATLAB via
[K,P] = \texttt{lqr}(A,B,Q,R).
No exemplo acima, ao executar o script, obtemos numericamente, por exemplo,
K \approx \begin{pmatrix}3{,}6566 & 3{,}1721\end{pmatrix},
e as figuras exibem as trajetórias de x_{1}(t),x_{2}(t) e de u(t) em malha fechada.

Exercícios relacionados