Problema

Esse é um caso de controle onde se deseja que o sistema dinâmico fique o mais próximo possível de maneira econômica de um valor de referência. Quando esse valor de referência é constante o problema se diz de regulagem. Quando o valor de referência é móvel o problema se diz de guiagem. Exemplos de guiagem são aviões, mísseis, automóveis, submarinos, etc.
No caso do regulador, matematicamente o que se deseja é



Todos os termos desse funcional J possuem uma propriedade diretamente relacionada com o sistema dinâmico. O primeiro termo fora da integral se relaciona com o sistema dinâmico no sentido de conduzir o mesmo para um ponto final determinado.



No caso do regulador esse ponto final é dado pelo valor de referência , ou seja, o sistema terá que no instante final de tempo atingir o valor de referência. Nesse caso o valor final é a condição final do sistema dinâmico. A variável S é o peso que se deseja para atingir o valor final do sistema dinâmico. Valores de S muito alto fazem o sistema atingir o ponto final mas encarecem o funcional J e valores muito baixo de S tornam o funcional barato mas não atingem o valor final, sempre fica um erro.
O primeiro termo da integral relaciona-se ao erro do sistema em se manter próximo do sinal de referência durante o desempenho da trajetória.



Assim como S, o valor de P fornece o quanto se deseja que o sistema dinâmico fique próximo do valor de referência. Valores altos de P fazem o erro se tornar mínimo, mas no decorrer da trajetória, ao serem somados irão encarecer o valor acumulado do funcional J. Da mesma forma P baixo torna o funcional barato mas o sistema não acompanha o sinal de referência ao longo da trajetória.
Por fim, o último termo da integral se refere ao controle u(t) que deverá se estabilizar em torno de um valor de referência.



Assim como S e P, a interpretação do peso Q é a mesma em termos de custo para a integração do funcional ao longo da trajetória.
No caso particular em que o valor de referência para o estado x(t) e controlador u(t) são nulos, transforma o funcional em

 


Pode-se observar nesse funcional que o estado final não aparece no funcional, um indicativo que ele é livre. Isso leva à condição final para a adjunta



Onde



Então para o regulador linear quadrático,



E se o estado de referência for nulo,



Para o caso do funcional J anterior tem-se



Recuperando-se o critério de Mínimo de Pontryaguin.

 


Exemplo:




Com



Hamiltoniana


Vamos adotar apenas como simplicidade de notação que as variáveis x(t)=x e u(t)=u para não carregar o parêntesis nas notações das derivadas. Então,



Adjunta

 


Controle Ótimo



Logo, o sistema dinâmico a ser resolvido para o problema de valor de contorno será:



Onde o operador ponto representa da derivada no tempo (.)=d()/dt.

Sabe-se que a condição terminal para a adjunta quando se tem o valor final livre para o estado é



A estratégia é tentar descobrir qual é equação resultante para a adjunta e eliminar sua equação diferencial do sistema. Adotando e supondo que a relação anterior é valida para todo o tempo t ao longo da trajetória,



Assim, temos duas relações para a adjunta,


    e   


Derivando-se a segunda equação no tempo, tem-se



Pode-se igualar as duas equações diferenciais das adjuntas



Agora substitui-se a relação suposta anteriormente onde   na variável adjunta da equação acima,



Substituindo-se



E chega-se a



Agora substitui-se a lei de controle ótimo para u(t) obtida anteriormente,



Então



E chega-se à



Como x(t) é o estado e sabe-se que será diferente de zero pois a condição inicial do sistema é diferente da condição nula, termina-se por chegar na conhecida equação de Riccati,


 


Solução

 

Como resolver essa equação? Numericamente ela deve ser integrada de trás para frente pois sua condição inicial está relacionada exatamente à relação da adjunta no tempo final. Analiticamente uma técnica sofisticada consiste em adotar que



e derivar essa relação no tempo. A derivada deve ser substituída na equação de Riccati. Assim,



E então



Dividindo por y e somando as parcelas chega-se a equação diferencial de segunda ordem na variável auxiliar y



Nesse caso, a técnica para resolver essa equação é chamar por exemplo a variável y de exponencial do tempo, ou seja,



Ao substituir na equação auxiliar da derivada segunda de y, tem-se



Como o exponencial nunca será nulo, para a equação anterior ser válida, tem-se que a equação do segundo grau deve ser nula. Isso nos leva a dois valores de m,



A solução para y será a composição das duas soluções



Ou seja,



Derivando a solução y



Então a solução para a equação de Riccati será obtida substituindo y e dy/dt na relação inicial



Que poderá ser adotada como módulo dessa relação pois S(t) é apenas uma medida de proporcionalidade da adjunta em relação ao estado. Então transformando a relação anterior em



Tem-se que a solução de Riccati nesse exemplo será


 


Equação do Regulador


Como a lei de controle ótimo



Então substituindo S



E a  equação de estado se transforma em:


 

Aproximação


O objetivo do regulador é estabilizar o sistema e trazê-lo para o estado de referência minimizando o custo J. Assim, apenas como ilustração, para um tempo longo espera-se que o sistema esteja em torno do valor de referência. Para isso, adotando-se que o tempo tende a ser muito longo,




Então a equação de estado será:



Cuja solução é super simples e da forma



E como a condição inicial é x(0)=1 então a solução deste exemplo será a exponencial que convergirá de forma a minimizar o funcional J


 

 

 

 

Programação - Solução Numérica


 A solução possível para os casos do regulador linear quadrático (LQR) nos dias atuais podem ser resolvidas numericamente. Um bom software para a resolução de problemas de valor de contorno em dois pontos é o bvp4c.m ("colocation method") do Matlab. A programação para seu uso pode ser encontrada abertamente na internet, inclusive no site da Mathworks com exemplos. Para nosso exemplo, as figuras a seguir comparam ambos os resultados obtidos da forma analítica e numérica com o Matlab. A linha tracejada é o resultado analítico que difere apenas no caso do controle, mas que coincide absolutmente com a numérica a ponto de não se nota as duas curvas.

 

Algoritmo do LQR - Matlab

%PROBLEMA Do Regulador Linear Quadratico
% MIN INT(x^2+u^2)dt
% suj dx=-x+u
% x(0) =x0
% x(tf)=xf (dado)
% tf =1
%===========================================
clear all
global T
global uf
global x0
global y0
global xf
global yf

T=1;
x0=1;
xf=0;

H =[]; G =[]; x = []; J = [];
%===============================INICIALIZACAO PARAMETROS

type LQRInit;
type LQRM;
type LQRRes;
type LQRM;
%===================================================
close all;
solinit = bvpinit(linspace(0,1,101),@LQRInit);
options = bvpset('Stats','on','RelTol',1e-6);

sol = bvp4c(@LQRM,@LQRRes,solinit,options);

t = sol.x;
x = sol.y;

for i=1:1:size(t,2)
%
mm1(i) = -x(3,i)/2;
xan(i)=exp(-1.35*t(i));
uan(i)=-0.365*xan(i);
end;

% riccati
s=x(3,:)./x(1,:);

 

time=t*x(4,length(t));
clf reset
subplot(221)
plot(time,x(1,:),'-k',time,xan,'-.k')
xlabel('time')
ylabel('x(t)')
grid
legend('numerico','analitico')

subplot(222)
plot(time,mm1,'-k',time,uan,'--k')
xlabel('time')
ylabel('controle')
grid

subplot(223)
plot(time,x(3,:),'-k')
xlabel('time')
ylabel('lambda')
grid

subplot(224)
plot(time,s,'-k')
xlabel('time')
ylabel('S(t) - Riccati')
grid

//////////////////////////////////// function do modelo dinâmico para o bvp4c.m ///////////////////////////////////////////////

function dxdt = LQRM(t,x);

u=-x(3)/2;

dxdt = [(-x(1)+u)*x(4);
(x(1)^2+u^2)*x(4);
(x(3)-2*x(1))*x(4);
0];

%-------------------------------------------------------------------------

 

 

 

 

 

 

Voltar ao índice de otimização dinâmica

 

 

Caso8: Regulador Linear Quadrático (LQR)