Você está na página 1de 11

Desenho de Controladores Digitales (I)

1-A seguir se mostra um diagrama de blocos de um laço de controle

a) Desenhe um controlador PID contínuo com o que possa garantir que os pólos de laço
fechado estejam situados em:  5  j5
b) Procure sua variante discreta do algoritmo de velocidade.(T=0.1)
c) Utilizando o SIMULINK faça a simulação de ambos os laços de controle
d) Utilizando o MATLAB faça a simulação de ambos os laços de controle
e) Por que são diferentes as respostas na variante contínua e a discreta?

Solução

a) Usando a técnica do LGR podemos procurar o PID

Kc( S  a )( S  b)
Gc 
S
5 Kc( S  a )( S  b)
GH 
S 2 (0.5S  1)
10 Kc( S  a )( S  b)
GH 
S 2 ( S  2)

Fixando um dos zeros do PID de maneira que cancele o pólo da planta

10 Kc( S  a)
GH 
S2

pd=-5+j*5
angcero=pi+angle(pd^2)
cero=imag(pd)/tan(angcero)-real(pd)
Gp1=tf(10*[1 cero],[1 0 0])
figure(3)
rlocus(Gp1)
Na janela de comandos aparecerá
pd =
-5.0000 + 5.0000i
angcero =
1.5708
cero =

Transfer function:
10 s + 50
---------
s^2

Kc( S  a)(S  b) ( S  2)(S  5)


Logo Gc  
S S
b) Para implementar o PID digital é preciso ter os valores do Kc, Ti e Td

1 Kc(TiS  1  TiTdS 2 ) Kc TiTdS 2  TiS  1


Se Gc  Kc(1   TdS )  
TiS TiS Ti S
Trataremos de levar o que obtivemos para poder por igualdade encontrar os valores

( S  2)(S  5) S 2  7 S  10 (0.1S 2  0.7 S  1)


Gc    10
S S S

Ti  0.7
0.1
Logo TiTd  0.1  Td   0.1429
0.7
Kc
 10  Kc  10 * 0.7  7
Ti

Logo o PID digital é

C ( z )  T Td   Td   Td  
 Kc 1     1  2  Z 1    Z 2 
E( z)  Ti T   T  T  
Substituindo os valores fica

C ( z )
E( z)

 7 2.5719  3.8580Z 1  1.429Z 2 
b) Simulação usando o SIMULINK

Nota importante Todos os blocos têm que ter o mesmo tempo de amostragem T=0.1
d) Simulação usando o MATLAB

O laço de controle que tem é

% Controlador digital
Gc=tf(7*[2.5719 -3.8580 1.429],[1 0 0],0.1)
% Termino intermédio r
G1=tf([1 0],[1 -1],0.1)
% Planta continua
Gp=tf(5,[0.5 1 0])
% Planta discreta
Gpz=C2d(Gp,0.1)
Lc=feedback(Gc*G1*Gpz,1)

% Controlador continuo
Gcc=tf(10*[0.1 0.7 1],[1 0])
Lcc=feedback(Gcc*Gp,1)
figure(1)
step(Lc,Lcc)
Os mesmos resultados.

e) Por que são diferentes as respostas na variante contínua e a discreta?

Há vários factores a ter em conta

 Para discretizar a planta preciso añadir en el laço el fijador o conversor que tem uma dinâmica
adicional por tanto o sistema que esta em forma digital se está controlando não eh o mesmo que
em forma continua.
 Se analisar a distribuição de zeros e pólos do laço contínuo poderá ver que os pólos ficaram onde
se desejava, têm uma razão de amortização baixa (0.7) que garante menor sobre crista e com
parte real suficientemente afastados do eixo imaginário o qual faz que se consiga um tempo de
estabelecimento pequeno.
figure(2)
pzmap(Lcc)
 Se analisar a distribuição de zeros e pólos do laço discreto poderá ver que a dinâmica é
major, agora o sistema é de 5to ordem e dentro dos 5 pólos há 2 deles que estão muito
próximos ao circulo de radio unidade, o que fala da estabilidade

Esta situação desfavorável pode resolver variando ligeiramente os valores


dos parâmetros do PID, pudemos aumentar Td, baixar ganho, aumentar Ti,
para melhorar o comportamento transitório.

A seguir se propõe a seguinte variação por parte do professor

Td=0.7 y Kc=1
C ( z )
E( z)

 8.1429  15Z 1  7 Z 2 

e se volta a simular, veja os resultados


2- Para o sistema que se mostra com T=0.5

1 e S
Obtenha um algoritmo Deadbeat Se Gp  ou Gp 
(5S  1) 2 (5S  1) 2
Solução
1 1 Z 1
 Gp  D( z )  *
(5S  1) 2 G ( z ) 1  Z 1

No MATLAB

Gs=tf(1,conv([5 1],[5 1]))

Gz=c2d(Gs,0.5)

set(Gz,'variable','z^-1')

T=tf(1,[1 -1],0.5)

Dz=1/Gz*T

Resultado
1  1.81Z 1  0.8187 Z 2
D( z ) 
0.004679  0.0003Z 1  0.00437 Z 2

e S
 Gp 
(5S  1) 2

O termino de retardo e s devemos analisar o da seguinte forma

kT  1
e s  e kTS portanto
k (0.5)  1
k2
Asim
2  e S 
Gp( z )  Z *  2 
 (5S  1) 

Além disso

1 Z 3
D( z )  *
G ( z ) 1  Z 3
No Matlab

Gs=tf(1,conv([5 1],[5 1]))

Gz1=c2d(Gs,0.5)

Ret=tf(1,[1 0 0],0.5)

Gzt=Ret*Gz1

set(Gzt,'variable','z^-1')

T=tf(1,[1 0 0 -1],0.5)

Dz=1/Gz*T

Resultado
Z 2  1.81Z 3  0.8187 Z 4
D( z ) 
0.004679  0.00437 Z 1  0.00467 Z 3  0.00437 Z 4

Para trabalho independente deve pedir-se aos estudantes que


simulem os resultados obtidos

Você também pode gostar