UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO PLANTA DIDÁTICA – CONTROLE PID DIGITAL PARA MOTOR DC Flávio Couto da Silva Monografia apresentada à disciplina de Trabalho de Conclusão de Curso como requisito parcial à conclusão do Curso de Engenharia da Computação, orientada pelo Prof. Valfredo Pilla Júnior UNIVERSIDADE POSITIVO/NCET Curitiba 2008 TERMO DE APROVAÇÃO Flavio Couto da Silva Planta didática – Controle PID digital para um motor DC Monografia aprovada como requisito parcial à conclusão do curso de Engenharia da Computação da Universidade Positivo, pela seguinte banca examinadora: Prof. Valfredo Pilla Júnior (Orientador) Prof. Amarildo Geraldo Reichel Prof. Marcelo Mikosz Gonçalves Curitiba, 8 de Dezembro de 2008. AGRADECIMENTOS Como agradecimento, dedico o sucesso deste trabalho aos meus pais Francisco Domingos da Silva e Flauzina Maria da Silva e a minha irmã Flávia Cristina da Silva, estes que acreditaram e se doaram ao máximo para tal realização. Agradeço-lhes por todo o amor, carinho e dedicação, pois sem vocês nada disso seria possível. Outras pessoas que não posso deixar de citar são: Marcelo Gallani, Wilson Luiz Gulin e Cassandra Gulin, estes que acreditaram em meu potencial e depositaram a sua confiança em meu desempenho acadêmico. Muito obrigado por tudo. Aos meus amigos Fernando Trentini, Sebastián Nahuel Fantini, Wagner Mariotto Bonfiglio e Victor Hugo Ferreira, Gerolino Mendes de Moura, Gilmar Antônio de Lara Born e Maira Ranciaro cujas amizades serão preservadas para sempre, e que o apoio de vocês fui fundamental nesta jornada. A minha namorada Analice por toda a paciência e por todo o seu amor durante este período de trabalho. Ao meu professor orientador Valfredo Pilla Júnior, por ter me auxiliado em todas as etapas deste projeto e por ser um modelo de amizade, ética e profissionalismo, o qual tomarei como base para a minha vida. Sei que muitas pessoas deixaram de ser citadas, mas fica o meu agradecimento a todos, que da minha memória jamais serão esquecidos. RESUMO O projeto consiste em uma planta didática que realiza o controle da velocidade de um motor DC através do algoritmo PID Digital. Esta planta de testes é utilizada para auxiliar o professor na demonstração e aplicação dos conceitos de controle digital dentro da disciplina que aborde este assunto. Com o processamento realizado por um microcontrolador, o firmware realiza o cálculo do valor necessário para o funcionamento do motor conforme as variáveis de entrada (proporcional, integral, diferencial e velocidade do motor, tempo de atualização) são inseridas pelo usuário do sistema no PC. Além do algoritmo que faz o ajuste do erro entre a velocidade desejada pelo usuário e a velocidade do motor em cada atualização, este projeto utiliza o controle PWM para realizar a ligação do motor conforme o resultado do controle PID. A cada ciclo de tempo de amostragem o sistema devolve para o micro computador a velocidade em que o motor se encontra, e com esse valor é construído graficamente a curva de variação de velocidade durante o funcionamento do motor. Palavras-chave: Controlador PID, planta didática, microcontrolador, PWM, motor DC Didatic plant - Digital PID Control for DC motor ABSTRACT The project consists of a didactic plant that performs the control of speed of a DC motor through the digital PID algorithm. This plant testing is used to assist the teacher in the demonstration and application of the concepts of digital control within the related disciplines. With the processing performed by a microcontroller, the firmware performs the calculation of the amount required for the operation of the engine as the input variables (proportional, integral, differential, DC motor speed and time to update) are entered by the user in the system PC. Beyond the algorithm that makes the adjustment of the error between the speed desired by the user and the engine speed in each update, this project uses the PWM control to realize the connection of the engine as the result of PID control. Each cycle-time sampling the system returns to the PC the speed at which the engine is DC, and with that figure graphically build the curve of variation in speed during operation of the DC motor. Key words: PID controller, plant didactic, microcontroller, PWM, DC motor SUMÁRIO LISTA DE FIGURAS .................................................................................................................................. 8 LISTA DE SIGLAS ................................................................................................................................ 10 CAPÍTULO 1 - INTRODUÇÃO ................................................................................. 11 CAPÍTULO 2 – FUNDAMENTAÇÃO TEÓRICA ..................................................... 13 2.1 CONTROLADOR DIGITAL...................................................................................... 13 2.1.2 CARACTERÍSTICAS DE UM CONTROLADOR DIGITAL ........................................... 13 2.2 CONTROLE PROPORCIONAL ................................................................................. 14 2.3 CONTROLE PROPORCIONAL + INTEGRAL .............................................................. 15 2.4 CONTROLE PROPORCIONAL + DERIVATIVO .......................................................... 16 2.5 CONTROLE PROPORCIONAL + INTEGRAL + DERIVATIVO ....................................... 16 2.5.1 CONTROLE PID E PROCESSOS A CONTROLAR .................................................... 17 2.6 CONTROLE PID DIGITAL ..................................................................................... 19 2.7 CONTROLE PWM ................................................................................................ 20 CAPÍTULO 3 – ESPECIFICAÇÃO ............................................................................ 23 3.1 ESPECIFICAÇÃO DE HARDWARE ........................................................................... 23 3.1.1 DIAGRAMA DE BLOCOS .................................................................................... 23 3.1.2 CONTROLADOR PID ......................................................................................... 23 3.1.3 – MOTOR DC ................................................................................................... 24 3.1.4 – ENCODER ...................................................................................................... 25 3.2 ESPECIFICAÇÃO DE SOFTWARE ............................................................................ 25 3.2.1 FIRMWARE ....................................................................................................... 25 3.2.2 INTERFACE DE CONTROLE DO SISTEMA ............................................................. 25 3.2.3 – SIMULAÇÃO E CONSTRUÇÃO DE HARDWARE ................................................... 26 CAPÍTULO 4 – DESENVOLVIMENTO E IMPLEMENTAÇÃO .............................. 27 4.1 AQUISIÇÃO DA VELOCIDADE DO PROCESSO.......................................................... 27 4.1.1 ENCODER ......................................................................................................... 27 4.1.2 DISCO PERFURADO E SUAS RANHURAS ............................................................. 27 4.1.3 OPTO ACOPLADOR ............................................................................................ 28 4.1.4 IMPLEMENTAÇÃO DO ENCODER ......................................................................... 29 4.2 CONTROLE DO MOTOR DC .................................................................................. 30 4.2.1 DRIVE DE POTÊNCIA ......................................................................................... 30 4.2.2 – IMPLEMENTAÇÃO DO DRIVE DE POTENCIA ...................................................... 31 4.3 REFERÊNCIAS DE TENSÃO .................................................................................... 32 4.4 KIT ARM LPC2148 ............................................................................................ 33 4.4.1 COMUNICAÇÃO PC - KIT ARM ......................................................................... 34 4.4.2 PINAGEM DO LPC2148 ..................................................................................... 34 4.5 DESENVOLVIMENTO DO FIRMWARE ..................................................................... 36 4.5.1 DESCRIÇÃO DE FUNCIONAMENTO DO FIRMWARE ............................................... 37 4.6 DESENVOLVIMENTO DO SOFTWARE DE CONTROLE DO SISTEMA............................ 38 4.6.1 DESCRIÇÃO DO FUNCIONAMENTO DO SOFTWARE DE CONTROLE ........................ 39 4.7 MONTAGEM DA PLANTA DIDÁTICA ....................................................................... 40 CAPÍTULO 5 – VALIDAÇÃO E RESULTADOS ...................................................... 45 5.1 RESULTADOS ...................................................................................................... 45 5.2 – VALIDAÇÃO ..................................................................................................... 48 CAPÍTULO 6 – CONCLUSÃO .................................................................................. 51 CAPÍTULO 7 - REFERÊNCIAS BIBLIOGRÁFICAS ................................................ 53 APÊNDICES .............................................................................................................. 55 APÊNDICE I - ARTIGO CIENTÍFICO.............................................................................. 55 APÊNDICE II - MANUAL TÉCNICO .............................................................................. 64 APÊNDICE III - MANUAL DO USUÁRIO ....................................................................... 67 APÊNDICE IV - FIRMWARE ........................................................................................ 69 APÊNDICE V - CRONOGRAMA DO PROJETO ................................................................ 71 APÊNDICE VI - TABELA DE CUSTOS ........................................................................... 72 LISTA DE FIGURAS FIGURA 1 – CONTROLADOR DIGITAL EM BLOCOS ....................................................................... 13 FIGURA 2 – COMPORTAMENTO TÍPICO DE UM CONTROLE PROPORCIONAL ........................ 15 FIGURA 3 - COMPORTAMENTO TÍPICO DE UM CONTROLE PROPORCIONAL + INTEGRAL . 16 FIGURA 4 – CONTROLE PID DE UM PROCESSO .............................................................................. 18 FIGURA 5 - COMPORTAMENTO TÍPICO DE UM CONTROLE PROPORCIONAL + INTEGRAL + DERIVATIVO ........................................................................................................................................... 18 FIGURA 6 – CIRCUITO DE CONTROLE DE CORRENTE NA CARGA ............................................ 21 FIGURA 7 – CONTROLE DA LARGURA DO PULSO EM FUNÇÃO DO TEMPO............................ 21 FIGURA 8 – DEFINIÇÃO DE UM CICLO ATIVO DO CONTROLE PWM ......................................... 22 FIGURA 9 – CONTROLE DE POTÊNCIA ATRAVÉS DO CICLO ATIVO ......................................... 22 FIGURA 10 - SEPARAÇÃO DOS MÓDULOS DE HARDWARE ......................................................... 23 FIGURA 11 – DESCRIÇÃO DOS MÓDULOS INTERNOS DO CONTROLADOR PID ...................... 24 FIGURA 12 – DISCO PERFURADO EM SEU CENTRO E SUAS 100 RANHURAS .......................... 28 FIGURA 13 – CIRCUITO DO ENCODER E ALIMENTAÇÃO DO MOTOR DC ................................ 29 FIGURA 14 – LAYOUT DA PLACA DO CIRCUITO DO ENCODER ................................................. 30 FIGURA 15 – CIRCUITO DO DRIVE DE POTÊNCIA .......................................................................... 32 FIGURA 16 – CIRCUITO DE REFERÊNCIA DE TENSÃO 12V/1,5A ................................................. 32 FIGURA 17 – LAYOUT DO CIRCUITO DE REFERÊNCIA DE TENSÃO E DRIVE DE POTÊNCIA . 33 FIGURA 18 - KIT ARM NXP LPC2148 .................................................................................................. 34 FIGURA 19 - PINAGEM DO CHIP LPC2148 ......................................................................................... 35 FIGURA 20 - FLUXOGRAMA DO FIRMWARE PARA O CONTROLE PID ...................................... 36 FIGURA 21 – FUNÇÃO QUE RECEBE OS DADOS PELA SERIAL ................................................... 37 FIGURA 22 – FUNÇÃO QUE ENVIA A STRING PELA PORTA SERIAL .......................................... 38 FIGURA 23 – FLUXOGRAMA DO SOFTWARE QUE CONTROLA O SISTEMA ............................. 39 FIGURA 24 - TELA DO SOFTWARE DE CONTROLE DE VELOCIDADE DO MOTOR DC ........... 40 FIGURA 25 – PLACA COM O CIRCUITO DE REFERÊNCIA DE TENSÃO E DRIVE DE POTÊNCIA DO MOTOR DC........................................................................................................................................ 41 FIGURA 26 – ENCODER ACOPLADO AO MOTOR DC E PLACA DO CIRCUITO DO SENSOR OPTO-ACOPLADO. ................................................................................................................................. 41 FIGURA 27 – KIT DO MICRO-CONTROLADOR E DRIVE DE POTÊNCIA POSICIONADOS NO GABINETE DA PLANTA DIDÁTICA .................................................................................................... 42 FIGURA 28 – CONEXÃO ENTRE OS BLOCOS QUE COMPÕEM A PLANTA DIDÁTICA. ............ 42 FIGURA 29 – PLANTA DIDÁTICA COM O SEU GABINETE FECHADO. ........................................ 43 FIGURA 30 – PLANTA DIDÁTICA EM FUNCIONAMENTO ............................................................. 43 FIGURA 31 – RESPOSTA DO SISTEMA QUANTO A CORREÇÃO PROPORCIONAL AO ERRO UTILIZANDO OS VALORES DAS CONSTANTES P=1,0, I=0,1 E D=0,1. ......................................... 45 FIGURA 32 – RESPOSTA DO SISTEMA QUANTO A CORREÇÃO INTEGRAL DO ERRO UTILIZANDO OS VALORES DAS CONSTANTES P=0,1, I=1,0 E D=0,1. ......................................... 46 FIGURA 33 – RESPOSTA DO SISTEMA QUANTO A CORREÇÃO DERIVATIVA DO ERRO UTILIZANDO OS VALORES DAS CONSTANTES P=0,1, I=0,1 E D=1,0. ......................................... 46 FIGURA 34 – RESPOSTA DO SISTEMA QUANTO A CORREÇÃO P+I UTILIZANDO OS VALORES DAS CONSTANTES P=1,0, I=1,0 E D=0,1. ......................................................................... 47 FIGURA 35 – RESPOSTA DO SISTEMA QUANTO A CORREÇÃO P+D UTILIZANDO OS VALORES DAS CONSTANTES P=1,0, I=0,1 E D=1,0. ......................................................................... 47 FIGURA 36 – RESPOSTA DO SISTEMA QUANTO A CORREÇÃO DO ERRO UTILIZANDO A COMBINAÇÃO P+I+D UTILIZANDO OS VALORES DAS CONSTANTES P=1,0, I=1,0 E D=1,0. . 48 FIGURA 37 – COMPORTAMENTO DO CONTROLADOR PID DIGITAL COM AS DIVERSAS VARIAÇÕES DE SET-POINT E VALORES DAS CONSTANTES P, I E D. ........................................ 49 LISTA DE SIGLAS PID – Proporcional integral e derivativo DC – Direct Current NCET – Núcleo de Ciências Exatas e Tecnológicas MCU – Micro Controller Unit PC – Personal Computer PWM – Pulse Width Modulation VP – Variável de Entrada do Processo SP – Set-Point CAPÍTULO 1 - INTRODUÇÃO Devido a evolução dos conceitos e métodos aplicados nas instituições de ensino, cada vez mais se faz necessário a implementação de instrumentos didáticos, a fim de facilitar a visão do aluno ou até mesmo a explicação do professor quanto a disciplina. Com isso cada vez mais são deixados de ver equipamentos eletrônicos restritos a laboratórios para encontrá-los em sala de aula, visto que em algumas situações o quadro negro não é capaz de fornecer uma visão real do que está sendo discutido em aula. Nas disciplinas cujo foco é a eletrônica analógica ou digital, é extremamente necessária à utilização de simuladores, controladores e de protótipos capazes de demonstrar o funcionamento e a aplicação dos conceitos lecionados em sala de aula, auxiliando o aluno a compreender o que lhe foi ensinado. Motivado por esta necessidade, o projeto visa a criação de uma plataforma de testes para o controle PID digital, onde o algoritmo capaz de realizar o cálculo com as variáveis de proporcionalidade, integral e diferencial fornece como resultado a informação necessária para o funcionamento de um motor DC. O firmware desenvolvido para o controle PID digital é gravado em um microcontrolador onde este realiza todos os cálculos necessários para ajustar a velocidade do motor conforme solicitado pelo usuário do sistema. A interface de controle desenvolvida permite que o usuário possa inserir os valores de cada constante (P, I e D), velocidade desejada para o motor DC e o tempo de atualização dos dados no sistema. Estes dados são enviados pela interface serial, e a resposta que o controlador fornece para esta interface é a velocidade do motor a cada atualização. Com a resposta do sistema um gráfico com o desempenho do motor é construído pelo software, fornecendo ao usuário uma visão do desempenho do motor conforme o controle é realizado. 11 12 CAPÍTULO 2 – FUNDAMENTAÇÃO TEÓRICA Este capítulo transcorre sobre a fundamentação teórica do controle PID e qual a sua funcionalidade. É apresentada a função de um controlador contínuo e cada uma das variáveis (proporcional, diferencial e integral), além da realização do controle com a união desses valores dentro do algoritmo. 2.1 Controlador Digital Um sistema de controle contínuo tem como característica um controlador cuja saída varia continuamente, podendo assumir qualquer valor compreendido entre os limites máximo e mínimo (TEIXEIRA, 2006). 2.1.2 Características de um Controlador Digital Basicamente, um controlador digital é composto por um conjunto de blocos conforme mostra a figura 1. Figura 1 – Controlador digital em blocos Onde: VP: Variável de entrada do processo. SP: Set-Point (valor desejável para a variável do processo). 13 COMPARADOR: Tem como função gerar um sinal de erro proporcional à diferença instantânea entre a variável e o set-point. TRATAMENTO: Tem como função processar o sinal de erro (off-set) gerando um sinal de correção do off-set. Dependendo da forma como o sinal de erro é processado, pode-se dispor de um sistema de controle digital subdivido em: • Controle Proporcional • Controle Proporcional + Integral • Controle Proporcional + Derivativo • Controle Proporcional + Integral + Derivativo 2.2 Controle Proporcional O modo de controle proporcional pode ser considerado como uma evolução do modo de controle de duas posições. A saída de um controlador proporcional pode assumir qualquer valor desde que compreendido entre os limites de saída máxima e mínima, em função do off-set verificado. A ação proporcional apresenta uma relação matemática proporcional entre o sinal de saída do controlador e o erro, sendo assim, esta ação pode ser definida como a amplitude de correção proporcional a amplitude do desvio (TEIXEIRA, 2006). A figura 2 mostra um comportamento típico das variáveis de processo e de controle em um sistema proporcional. Além da atenuação das variáveis não ser boa, ocorre um deslocamento (off-set), exigindo a correção manual (SOARES, 2008). 14 Figura 2 – Comportamento típico de um controle proporcional 2.3 Controle Proporcional + Integral Os controladores com ação integral (Controle com Reset) são considerados de ação dinâmica, pois a saída dos mesmos é uma função do tempo da variável de entrada. A saída de um controlador com ação integral é proporcional à integração do erro ao longo do tempo de integração, ou seja, a velocidade da correção no sinal de saída é proporcional a amplitude do desvio. Enquanto houver erro, a saída estará aumentando ao longo do tempo (TEIXEIRA, 2006). A figura 3 exibe o comportamento de um controle com os métodos proporcional e integral. O deslocamento é eliminado, mas a regulação ainda não é das melhores (SOARES, 2008). 15 Figura 3 - Comportamento típico de um controle proporcional + integral 2.4 Controle Proporcional + Derivativo Nos controladores de ação derivativa (também chamado de ação antecipatória), a saída do controlador é proporcional à velocidade da variação do erro na entrada. A saída de um controlador com ação derivativa pode ser definida como a amplitude de correção proporcional à velocidade do desvio, ou seja, a ação derivativa só irá atuar quando houver uma velocidade de reação na variável do processo (TEIXEIRA, 2006). 2.5 Controle Proporcional + Integral + Derivativo Em muitos processos, do uso doméstico ao industrial, há necessidade de se manter um ou mais parâmetros estáveis ou, pelo menos, dentro de certa faixa de variação. Pode ser a pressão de um líquido ou de um gás, a rotação de um motor, a temperatura de algum meio, entre outros controles. 16 É muito comum o controle do tipo liga-desliga (termostato), presente, por exemplo, em geladeiras e ferros de passar ou também em muitos equipamentos industriais e comerciais. Entretanto, este tipo de controle tem limitações. Quando as exigências de precisão, estabilidade e outras são maiores, eles não são adequados. O controle PID (proporcional, integral e diferencial) é uma forma refinada de controle, usada quando as mais simples se mostram insuficientes (SOARES, 2008). Mais da metade dos controladores industriais em uso nos dias atuais utiliza estratégias de controle PID ou PID modificadas. A maioria dos controladores analógicos é hidráulica, pneumática, elétrica e eletrônica, ou resulta em uma combinação desses tipos. Correntemente, muitos deles são transformados em digitais por intermédio dos microprocessadores. A utilidade dos controles PID reside na sua aplicabilidade geral à maioria dos sistemas de controle. No campo dos sistemas de controle de processos contínuos, é fato conhecido que as estruturas de controle PID e PID modificadas provaram sua utilidade ao propiciar controle satisfatório, embora não possam fornecer o controle ótimo em muitas situações específicas (OGATA, 2000). 2.5.1 Controle PID e Processos a Controlar Quando se tem um modelo matemático do processo, é possível aplicar várias técnicas visando à determinação dos parâmetros do controlador que atendam as especificações de regimes transitório e estacionário do sistema a malha fechada. Nos casos, contudo, em analítica para se projetar um controlador PID deixa de ser viável. Nestes casos deve-se fazer o uso das técnicas experimentais da sintonia dos controladores PID. O procedimento de seleção dos parâmetros do controlador de modo a serem atendidas as especificações de desempenho é conhecido como sintonia do controlador. Ziegler e Nichols propuseram regras para a sintonia de controladores PID (significando o ajuste dos valores Kp, Ti e Td) baseadas na resposta experimental a uma excitação em degrau 17 ou no valor de Kp que resulta em estabilidade marginal quando se utiliza unicamente a ação de controle proporcional (OGATA, 2007). Figura 4 – Controle PID de um processo Na figura 5 mostra o comportamento de um controle completo, isto é, proporcional, integral e diferencial. A ação da derivada tende-se a opor às variações da variável do processo, fazendo um ganho total do controle se mover para um caminho diferente na aproximação para o set-point. Isto proporciona uma estabilização mais rápida e uniforme do processo (SOARES, 2008). Figura 5 - Comportamento típico de um controle proporcional + integral + derivativo 18 2.6 Controle PID Digital O controle PID é constituído por três componentes principais: P – Controle Proporcional. A saída varia em função do erro entre o valor do processo e o valor desejado. I – Controle Integral. A saída varia em função do tempo de correção do erro até o valor desejado. D – Controle Derivativo. A saída varia em função da variação do erro. Quanto maior a variação, maior a resposta, sendo ideal para amortecendo de picos e de saltos. O mais simples dos três controles é o proporcional. Ele tem sua saída baseada na variação do erro entre a posição atual e a posição alvo. A fórmula para o controle P é: Pout = KP * KERR (1) A fórmula para KERR é: KERR = TargetPoint – CurrentPoint (2) Pout é o resultado, KP é a constante proporcional e KERR é o valor do erro entre valor desejado e o valor do processo. Como você pode observar, o controle P é simplesmente uma multiplicação do erro pelo ganho. Quanto maior o ganho, uma maior reação obtém-se por unidade de erro. Isto gera um problema chamado "estado estável de Erro", o tornando impróprio para a maioria das correções de forma independente. Normalmente, é onde o controle integral é utilizado para a correção deste erro. Quanto mais tempo se leva para atingir o valor desejado, maior será o controle integral, isto em função da soma do erro anterior com o erro atual. 19 A fórmula para I é: IOUT = KI * IERR (3) A fórmula para IERR é: IERR = PreviousIERR + KERR (4) O controle derivativo(D), às vezes chamado de controle delta, isto porque é aumentada em função da mudança ou delta do KERR. Como tal, ele pode ser usado para reagir a mudanças repentinas no erro, e é bom para manter uma determinada posição ou velocidade em um sistema de ciclo fechado. A fórmula para D é: DOUT = Derr * KD (5) A fórmula para Derr é: Derr = KERR - Anterior KERR (6) O controle PID é simplesmente a combinação ou somatório dos resultados de todas as três fórmulas. As possíveis aplicações para controle PID são o controle preciso de posição de um servo motor e controle de velocidade de um motor, ambos utilizando um encoder (KRASS, 2008). 2.7 Controle PWM PWM é a abreviação de Pulse Width Modulation ou Modulação de Largura de Pulso. Para que se entenda como funciona esta tecnologia no controle de potência, parta-se de 20 um circuito imaginário formado por um interruptor de ação muito rápida e uma carga que deve ser controlada. Figura 6 – Circuito de controle de corrente na carga FONTE: http://www.eletronica.org/arq_apostilas/apostila_pwm.pdf Quando o interruptor está aberto não há corrente na carga e a potência aplicada é nula. No instante em que o interruptor é fechado, a carga recebe a tensão total da fonte e a potência aplicada é máxima. Como fazer para obter uma potência intermediária, digamos 50%, aplicada à carga? Uma idéia é fazer com que a chave seja aberta e fechada rapidamente de modo a ficar 50% do tempo aberta e 50% fechada. Isso significa que, em média, teremos metade do tempo com corrente e metade do tempo sem corrente (GHIRARDELLO, 2008). Figura 7 – Controle da largura do pulso em função do tempo FONTE: http://www.eletronica.org/arq_apostilas/apostila_pwm.pdf A potência média e, portanto, a própria tensão média aplicada à carga é neste caso 50% da tensão de entrada. Veja que o interruptor fechado pode definir uma largura de pulso 21 pelo tempo em que ele fica nesta condição, e um intervalo entre pulsos pelo tempo em que ele fica aberto. Os dois tempos juntos definem o período e, portanto, uma freqüência de controle. A relação entre o tempo em que temos o pulso e a duração de um ciclo completo de operação do interruptor nos define ainda o ciclo ativo. Figura 8 – Definição de um ciclo ativo do controle PWM FONTE: http://www.eletronica.org/arq_apostilas/apostila_pwm.pdf Variando-se a largura do pulso e também o intervalo de modo a termos ciclos ativos diferentes, podemos controlar a potência média aplicada a uma carga. Assim, quando a largura do pulso varia de zero até o máximo, a potência também varia na mesma proporção. Figura 9 – Controle de potência através do ciclo ativo FONTE: http://www.eletronica.org/arq_apostilas/apostila_pwm.pdf Este princípio é usado justamente no controle PWM: modula-se (varia-se) a largura do pulso de modo a controlar o ciclo ativo do sinal aplicado a uma carga e, com isso, a potência aplicada a ela (GHIRARDELLO, 2008). 22 CAPÍTULO 3 – ESPECIFICAÇÃO 3.1 Especificação de Hardware 3.1.1 Diagrama de Blocos O hardware da planta didática é composto de quatro módulos principais: microcomputador, controlador PID, motor DC e encoder, conforme a descrição desses módulos na figura 10. Figura 10 - Separação dos módulos de hardware 3.1.2 Controlador PID Para realizar o controle do motor DC, o controlador PID conta com os seguintes módulos: interface serial, micro controlador, controle do driver de potência (PWM) e interface de potência do motor DC conforme descrito na figura 11. 23 Figura 11 – Descrição dos módulos internos do controlador PID A interface serial é a responsável pela comunicação entre o computador e controlador, sendo possível a gravação do firmware e a passagem das variáveis de entrada e saída do sistema. Com o micro código gravado, o microcontrolador realiza o cálculo com as variáveis de entrada e o resultado dessa operação é fornecido ao drive de potência. A estrutura PWM faz o ajuste ideal conforme o resultado do algoritmo de controle PID e através da interface de potência realiza o funcionamento do motor DC. 3.1.3 – Motor DC O algoritmo PID digital implementado neste projeto realiza o controle da velocidade do motor DC. O dimensionamento da interface de potência é baseado nas características do motor, tais como a corrente necessária para movimentar o eixo do motor e a corrente que mantém o motor funcionando de forma estável. 24 O manual fornecido pelo fabricante fornece todos estes dados inclusive a velocidade máxima do motor em RPM, valor este necessário para dimensionar todo o sistema de controle do sistema. 3.1.4 – Encoder Visto que uma das variáveis do algoritmo PID digital é a velocidade do motor DC, é necessário a utilização de um encoder para auxiliar o sistema no cálculo desta variável. A contagem dos pulsos do disco acoplado ao eixo do motor é necessária para que o controlador consiga obter este dado com precisão. 3.2 Especificação de Software 3.2.1 Firmware O firmware é responsável pelo controle PID na planta didática, sendo implementado em linguagem de programação C no ambiente de programação Keil UVision3, e gravada no microcontrolador através do software Flash Magic da NXP Semicondutores, assim calculando o resultado e gerando a informação para o funcionamento do motor DC. 3.2.2 Interface de Controle do Sistema Outra função do software é de possibilitar o controle da planta didática através da inserção do valor de velocidade e das constantes P,I e D no micro computador, onde esses valores são transmitidos para o controlador. Essa interface é implementada utilizando a linguagem de programação C++, no ambiente de programação Borland Builder 6. Visto que a saída do controlador fornece dados de saída atualizados a cada instante, por exemplo a velocidade do motor. Este software é utilizado dentro do sistema operacional Windows XP. 25 3.2.3 – Simulação e construção de Hardware Para a simulação e testes com o hardware foi utilizado o software Multisim 10 da National Semicondutores. Para a produção do layout dos circuitos foi utilizado o software Eagle 5.0 da CadSoft. 26 CAPÍTULO 4 – DESENVOLVIMENTO E IMPLEMENTAÇÃO Este capítulo trata sobre o desenvolvimento e implementação do software e hardware, além de apresentar a relação entre essas duas partes e os componentes necessários para a construção do projeto. Os testes preliminares também são citados, para que as falhas até o resultado final fossem minimizadas e cada módulo do projeto funcionasse de forma correta. 4.1 Aquisição da Velocidade do Processo Para realizar o controle do motor, uma das variáveis do cálculo PID é a velocidade do processo. Através de um encoder, é possível realizar a leitura dos pulsos com a rotação do motor e utilizar este resultado para encontrar a velocidade. 4.1.1 Encoder Com este dispositivo é possível calcular quantas rotações dentro de um instante de tempo o eixo do motor realizou. Para a construção deste equipamento, é necessário um disco perfurado em seu centro de modo a acoplá-lo ao eixo do motor além de um circuito opto acoplador para realizar a contagem dos pulsos. 4.1.2 Disco Perfurado e Suas Ranhuras O disco perfurado contém ranhuras em sua extremidade para que o número total dessas perfurações seja o valor necessário para realizar uma rotação. O encoder utilizado conta com um disco de 100 ranhuras, sendo esse valor responsável por apontar uma rotação. Neste projeto não há a necessidade de detectar o sentido da rotação do motor, visto que apenas o controle da velocidade do motor é realizado. 27 Figura 12 – Disco perfurado em seu centro e suas 100 ranhuras O disco foi impresso em uma folha de transparência e esta foi fixada a um plástico transparente para que durante o funcionamento do motor não houvesse problemas na leitura dos pulsos. Como o sistema conta com a três variações de tempo de atualização (10 ms, 100 ms e 1s), este número de ranhuras garante que não haja perda na leitura dos pulsos em um período curto de tempo. 4.1.3 Opto acoplador Para calcular o número de pulsos, o encoder além de possuir o seu disco perfurado deve utilizar um sensor para realizar esta contagem, de modo a fornecer este resultado para o processo. Para realizar esta função, é necessário um circuito opto acoplador, neste caso um sensor do tipo emissor-coletor. Como o funcionamento deste sensor depende da presença de luz, as ranhuras do disco são as responsáveis pela passagem de luz do emissor para o coletor durante a rotação do eixo do motor. 28 Este projeto conta com um sensor do tipo U, onde uma das extremidades possui um LED, neste caso o emissor, e a outra um foto-transistor, atuando como o sensor de luz. Cada vez que o feixe de luz emitido pelo LED passa pela ranhura do disco, o fototransistor satura e faz com que haja passagem de corrente entre emissor e coletor, levando a saída do circuito ao nível lógico baixo, e assim contando um pulso. 4.1.4 Implementação do encoder Para a implementação do circuito do encoder, uma série de testes foi realizado para verificar o funcionamento correto do sensor, de forma a coletar os pulsos de forma precisa para que o controlador encontrasse a velocidade do motor. O dimensionamento dos resistores foi necessário tanto para a alimentação do emissor e do coletor de luz quanto para verificar qual o componente ideal para obter os níveis de tensão na saída do circuito em 5V com o transistor em corte ou em 0V em saturação. Utilizando um resistor de 1k Ohms ligado ao ânodo do LED e uma resistência de 100 ohms para o coletor do foto-transistor, foi possível a implementação do circuito do encoder, conforme descrito na figura 13. Figura 13 – Circuito do encoder e alimentação do motor DC 29 O barramento possui cinco pinos, onde está a disposição a tensão de referência para o sensor (entradas 1 e 2) e o pino de saída para fornecimento do pulso ao micro controlador (pino 3). Tanto a tensão de 5V quanto o GND utilizados são fornecidos pelo kit, não sendo necessária a criação de uma fonte para o funcionamento do circuito. Como o encoder está acoplado ao motor DC, este circuito recebe duas outras entradas, onde a saída do drive de potencia é conectada de modo a realizar o acionamento do motor. Figura 14 – Layout da placa do circuito do encoder 4.2 Controle do Motor DC Para realizar o funcionamento do motor DC foi necessária a construção de um drive de potência, onde através do controle PWM e da alimentação do motor é possível ajustar a velocidade desejada do processo. 4.2.1 Drive de Potência Este circuito faz com que a cada período que a saída do bloco PWM está em nível lógico alto, seja fornecida uma corrente para a base do transistor, e este elemento quando satura realiza a passagem de corrente para o segundo transistor, ligando e desligando o motor conforme o valor calculado no controle PID. 30 4.2.2 – Implementação do Drive de Potencia Utilizando o motor DC AK360/PL12-7000S fabricado pela Akiyama, foi necessária a utilização do transistor TIP31C, visto que o motor exige uma corrente entre 800mA e 1A para ter torque o suficiente e conseguir girar o seu eixo. Já em funcionamento, o motor necessita de uma corrente de 140mA para se manter estável (AKIYAMA, 2008). A referência em 5V é a entrada do controle PWM, onde este é o responsável por fornecer corrente ao primeiro transistor. Quando a saída deste controle está em seu período ativo, ele satura este transistor cortando a corrente para o segundo estágio, este o responsável pela ligação do motor. Para a construção do drive de potência os testes iniciais para o acionamento do motor utilizaram apenas o transistor TIP31C. Quando o teste foi realizado com o fornecimento da corrente de base do transistor pelo pino de saída do KIT, neste caso o canal PWM, foi constatado que esta corrente era baixa, não saturando o transistor e não realizando o acionamento do motor. Com isto, a utilização de um estágio anterior ao chaveamento do motor foi necessária, onde o transistor BC548B foi utilizado. A corrente fornecida pelo kit era suficiente para o corte e saturação deste componente, e utilizando um valor de corrente suficiente para o corte do segundo estágio ligado ao coletor do primeiro estágio, foi possível acionar o motor DC. A utilização de um diodo 1N4007 ligado em paralelo com o motor foi necessária para absorver o campo magnético reverso produzido quando o motor é desligado (BARDHP, 2008). Outro elemento acrescentado foi um resistor de 1k Ohm conectado ao emissor do BC548B e ao aterramento, visto que antes deste complemento mesmo com o corte do primeiro estágio, o segundo transistor recebia em sua base uma corrente baixa e como o estágio estava em saturação, o motor continuava ligado. 31 Figura 15 – Circuito do Drive de Potência 4.3 Referências de tensão Para fornecer as referências de tensão de 12V foi necessária a utilização de uma fonte estabilizada em 12VDC com uma corrente de 1,5A. Para garantir o valor de 12V, foram utilizados o regulador de tensão LM7812, visto que ao testar a saída da fonte, a leitura do display do voltímetro apresentava um valor de 16V. A necessidade de uma corrente de 1,5A deve-se a necessidade do valor necessário para o torque do motor DC (entre 800mA e 1A) e a alimentação do KIT (500mA). O circuito de referencia de tensão é descrito na figura 16. Figura 16 – circuito de referência de tensão 12V/1,5A 32 Foi realiza a construção de apenas uma placa de circuito impresso para acomodar tanto o drive de potência quanto o circuito de referência de tensão, como descrito no layout apresentado na figura 17. Figura 17 – Layout do circuito de referência de tensão e drive de potência 4.4 Kit ARM LPC2148 Este kit é o responsável pelo controle PID e controle PWM, do cálculo da velocidade do processo recebendo os pulsos do encoder e envio da velocidade do processo para a interface do usuário em cada atualização. Fabricado pela empresa KITMCU, este equipamento conta com o microcontrolador LPC2148 da Phillips com acesso a todas as suas portas de entrada e saída de dados, seis canais para PWM, clock de 60MHz e memória interna de 512Kbytes, duas portas seriais (DB09 Fêmea e DB09 macho) (KITMCU, 2008). 33 Figura 18 - Kit ARM NXP LPC2148 FONTE: http://www.mcu.com.br/loja/produtover.aspx?produtoid=1 4.4.1 Comunicação PC - Kit ARM Tanto a gravação do firmware na memória interna do microcontrolador quanto a transmissão dos dados são realizadas pela porta serial DB09 fêmea (Serial 0). 4.4.2 Pinagem do LPC2148 Tanto para a saída do bloco PWM quanto para a entrada dos pulsos fornecidos pelo encoder, é necessário saber os pinos de entrada e saída para esses dados (ALLDATASHEET, 2008). 34 Figura 19 - Pinagem do chip LPC2148 FONTE: http://pdf1.alldatasheet.com/datasheetpdf/view/118634/PHILLIPS/LPC2148.html Deve ser conectado na entrada PWM do drive de potência um pino de saída do bloco PWM do chip LPC2148. O chip conta com seis canais de saída neste bloco, sendo definido para este controle o canal PWM2, cujo pino correspondente é o número 31. Para a leitura dos pulsos no encoder, a saída do circuito opto acoplador deve ser conectada a um pino de entrada de dados, sendo definido para este projeto o pino 25 (ALLDATASHEET, 2008). 35 4.5 Desenvolvimento do Firmware O firmware foi implementado em linguagem de programação C, e gravado no bloco de controle, especificamente na memória interna do micro controlador. Sua funcionalidade está descrita em forma de fluxograma na figura abaixo. Figura 20 - Fluxograma do firmware para o controle PID 36 4.5.1 Descrição de Funcionamento do Firmware Para realizar o controle da velocidade do processo utilizando o controle PID, o firmware realiza os seguintes passos: Passo 1: Recebe os dados inseridos no software de controle pelo usuário e transmite-se para o controlador, tais como a velocidade desejada para o motor, as constantes PID, o tempo de atualização para a visualização da velocidade atual do processo. Figura 21 – Função que recebe os dados pela serial Passo 2: Conta os pulsos fornecidos pelo encoder. Dentro do período de atualização um contador armazena o número de pulsos fornecidos pelo encoder, onde ao fim deste período o resultado é utilizado para encontrar o valor de velocidade do motor. Passo 3: Calcula a velocidade atual do processo. Utiliza o valor de pulsos contados e calcula quantas rotações por minuto o eixo do motor está realizando. Em cada atualização calcula-se o valor de velocidade do processo. Passo 4: Cálculo do erro. Tem-se agora a verificação do erro que deve ser corrigido através do controle PID realizando a subtração da velocidade inserida pelo usuário do sistema pelo valor atual do processo. Passo 5: Correção através do controle PID. Caso exista erro na comparação é realizado o cálculo com as variáveis PID para enviar ao próximo passo o valor de correção a ser realizado. Passo 6: Controle PWM. Com o resultado do cálculo PID, o bloco PWM recebe esse valor e fornece como saída para o drive de potência do motor DC a largura do pulso necessária para realizar a correção do valor do processo. 37 Passo 7: Envia dados para o PC. Envia o valor do processo calculado para a interface de controle. Para isto utiliza-se a função da biblioteca uart.h conforme descrito na figura abaixo. Figura 22 – Função que envia a string pela porta serial Passo 8: Verifica se foi solicitado a interrupção do controle. Caso haja solicitação o usuário ou o sistema seja desligado o controle para de ser realizado, caso contrário o controle continua em execução. O código fonte do firmware está disponível neste documento no APÊNDICE IV. 4.6 Desenvolvimento do Software de Controle do Sistema O software de controle do sistema é implementado na linguagem C++ na plataforma de programação da Borland Builder C++. Sua funcionalidade está descrita na figura 28. 38 Figura 23 – Fluxograma do Software que controla o sistema 4.6.1 Descrição do Funcionamento do Software de Controle Para enviar os dados para o controle, a interface de controle realiza os seguintes passos: Passo 1: Inserção dos valores: Verifica se todos os valores foram inseridos e avisa ao usuário caso algum campo não esteja preenchido ou preenchido de forma incorreta. Passo 2: Envia os dados pela serial. Cria uma string com todos os dados inseridos na interface e os transmite pela porta serial. Passo 3: Recebe os dados pela serial. Após ativar a função Timer() com o período de atualização definido pelo usuário, o software pega o dado enviado pelo controlador. 39 Passo 4: Plotando gráfico de desempenho. Com o dado recebido pela serial, a interface constrói o gráfico com a curva de velocidade do motor DC a cada atualização. Passo 5: Verifica encerramento do sistema: Caso o botão parar seja pressionado, a função Timer() é interrompida e desta forma o sistema deixa de trocar dados com o controlador e também para de plotar o gráfico de desempenho do motor. Figura 24 - Tela do Software de Controle de Velocidade do Motor DC Para a comunicação pela serial, foi definida a porta de comunicação COM1, e caso esta não esteja disponível para o envio dos dados para o controlador, a interface de controle exibe uma mensagem ao usuário. 4.7 Montagem da planta didática A montagem da planta didática é a junção de todos os blocos que compõem este sistema (controlador, drive de potência, encoder e motor). As figuras 25, 26 ilustram estes blocos implementados e a planta didática em sua versão final. 40 Figura 25 – Placa com o circuito de referência de tensão e drive de potência do motor DC Figura 26 – Encoder acoplado ao motor DC e placa do circuito do sensor opto-acoplado. 41 As figuras 27 e 28 apresentam o kit micro-controlador e o circuito que contém o drive de potência e a referência de tensão posicionados dentro do gabinete utilizado para a construção da planta didática. Figura 27 – Kit do micro-controlador e drive de potência posicionados no gabinete da planta didática Figura 28 – Conexão entre os blocos que compõem a planta didática. 42 As figuras 29 e 30 apresentam o gabinete do controlador e a versão final da planta didática em funcionamento. Figura 29 – Planta didática com o seu gabinete fechado. Figura 30 – Planta didática em funcionamento 43 44 CAPÍTULO 5 – VALIDAÇÃO E RESULTADOS 5.1 Resultados Como resultado é obtido a curva de desempenho do motor DC em função do erro e da correção utilizando as constantes P, I e D. Conforme descrito na fundamentação teórica, cada constante é responsável por realizar a correção do erro em situações distintas, como variações rápidas do erro e variações pequenas ao longo do tempo. Na figura 31 o sistema recebeu as constantes P=1,0, I=0,1 e D=0,1, para obter como resposta a correção utilizando a constante proporcional. Figura 31 – Resposta do sistema quanto a correção proporcional ao erro utilizando os valores das constantes P=1,0, I=0,1 e D=0,1. 45 Para verificar o comportamento da constante integral, foram utilizados os valores P=0,1, I=1,0 e D=0,1. A correção integral do erro pode ser observada na figura 32. Figura 32 – Resposta do sistema quanto a correção integral do erro utilizando os valores das constantes P=0,1, I=1,0 e D=0,1. Para obter a resposta de correção do erro utilizando a constante D, foram utilizados os valores P=0,1, I=.0,1 e D=1,0, onde a resposta do sistema pode ser observada na figura 33. Figura 33 – Resposta do sistema quanto a correção derivativa do erro utilizando os valores das constantes P=0,1, I=0,1 e D=1,0. 46 Algumas outras variações foram testadas, neste caso as correções P+I e P+D, de modo a verificar o comportamento do sistema quanto a correção do erro baseado nessas duas combinações. Para a combinação P+I, foram utilizados os valores das constantes P=1,0, I=1,0 e D=0,1. Quanto a correção P+D foram utilizados os valores P=1,0, I=0,1 e D= 1,0, cujas respostas de correção fornecidas pelo sistema podem ser observadas nas figuras 34 e 35. Figura 34 – Resposta do sistema quanto a correção P+I utilizando os valores das constantes P=1,0, I=1,0 e D=0,1. Figura 35 – Resposta do sistema quanto a correção P+D utilizando os valores das constantes P=1,0, I=0,1 e D=1,0. 47 Para a correção utilizando a combinação P+I+D, as variáveis receberam os valores P=1,0, I=1,0 e D=1,0, onde o sistema forneceu como resposta a correção do erro baseado neste tipo de controle. Podemos observar o comportamento do controle PID na figura 36. Figura 36 – Resposta do sistema quanto a correção do erro utilizando a combinação P+I+D utilizando os valores das constantes P=1,0, I=1,0 e D=1,0. 5.2 – Validação Devido a problemas com o recebimento dos dados no microcontrolador, fez-se necessário a gravação dos valores das constantes no próprio firmware, para que a resposta do sistema fornecesse o comportamento de cada correção e finalmente da combinação das constantes P+I+D. As variações dos valores das constantes foram realizadas para mostrar que o controle PID pode ser utilizado tanto em sistemas estáveis quanto instáveis visto que pôde ser observado para cada tipo de variação do erro entre o valor do processo e o valor desejado pode ser corrigido. Da mesma forma que o sistema foi compilado para fornecer as curvas de resposta de cada constante, uma série de variações de set-point e das constantes P, I e D foi 48 realizada, de modo a apresentar o desempenho do sistema nestes casos. Podemos observar tal resultado na figura 37. Figura 37 – Comportamento do controlador PID digital com as diversas variações de setpoint e valores das constantes P, I e D. 49 50 CAPÍTULO 6 – CONCLUSÃO Este trabalho desenvolveu mais uma ferramenta para o auxílio do ensino de controle de processos através de um sistema digital. Houve um problema na comunicação entre a interface de controle e o firmware, visto que os dados inseridos pelo usuário não conseguiram ser utilizados no algoritmo de controle PID Digital. Para obter resultados baseados no funcionamento do sistema os dados necessários para o controle como as constantes P, I e D e o valor de velocidade desejada para o motor tiveram de ser inseridas no código e gravadas no micro-controlador. Com isto, foi possível verificar o desempenho do motor em função da correção realizada durante o período em que foi realizada a leitura da velocidade do processo, este por sua vez enviado pelo controlador e interpretado pela interface de controle, a qual gerou os gráficos com a resposta do sistema. Baseado nos resultados obtidos, pode-se afirmar que o controle PID Digital implementado atende a proposta de realizar a correção do erro encontrado pelo sistema independente da situação em que ocorram, sejam por variações bruscas do erro ou por erros mínimos que persistem ao longo do tempo. Pode haver uma série de melhorias para este trabalho tais como a utilização do algoritmo PID Digital para o controle de outras cargas, tais como controle de temperatura ou o controle posicionamento de um servo motor. Além disso podem haver evoluções como o desenvolvimento de um modelo matemático e a implantação neste sistema de um algoritmo que realiza o cálculo das constantes P, I e D de forma autônoma para o ajuste do controle. 51 52 CAPÍTULO 7 - REFERÊNCIAS BIBLIOGRÁFICAS AKIYAMA., Datasheet do motor DC AK360/PL12-7000S. Disponível em: http://www.akiyama.com.br/arquivos/196742.pdf. Acessado em: 20/06/2008. ALLDATASHEET., Datasheet Phillips LPC2148. Disponível em: http://pdf1.alldatasheet.com/datasheet-pdf/view/118634/PHILIPS/LPC2148.html. Acessado em: 03/04/2008. BARDHP., Acionamento de motores DC via ponte H. Disponível em: http://www.vabsco.com/bardhp/proj/ponteh/main.html. Acessado em: 10/05/2008. GHIRARDELLO, A., Apostila Sobre Modulação PWM. Colégio POLITEC. Disponível em: http://www.eletronica.org/arq_apostilas/apostila_pwm.pdf. Acessado em: 07/04/2008. KITMCU., Disponível em: http://www.kitmcu.com.br. Acessado em: 03/04/2008. KRASS, M., PID Control Theory. Disponível em: http://www.team358.org. Acessado em 05/10/2008. OGATA, K., Engenharia de Controle Moderno. 3º ed. Rio de Janeiro: LTC Editora S.A., 2000. SOARES, M., MSPC Informações Técnicas. Disponível em: http://www.mspc.eng.br/fldetc/pid1.asp#contr_pid.Acessado em: 14/03/2008. TEIXEIRA, P. R. F.; FARIA R.A., Instrumentista de Controle: Fundamentos de Controle. Universidade Tecnológica Federal do Paraná – UTFPR, Curitiba, 2006. 53