UNIVERSIDADE DO ESTADO DE SANTA CATARINA CENTRO DE CIÊNCIAS TECNOLÓGICAS DEPARTAMENTO DE ENGENHARIA ELÉTRICA LABORATÓRIO DE SISTEMAS DE CONTROLE II 6 CONTROLADORES DIGITAIS 6.1 Controladores Digitais baseados em Controladores Analógicos O sistema de controle contínuo abaixo, apresentado no item 5.7 da apostila “Introdução ao Controle Digital”, foi projetado para que se atendessem as especificações: a) Máximo “overshoot” = 42% b) Margem de Ganho = 25 dB Figura 6.1: Sistema de Controle Contínuo Muitas vezes as especificações desejadas não são bem atendidas, devido à natureza do projeto, que é de tentativa e erro. Verifique, usando o MATLAB, se as especificações do projeto, foram atendidas: >> % Verificação das especificações de projeto para o Sistema Contínuo >> numa = 11172*172.4*[1 29.4]; % Numerador da função de transferência de MA >> dena = [1 2*294 294^2 0 0]; % Denominador da função de MA >> [numf denf] = feedback(numa,dena,1,1); % Obtenção da função de transferência de MF >> step(numf, denf); % Resposta ao Degrau do Sistema (Figura 6.2) >> % Neste gráfico, obtenha o valor do máximo overshoot >> bode(numa, dena) % Gráficos de Bode de malha aberta (Figura 6.3) Nos diagramas de Bode, determine a freqüência para fase = 180 graus; para esta freqüência, verifique o quanto falta de ganho para 0 dB, que é a Margem de Ganho do sistema. Determine, também, a freqüência w1 para ganho = 0 dB. 6.2 Controlador Digital Via Transformação Bilinear - D1(z) O período de amostragem para esse controlador deve ser menor que 0,2/w1. Considerando valor de w1 obtido nos diagramas de Bode, T < 0,0065 s. No exemplo do item 5.7 da apostila, foi usado T = 0,01 s, que não atende a esse requisito. Portanto, o desempenho do controlador não pode ser garantido. >> T = 0.01; >> np = [172.4]; dp = [1 0 0]; >> nc = 11172*[1 29.4]; dc = [1 2*294 294^2]; >> [npd dpd] = c2dm(np, dp, T, ’zoh’); >> [ncd dcd] = c2dm(nc, dc, T, ’tustin’); >> printsys(ncd, dcd, ’z’) % FT da Planta % FT do Controlador Contínuo % Discretização da Planta % Discretização do Controlador (Transformação Bilinear) % Apresentação do Controlador Digital LABORATÓRIO DE SISTEMAS DE CONTROLE II 2 O controlador digital para o período de amostragem T = 0,01 será dado por: 10.502 z^2 + 2.6919 z - 7.8101 num/den = ------------------------------------z^2 + 0.38057 z + 0.036208 Figura 6.2 – Resposta ao Degrau do Sistema de Controle Contínuo Figura 6.3 – Gráficos de Bode de Malha Aberta do Sistema de Controle Contínuo Usando o controlador digital obtido, tem-se a resposta ao degrau mostrada na Figura 6.4. Para isso, devem ser executados os seguintes comandos: >> nma = conv(npd, ncd); >> dma = conv(dpd, dcd); >> [nmf dmf] = feedback(nma, dma, 1, 1); >> dstep(nmf, dmf) % Denominador de Malha Aberta % Numerador de Malha Aberta % Função de Transferência de Malha Fechada % Resposta ao Degrau para o Sistema Discretizado LABORATÓRIO DE SISTEMAS DE CONTROLE II 3 Figura 6.4 – Resposta ao Degrau do Controle Digital usando D1(z) e T = 0.01s Observe que as especificações de projeto não foram atendidas. Repita o procedimento acima para T = 0,001s, que atende às especificações de projeto, e compare o resultado com as respostas dos sistemas contínuo e com o sistema discreto com T = 0,01s. 6.3 Transformação Bilinear com Termo Compensatório Imposição de Resposta em Freqüência - D2(z) O controlador assim obtido corresponde ao controlador de Tustin, usado anteriormente, acrescido do seguinte termo compensatório: 2z z +1 O período de amostragem para esse controlador deve ser menor que 1/w1, isto é, T < 0,0323 s. P( z ) = No exemplo do item 5.7 da apostila, foi usado T = 0,01 s, atendendo a esse requisito e, portanto, garantindo o desempenho do controlador. Este resultado pode ser visto na Figura 6.5, que é gerada, executando-se os seguintes comandos: >> T = 0.01; >> [npd dpd] = c2dm(np, dp, T, ’zoh’); >> [ncd dcd] = c2dm(nc, dc, T, ’tustin’); >> ncd = conv(ncd,[2 0]); >> dcd = conv(dcd,[1 1]); >> printsys(ncd, dcd, ’z’) >> nma = conv(npd, ncd); >> dma = conv(dpd, dcd); >> [nmf dmf] = feedback(nma, dma, 1, 1); >> dstep(nmf, dmf, 50) % Discretização da Planta % Discretização do Controladorr % Acréscimo do Termo Compensatório 2z % Acréscimo do Termo Compensatório z+1 % Apresentação do Controlador Digital % Denominador de Malha Aberta % Numerador de Malha Aberta % Função de Transferência de Malha Fechada % Resposta ao Degrau para o Sistema Discretizado Nota-se que esta resposta é muito mais próxima daquela obtida usando o controle contínuo, que é mostrada na Figura 6.2. LABORATÓRIO DE SISTEMAS DE CONTROLE II 4 Figura 6.5 – Resposta ao Degrau do Controle Digital usando D2(z) e T = 0.01s 6.4 Controladores Digitais no Plano z O exemplo de Controlador Proporcional-Integral apresentado no capítulo 6 da apostila “Introdução ao Controle Digital” será estudado aqui. A planta a ser controlada tem a função de transferência dada por: G (s) = 10 ( s + 1)( s + 2) Para um período de amostragem T = 0,1 s (5 vezes menor que a menor constante de tempo da planta), obtenha a função de transferência discretizada da planta: >> T = 0.1; >> np = 10; >> dp = conv([1 1],[1 2]); >> [npd dpd] = c2dm(np, dp, T, ’zoh’); >> printsys(npd, dpd, ’z’); >> z = roots(npd); >> p = roots(dpd); % Numerador da Planta % Denominador da Planta % Discretização da Planta % Apresentação da FT discretizada da planta % Zeros da FT discretizada da planta % Pólos da FT discretizada da planta A execução destes comandos resulta na FT discretizada da planta e seus zeros e pólos: 0.04528 z + 0.040971 num/den = -----------------------------z^2 - 1.7236 z + 0.74082 z= -0.9048 p= 0.9048 0.8187 O projeto será iniciado com um controlador proporcional (D(z) = K). Para tal, é interessante obter o lugar das raízes do sistema (Figura 6.6), através dos comandos: LABORATÓRIO DE SISTEMAS DE CONTROLE II 5 % Traçado da linhas de ζ e wnT constantes % Obtenção do lugar das raízes do sistema % Mudança de Escala >> zgrid on >> rlocus(npd,dpd) >> axis([0 1 0 1]) Figura 6.6 – Lugar das raízes do sistema com controle proporcional Usando a função rlocfind, verifique que para ζ = 0,35, K ≅ 1 e os pólos de malha fechada são, aproximadamente, 0,84 ± j0,28. >> [K pmf] = rlocfind(npd, dpd) % Click o mouse sobre o ponto do LGR com ζ = 0,35 Com este valor de K, obtém-se a resposta ao degrau do sistema exibida na Figura 6.7. >> [npdmf depmf]=feedback(K*npd, dpd, 1, 1); >> dstep(npdmf, depmf) % Obtenção da função de transferência de malha fechada % Resposta ao degrau do sistema com D(z) = 1 Figura 6.7 – Resposta ao Degrau do Controle Digital proporcional com K = 1 e T = 0,1s LABORATÓRIO DE SISTEMAS DE CONTROLE II 6 Percebe-se que o sistema apresentou um erro de regime, que pode ser anulado acrescentando uma ação integrativa ao controlador. O projeto realizado na apostila procurou não alterar significativamente o transitório, nem o lugar das raízes do sistema, resultando em D( z ) = z − 0,905 z −1 A resposta ao degrau do sistema com este controlador PI é apresentada na Figura 6.8 e foi gerada usando os comandos abaixo: >> nma = conv(npd,[1 -0.905]); >> dma = conv(dpd,[1 -1]); >> [nmf dmf] = feedback(nma, dma, 1, 1); >> dstep(nmf, dmf) >> zgrid on >> rlocus(nma, dma) >> axis([0 1 0 1]) % Denominador de Malha Aberta com controle PI % Numerador de Malha Aberta com controle PI % FT de Malha Fechada com controle PI % Resposta ao Degrau usando controle PI % Traçado das linhas de ζ e wnT constantes % Obtenção do Lugar das raízes com a inclusão do PI % Mudança de Escala Figura 6.8 – Resposta ao Degrau do Controle Digital PI e T = 0,1s Nota-se que o transitório ficou um pouco pior. Para melhorá-lo, uma ação de controle derivativa será acrescentada. Na apostila, propõe-se o seguinte controlador PID: k " ( z − 0.905)( z − 0.819) z( z − 1) Com este controlador, gere novamente o LGR (Figura 6.9) e ache o valor de K relativo a ζ = 0,707 (máximo overshoot = 4%). Depois, obtenha a resposta ao degrau do sistema para o valor de K encontrado (Figura 6.10). Para isso, execute os seguintes comandos no Matlab: G( z ) = >> nma = conv(npd, conv([1 -0.905], [1 -0.819])); >> dma = conv(dpd, [1 -1 0]); >> zgrid on; >> rlocus(nma, dma); >> axis([0 1 0 1]) ; >> [K pmf] = rlocfind(nma, dma) >> nma = K*nma; >> [nmf dmf] = feedback(nma, dma, 1, 1); >> dstep(nmf, dmf, 80) % Denominador de M.Aberta c/ controle PID % Numerador de M.Aberta c/ controle PID % Traçado das linhas de ζ e wnT constantes % Obtenção do LGR do sistema + PID % Mudança de Escala % Click sobre o ponto do LGR c/ ζ = 0,707 % Inclusão no controlador do ganho obtido % FT de Malha Fechada com controle PID % Resposta ao Degrau com o controle PID LABORATÓRIO DE SISTEMAS DE CONTROLE II Figura 6.9 – Lugar das raízes do sistema com controle PID Figura 6.10 – Resposta ao Degrau do Controle Digital PID e T = 0,1s 7