Controle Digital de Velocidade de um Motor CC usando Matlab®

1.401 visualizações

Publicada em

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

Publicada em: Engenharia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.401
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
91
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Controle Digital de Velocidade de um Motor CC usando Matlab®

  1. 1. Controle Digital de Velocidade de um Motor CC usando Matlab® Gerson Roberto da Silva RA 3800701
  2. 2. 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. 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 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:
  3. 3. • 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.
  4. 4. 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
  5. 5. 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' )
  6. 6. 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.
  7. 7. 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)' )
  8. 8. 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.
  9. 9. 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:
  10. 10. Gráfico 5 – Novos valores para Kp, Ki e Kd. Gráfico 6 – Novos valores para Kp, Ki e Kd.
  11. 11. 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.
  12. 12. 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' )
  13. 13. 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.
  14. 14. Grafico 10 – Resposta ao degrau unitário de um PID ajustado. Gráfico 11 – Resposta ao degrau para MF em um PID.
  15. 15. Com analise nos gráfico acima é possível dizer que: Os critérios do sistema não foram atendidos, temos um sistema criticamente isntavel.

×