Você está na página 1de 18

USO DO MATLAB EM CONTROLE

1- CONSIDERAÇÕES GERAIS:

É um sistema baseado em matrizes


empregado em cálculos de engenharia. Todas as
variaveis tratadas pelo MATLAB são matrizes, ie,
o MATLAB só tem um tipo de dado, a matriz, que
nada maisc é que um arranjo retangular de
números.
As linhas dos programas em MATLB
inicializadas por % são linhas de comentários,
não executadas.
O ponto e virgula é usado para suprimir
impressão.
O uso do operador 2 pontos pode ser usado
para criar vetores , subscrever matrizes e para
especificar as iterações do comando
for.Exemplificando: j:k é a mesma coisa que [j
j+1, ... k];A(:,,j) é a j-ésima coluna da matriz A e
A(i :,j) é a j-ésima col;una da matriz A
Pode-se colocar mais de um comando em
uma única linha desde que eles sejam separados
por virgulas ou oor ponto e virgulas.
Todos os cálculos do MATLAB são em
precisão dupla.
1.1- Obtenção de Gráficos de Curvas de
Respostas :
Se x e y são vetores de mesma dimensão, o
comando plot(x,y) plota os valores de y contra
os valores de x.
Para plotar várias curvas em um mesmo
gráfico, usa-se plot(X1, Y1, Y2, ..., Xn, Yn)
onde as variaveis são pares de vetores, cada par
x-y é plotado, gerando várias curvas no mesmo
gráfico.
Para se Plotar mais de uma curva em um
mesmo gráfico pode-se também usar o comando
hold, que congela a curva corrente e inibe o seu
pagamento.
Portanto é possivel curvas subsequentes a
uma curva original enxergar o efeito conjunto das
mesmas.Uma nova execução do comando hold
libera o gráfico corrente.
Uma vez que o gráfico esteja na tela, é
possivel desenhar linhas de grade, dar um titulo
ao gráfico e identificar os eixos x e y.Os
comandos do Matlab são grid ( linha de grade),
title(titulo do gráfico), xlabel( identificação do
eixo dos x), ylabel( identificação do eixo dos
y).
Pode-se também escrever um texto
começando em um ponto de coordenadas(X,Y)
de um gráfico na tela, por ex: text(3,0.45, ‘sent’)
que escreve horizontalmente seno t ,
começando no ponto de coordenadas(3,0.45).
O tipo do gráfico é dado pelo comando
plot(X, Y, ‘x’) onde – sólida, -- tracejada, :
pontilhada,. As cores vermelha r, verde g, azul
b, etc.
2- ALOCAÇÃO DE POLOS:

considerando-se o sistema
{ x = Ax + BU }
y=c x

escolhendo-se o sinal de controle como


sendo U (t ) = − K x(t ) , ie, o vetor de controle é
determinado pelo pelo valor instantaneo do
estado.
Efetuando as devidas substituições tem-se:
x = ( A − BK )U
cuja solução é da forma: x(t ) = EXP(( A − BK )t ) x(0)
onde x(0) é o estado inicial provocado por
perturbações externas.
As caracteristicas da estabilidade e do
regime transitório da resposta são dados pelos
auto-valores da matriz A-BK .
Se a matriz K for escolhida adequadamente
a matriz A-BK pode ser tornada uma matriz
assintóticamente estável e, para qualquer x(0)
distinct from zero é possivel fazer x(t) se
aproximar de 0 à medida que o valor de t tenda
para infinito.
Os autovalores da matriz A-BK são
chamados de polos do regulador.
Se estes polos estivessem situados no
semiplano da esquerda do plano s, x(t) se
aproxima de zero à medida que t se aproxima do
infinito.
O problema de posicionar os polos em
localização desejada é o problema de alocação
de polos.
A figura a mostra o sistema de controle a
malha aberta, porque o estado x não retorna
para o sinal de controle u.
A figura b mostra um sistema de retroação
de estado a malha fechada porque o estado x
retorna para o sinal de retroação u
Ë possivel provar que a alocação
arbiitrária de polos para um dado sistema é
possivel se e somente se o sistema for
totalmente controlavel.

Figura a Figura b
Se considerarmos tanto o sinal de controle u
quanto o sinal de saida y escalares através da
escolha apropiada de um conjunto de variaveis
de estado é possivel escolher a saida de forma
que seja igual a uma das variáveis de estado.

A figura c abaixo mostra a configuração


geral de um servomecanismo no qual o proceso
a controlar possui um integrador. Admite-se que
y=x1.

Figura c
Na presente análise supoem-se que a entrada de
referencia r seja uma função do tipo degrau.
Neste sistema, usa-se o seguinte esquema de
controle de retroação de estado:

u = k .x + k1r
onde:

K=[k1 k2 --- kn]

Considerandoo que a entrada de


referência(FUNCAO DEGRAU) seja aplicada em
t=0 ,; então para t>0 a dinâmica do sistema pode
ser descrita pelas equações
x = Ax + BU e
u = k .x + k1r ou seja
x = ( A − BK ) x + Bk 1 r (1)
Será oprojetado um servomecanismo que tal
que os polos a malha fechada sejam localizados
em posições desejadas.
O sistema projetado será assintóticamente
∞) irá se aproximar de um valor
estável e y(∞
constante r enquanto que u(∞ ∞) se aproximará de
zero.
Nota-se que em regime estacionário tem-se:
x(∞) = ( A − BK ) x(∞) + Bk1r (2)
considerando que r(t) é uma entrada em
degrau, tem-se que r(∞ ∞)=r(t)=r( constante) para
t> 0.
De (1) e (2) tem-se:
x(t ) − x(∞) = ( A − BK )[ x(t ) − x(∞)] (3)
Defina-se x(t ) − x(∞) = e(t ) (4)
Então a equação (3) torna-se:
e = ( A − BK )e (5)
A equação (5) descreve a dinam,ica do erro.
O projeto do servomecanismo é convertido
num problema de um regulador assintóticamente
estável tal que e(t) se aproxime de zero, dada
qualquer condição inicial e(0).
Se o sistema definido por x = Ax + BU e
y=c é completamente controlavel, então, através
da especificação dos autovalores dsejados
µ1 , µ2 ,..., µ n para a matriz A-BK, a matriz K pode
ser determinada por tércnica de alocação de
polos.
Os valores estacionários de x(t) e u(t) podem
sder encontrados como se segue;
Em regime estacionário(t=∞∞) tem-se de (2) :
x(∞) = 0 = ( A − BK ) x(∞) + Bk1 r
Como os autovalores desejados de A-BK
estão todos na metade esquerda do plano s, o
inverso da matriz A-BK existe.
Copnsequentemente x(∞∞) pode ser determinado
como:
x(∞) = −( A − BK ) −1 BK1 r (6)
∞) pode ser obtido por
Igualmente u(∞
u (∞) = − Kx(∞) + k1 r = 0
3- PROJETO DE SISTEMAS DE CONTROLE
ÓTIMO NO MATLAB

3.1- Revisão da Teoria

Uma vantagem de se usar o controle ótimo é


que o sistema será estável, exceto em casos
muito especiais. Ao se projetarem sistemas de
controle baseados na minimização de indices
quadráticos de desempenho é necessário
resolver a equação de Ricatti. O Matlab possui
o comando lqr que fornece a solução das
equações de Ricatti we determina a matriz de
ganho de retroação de valor ótimo.

Considera-se o problema de projeto de


sistemas de controle ótimo estáveis baseados
em indices quadráticos de desempenho.
Seja x = Ax + BU (1)

Quer se determinar a matriz k do vetor de


controle ótimo:

U (t ) = − K x(t ) (2)
de forma a minimizar o indice de
desempenho J definido como :

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

onde: Q é uma matriz Hermitiana positiva(


ou positiva semi-definida) ou real simétrica
R é uma matriz Hermitiana positiva
definida ou simétrica

Nota-se os seguintes fatos:


1-O segundo termo do lado direito de (3)
contabiliza o dispêndio de energia dos
sinais de controle.
2-As Matrizes Q e R determinam a
importância relativa do erro e o dispêndio
dessa energia.
O diagrama de blocos com a configuração
ótima é mostrado na Figura abaixo.
Desta forma , tem-se que:
x = Ax + BU = ( A − BK ) x (4)
Admite-se que a matriz A-BK seja estável ou
que os seus autovalores tenham parte real
negativas. Prova-se que a matriz K definida como
K = R −1 B′ P (5)
é a solução ótima onde P satisfaz a
equação de RICATTI
A′ P + P A − P B R −1 P + Q = 0 (6)
Desta forma, as etapas de projeto podem ser
especificadas como a seguir:

1- Resolver a equação (5) para a matriz P.


Se Uma Matriz P positiva definida existir , o
sistema é estável ou a
A-kB é estável
3-Substituir esta matriz P na equação (5)
4-A Matriz resultante K é a solução ótima.
3.2- SOLUÇÃO DO MATLAB PARA O
PROBLEMA DE CONTROLE ÓTIMO

No MATLAB, o comando
lqr(a,B,Q,R)

resolve o problema do regulador quadrático


continuo no tempo e a equação de RICCATI
associada.
O comando calcula a matriz ótima de ganho
de retroação K tal que a lei de controle U (t ) = − K x(t )
minimize o indice de desempenho J (3)sufeito à
equação (1)
Um outro comando

[k,P,E]=lqr(A,B,Q,R)

também retorna a matriz P , a solução única


positiva definida para a equação de Ricatti da
matriz associada:

A′ P + P A − P B R −1 P + Q = 0

Se a matriz A-BK for estável, uma solução


positiva definida para P sempre existe.
Ex1: Seja o sistema definido por:
x1 −1 1 x1 1
= + U
x2 0 2 x2 2
O sistema não pode ser estabilizado pelo
esquema de controle de retroação de estado u=-
k x qualquer que seja a matriz k escolhida.
Neste caso K=[k1 k2] , então a equação
característica sI − A + BK = 0 → se torna
(s+1+k1) (s-2)=0 e os pólos em malha fechada
estão localizados em: s = -1-k1 e em s = 2.
Como o polo em s=2 está na metade direita do
plano s , o sistema é instável

Ex2- Seja o sistema definido pelas equações


no espaço dos estados:
x = A x + Bu
y = C x+ Du
0 1 0 0
A= 0 0 1 B= 0
onde: , , C = [1 0 0]
0 −2 −3 1

D = [0]

Admite-se que o sinal de controle u seja


dado por:
U = k1 (r − x1 ) − (k2 x2 + k3 x3 )
Na determinação de controle ótimo ,
supõem-se que a saida é zero, ou seja r=0
Vai se determinar a matriz de ganho de
retroação de estado K onde K=[ k1 k2 k3 ] tal
que seja minimizado o seguinte indice de
desempenho

J= ( x′ Qx + u′ Ru )du
0

onde

q11 0 0 x1 x
Q = 0 q22 0 x = x2 = y
, R=1,
0 − 2 q33 x3 y

Para se obter uma resposta rápida q11


precisa ser suficientemente grande
comparado com q22, q23 e R.

Neste problema escolhe-se

q11=100, q22=q33=1, R=0.001

Para se resolver este problema no matlb,


usa-se o comando

K=lqr(A,b,R)
Para se observar a caracteristica da
resposta em degrau do sistema usando a
matriz K então determinada.

A equação do estado para o sistema


projetado é:
x = ( A − BK ) x + Bk1r
A equação de saida é:
x1
y = CX = [0 1 0] x2
x3
Para se obter a resposta em degrau
unitário, usa-se o seguinte comando

[y,x,t]=step(AA,BB,DD)

onde:
AA = A − BK BB=Bk1 CC=C DD=D
O programa MATLAB fornece a resposta
em degrau unitário do sistema projetado.
Ver figuras:
Resposta em Degrau Unitário do
sistema de Controle Quadrático

Curvas de Resposat x1,x2,x3 Vs.tempo

Você também pode gostar