Dado um sistema duplo integrador:
\begin{aligned} & \dot{x}_{1}(t)=x_{2}(t), x_{1}(0)=2 \\\ & \dot{x}_{2}(t)=-2 x_{1}(t)+x_{2}(t)+u(t), x_{2}(0)=-3 \end{aligned}
e o índice de desempenho é:
J=\frac{1}{2}\int_{0}^{\infty}\left[2 x_{1}^{2}(t)+6 x_{1}(t) x_{2}(t)+5 x_{2}^{2}(t)+0,25 u^{2}(t)\right] d t
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.

Passo 1

O sistema é dado por
\dot{x}(t) = A\,x(t) + B\,u(t),\quad x(0)=\begin{pmatrix}2\\\ -3\end{pmatrix},
com
A = \begin{pmatrix}0 & 1 \\\\ -2 & 1\end{pmatrix},\quad B = \begin{pmatrix}0 \\\\ 1\end{pmatrix}.
O índice de desempenho é
J = \frac12\int_{0}^{\infty}\bigl[x(t)^\top Q\,x(t) + u(t)^\top R\,u(t)\bigr]\,dt
com
Q = \begin{pmatrix}2 & 3 \\\\ 3 & 5\end{pmatrix},\quad R = 0.25.
Precisamos usar o método LQR contínuo, que envolve resolver a Riccati algébrica contínua
A^\top P + P\,A - P\,B\,R^{-1}B^\top P + Q = 0
e depois computar a lei de controle ótimo
u(t) = -K\,x(t),\quad K = R^{-1}B^\top P.

Passo 2

Aplicamos no MATLAB/Octave o comando care para obter P:
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
P \approx \begin{pmatrix}3.2361 & 2.5413 \\[6pt] 2.5413 & 3.9727\end{pmatrix}, \quad K \approx \begin{pmatrix}10.1652 & 15.8908\end{pmatrix}.]

Passo 3

Portanto, a lei de controle ótima é
u(t) = -K\,x(t) = -\bigl[\,10.1652\;\;15.8908\bigr]\,\begin{pmatrix}x_{1}(t)\x_{2}(t)\end{pmatrix}.

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 x_{1}(t) e x_{2}(t) decaindo exponencialmente até zero;
  • (d) a curva de u(t), também tendendo a zero, conforme superfícies de controle linear.

Resposta

(a) Definindo
A=\begin{pmatrix}0&1\\\ -2&1\end{pmatrix},\; B=\begin{pmatrix}0\\\ 1\end{pmatrix},\; Q=\begin{pmatrix}2&3\\\ 3&5\end{pmatrix},\;R=0.25,
resolvemos a Riccati
A^\top P+PA-PB\,R^{-1}B^\top P+Q=0
e obtemos
P\approx\begin{pmatrix}3.2361&2.5413\\\ 2.5413&3.9727\end{pmatrix}, \;K=R^{-1}B^\top P\approx[\,10.1652\;\;15.8908\,].
Logo
u(t)=-[10.1652\;\;15.8908]\,x(t).
(b) O arquivo de simulação sim_lqr.m está acima.
(c) As curvas de x_{1}(t) e x_{2}(t) são geradas pelo primeiro gráfico do script.
(d) A curva de u(t) é gerada pelo segundo gráfico do script.

Exercícios relacionados