Problema LQR com horizonte finito
  1. Dado um sistema duplo integrador:
\begin{aligned} & \dot{x}_{1}(t)=x_{2}(t), \quad x_{1}(0)=2 \\\ & \dot{x}_{2}(t)=-2 x_{1}(t)+x_{2}(t)+u(t), \quad x_{2}(0)=-3 \end{aligned}
e o índice de desempenho é:
J=\frac{1}{2}\left[x_{1}^{2}(5)+x_{1}(5) x_{2}(5)+2 x_{2}^{2}(5)\right]+\frac{1}{2} \int_{0}^{5}\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) as equações da matriz diferencial de Riccati;
(c) os arquivos de simulação no MATLAB ou OCTAVE que resolvam numericamente as equações da matriz diferencial de Riccati, bem como o arquivo que resolva numericamente o sistema ótimo;
(d) as curvas da solução dos coeficientes de Riccati;
(e) as curvas dos estados ótimos;
(f) a curva do controle ótimo.

Passo 1

O enunciado descreve um sistema de duplo integrador com dinâmica
\dot{x}(t)=A\,x(t)+B\,u(t),
onde x(t)=(x_{1}(t),x_{2}(t))^{T}, u(t) é o controle, o horizonte é t\in[0,5], e as condições iniciais são x_{1}(0)=2, x_{2}(0)=-3. O índice de desempenho é
J=\frac{1}{2}\Bigl[x_{1}^{2}(5)+x_{1}(5)x_{2}(5)+2\,x_{2}^{2}(5)\Bigr] +\frac{1}{2}\int_{0}^{5}\Bigl[2\,x_{1}^{2}+6\,x_{1}x_{2}+5\,x_{2}^{2}+0,25\,u^{2}\Bigr]dt.
O conteúdo é Controle Ótimo Linear Quadrático (LQR) com horizonte finito. Vamos precisar formular as matrizes A,B,Q,R, a condição terminal M, escrever a EDO de Riccati reversa e a lei de controle u=-R^{-1}B^{T}P(t)x.

Passo 2

Em forma matricial temos
A=\begin{pmatrix}0 & 1\\\ -2 & 1\end{pmatrix}, \quad B=\begin{pmatrix}0\\\ 1\end{pmatrix}.
O custo de estado é quadrático com matriz
Q=\begin{pmatrix}2 & 3\\\ 3 & 5\end{pmatrix},
o custo de controle é escalar R=0,25, e o custo terminal é dado por
M=\begin{pmatrix}1 & \tfrac12\\[6pt]\tfrac12 & 2\end{pmatrix}.]

Passo 3

A equação diferencial de Riccati reversa é
-\dot{P}(t)=A^{T}P+P\,A-P\,B\,R^{-1}B^{T}P+Q, \quad P(5)=M.
A lei de controle ótima em tempo t é
u^{*}(t)=-R^{-1}B^{T}P(t)\,x(t).
Como R^{-1}=4 e B^{T}=[0\;\,1], definimos o ganho de realimentação
K(t)=4\,[\,P_{12}(t)\;\;P_{22}(t)\,],
logo
u^{*}(t)=-\bigl[K_{1}(t)\;K_{2}(t)\bigr]\,x(t) =-4\bigl(P_{12}(t)\,x_{1}(t)+P_{22}(t)\,x_{2}(t)\bigr).

Passo 4

Segue um script em OCTAVE/MATLAB para resolver \dot P de t=5 a t=0: \texttt{function dP = riccati(t,Pvec)} \texttt{P = reshape(Pvec,2,2); A = [0 1; -2 1]; B = [0;1];} \texttt{Q = [2 3;3 5]; Rinv = 4;} \texttt{dPmat = -(A'*P + P*A - P*B*Rinv*B'*P + Q);} \texttt{dP = -reshape(dPmat,4,1);} % nota o sinal para integrar de 0\to5 \texttt{end} \texttt{tspan = [5 0]; P0 = [1 0.5;0.5 2]; [t,Psol] = ode45(@riccati,tspan,reshape(P0,4,1));} \texttt{Psol = flipud(Psol); t = linspace(0,5,size(Psol,1));} Nesse vetor cada linha de \texttt{Psol} contém \bigl[P_{11},P_{12},P_{21},P_{22}\bigr].

Passo 5

Para simular o sistema com realimentação usamos outro script: \texttt{function dx = closedloop(t,x)} \texttt{P = interp1(t,Psol,t); P = reshape(P,2,2);} \texttt{K = 4*[P(1,2) P(2,2)]; u = -K*x;} \texttt{A = [0 1; -2 1]; B = [0;1]; dx = A*x + B*u;} \texttt{end} \texttt{[t,xsol] = ode45(@closedloop,[0 5],[2;-3]);} E calculamos \;u(t) em cada instante pelo mesmo K(t).

Passo 6

Para plotar as trajetórias: \texttt{figure; plot(t,Psol(:,2),t,Psol(:,4)); legend('P_{12}','P_{22}');} \texttt{figure; plot(t,xsol(:,1),t,xsol(:,2)); legend('x_{1}','x_{2}');} \texttt{uvec = -4*(Psol(:,2).*xsol(:,1)+Psol(:,4).*xsol(:,2));} \texttt{figure; plot(t,uvec); title('Controle ótimo');}ó

Resposta

A lei de controle de realimentação em tempo t é
u^{*}(t)=-R^{-1}B^{T}P(t)\,x(t) =-4\bigl[P_{12}(t)\;P_{22}(t)\bigr]\,x(t) =-4\bigl(P_{12}(t)\,x_{1}(t)+P_{22}(t)\,x_{2}(t)\bigr).

Exercícios relacionados