Baixe o app para aproveitar ainda mais
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?
Compartilhar