Você está na página 1de 16

Controle de um Pndulo Invertido sobre um Carrinho utilizando

Controle timo Quadrtico


Alex Antonio Affonso
Este trabalho consiste na elaborao de um sistema de controle para um pndulo
invertido sobre um carrinho, utilizando-se para tal, tcnicas de controle timo quadrtico.
Na figura 1 visualiza-se um esquemtico do pndulo invertido.
Figura 1.

Segundo [1], tem-se abaixo as equaes que regem a dinmica do pndulo invertido.

Por fim, resumindo-se as equaes do pndulo invertido, obtm-se [1]:

Como pode-se perceber, este sistema um sistema no-linear. Portanto, deve-se


lineariz-lo em torno de um ponto de operao. Linearizando-o em torno de = 0 e
considerando-se os termos abaixo como desprezveis, obtm um modelo linear para o
referido pndulo invertido.
2 , 2 , desprezados

( M + m) x + m l = u

( I + m l 2 ) + m l x = m g l

Ento, pode-se agora representar o modelo linearizado do pndulo invertido por


variveis de estado, conforme abaixo [1]:

Maiores detalhes sobre a modelagem e representao do pndulo invertido podem


ser obtidos em [1] e em [2].
Para efetuar-se o controle de realimentao de estado do pndulo utilizou-se u = -kx.
K a matriz ganho da realimentao de estado K = [K1 K2 K3 K4].
Deve-se calcular K no MATLAB a fim de que o ndice de desempenho J seja
minimizado:

J = ( x Q x + u R u )dt
0

Segundo [1], considerar inicialmente Q e R dados conforme abaixo.

Pede-se ainda em [1] para considerar-se a resposta do sistema s seguintes


condies iniciais dadas abaixo.

Para validar o projeto deve-se simular o modelo no-linear e comparar os resultados


obtidos com os resultados obtidos da simulao do modelo linearizado.
Para a simulao do modelo no-linear com a funo ODE23 do MATLAB, deve-se
representar o pndulo em forma de variveis de estado. Deve-se ento considerar agora as
equaes que regem a dinmica do sistema no-linear apresentadas em [1]:

A partir das duas equaes diferenciais acima e definindo-se o mesmo vetor de


estados acima definido, x, consegue-se com um pouco de lgebra obter a representao do

x2

(
M + m ) [ g sen( x1 ) + ( x 2 ) 2 sen( x1 ) cos( x1 ) (1 + l ) ] cos( x1 ) u m l sen( x1 ) cos( x1 ) ( x 2 ) 2
=
m l (cos( x1 )) 2 ( M + m) [(sen( x1 )) 2 l (cos( x1 )) 2 ]

modelo no-linear do pndulo invertido em variveis de estados, as quais so apresentadas


abaixo.

De [1] sabe-se que:

x1 = x 2

Programou-se o modelo no-linear no MATLAB, conforme abaixo.

x3 = x 4
xdot=[x(2);(2.1*(9.81*(sin(x(1)))+
((x(2))^2)*(sin(x(1)))*(cos(x(1)))*1.5)-(cos(x(1)))*u0.05*(sin(x(1)))*(cos(x(1)))*((x(2))^2))/(-0.05*((cos(x(1)))^2)-

x4 =

u + m l sen( x1 ) ( x2 )2

( M + m)

m l cos( x1 ) {

( M + m ) [ g sen( x1 ) + ( x2 )2 sen( x1 ) cos( x1 ) (1 + l ) ] cos( x1 ) u m l sen( x1 ) cos( x1 ) ( x2 )2 }


m l (cos( x1 ))2 ( M + m) [(sen( x1 ))2 l (cos( x1 ))2 ]
( M + m)

2.1*(((sin(x(1)))^2)-0.5*((cos(x(1)))^2)));
x(4);(((u+0.05*(sin(x(1)))*((x(2))^2))/(2.1))(0.05*(cos(x(1)))*((2.1*(9.81*(sin(x(1)))+
((x(2))^2)*(sin(x(1)))*(cos(x(1)))*1.5)-(cos(x(1)))*u0.05*(sin(x(1)))*(cos(x(1)))*((x(2))^2))/(-0.05*((cos(x(1)))^2)2.1*(((sin(x(1)))^2)-0.5*((cos(x(1)))^2))))/(2.1)))];

RESOLUO DO PROBLEMA VIA MATLAB

A fim de se resolver o problema escreveram-se em linguagem Matlab os seguintes


programas:
Pendulo.m
%Controle de Pndulo Invertido sobre um Carrinho

% Controle timo Quadrtico


clear all
close all
clc
global K
%Matriz de estados A e matriz de controle B
A=[0 1 0 0; 20.601 0 0 0; 0 0 0 1; -0.4905 0 0 0];
B=[0; -1; 0; 0.5];
%Matrizes Q e R do ndice de desempenho quadrtico
Q=[100 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1];
R=0.01;

%K => Matriz de Ganho de Retroao


%P => Soluo P da equao de Riccati
%E => Plos de Malha Fechada (Autovalores de A-BK)
[K,P,E]=lqr(A,B,Q,R)
%Com realimentao
AA=A-B*K;
%Condies iniciais
I0=[0.1 0 0 0];
%Resposta do sistema s condies iniciais
%Modelo Linearizado realimentado
C=eye(4,4);
D=[0;0;0;0];
B=D;
[x,y,t]=initial(AA,B,C,D,I0);% resposta a condicao inicial I0
x1=x(:,1);
x2=x(:,2);
x3=x(:,3);
x4=x(:,4);
%Resposta do sistema s condies iniciais
%Modelo No - Linear
[t1,x]=ode23('pendulofunction',t,I0); %Neste caso t1=t
x11=x(:,1);
x22=x(:,2);
x33=x(:,3);
x44=x(:,4);
%Sinal de controle do modelo linearizado
for i=1:length(t)

u(i)=-K*[x1(i) x2(i) x3(i) x4(i)]';


end
%Sinal de controle do modelo no-linear
for i=1:length(t1)
u11(i)=-K*[x11(i) x22(i) x33(i) x44(i)]';
end
figure(1);
%x1 versus t: Teta x tempo
subplot(2,2,1);
plot(t,x1,'b',t1,x11,'r');grid
%%%plot(t,x1);grid
title('x1(Teta) versus t');
xlabel('t s');
ylabel('x1 = Teta');
%x2 versus t: Teta Ponto x tempo
subplot(2,2,2);
plot(t,x2,'b',t1,x22,'r');grid
title('x2(Teta Ponto) versus t');
xlabel('t s');
ylabel('x2 = Teta Ponto');
%x3 versus t: Deslocamento x tempo
subplot(2,2,3);
plot(t,x3,'b',t1,x33,'r');grid
%%%plot(t,x2);grid
title('x3(Deslocamento) versus t');
xlabel('t s');
ylabel('x3 = Deslocamento');
%x4 versus t: Velocidade x tempo
subplot(2,2,4);
plot(t,x4,'b',t1,x44,'r');grid
title('x4(Velocidade do Carrinho) versus t');
xlabel('t s');
ylabel('x4 = Velocidade do Carrinho');
figure(2);
%u versus t: Sinal de Controle (u)
subplot(2,1,1);
plot(t,u,'b',t1,u11,'r');grid
title('u versus t');
xlabel('t s');
ylabel('u = Sinal de Controle');

Subrotina Pendulo1.m
(Esta subrotina deve ser um arquivo .m localizada no mesmo caminho que o
programa principal: pendulo)
function [xdot] = pendulofunction(t,x)
global K
u=-K*[x(1); x(2);x(3); x(4)];
%observe que estamos calculando a soluo do sistema com realimentao
u=-Kx
xdot=[x(2);(2.1*(9.81*(sin(x(1)))+
((x(2))^2)*(sin(x(1)))*(cos(x(1)))*1.5)-(cos(x(1)))*u0.05*(sin(x(1)))*(cos(x(1)))*((x(2))^2))/(-0.05*((cos(x(1)))^2)2.1*(((sin(x(1)))^2)-0.5*((cos(x(1)))^2)));
x(4);(((u+0.05*(sin(x(1)))*((x(2))^2))/(2.1))(0.05*(cos(x(1)))*((2.1*(9.81*(sin(x(1)))+
((x(2))^2)*(sin(x(1)))*(cos(x(1)))*1.5)-(cos(x(1)))*u0.05*(sin(x(1)))*(cos(x(1)))*((x(2))^2))/(-0.05*((cos(x(1)))^2)2.1*(((sin(x(1)))^2)-0.5*((cos(x(1)))^2))))/(2.1)))];

Primeiramente resolveu-se o problema para Q e R dados:


Obteve-se:
100
0
Q=
0

0
1
0
0

K=
-54.0554 -11.8079 -1.0000 -2.7965
P=
326.7189
69.2133
11.8079
30.3158

69.2133
15.2894
2.7051
6.9631

11.8079 30.3158
2.7051 6.9631
2.7965 3.4102
3.4102 8.3331

0
0
1
0

0
0
, R = [1]
0

E=
-4.6944 + 0.9514i
-4.6944 - 0.9514i
-0.5104 + 0.4088i
-0.5104 - 0.4088i

Agora, pretende-se melhorar a resposta obtida anteriormente, ou seja, melhorar os


ndices de desempenho do sistema em questo. Para isso escolheram-se:
100
0
Q=
0

0
1
0
0

0
0
1
0

0
0
, R = [ 0.01]
0

Aqui minimizou-se R a fim de se tentar obter uma melhor atuao no sinal de


controle. Note nos resultados abaixo que os ndices de desempenho melhoraram, conforme
o esperado.
K=
-165.0902 -31.0313 -10.0000 -19.8639
P=
30.0891 4.3147 3.1031 5.3276
4.3147 1.0620 0.8364 1.5033
3.1031 0.8364 1.9864 1.4729
5.3276 1.5033 1.4729 2.6094

E=
-9.7166 + 3.4316i
-9.7166 - 3.4316i
-0.8330 + 0.4795i
-0.8330 - 0.4795i

Agora escolheram-se:
100
0
Q=
0

0 0 0
1 0 0
, R = [ 0.01]
0 100 0

0 0 1

Tenta-se assim minimizar X3, o que reduzir os ndices de desempenho do sistema.


Obteve-se:

K=
-289.6689 -61.9517 -100.0000 -74.7368
P=
89.7899 18.6900 61.9517 31.5867
18.6900 4.5391 14.7140 7.8392
61.9517 14.7140 74.7368 27.4279
31.5867 7.8392 27.4279 14.1836
E=
-9.7900 + 4.0657i
-9.7900 - 4.0657i
-2.5016 + 1.5721i
-2.5016 - 1.5721i

Como pode-se observar, os ndices de desempenho melhoraram e, ainda nesta


mesma linha de raciocnio , escolheram-se:
100
0
Q=
0

0 0 0
1 0 0
, R = [ 0.01]
0 800 0

0 0 1

Com estes valores obteve-se os seguintes resultados, que quando comparados com
os anteriores, se mostram melhores.
K=
-513.5160 -113.9266 -282.8427 -168.8891
P=
289.8697
64.3963
322.2330
118.5223

64.3963
14.9869
73.8872
27.6953

E=
-10.8272 + 6.9258i
-10.8272 - 6.9258i
-3.9138 + 1.2159i
-3.9138 - 1.215

322.2330 118.5223
73.8872 27.6953
477.6905 142.1176
142.1176 52.0129

Assim demonstra-se que possvel obter-se melhores resultados por meio de


tentativas criteriosas em Q e R, at se obter uma resposta satisfatria.
Durante todos os grficos acima pode-se perceber uma curva azul sobreposta a uma
curva vermelha:

Curva Vermelha => Modelo No-Linear;

Curva Azul => Modelo Linearizado.

Assim demonstrou-se tambm com este trabalho que o modelo linearizado


representa fielmente o modelo no linear na regio prxima ao ponto de equilbrio, ou seja,
do ponto de linearizao.

CONCLUSO: Estudou-se neste trabalho um sistema no-linear: sua modelagem e


representao em variveis de estado, apresentando tambm a linearizao do modelo em
torno de um ponto de operao. Empregaram-se tcnicas de controle timo quadrtico, a
fim de se controlar o pndulo invertido sobre o carrinho. Demonstrou-se mtodos para se
atingir melhores ndices de desempenho e por fim validou-se o modelo linearizado com a
simulao em conjunto do modelo no-linear.

ANEXO: Diagrama de Blocos do Sistema Final

BIBLIOGRAFIA

[1] OLIVEIRA, V. A.; Exerccio SEL 380 Controle Robusto Controle Pndulo

Invertido sobre um

Carrinho;

[2] OGATA, K.; Engenharia de Controle Moderno; PHB; 2a edio; 1993

Você também pode gostar