25 - Erros Estacionários No Modelo de Estado e Estabilidade Relativa Rastreador

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 25

Objetivos da aula:

ˆ Rastreamento Controle Moderno.

ˆ Rastreamento de saı́da rastreável.

ˆ Exemplo rastreamento de saı́da rastreável.

ˆ Rastreamento de saı́da não rastreável reduzindo modelo da planta.

ˆ Exemplo rastreamento de saı́da não rastreável reduzindo modelo da planta.

ˆ Rastreamento de saı́da não rastreável condicionando sinal de entrada.

ˆ Exemplo rastreamento de saı́da não rastreável condicionando sinal de en-


trada.
ˆ Estabilidade relativa do sistema rastreador.

Conceitos Básicos:
ˆ Rastreamento Controle por Realimentação de Estados.

ˆ Função S(s) para rastrear uma variável de saı́da especı́fica.

ˆ Estabilidade Relativa Rastreador realimentação de estados.

1
Variável de rastreamento e Erro Estacionário

5 de novembro de 2024

1 Rastreamento Controle Moderno RE


Rastreamento significa fazer a saı́da ou a variação da saı́da acompanhar uma
entrada. Neste caso, o erro estacionário precisa ser eliminado.
As duas formas possı́veis de correção do erro estacionário no controle mo-
derno são:

ˆ Configuração que corrige apenas os ganhos dinâmicos da função de trans-


ferência da malha fechada.
D

r(t) u(t) y
Z
ẋ x +
WS +

B +
+
C +

ˆ Configuração que satisfaz o desempenho da variável a ser rastreada intro-


duzindo integradores W (s) para corrigir o seu erro estacionário a diferentes
entradas alterado o tipo do ganho de malha aberta L(s) calculado através
de uma extensão do modelo de estado do sistema. Esta configuração
apresenta a vantagem de anular o erro estacionário dentro da malha de
controle.
D

r(t) ea (t) yi u(t) y


Z
w ẋ x +
S(s) + W (s) Ki − B + C +
− − +

Wi (s) A

Kk

2
2 Rastreando saı́da rastreável
A ideia portanto é acrescentarmos a função W (s) na forma de um integrador
de ordem n para corrigir o desempenho do erro estacionário nulo desejado da
variável de saı́da que se deseja controlar. Desta forma podemos corrigir o erro
estacionário para a entrada desejada.
O diagrama de malha fechada do sistema controlado total para garantir o
rastreamento pode ser visto no diagrama a seguir:
D

r(t) ea (t) yi u(t) y


Z
w ẋ x +
+ W (s) Ki − B + C +
− − +

Wi (s) A

Kk

Como observado, para garantir o rastreamento da variável de saı́da no con-


trole moderno, vamos acrescentar a função W (s), ganhos dos integradores Ki
e uma nova realimentação da saı́da, acarretando uma alteração na posição dos
pólos do sistema, o que não é desejado. Portanto, temos que calcular W (s) de
forma a não alterar o projeto dos pólos do sistema de malha fechada.
Como com a inclusão da função W (s) foram acrescentados novas variáveis de
estado wi , a ideia é estendermos as matrizes do sistema para realizar o projeto
das constantes do controlador por realimentação de estados Kk juntamente com
as constantes dos integradores Ki das novas variáveis de estado da função W (s).
O diagrama de bloco dos integradores pode ser representado na forma:
Z Z Z Z
ea ẇi ẇ2 = w3 ẇ1 = w2 w1
Bi

Das próprias variáveis de estado dos integradores w1 , w2 , ..., wi podemos ob-


ter a equação dinâmica do modelo de estado Wi :
      

 ẇ1 
 0 1 0 0 ··· 0  w1  0 
ẇ2 0 0 1 0 · · · 0 w2  0
 
      
= . . . . . + . ea
 
.. . .
  .. .. .. .. . . ..  
 ..   .. 

 . 

   
  
    
ẇi 0 0 0 0 ··· 0 wi 1
 
| {z } | {z } | {z } | {z }
ẇ Ai w Bi

A equação de saı́da yi = Ki w do modelo de estado Wi pode ser escrita na


forma matricial:
 

 w1 
 
 w2 


yi = ki1 ki2 · · · kii .. + [0] ea
| {z } .  |{z}
Ki

  Di
wi

| {z }
w

3
Colocando na forma de estado o integrador W (s) obtivemos a equação
dinâmica e a equação de saı́da de estado com os seus respectivos ganhos Ki
em função das variáveis de estado w e o diagrama completo na forma de estado
fica:
Dk

r(t) ea (t) u(t) x


yi yk
Z Z
ẇ w ẋ +
+ Bi + Ki − B + w Ck +
− + − +

Ai A

Kk

Do diagrama podemos escrever as seguintes equações:

ẋ = Ax + Bu (1)
yk = Ckx x + Ckw w + Dk u (2)
u = −Kk x − yi (3)
ẇ = Ai w + Bi ea (4)
yi = Ki w (5)
ea = r − yk (6)

Substituindo a equação (2) na equação (6) e o resultado substituimos na


equação (4) obtemos:

ẇ = Ai w + Bi r − Bi Ckx x − Bi Ckw w − Bi Dk u (7)

Juntando na forma matricial as equações (1) e (7) temos a equação dinâmica:


        
ẋ A 0 x B 0
= + u+ r (8)
ẇ −Bi Ckx Ai − Bi Ckw w −Bi Dk Bi
| {z } | {z } | {z } | {z } | {z }
ẋe Ae xe Beu Ber

Na forma simplifica podemos escrever:

ẋe = Ae xe + Beu u + Ber r (9)

Colocando agora a equação de saı́da yk = Ckx x + C kww + Dk u na forma


x
matricial em função do vetor de estado estendido xe = resulta:
w
 
  x    
yk = Ckx Ckw + Dk u + 0 r (10)
|{z} | {z } w | {z } |{z}
ye Ce | {z } Deu Der
xe

4
Substituindo a equação yi = Ki w na equação u = −Kk x − yi , a lei de
controle u pode ser escrita na forma matricial:
 
  x
u = −Kk x − Ki w = − Kk Ki = −Ke xe (11)
| {z } w
Ke | {z }
xe

Substituindo agora a equação u = −Ke xe da lei de controle matricial na


equação ẋe = Ae xe + Beu u + Ber r temos:
ẋe = Ae xe − Beu Ke xe + Ber r (12)
Colocando em evidência xe na equação (12) chegamos na equação dinâmica
de malha fechada estendida:
ẋe = (Ae − Beu Ke ) xe + Ber r (13)
|{z} | {z } |{z} |{z}
ẋTe AT e xTe BT e

Substituindo agora a equação u = −Kk x − Ki w na equação de saı́da yk =


Ckx x+Ckw w+Dk u resulta a equação de saida yTe da malha fechada estendida:
yTe = Ckx x + Ckw w − Dk Kk x − Dk Ki w (14)
Como a equação de saı́da pode ser escrita para representar qualquer saı́da do
sistema de malha fechada que se deseja visualizar, ao invés de utilizar as saı́das
sendo controladas Ckx , Ckw e Dk utilizadas nos projetos dos controladores,
vamos escrever a equação de saı́da yTe numa forma mais geral em função de
novas saı́das correspondendo a outras matrizes desejadas quaisquer Cdx , Cdw
e Dd que podem ser iguais ou não as matrizes Ckx , Ckw e Dk resultando na
forma matricial:
 
 x
yTe = Cdx − Dd Kk Cdw − Dd Ki + [0] r (15)
| {z } w |{z}
CTe | {z } DT e
xTe

Logo pode-se escrever o modelo de estado do sistema de malha fechada como,


ẋTe = ATe xTe + BTe r
(16)
yTe = CTe xTe + DTe r
onde as matrizes ATe , BTe , CTe , DTe são dados por:

0 ∗ (Bi Ckx )t
   
A B 
ATe = Ae − Beu Ke = − Kk Ki
−Bi Ckx Ai − Bi Ckw −Bi Dk
 
0∗B
BTe = Ber =
Bi

CTe = Cdx − Dd Kk Cdw − Dd Ki

DTe = 0

5
O diagrama de blocos completo resultante do sistema de malha fechada com
os seus subsistemas identificados é dado por:

r(t) ea (t) yi u(t) y


Z
w ẋ x +
S(s) + W (s) Ki − B + C +
− − +

Wi (s) A

Kk

Tk (s)

Te (s)

STe (s)

A definição do número de integradores i em Wi (s) vai ser o resultado da


soma do número de integradores utilizados em S(s) dado por m e do número
de integradores devido a entrada de rastreamento desejada dado por n. Para
a entrada degrau n = 1, para entrada rampa n = 2 e para entrada parábola
n = 3 e assim sucessivamente. Desta forma o número de integradores é dado
pela expressão:
i=m+n
Se os pólos desejados sed da malha fechada extendida Te (s) são especificados
como
sed = sk1 , sk2 , · · · , sknk , si1 , si2 , · · · , sini
então a matriz de ganho Kk do controlador por realimentação de estados e
de ganho Ki da função integral Wi (s) podem ser determinados pela técnica
de alocação de pólos do sistema extendido Te (s) resultando em Ke dada pela
fórmula de Ackerman, desde que o sistema de malha fechada extendido seja
completamente controlável, ou seja desde que a matriz de controlabilidade ex-
tendida Me formada pelas matrizes Ae e Beu apresente determinante diferente
de zero.

6
3 Exemplo de rastreamento de saı́da rastreável
Dado o sistema massa-amortecedor (sem uma mola) com m=2kg e c=3Ns/m,
modelado pela seguinte equação diferencial,

mÿ = u − cẏ
cujo diagrama de blocos é dado por:

u(t) 1 ÿ(t) 1 ẏ(t) 1 y(t)


+
m − s s

c
m

projetar o pólo em −1 ± j por realimentação de estados para controlar o des-


locamento com erro nulo à parábola. Considerar os polos em malha fechada
devido aos integradores com módulo de 5.

Solução:
Podemos modelar o sistema com as seguintes variáveis de estado de deslo-
camento e velocidade:

⇒ deslocamento
x 1 =
⇒ velocidade
x 2 =

Montando as equações dinâmicas temos:

ẋ1 = x2
1 c
ẋ2 = u − x2
m m
Podemos montar as matrizes A e B na forma:
       
ẋ1 0 1 x1 0
= c · + 1 ·u
ẋ2 0 −m x2 m

Como queremos rastrear o deslocamento com erro nulo a parábola, temos


que verificar a controlabilidade do sistema estendido Me com três integradores
e com a variável de saı́da deslocamento escolhida.

7
No MatLab temos inicialmente o modelo do sistema e os polos desejados
polosk em malha fechada devido ao controlador:

clear all;
close all;
c = 2;
m = 3;
A = [0 1; 0 -c/m];
B = [0; 1/m];
Ckx = [1 0]; % Para controlar pelo deslocamento
Ckw = [0 0 0];
Dk = 0;
polosk=[-1+j -1-j];

Para garantir erro nulo a parábola, temos que acrescentar três integradores,
i = 3, verificar a controlabilidade, se determinante diferente de zero projetar os
ganhos do controlador adotando os polos devido aos integradores mais rápidos
que os polos devidos aos ganhos de realimentação de estado, fechar a malha e
finalmente verificar o resultado, resultando nos seguintes comandos no MatLab:
Ai=[0 1 0
0 0 1
0 0 0];
Bi=[0
0
1];
Ae=[A (Bi*Ckx)’*0;
-Bi*Ckx Ai-Bi*Ckw]
Beu=[B
-Bi*Dk]
Me=ctrb(Ae,Beu);
det(Me)
poloske=[-1+j -1-j -5 -5 -5];
Ke=acker(Ae,Beu,poloske)
Cdx=Ckx;
Cdw=Ckw;
Dd=Dk;
Ate=Ae-Beu*Ke
Bte=[0*B
Bi]
% Ct=[Cdx-Dd*Ke(1:2) Cdw-Dd*Ke(3:5)]
Cte=[Cdx-Dd*Ke(1:length(polosk)) Cdw-Dd*Ke(length(polosk)+1:length(poloske))]
Dte=0
Te=ss(Ate,Bte,Cte,Dte)
tf(Te)
%observar na funç~
ao de transfer^
encia os ganhos dinamicos
%de ordem 0, 1 e 2 unitários = erro parábola nulo

8
4 Rastreando saı́da não rastreável
Se o determinante da matriz de controlabilidade do sistema expandido formada
pelas matrizes Ae e Beu , onde na parte expandida destas matrizes foram in-
cluı́dos termos Ckx , Ckw relativos a variável de saı́da yk que se deseja controlar,
for igual a zero significa que a variável de saı́da yk escolhida não é rastreável
diretamente.
Desta forma temos duas opções:
ˆ reduzir a ordem do modelo da planta (quando possı́vel).
ˆ condicionar o sinal de referência com a função S(s) para rastrear a saı́da
desejada.

4.1 Reduzir a ordem do modelo da planta para rastrear


saı́da não rastreável
Primeiro escolher o número de variáveis de estado que serão medidas, depois
modelar a planta com as variáveis de estado escolhidas e em seguida é só colo-
car o numero de integradores W (s) necessários para corrigir o respectivo erro
estacionário da entrada desejada.

4.1.1 Exemplo de rastreamento de saı́da não rastreável através da


redução da ordem do modelo da planta
Dado o sistema massa-amortecedor (sem uma mola) com m=2kg e c=3Ns/m,
modelado pela seguinte equação diferencial,

mÿ = u − cẏ
projetar o pólo com módulo de 1 por realimentação de estados para controlar
a velocidade com erro nulo à parábola. Considerar os polos em malha fechada
devido aos integradores com módulo de 5.
Assumindo a modelagem do sistema com uma única variável de estado x1
sendo a velocidade, o diagrama de blocos fica na forma,
u(t) 1 ÿ(t) 1 ẏ(t)
+
m − s

e o modelo de estados fica na forma:


  c  1
ẋ1 = − m · x1 + m ·u
Considerado S(s) = 1 (m = 0), para corrigir o respectivo erro estacionário
da entrada desejada (n = 3) é só colocar o número de integradores de W (s)
necessários (i = m+n = 3) e verificar se a controlabilidade considerando a saı́da
como a velocidade é diferente de zero para conseguir rastrear a velocidade.

9
No Matlab temos:

% S(s)=1, ou seja m=0 e n=3, logo i=3


c = 2; m = 3;
A = [-c/m]; B = [1/m]; polosk=[-1];
Ckx = [1]; % Agora só é possı́vel ver/controlar a velocidade
Ckw = [0 0 0]; Dk = 0;
Ai=[0 1 0;0 0 1;0 0 0];
Bi=[0;0;1];
Ae=[A (Bi*Ckx)’*0; -Bi*Ckx Ai-Bi*Ckw]
Beu=[B; -Bi*Dk]
Me=ctrb(Ae,Beu);
det(Me)
poloske=[-1 -5 -5 -5];
Ke=acker(Ae,Beu,poloske)
Cdx=Ckx;
Cdw=Ckw;
Dd=Dk;
Ate=Ae-Beu*Ke
Bte=[0*B; Bi]
Cte=[Cdx-Dd*Ke(1:length(polosk)) Cdw-Dd*Ke(length(polosk)+1:length(poloske))]
Dte=0;
Te=ss(Ate,Bte,Cte,Dte)
tf(Te)
%observar na funç~
ao de transfer^ encia os ganhos dinamicos
%de ordem 0, 1 e 2 unitários = erro parábola nulo

10
4.2 Condicionar o sinal de referência com a função S(s)
para rastrear saı́da não rastreável
Primeiro escolher qual saı́da yk será possı́vel de ser rastreada com as variáveis
de estado sendo medidas através do determinante da matriz de controlabilidade
estendida Me , depois acrescentar a função S(s) de forma a condicionar o sinal
de referência para aparentemente rastrear a saı́da desejada yd em relação a
variável realmente rastreada yk , e finalmente definir o número de integradores
i para corrigir os erros estacionários desta variável controlada. Dessa forma,
se queremos controlar uma saı́da yd que não seja uma variável de estado
de menor ordem do sistema de malha fechada, condicionamos o sinal de
referência rd com a função S(s) para ter o mesmo efeito que o sinal de referência
que se deseja aplicar ra para aparentemente rastrear yd .
Por exemplo, deseja-se uma referência degrau rd (t) para rastrear a velocidade
yd no sistema cuja variável de saı́da controlada yk é o deslocamento, o sinal
de referência que teremos que aplicar ra (t) é uma rampa, pois ela tem um
efeito semelhante já que um deslocamento crescendo constantemente implica
velocidade constante.

yk = d
rd (t) ra (t)
S Te
yd = v

É importante notar que neste caso desejamos erro nulo ao degrau


(n = 1) na variável desejada yd virtualmente sendo rastreada, que o número
de integradores de S(s) é m = 1, e que desta forma agora precisamos garantir
erro nulo a rampa (i = 2) para a variável verdadeiramente sendo
rastreada yk , ou seja, o número de integradores i de W (s) é dado por i = m+n.
As variáveis não controladas são sempre de ordem maior que as variáveis
controladas, e estão relacionadas com a variável sendo controlada por alguma
equação que involve a integração da referência desejada.

rd (t) g ra (t) yd (t)


Te
sm

Logo deve-se obter as equações que relacionam a variável que se deseja con-
trolar yd com a variável de estado sendo controlada yk .

11
Por exemplo imagine a situação em que queremos rastrear com a entrada
rd (t) a saı́da yd (t), mas a variável possı́vel de ser controlada é x1 , ou seja o
sinal de referência de entrada para rastrear x1 é ra (t), e o sistema apresenta o
seguinte diagrama de bloco:
yd (t)
g

rd (t) ra (t) ea (t) w yi (t) u(t) 1 x2 ẋ1 1 x1 yk (t) y


S(s) + W (s) Ki −
− −
+ a
− − s s

k2

k1

Desta forma, precisamos corrigir a entrada de referência rd (t) para conseguir


rastrear yd (t) utilizando uma função S(s) para que a saı́da yk que é a variável
sendo controlada x1 rastreie o sinal de referência ra (t).
Desta forma, para calcular S(s) temos que obter as equações que relacionam
yd com yk . Podemos obter diretamente do diagrama as seguintes equações:

yk = x1
yd = gx2
1
x1 = ẋ1
s
ẋ1 = ax2

Neste caso, imaginando que a saı́da yd (t) está rastreando rd (t), ou seja se a
entrada rd (t) é um degrau, a saı́da yd (t) também deverá ser um degrau. Como
queremos controlar yd através de yk , vamos obter como deverá ser a saı́da yk
em função da saı́da desejada yd (t) que neste caso será um degrau unitário:

yk = x1
1
yk = ẋ1
s
1
yk = ax2
s
1 yd
yk = a
s g
a1
yk = yd
gs

12
Como o sistema é linear e a variável possı́vel de ser rastreada é a saı́da yk ,
se multiplicarmos a entrada por uma função S(s), a saı́da rastreada yk também
será multiplicada por S(s), resultando portanto na função S(s) que garante
virtualmente o rastreamento da saı́da yd :

a
S(s) =
gs

Podemos portanto através da equação

a1
yk = yd
gs
a
obter o sinal de saı́da yk se multiplicarmos a saı́da yd por gs .
Desta forma se queremos a saı́da yd rastreando um degrau unitário, a saı́da
yk deverá resultar

a1 1
yk = y
d
>
g s
a
Para isso, devemos pré-multiplicar o sinal de entrada ra por gs de forma a
a
que o sinal de referência seja uma rampa gs

a1
ra =
gs

para obtemos a saı́da

a1
yk =
gs

igual ao sinal de rastreamento aplicado na entrada.

yk = ag t
rd (t) ra (t) = ag t
a1
g s Te
yd = v

13
4.2.1 Exemplo de condicionamento sinal de entrada para rastrear
saı́da não rastreável
Dado o sistema massa-amortecedor (sem uma mola) com m=2kg e c=3Ns/m,
modelado pela seguinte equação diferencial,

mÿ = u − cẏ
cujo diagrama de blocos é dado por:

u(t) 1 ÿ(t) 1 ẏ(t) 1 y(t)


+
m −
x˙2 (t) s x2 (t) s x1 (t)

c
m

projetar o pólo em −1 ± j por um controlador por realimentação dos dois es-


tados x1 = deslocamento e x2 = velocidade que serão medidos para controlar
a aceleração com erro nulo a parábola, considerando os pólos devido para
rastreamento do saı́da com módulo iguais a 5.

Solução: Podemos modelar o sistema com as seguintes variáveis de estado


de deslocamento e velocidade:

⇒ deslocamento
x 1 =
⇒ velocidade
x 2 =

Montando as equações dinâmicas temos:

ẋ1 = x2
1 c
ẋ2 = u − x2
m m
Podemos montar as matrizes A e B na forma:
       
ẋ1 0 1 x1 0
= c · + 1 ·u
ẋ2 0 −m x2 m

Como queremos rastrear a aceleração com erro nulo a parábola, temos que
verificar a controlabilidade do sistema estendido com três integradores e com a
variável de saı́da aceleração escolhida.

14
No MatLab temos:
clear all; close all; % S(s)=1, ou seja m=0 e n=3, logo i=3
c = 2; m = 3;
A = [0 1; 0 -c/m];
B = [0; 1/m];
Ckx = [0 -c/m]; Ckw = [0 0 0]; Dk = [1/m]; % Para controlar pela aceleraç~
ao
Ai=[0 1 0; 0 0 1; 0 0 0];
Bi=[0; 0; 1];
Ae=[A (Bi*Ckx)’*0; -Bi*Ckx Ai-Bi*Ckw]
Beu=[B; -Bi*Dk]
Me=ctrb(Ae,Beu);
det(Me)
Observa-se neste caso que o determinante da matriz de controlabilidade é
nula, o que significa que realimentando a aceleração para rastrear a aceleração
não é possı́vel.
Desta forma vamos então rastrear o deslocamento (Ckx=[1 0]). Precisa-
mos agora descobrir novamente o numero de integradores W (s) necessários na
variável rastreada yk para que tenhamos erro nulo a parábola da variável yd
sendo desejada. Vamos primeiro descobrir a função S(s) para condicionamento
do sinal da variável que se deseja ”virtualmente”controlar yd .
A função S pode ser obtida pela relação entre yd e yk :
1 1
yk = x1 yd = ẋ2 ẋ1 = x2 ẋ2 = sx2 => x1 =x2 x2 = ẋ2
s s
Como queremos controlar yd através de yk , vamos obter como deverá ser a
saı́da yk em função da entrada yd (t), que é a variável que se deseja controlar,
no caso yd :
yk = x1
1
yk = x2
s
11
yk = ẋ2
ss
1
yk = 2 yd
s
Então a função S fica:
1
S(s) =
s2
Desta forma observamos que temos dois integradores (m = 2) em S(s) e que
para conseguir rastrear a variável yd com erro nulo a parábola (n = 3) temos
que introduzir na verdade cinco integradores (i = m + n = 5) em W (s) .
1
W (s) =
s5

15
No MatLab temos:
clear all;
close all;
c = 2; m = 3; % S(s)=1/s^2, ou seja m=2 e n=3, logo i=5
A = [0 1; 0 -c/m];
B = [0; 1/m];
Ckx = [1 0]; Ckw=[0 0 0 0 0]; Dk = 0; % Para controlar pelo deslocamento
polosk=[-1+j -1-j];
Ai=[0 1 0 0 0; 0 0 1 0 0; 0 0 0 1 0; 0 0 0 0 1; 0 0 0 0 0];
Bi=[0; 0; 0; 0; 1];
Ae=[A (Bi*Ckx)’*0;
-Bi*Ckx Ai-Bi*Ckw]
Beu=[B
-Bi*Dk]
Me=ctrb(Ae,Beu);
det(Me)
poloske=[-1+j -1-j -5 -5 -5 -5 -5];
Ke=acker(Ae,Beu,poloske);
Kk=Ke(1:length(polosk));
Ki=Ke(length(polosk)+1:length(poloske));
Cdx=[0 -c/m]; Cdw=[0 0 0 0 0]; Dd=[1/m]; % Para ver a aceleraç~ ao
Ate=Ae-Beu*Ke
Bte=[0*B; Bi]
Cte=[Cdx-Dd*Kk Cdw-Dd*Ki]
Dte=0
Te=ss(Ate,Bte,Cte,Dte)
s=tf(’s’)
S=1/s^2;
STe=tf(S*Te)
STe=minreal(STe,1e-5) % Cancelar polos e zeros coincidentes
%Observar que a mı́nima realizaç~ ao da funç~
ao de transfer^
encia "STe(s)"
%com saı́da em aceleraç~
ao que os ganhos dinamicos de ordem 0, 1 e 2
%s~ao unitários = erro à parábola é nulo
%
%Note que a funç~ao de transfer^ encia "Te(s)" com saı́da em deslocamento
%os ganhos dinamicos de ordem 0, 1, 2, 3, 4 e 5 s~ ao unitários = erro
%à integral dupla da parábola nulo

y(t)

1.0

16
5 Estabilidade relativa do sistema rastreador RE
Seja o diagrama de blocos do sistema de malha fechada com realimentação de
estados:
Dk

r(t) ea (t) yi u(t) yk


Z Z
ẇ w ẋ x +
S(s) + Bi + Ki − B + Ckx +
− + − +

Ai A

Kk

Abrindo a malha e eliminando a função S(s) para calcular o ganho de malha


aberta L(s) temos:

Dk

r(t) ea (t) yi u(t) yk


Z Z
ẇ w ẋ +
+ Bi + Ki − B + Ckx +
− + − +

Ai A

Wi (s)
Kk
Tk (s)

Do diagrama podemos escrever as seguintes matrizes do modelo de estado


de Tk :
ATk = A − BKk
BTk = B
CTk = Ckx − Dk Kk
DTk = Dk

Podemos agora transformar o modelo de estado dos integradores em uma


função de transferência W (s).
Ki=Ke(length(polosk)+1:length(poloske));
Wi=tf(ss(Ai,Bi,-Ki,0));
Podemos também transformar o modelo de estado de malha fechada do
sistema somente com o controlador por realimentação de estado em uma função
de transferência Tk (s).
Kk=Ke(1:length(polosk))
Atk=[A-B*Kk];
Btk=[B];
Ctk=[Ckx-Dk*Kk];
Dtk=Dk;
Tk=tf(ss(Atk,Btk,Ctk,Dtk))

17
Agora podemos calular o ganho de malha aberta L(s) para obter as margens
do sistema de malha fechada.

L=Wi*Tk;
margin(L)

% verificar se L esta correto


% Tt=feedback(L,1)
% eig(Tt)

18
6 Primeiro exercı́cio
Dado o sistema servo motor de corrente continua controlada pela tensão do
campo u = V com J=2kgm2, c=3Nms/rad, R=2Ω, L=3H, e Kt = 1 Nm/A
modelado pela seguinte equação diferencial,
...
LJ θ (t) + (LC + RJ)θ̈(t) + RC θ̇(t) = Kt V (t)
cujo diagrama esquemático é dado por,

R
ia

+ τ C
Kt
V ic L J θ

estator (campo) rotor (armadura)

e o diagrama de blocos é dado por:


...
V (t) Kt θ (t) 1 θ̈(t) 1 θ̇(t) 1 θ(t)
+

LJ −
x˙3 (t) s x3 (t) s x2 (t) s x1 (t)

LC + RJ
LJ
RC
LJ

projetar o pólo em −1±j e −2 por realimentação de estados para controlar a


velocidade angular de rotação com erro nulo à parábola . Considerar os polos em
malha fechada devido aos integradores com módulo de 5. Calcular a estabilidade
relativa do sistema de malha fechada.

19
Solução:
Podemos modelar o sistema com as seguintes variáveis de estado de deslo-
camento e velocidade angulares:


 ⇒ deslocamento angular
x1 =

⇒ velocidade angular
x2 =

⇒ aceleração angular

x =
3

Montando as equações dinâmicas temos:


ẋ1 = x2
ẋ2 = x3
Kt LC + RJ RC
ẋ2 = u− x3 − x2
LJ LJ LJ
Podemos montar as matrizes A e B na forma:
       
ẋ1  0 1 0 x1   0 
ẋ2 = 0 0 1  · x2 + 0 ·u
   Kt 
ẋ3 0 − RC − LC+RJ x3
 
LJ LJ LJ

Considerando a velocidade angular rastreável (m = 0), e erro nulo a parábola


(n = 3) temos que verificar a controlabilidade do sistema estendido Me com três
integradores (i = m+n) e como variável de saı́da a velocidade angular escolhida.
No MatLab temos inicialmente o modelo do sistema e os polos desejados
polosk em malha fechada devido ao controlador:
clear all;
close all;
C = 2;
J = 3;
L = 3;
R = 2;
Kt=1;
A = [0 1 0;
0 0 1;
0 -R*C/(L*J) -(L*C+R*J)/(L*J)];
B = [0;
0;
Kt/(L*J)];
Ckx = [0 1 0]; % Para controlar pela velocidade
Ckw = [0 0 0];
Dk = 0;
polosk=[-1+j -1-j -2];
Observa-se neste caso que o determinante da matriz de controlabilidade é
nula, o que significa que realimentando a velocidade angular para rastrear a
velocidade angular não é possı́vel.

20
Desta forma vamos então rastrear o deslocamento angular(Ckx=[1 0 0]).
Precisamos agora descobrir novamente o numero de integradores W (s) necessários
na variável rastreada yk para que tenhamos erro nulo a parábola da variável yd
sendo desejada. Vamos primeiro descobrir a função S(s) para condicionamento
do sinal da variável que se deseja ”virtualmente”controlar yd .
A função S pode ser obtida pela relação entre yd e yk :
1
yk = x1 yd = x2 ẋ1 = x2 => x1 = x2
s
Como queremos controlar yd através de yk , vamos obter como deverá ser a
saı́da yk em função da entrada yd (t), que é a variável que se deseja controlar,
no caso yd :

yk = x1
1
yk = x2
s
1
yk = yd
s
Então a função S fica:

1
S(s) =
s

Desta forma observamos que precisamos de um integradoor (m = 1) em


S(s) e que agora para conseguir rastrear a variável yd com erro nulo a parábola
(n = 3) temos que introduzir na verdade quatro integradores (i = m + n = 4)
em W (s) .

1
W (s) =
s4

No MatLab temos:
clear all;
close all;
C = 2; J = 3; L = 3; R = 2; Kt=1;
A = [0 1 0; 0 0 1; 0 -R*C/(L*J) -(L*C+R*J)/(L*J)];
B = [0; 0; Kt/(L*J)];
Ckx = [1 0 0]; Ckw=[0 0 0 0]; Dk = 0; % Para controlar pelo deslocamento
Ai=[0 1 0 0; 0 0 1 0 ; 0 0 0 1; 0 0 0 0];
Bi=[0; 0; 0; 1];
Ae=[A (Bi*Ckx)’*0;
-Bi*Ckx Ai-Bi*Ckw]
Beu=[B
-Bi*Dk]
Me=ctrb(Ae,Beu);

21
rank(Me)
det(Me)
% break
polosk=[-1+j -1-j -2];
polosw=[-5 -5 -5 -5];
poloske=[polosk polosw];
Ke=acker(Ae,Beu,poloske);
Kk=Ke(1:length(polosk));
Ki=Ke(length(polosk)+1:length(poloske));
Cdx=[0 1 0]; Cdw=[0 0 0 0]; Dd=[0]; % Para ver a velocidade
Ate=Ae-Beu*Ke
Bte=[0*B; Bi]
Cte=[Cdx-Dd*Kk Cdw-Dd*Ki]
Dte=0
Te=ss(Ate,Bte,Cte,Dte)
s=tf(’s’)
S=1/s;
%Verificar que os ganhos dinamicos de ordem 0,1,2,3 (m=4) da mı́nima
% realizaç~
ao de "ST(s)" (minreal(STe)) s~
ao unitários para dar erro nulo a parábola na variáv
STe=tf(S*Te)
minreal(STe)
Vamos agora calcular a estabilidade relativa. Primeiro vamos montar o mo-
delo de estado dos integradores em uma função de transferência W i(s). Depois
calcular o modelo de estado de malha fechada do sistema somente com o con-
trolador por realimentação de estado em uma função de transferência Tk (s).
Finalmente calular o ganho de malha aberta L(s) para obter as margens do
sistema de malha fechada.
Calculando estas funções no MatLab temos:

%Estabilidade relativa
Ki=Ke(length(polosk)+1:length(poloske));
Wi=tf(ss(Ai,Bi,-Ki,0));

Kk=Ke(1:length(polosk))
Atk=[A-B*Kk];
Btk=[B];
Ctk=[Ckx-Dk*Kk]; %visualizaç~
ao da variável sendo controlada
Dtk=Dk;
Tk=tf(ss(Atk,Btk,Ctk,Dtk))

L=Wi*Tk;
margin(L)

22
23
7 Primeiro exercı́cio
Para um helicóptero cujo modelo de estado é dado abaixo, projete um contro-
lador por realimentação de estado com polos localizados em −1 ± j e −2 de
forma que a velocidade linear apresente erro nulo ao degrau. Adotar os polos
em malha fechada devido aos integradores de módulo igual a 15. Calcular a
estabilidade relativa da malha fechada.

       
θ̇  −0.4 0 −0.01 x1  6.3
x= θ ẋ =  1 0 0  · x2 + 0 ·u
v −1.4 9.8 −0.02 x3 9.8
     

 
  x1 
y= 0 0 1 · x2
x3
 

24
8 Segundo exercı́cio
Para um helicóptero cujo modelo de estado é dado abaixo, projete um contro-
lador por realimentação de estado com pólos localizados em −1 ± j e −2 de
forma que o velocidade angular apresente erro nulo ao degrau. Adotar os polos
em malha fechada devido aos integradores de módulo igual a 15. Calcular a
estabilidade relativa da malha fechada.

       
θ̇  −0.4 0 −0.01 x1  6.3
x= θ ẋ =  1 0 0  · x2 + 0 ·u
v −1.4 9.8 −0.02 x3 9.8
     

 
  x1 
y= 0 0 1 · x2
x3
 

25

Você também pode gostar