You are on page 1of 17

F6D370 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

EXERCCIO SOBRE CONTROLADORES DISCRETOS

Este exerccio tem por objetivo apresentar um exemplo de projeto de


controle de posiao de um motor de corrente contnua atrave s de um PID
digital. Para tanto e apresentado a discusao do modelo matem tico do motor,
seu equivalente discreto, parmetros de projeto, sintonia do PID e
implemetaao usando uma interface de comunicaao disponvel no MATLAB. O
modelo utilizado est disponvel em:
http://www.engin.umich.edu/class/ctms/examples/motor2/motor.htm

A figura 1 apresenta o modelo do motor. Os parmetro utlizados serao:

Momento de ine rcia do rotor (J) = 3.2284E-6 kg.m^2/s^2


Coeficiente de atrito do sistema mecnico (b) = 3.5077E-6 Nms
Constante de fora contra-eletromotiva (K=Ke=Kt) = 0.0274 Nm/Amp
Resist ncia ele trica do enrolamento (R) = 4 ohm
Indutncia ele trica do enrolamento (L) = 2.75E-6 H
Tensao de entrda (V): Limitada ` 12V CC
Posiao angular de sada (theta): sem limitaao de rotaao
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Figura 1 Representaao do motor de corrente contnua,

Equaoes do modelo:
Objetivo: Obter uma funao de transfer ncia.

A funao de transfer ncia resultante e :

O codigo no Matlab ser :

J=3.2284E-6;
b=3.5077E-6;
K=0.0274;

1
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

R=4;
L=2.75E-6;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0];
motor=tf(num,den);

Cuja resposta ao degrau em malha aberta (figura 2) ser dada pela


figura 3, usando-se o comando step(motor)

Figura 2 Motor em malha aberta.

Step Response
6

4 System: motor
Time (sec): 0.104
Amplitude: 3.14
Amplitude

0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18
Time (sec)

Figura 3 Resposta ao degrau unit rio (1 V de entrada) em malha aberta.

2
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Ou seja o motor leva cerca de 0.2 segundos para deslocar-se de uma volta
(360). De outro modo, para o sistema em malha fechada descrito na figura 4,
ou seja, com realimentaao unit ria ser dada pelo comando:
step(feedback(motor,1)). A resposta est na figura 5.

Figura 4 - Motor em malha fechada.

Step Response
1.4

1.2

0.8
Amplitude

0.6

0.4

0.2

0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
Time (sec)

Figura 5 Resposta ao degrau (1 V) em malha fechada.

3
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Ou seja, para 1 V de entrada o sistema apresenta um sada de 1 rad (cerca


de 60). Esta resposta era esperada, j que o motor apresenta um funao de
transfer cia com um integrador na malha de controle (ver o comando
zpk(motor) ).

zpk (motor);

3086245930.9988
-------------------------
s (s+1.454e006) (s+59.23)

Assim, o projeto usando um controlador pode ser feito para melhorar as


condies dinmicas do motor, j que o mesmo nao apresenta erro em regime
permanente.

Condioes de projeto:
Objetivo: modificar o comportamento dinmico do motor.

Considerando os seguintes parmetros de desempenho do projeto:

1. Tempo de subida menor de 20ms.


2. M ximo sobre sinal menor de 16%.

4
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

1 tentativa: usando um controlador proporcional, segundo a figura 6 e 7:

Figura 6 Motor em malha fechada com controlador proporcional no plano s.

Figura 7 Sistema real com controlador proporcional.

Na figura 6 tem-se a representaao simplificada do sistema. Na figura 7


tem-se a representaao real do sistema controlado por um computador. Fica
claro que uma se rie de novos elementos devem ser levados em conta: a
eletrnica de pot ncia, o sensor e os conversores A/D e D/A. Uma aproximaao
aceit vel para a eletrnica de pot ncia ser um ganho Kep e, para o sensor, um
outro ganho Ks. Assim, um possvel modelo discreto do sistema real,
considerando que o motor ser discretizado usando-se seguradores de ordem
zero, ser dado pela figura 8.

5
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Figura 8 Modelo discreto equivalente do motor em malha fechada.

O bloco motorz pode ser obtido por:

motorz = c2d(tf(num,den),0.005,'zoh');

0.02408 z^2 + 0.02183 z + 7.46e-010


-----------------------------------
z^3 - 1.744 z^2 + 0.7437 z

O tempo de amostragem foi escolhido para representar de forma adequada


a resposta dinmica do sistema. A resposta do sistema discreto equivalente
pode ser vista na figura 9, considerando que o produto Kp.Kep.Ks =1. A
resposta da figura 9 e bastante similar ` resposta da figura 5.

6
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Step Response
1.4

1.2

0.8
Amplitude

0.6

0.4

0.2

0
0 0.05 0.1 0.15 0.2 0.25
Time (sec)

Figura 9 Resposta em malha fechada do sistema discreto equivalente.

O comportamento deste sistema para diferentes ganhos de malha pode ser


analizado usando-se o lugar das razes, visto na figura 10, onde foi enfatizado o
limite de estabilidade do sistema ( o produto Kp.Kep.Ks deve ser menor que
12.5 para que o sistema permanea est vel). Repare que o sistema comporta-
se praticamente como um sistema de segunda ordem. Na figura 11 e
apresentada a regiao de projeto em funao das especificaes de projeto.
No caso, para Mp<0.16, segundo a formula:

=> >0.5
cos =
E para ts<20ms, segundo a formula:

7
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

, com cos e wd =wn (1-2)

Logo wn > 121 rad/s

Figura 10 Lugar das razes do sistema discreto equivalente.

8
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Figura 11 Regiao de projeto com >0.5 , wn > 121 rad/s e T = 0.05s. Nao
existe ganho que apresente razes da equaao caracterstica dentro da regiao
de projeto. Deve-se tentar outra abordagem.

2 tentativa: Usar um controlador por deslocamento de polo, segundo a


figura 12, onde Cz = Kz(z+z1)/(z+p1). O comando zpk(motoz) resulta:

9
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Figura 12 Controlador Cz adicionado ao modelo discreto.

Ou seja, adiciona-se um zero para anular um dos polos do sistema


original e outro polo para deslocar o lugar das razes para dentro da regiao de
projeto. Prope-se:
Cz = Kz*(z-0.7437)/(z-0.2)

O novo lugar das razes ser dado por rlocus(cz*motorz), segundo a


figura 13. Para um ganho de malha 5 (Kz*Kep*Ks = 5) a resposta do sistema
ser dada pela figura 14, segundo o comando step(feedback(5*cz*motorz,1)).
Repare que os ganhos efetivos de Kz, Kep e Ks podem ser manipulados no
computador atrave s de simples operaes de multiplicaao. Estas manipulaes
devem levar em conta a resoluao dos conversores AD e DA para que haja um
adequado aproveitamento da escala.

10
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Figura 13 Lugar das razes do sistema compensado com Cz. Para ganho 5 h
uma resposta aceit vel em termos de desempenho desejado.

11
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Figura 14 Resposta do sistema compensado atendendo aos requisitos de


projeto.
3 tentativa: Usar um controlador PD discreto segundo a relaao:

12
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Para Kp = 1, a funao de transfer ncia em malha aberta do sistema


resultante (com o controlador PD) ser :

0.02408 z 2 + 0.02183 z + 7.46e - 010 (z + 200 Kdz 200 Kd )


motorz.Gc = ( )
3 2
z - 1.744 z + 0.7437 z z

Cuja equaao caracterstica e :

0.02408 z 2 + 0.02183 z + 7.46e - 010 (z + 200 Kdz 200 Kd )


1 + motorz.Gc = 1 + ( )
3 2
z - 1.744 z + 0.7437 z z

= (z 3 - 1.744 z 2 + 0.7437 z)z + (0.02408 z 2 + 0.02183 z + 7.46e - 010)(z + 200 Kdz 200 Kd )

Dividindo-se pelos termos que nao sao multiplicado por Kd tem-se a


funao de transfer ncia em malha aberta equivalente:

200 Kd (0.02408 z 2 + 0.02183 z + 7.46e - 010)(z - 1)


1+
(z 3 - 1.744 z 2 + 0.7437 z)z + (0.02408 z 2 + 0.02183 z + 7.46e - 010)z

Observa-se um padrao:
a) O novo denominador ser o denominador original de motorz multiplicado
por 200Kd(z-1). De forma gene rica, multiplicado por Kd(z-1)/T.
b) O novo denominador ser o denominador original de motorz multiplicado
por z e somado ao numerador original de motorz multiplicado por z (por Kpz
na forma mais gene rica.

Pode-se propor um programa no matlab que trace de forma autom tica o lugar
das razes em funao de Kd:

13
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

function rlocusKd(num,den, Kp, T)


numf = [1/T -1/T];
numaux = conv(num,numf);
a = conv(den,[1 0]) %primeiro fator do denominador
b = conv(num,[Kp 0]);%segundo fator do denominador
na=length(a); % soma os coeficientes dos fatores
nb=length(b);
%para somar deve-se preecher com zeros para garantir dimenses
%iguais
denaux = [zeros(1,nb-na) a]+[zeros(1,na-nb) b];
funcz = tf(numaux,denaux,0.005);
rlocus(funcz);

Usando as seguintes linhas de comando:

>> [num1,den1]= tfdata(motorz,'z')


>> rlocusKd(num1,den1,1,0.005)

Obtem-se o lugar das razes da figura 15.

14
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Figura 15 Lugar das razes do sistema discreto equivalente

A princpio o ganho escolhido (Kd = 0.03 aproximadamente) est dentro


da rea de projeto. A resposta do sistema usando um controlador:

(z + 6 z 6 )
Gc = , ser :
z

>> gcz= (7*z-6)/z


>>step(feedback(gcz*motorz,1))

Representada na figura 16.

15
F7D440 - CONTROLE E SERVOMECAMISMOS II

Prof. Carlos Raimundo Erig Lima

Figura 16 Resposta do sistema compensado.

Pergunta:
1 - Foram atendidos os requisitos de projeto?
2 O que fazer?

Dica: mude o valor de kp. Por exemplo:


>> rlocusKd(num1,den1,3,0.005).

16

You might also like