Buscar

Controle digital de velocidade motor CC (TRABALHO 2)

Prévia do material em texto

Engenharia Elétrica 
Sistemas de Controle 
Prof. Mário L. Botêga Jr. 
Trabalho 2 
Controle Digital de Velocidade de um Motor CC usando Matlab® 
1. Arranjo Físico e Equações do Sistema 
Um atuador muito comum em sistemas de controle é o motor CC dada a sua simplicidade de controle. Ele 
fornece diretamente movimento rotativo e, quando associado a roldanas, cabos, roletes e correias, pode 
fornecer movimento de translação. O circuito elétrico da armadura e o diagrama de carga do rotor são 
mostrados na figura 1. 
 
 
Figura 1 – Modelo do motor CC 
Neste projeto serão considerados os seguintes valores para os parâmetros físicos da máquina elétrica: 
Momento de inércia do rotor (J): 0,01 kgm2/s2 
Atrito do sistema mecânico (b): 0,1 Nms 
Constante de força eletromotriz (K=Ke=Kt): 0,01 Nm/A 
Resistência elétrica (R): 1,0 Ω 
Indutância elétrica (L): 0,5 H 
Tensão de entrada (V): tensão de alimentação 
Ângulo de saída (θ): posição angular do eixo em radianos 
O rotor e eixo são assumidos como sendo rígidos 
O torque eletromagnético T gerado pelo motor depende da corrente de armadura i e da constante de 
torque Kt. A tensão contra eletromotriz E depende da velocidade angular e da constante elétrica Ke, de 
acordo com as expressões: 
T = K�i	 [Nm] (1) 
E = K�θ	 [V] (2) 
Sendo θ	 a primeira derivada da posição angular, que é a velocidade angular do eixo do motor em rad/s e, 
no sistema internacional de unidades (SI), Kt é igual a Ke. 
 
 
Da figura 1 pode-se escrever equações baseadas na lei de Newton, combinada com a lei de Kirchhoff: 
Jθ� + bθ	 = Ki	 	 	 	 	 	 (3)	
L ����+ Ri = V − Kθ	 	 	 	 	 	 (4)	
Sendo θ� a segunda derivada da posição angular, que é a aceleração angular do eixo do motor em rad/s2. 
2. Função de Transferência do Motor CC 
Usando a Transformada de Laplace, as equações acima podem ser expressas em termos de “s”. 
s(Js + b)θ(s) = KI(s)	 	 	 	 	 (5)	
(Ls + R)I(s) = V − Ksθ(s)	 	 	 	 (6)	
Onde a posição angular θ e a corrente I são as variáveis de estado. Eliminando I(s) nas expressões (5) e 
(6), pode-se representar a função de transferência (FT) em malha aberta (MA) do motor CC, sendo a 
velocidade angular θ	 a saída e a tensão de alimentação V a entrada, pode-se demonstrar: 
�� = θ	� =
�
( !"#)($!"%)"�& (7) 
3. Requisitos de Projeto 
Um requisito fundamental em um motor é que ele deve rodar a velocidade desejada, com erro de estado 
estacionário da velocidade inferior a 1%. O outro requisito de desempenho é que o motor deve acelerar 
até sua velocidade de estado estacionário, assim que é ligado. Neste caso, queremos que ele tenha um 
tempo de estabilização de 2 segundos. Desde que uma velocidade superior à de referência pode danificar 
o equipamento controlado, deseja-se um sobre sinal (overshoot) menor que 5%. 
Se a entrada de referência (r) for um degrau unitário, a velocidade de saída do motor deve atender: 
• Tempo de estabilização menor que 2 seg. 
• Sobre sinal menor que 5% 
• Erro em estado estacionário menor que 1% 
4. Representação Matlab e Resposta em MA 
4.1 Função de Transferência 
A FT em MA indicada acima pode ser representada no Matlab definindo-se o numerador e o 
denominador como segue: 
num = K	 	 	 	 	 (8)	
den = (Js + b)(Ls + R) + K-	 	 	 	 (9)	
No ambiente Matlab, criar um novo m-file (script) e entrar com os seguintes comandos: 
J=0.01; 
b=0.1; 
K=0.01; 
R=1; 
L=0.5; 
num=K; 
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)]; 
 
motor=tf(num,den); 
% Resposta continua malha aberta 
figure(1); 
step(motor,0:0.1:5); 
xlabel('Tempo (s)') 
ylabel('Velocidade (rad/s)') 
title('Resposta ao degrau para MA'); 
 
Execute o m-file e registre a resposta ao degrau unitário. Verifique se esta resposta atende aos requisitos 
de projeto. 
5. Controle Digital de Velocidade do Motor CC com Controlador PID 
O controle digital pode ser obtido a partir da conversão do modelo contínuo descrito acima. 
5.1 Conversão Contínuo para Discreto 
O primeiro passo na conversão do sistema de controle discreto é converter a FT contínua em uma FT 
discreta. O comando Matlab c2d faz isso automaticamente. O comando c2d requer os seguintes três 
argumentos: o sistema, o período de amostragem (Ts) e método para a conversão. Neste exemplo 
usaremos o método zero-order hold (zoh). 
 
 
 
Figura 2 – Diagrama de blocos em MF sem controlador 
A partir dos requisitos de projeto, define-se o período de amostragem igual a 0,12 segundo, o que 
equivale a 1/10 da constante de tempo do sistema, com um tempo de estabilização de 2 segundos. Cria-se 
um novo script: 
% Simulação Matlab motor CC em malha fechada sem controlador (ou com 
% controlador proporcional com kp=1), resposta digital ao degrau 
% unitário 
R = 1; 
L = 0.5; 
Kt = 0.01; 
J = 0.01; 
b = 0.1; 
num = Kt; 
den = [(J*L) (J*R)+(L*b) (R*b)+(Kt^2)]; 
motor = tf(num,den) 
Ts = 0.12; 
motor_d= c2d(motor,Ts,'zoh') 
 
Execute o script e anote a resposta do Matlab no seu workspace, referente a FT discreta (em z), ou seja, o 
Matlab calcula a FT em MF. Uma vez feito isso, verifica-se a resposta em MF para uma entrada degrau 
unitário. O comando step faz isso. Adicionando ao script anterior o trecho de código abaixo. 
 
sys_cl = feedback(motor_d,1) 
[Y,T] = step(sys_cl,5); 
figure(1); 
stairs(T,Y); 
xlabel('Tempo (s)') 
ylabel('Velocidade (rad/s)') 
title('Resposta ao degrau para MF') 
 
θ	 V R 
- 
+ ZOH MOTOR 
eq. (7) Kp 
 
Execute o m-file e registre a resposta ao degrau unitário. Verifique se esta resposta atende aos requisitos 
de projeto. 
5.2 Controlador PID 
Recordando que a FT contínua no tempo do controlador PID é: 
/0 + 123 + /45 (10) 
Não é possível obter a função discreta da FT acima, pois ela teria mais zeros do que polos, o que não é 
realizável na prática. Para resolver isso utiliza-se a transformação bilinear, ou de Tustin, que mapeia o 
plano s no plano z tal como descrito abaixo: 
5 = -67 ∙ 9
:;<
:"<= (11) 
Esta transformação tem a vantagem de mapear inteiramente o semi plano esquerdo de s dentro do círculo 
de raio unitário no plano z. Portanto, pode-se obter o controlador PID discreto utilizando a transformação 
de Tustin, que consiste em substituir (11) em (10), após as devidas manipulações algébricas o resultado é 
mostrado em (13) que representa o PID discreto. 
/0 + /> ∙ 67- ∙
:"<
:;<+ /4 ∙
-
67
∙ :;<:"< (12) 
91?"@2∙A7& "
&∙@B
A7
=:&"912∙67;C∙@BA7 =:"9;1?"
@2∙A7
& "
&∙@B
A7
=
:&;< (13) 
Onde KP, KI e KD são respectivamente os ganhos proporcional, integral e derivativo. Ts é o período de 
amostragem. 
O comando Matlab c2d ajuda na conversão do PID contínuo no discreto, utilizando o método de Tustin. 
Adicionando o trecho de código abaixo no script anterior e executando-o, a resposta ao degrau unitário 
para a figura 3 será calculada. 
 
 
 
Figura 3 – Diagrama de blocos em MF com controlador 
 
% Simulação Matlab motor CC em malha fechada com controlador PID, 
resposta digital ao degrau unitário. 
R = 1; 
L = 0.5; 
Kt = 0.01; 
J = 0.01; 
b = 0.1; 
num = Kt; 
den = [(J*L)(J*R)+(L*b)(R*b)+(Kt^2)]; 
motor = tf(num,den) 
% Controlador PID discrete com aproximação bilinear (Tustin) 
Kp = 100; 
Ki = 200; 
Kd = 10; 
PID = tf([Kd Kp Ki],[1 0]); 
contr = c2d(PID,Ts,'tustin'); 
sys_cl = feedback(contr*motor_d,1); 
θ	 V R 
- 
+ MOTOR 
eq. (7) 
PID 
eq. (13) 
 
[x2,T] = step(sys_cl,12); 
figure(3); 
stairs(T,x2) 
xlabel('Tempo (s)') 
ylabel('Velocidade (rad/s)') 
title('Resposta ao degrau para MF com controlador PID') 
figure(4); 
rlocus(contr*motor_d) 
title('Root Locus para sistema compensado') 
 
Execute o m-file e registre a resposta ao degrau unitário. Verifique se esta resposta atende aos requisitos 
de projeto. O que se pode dizer desta resposta?O sistema é estável ou instável? Este script plota o lugar 
das raízes, registre-o. Observe a posição dos polos com relação ao circulo de raio unitário. O que se pode 
dizer dele com relação à estabilidade do sistema? 
 
Varie KP, KI e KD e observe o comportamento da resposta ao degrau e o lugar das raízes. Registre as 
respostas para cada conjunto de parâmetros (KP, KI e KD). 
 
O comando Matlab rlocfind ajusta automaticamente o Root Locus, adicionando o trecho de código no 
script acima, obtêm-se um novo ajuste do sistema em MF. 
contr.den = conv([1 -1],[1/.62 1]); 
rlocus(contr*motor_d) 
title('Root Locus para sistema compensado'); 
[K,poles] = rlocfind(contr*motor_d) 
sys_cl = feedback(K*contr*motor_d,1); 
[x3,T] = step(sys_cl,12); 
figure(5); 
stairs(T,x3) 
xlabel('Tempo (s)') 
ylabel('Velocidade (rad/s)') 
title('Resposta ao degrau para MF com controlador PID ajustado') 
 
Execute o m-file e registre a resposta ao degrau unitário. Verifique se esta resposta atende aos requisitos 
de projeto. Registre também o lugar das raízes. Observe a nova posição dos polos com relação ao circulo 
de raio unitário. O que se pode dizer dele com relação à estabilidade do sistema?

Continue navegando