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

k];A(:,,j) é a j-ésima coluna da matriz A e

j+1,

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,

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

, Xn, Yn)

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.

de polos para um dado sistema é possivel se e somente se o sistema for totalmente

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=x 1.

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

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

.

+

k r

1

onde:

K=[k 1 k 2

---

k n ]

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

u

=

x

= (

k x

.

A

+

k r

1

BK

)

e

ou seja

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 estável e y(∞∞∞∞) irá se aproximar de um valor constante r enquanto que u(∞∞∞∞) se aproximará de zero. Nota-se que em regime estacionário tem-se:

x

() = (

A

)

BK x

() +

Bk r

1

(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)

x(t) x() = e(t) (4)

Defina-se

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).

e

y=c é completamente controlavel, então, através

da especificação dos autovalores dsejados

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) :

Se o sistema definido por x

= Ax + BU

µ ,µ ,

1

2

,µ

n

x

() = 0 = (

A

)

BK x

() +

Bk r

1

Como os autovalores desejados de A-BK estão todos na metade esquerda do plano s, o

existe.

Copnsequentemente x(∞∞∞∞) pode ser determinado como:

inverso

da

matriz

A-BK

x

(

)

= −

(

A

BK

)

1

BK r

1

(6)

Igualmente u(∞∞∞∞) pode ser obtido por

u

(

)

= −Kx ∞ + k r =

(

)

1

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

=

0

(x Q x +

u Ru)dt (3)

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 = (ABK)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

é a solução ótima onde P satisfaz a equação de RICATTI

1

BP

(5)

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 BR

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:

x

x

1

2

=

1 1 x 1

2

1

+

0

2

x

2

U

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=[k 1 k 2 ] , então a equação

característica

se torna

(s+1+k 1 ) (s-2)=0 e os pólos em malha fechada estão localizados em: s = -1-k 1 e em s = 2. Como o polo em s=2 está na metade direita do plano s , o sistema é instável

sI A + BK

= 0

Ex2- Seja o sistema definido pelas equações no espaço dos estados:

x = Ax + Bu

y = C x + Du

A =

onde:

D =[0]

0

0

0

1

0

2

0 3

1

B =

,

0

0

1

, C =[1

0

0]

Admite-se que o sinal de controle u seja dado por:

U = k

1

(

r x

1

)

(

k x

2

2

+ k x

3

3

)

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=[ k 1 k 2 k 3 ] tal que seja minimizado o seguinte indice de desempenho

J

=

0

onde

(x Qx

+

Q =

q

11

0

0

0

q

22

2

u Ru)du

0

0

q

33

, R=1,

x =

x

1

x

2

x

3

=

x

y

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

+

Bk r

1

A equação de saida é:

y

=

CX

= [010]

x

x

x

1

2

3

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=Bk 1 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

Resposta em Degrau Unitário do sistema de Controle Quadrático

Resposta em Degrau Unitário do sistema de Controle Quadrático Curvas de Resposat x1,x2,x3 Vs.tempo

Curvas de Resposat x1,x2,x3 Vs.tempo