Controle Digital de Velocidade de um Motor CC usando Matlab®

16
Controle Digital de Velocidade de um Motor CC usando Matlab® Gerson Roberto da Silva RA 3800701

Transcript of Controle Digital de Velocidade de um Motor CC usando Matlab®

Page 1: Controle Digital de Velocidade de um Motor CC usando Matlab®

Controle Digital de Velocidade de um Motor CC usando Matlab®

Gerson Roberto da Silva RA 3800701

Page 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ãomostrados na figura 1.

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/s2Atrito do sistema mecânico (b): 0,1 NmsConstante de força eletromotriz (K=Ke=Kt): 0,01 Nm/AResistência elétrica (R): 1,0 ΩIndutância elétrica (L): 0,5 HTensão de entrada (V): tensão de alimentaçãoÂngulo de saída (θ): posição angular do eixo em radianosO rotor e eixo são assumidos como sendo rígidos

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 danificaro 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:

Page 3: Controle Digital de Velocidade de um Motor CC usando Matlab®

• Tempo de estabilização menor que 2 seg.

• Sobre sinal menor que 5%.

• Erro em estado estacionário menor que 1%.

1. Representação Matlab e Resposta em MA

1.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:

No ambiente Matlab, criar um novo m-file (script) e entrar com os seguintes comandos:

Execute o m-file e registre a resposta ao degrau unitário. Verifique se esta resposta atende aos requisitos de projeto.

Page 4: Controle Digital de Velocidade de um Motor CC usando Matlab®

Gráfico 1 – FT em Malha Aberta.

As condições não foram atendidas uma vez que:

Tempo de estabilização foi de 2.07s.

Sobre sinal foi 0%, valor dentro do esperado.

Erro estacionário acima do especificado velocidade mais baixa

2 Conversão Contínuo para Discreto

Page 5: Controle Digital de Velocidade de um Motor CC usando Matlab®

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árioR = 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' )

Page 6: Controle Digital de Velocidade de um Motor CC usando Matlab®

Resposta do MatLab

motor =

0.01

---------------------------

0.005 s^2 + 0.06 s + 0.1001

Continuous-time transfer function.

motor_d =

0.009201 z + 0.005709

----------------------

z^2 - 1.088 z + 0.2369

Sample time: 0.12 seconds

Discrete-time transfer function.

Gráfico 2 – Resposta em degrau unitário.

Tempo de estabilização ficou em 1.82s, atende os requisitos.

Velocidade novamente ficou abaixo da esperada, erro ficou acima do esperado.

Sistema não funcionou corretamente.

Page 7: Controle Digital de Velocidade de um Motor CC usando Matlab®

2.1 – Controlador PID

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.

% 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);

[x2,T] = step(sys_cl,12);

figure(3);stairs(T,x2)xlabel('Tempo (s)' )

ylabel('Velocidade (rad/s)' )

Page 8: Controle Digital de Velocidade de um Motor CC usando Matlab®

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 círculo de raio unitário. O que se pode dizer dele com

relação à estabilidade do sistema?

Gráfico 3 – Root locus para sistema compensado.

Com o gráfico 2 é possível ver que o sistema possui 2 polos sobre a margem do circulo

ou seja, sistema instável.

Page 9: Controle Digital de Velocidade de um Motor CC usando Matlab®

Gráfico 4 – Resposta ao degrau em MF de um PID

Ao observarmos o gráfico 3 fica evidente que o sistema é instável

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).

Primeiro teste com valores em:

KP = 100

Ki = 900

KD = 5

Obtivemos os seguintes gráficos:

Page 10: Controle Digital de Velocidade de um Motor CC usando Matlab®

Gráfico 5 – Novos valores para Kp, Ki e Kd.

Gráfico 6 – Novos valores para Kp, Ki e Kd.

Page 11: Controle Digital de Velocidade de um Motor CC usando Matlab®

Segundo teste com valores em:

KP = 200

Ki = 800

KD = 15

Obtivemos os seguintes gráficos:

Gráfico 7 – Novos valores para Kp, Ki e Kd.

Page 12: Controle Digital de Velocidade de um Motor CC usando Matlab®

Gráfico 8 – Novos valores para 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' )

Page 13: Controle Digital de Velocidade de um Motor CC usando Matlab®

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 círculo de raio unitário. O que se pode dizer dele

com relação à estabilidade do sistema?

Grafico 9 – Sistema Root Locus compensado

É possível ver que ainda existe um polo sobre o circulo unitário, sendo assim o sitema

ainda é estável.

Page 14: Controle Digital de Velocidade de um Motor CC usando Matlab®

Grafico 10 – Resposta ao degrau unitário de um PID ajustado.

Gráfico 11 – Resposta ao degrau para MF em um PID.

Page 15: Controle Digital de Velocidade de um Motor CC usando Matlab®

Com analise nos gráfico acima é possível dizer que:

Os critérios do sistema não foram atendidos, temos um sistema criticamente isntavel.