You are on page 1of 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 :

. Y2. que congela a curva corrente e inibe o seu pagamento.. Yn) onde as variaveis são pares de vetores. Para se Plotar mais de uma curva em um mesmo gráfico pode-se também usar o comando hold.45. ‘sent’) que escreve horizontalmente seno t .. xlabel( identificação do eixo dos x). . Uma vez que o gráfico esteja na tela. é possivel desenhar linhas de grade.Y) de um gráfico na tela. usa-se plot(X1.Uma nova execução do comando hold libera o gráfico corrente.0.y) plota os valores de y contra os valores de x.45). title(titulo do gráfico). gerando várias curvas no mesmo gráfico. por ex: text(3. cada par x-y é plotado. Pode-se também escrever um texto começando em um ponto de coordenadas(X.Se x e y são vetores de mesma dimensão. ylabel( identificação do eixo dos y). . Xn.0. o comando plot(x. começando no ponto de coordenadas(3. dar um titulo ao gráfico e identificar os eixos x e y. Portanto é possivel curvas subsequentes a uma curva original enxergar o efeito conjunto das mesmas.Os comandos do Matlab são grid ( linha de grade). Para plotar várias curvas em um mesmo gráfico. Y1.

. etc. azul b. As cores vermelha r.O tipo do gráfico é dado pelo comando plot(X. ‘x’) onde – sólida. Y. : pontilhada. -. verde g.tracejada. .

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 ) . o vetor de controle é determinado pelo pelo valor instantaneo do estado. As caracteristicas da estabilidade e do regime transitório da resposta são dados pelos auto-valores da matriz A-BK . Os autovalores da matriz A-BK são chamados de polos do regulador. . para qualquer x(0) distinct from zero é possivel fazer x(t) se aproximar de 0 à medida que o valor de t tenda para infinito. Se a matriz K for escolhida adequadamente a matriz A-BK pode ser tornada uma matriz assintóticamente estável e. ie. 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.

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. 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 . porque o estado x não retorna para o sinal de controle u.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.

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. Figura c . Admite-se que y=x1.

x + k1r ou seja . 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.x + k1r K=[k1 k2 --.Na presente análise supoem-se que a entrada de referencia r seja uma função do tipo degrau.. Nota-se que em regime estacionário tem-se: x = ( A − BK ) x + Bk 1 r (1) u = k . então para t>0 a dinâmica do sistema pode ser descrita pelas equações x = Ax + BU e Será oprojetado um servomecanismo que tal que os polos a malha fechada sejam localizados em posições desejadas. usa-se o seguinte esquema de controle de retroação de estado: onde: u = k .kn] Considerandoo que a entrada de referência(FUNCAO DEGRAU) seja aplicada em t=0 . Neste sistema.

O projeto do servomecanismo é convertido num problema de um regulador assintóticamente estável tal que e(t) se aproxime de zero.. Se o sistema definido por x = Ax + BU e y=c é completamente controlavel. a matriz K pode x(∞) = 0 = ( A − BK ) x(∞) + Bk1 r . Os valores estacionários de x(t) e u(t) podem sder encontrados como se segue. tem-se que r(∞)=r(t)=r( constante) para ∞ t> 0. através da especificação dos autovalores dsejados ser determinada por tércnica de alocação de polos.... µ n para a matriz A-BK. 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: x(∞) = ( A − BK ) x(∞) + Bk1r A equação (5) descreve a dinam. então.(2) considerando que r(t) é uma entrada em degrau.ica do erro. µ2 . Em regime estacionário(t=∞) tem-se de (2) : ∞ e = ( A − BK )e (5) µ1 . dada qualquer condição inicial e(0).

Copnsequentemente x(∞) pode ser determinado ∞ como: Igualmente u(∞) pode ser obtido por ∞ x(∞) = −( A − BK ) −1 BK1 r (6) u (∞) = − Kx(∞) + k1 r = 0 . o inverso da matriz A-BK existe.Como os autovalores desejados de A-BK estão todos na metade esquerda do plano s.

Considera-se o problema de projeto de sistemas de controle ótimo estáveis baseados em indices quadráticos de desempenho.1. exceto em casos muito especiais.PROJETO DE SISTEMAS DE CONTROLE ÓTIMO NO MATLAB 3.3. 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.Revisão da Teoria Uma vantagem de se usar o controle ótimo é que o sistema será estável. Seja x = Ax + BU (1) Quer se determinar a matriz k do vetor de controle ótimo: de forma a minimizar o indice de desempenho J definido como : U (t ) = − K x(t ) (2) . 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 diagrama de blocos com a configuração ótima é mostrado na Figura abaixo. 2-As Matrizes Q e R determinam a importância relativa do erro e o dispêndio dessa energia.J= ∞ 0 ( x′ Q x + u′ R u ) 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.

Se Uma Matriz P positiva definida existir . 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. tem-se que: Admite-se que a matriz A-BK seja estável ou que os seus autovalores tenham parte real negativas. 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. x = Ax + BU = ( A − BK ) x (4) . as etapas de projeto podem ser especificadas como a seguir: 1.Desta forma .Resolver a equação (5) para a matriz P.

Q.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.R) resolve o problema do regulador quadrático continuo no tempo e a equação de RICCATI associada.2.B. o comando lqr(a. uma solução positiva definida para P sempre existe.3.E]=lqr(A.Q.B. .SOLUÇÃO DO MATLAB PARA O PROBLEMA DE CONTROLE ÓTIMO No MATLAB. 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.R) também retorna a matriz P .

então a equação sI − A + BK = 0 → se torna característica (s+1+k1) (s-2)=0 e os pólos em malha fechada estão localizados em: s = -1-k1 e em s = 2. Neste caso K=[k1 k2] . C = [1 0 0] D = [0] Admite-se que o sinal de controle u seja dado por: . o sistema é instável Ex2. Como o polo em s=2 está na metade direita do plano s .Seja o sistema definido pelas equações no espaço dos estados: x = A x + Bu 0 A= 0 y = C x+ Du onde: 1 0 0 1 0 0 −2 −3 . B= 0 1 .Ex1: Seja o sistema definido por: x1 x2 = −1 1 0 x1 x2 2 + 1 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.

supõem-se que a saida é zero. R=1. x = x2 x3 Para se obter uma resposta rápida q11 precisa ser suficientemente grande comparado com q22.001 Para se resolver este problema no matlb.R) . q22=q33=1. 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= ∞ 0 ( x′ Qx + u′ Ru )du onde q11 0 Q = 0 q22 0 0 0 x1 x = y y − 2 q33 .U = k1 (r − x1 ) − (k2 x2 + k3 x3 ) Na determinação de controle ótimo .b. R=0. usa-se o comando K=lqr(A. q23 e R. Neste problema escolhe-se q11=100.

Para se observar a caracteristica da resposta em degrau do sistema usando a matriz K então determinada.DD) onde: O programa MATLAB fornece a resposta em degrau unitário do sistema projetado. A equação do estado para o sistema projetado é: A equação de saida é: x1 y = CX = [0 1 0] x2 x3 x = ( A − BK ) x + Bk1r Para se obter a resposta em degrau unitário.BB. Ver figuras: AA = A − BK BB=Bk1 CC=C DD=D .t]=step(AA.x. usa-se o seguinte comando [y.

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