Leonardo André Machado de Castro ESTUDO DE
Transcrição
Leonardo André Machado de Castro ESTUDO DE
1 CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA - DAELT Leonardo André Machado de Castro ESTUDO DE SISTEMA DE CONTROLE DE VELOCIDADE DE BAIXO CUSTO PARA MOTORES DE INDUÇÃO Curitiba 2003 2 Leonardo André Machado de Castro ESTUDO DE SISTEMA DE CONTROLE DE VELOCIDADE DE BAIXO CUSTO PARA MOTORES DE INDUÇÃO Monografia apresentada para obtenção total do título de engenheiro, no curso de Engenharia Industrial Elétrica - ênfase Eletrotécnica, do Centro Federal de Educação Tecnológica do Paraná. Prof. Orientador: Joaquim Eloir Rocha Curitiba 2003 3 Leonardo André Machado de Castro ESTUDO DE SISTEMA DE CONTROLE DE VELOCIDADE DE BAIXO CUSTO PARA MOTORES DE INDUÇÃO Este Projeto Final de Graduação foi julgado e aprovado como requisito total para obtenção do título de Engenheiro Eletricista pelo Centro Federal de Educação Tecnológica do Paraná. Curitiba, 25 de novembro de 2003 ______________________________ Prof. Carlos Alberto Dallabona Coordenador de Curso de Engenharia Industrial Elétrica – Eletrotécnica ______________________________ Prof. Paulo Sérgio Walenia Coordenador de Projeto Final de Graduação Engenharia Industrial Elétrica – Eletrotécnica ______________________________ Prof. Joaquim Eloir Rocha (Orientador) ______________________________ Walter Sanchez (Banca 1) ______________________________ Eduardo Romaneli (Banca 2) 4 DEDICATÓRIA Dedico esta monografia a Deus, por ter me permitido sobreviver a um acidente automobilístico extremamente grave, sem nenhuma seqüela, contrariando todas as estatísticas humanas. 5 AGRADECIMENTOS Agradeço a toda minha família por não perderem a esperança, pelo suporte, pelo amor e pelo carinho. Em especial à minha mãe Beth Castro, à minha irmã Renata Castro, ao meu irmão Leandro Castro, ao Sgarbi, à minha avó Thereza e meu avô Josias. Agradeço à Christiane Schmidtke, minha namorada, por ter me acompanhado com amor e paciência, durante todos os dias de minha reabilitação e durante todo o desenvolvimento deste trabalho. À Evandro Luiz Hauenstein da SIEMENS, pelo auxílio com a programação do 89C51AC2. Ao Sr. Niceto da SEPAR, pela doação de componentes. A Marcelo Sung Man Jo da TESLA (empresa hospedada no hotel tecnológico do CEFET-PR), por emprestar o local e os equipamentos para ensaio do protótipo. Ao meu orientador, Professor Joaquim Eloir Rocha, pela elucidação de dúvidas e orientação quanto ao escopo do trabalho. 6 RESUMO Os motores de indução são muito utilizados em aplicações industriais devido a sua construção simples, sua baixa manutenção e seu tamanho reduzido se comparado a um motor de mesma potência, porém de corrente contínua. No entanto a forma de controle dos motores trifásicos de indução é extremamente mais complexa do que a de um motor de corrente contínua, devido ao fato de que se trabalha com reatâncias indutivas variáveis, de acordo com a freqüência de operação. Mesmo com imensas desvantagens com relação aos motores de indução, os motores CC ainda são imensamente utilizados, justamente pelo fato de poder ser controlado mais facilmente. Existiria uma forma de se controlar a velocidade de um motor de indução de forma simples e barata? Que fosse uma alternativa aos caríssimos inversores e atendesse aplicações específicas onde a precisão não é extremamente crítica? Cada um destes pontos remete a inúmeras considerações, que serão dissertadas nos devidos capítulos. O objetivo deste trabalho é estudar a viabilidade da criação de um controle de velocidade de motores pequenos de indução. Geralmente a velocidade do motor é controlada enquanto o fluxo é mantido constante, sendo que o sistema de controle deve ser capaz de permitir baixas velocidades com torques nominais. As aplicações possíveis para os controles escalares são inúmeras e podese gerar chaveamentos PWM utilizando-se microcontroladores fáceis de serem obtidos no comércio, como o 89C51AC2 da Atmel, o qual foi utilizado neste trabalho na criação de um controle V/F a SPWM. Este protótipo pode ser configurado via computador, a partir da COM1, com três frequências distintas, uma rampa de partida e outra para troca de velocidades. O software é todo baseado em tabelas de freqüências gravadas em sua memória e interrupções geradas pelo contador Timer0. 7 ABSCTRACT The induction machines are very used on industrial plants, because of their simple construction, low maintenance and compact dimensions, in comparison with the DC motors. However, the control of AC machines are extremely more complicated than the DC machines ones, due to the fact that it works with variable inductances, according to the operation frequency. The DC motors, even presenting a lot of disadvantages, are still hugely used, because of their capability of being controlled more easily. Is there a cheaper way to control the speed of AC machines that can become an alternative to the expensive commercial inverters? A type of control that attend specific applications where the precision is not so critic? Each one of these questions provide numerous considerations, and will be discussed on the appropriate chapters. The main objective of this work is to study the creation viability of an AC motor control, that provide low cost and attend specific applications. Generally the motor speed is variable while the flux is maintained constant, the control system must be able to allow low speeds with nominal torques. There is a lot of possible applications where we can apply the V/F method, and to generate the PWM signals we can use microcontrollers easy to find in the market with low cost, like the 89C51AC2 from the manufacturer Atmel. This controller was used in this work to create a V/F speed control by SPWM. This prototype may be configured by computer, by COM1 serial port, with 3 frequencies, 1 start delta and another delta to interchange the velocities. The entire software is based on frequency tables, that are saved in controller’s memory, and interruptions generated by the counter Timer0. 8 LISTA DE ABREVIATURAS E SIGLAS PWM - Pulse Width Modulation (Modulação por largura de pulsos). SPWM - Senoidal Pulse Width Modulation (Modulação por largura de pulsos senoidal). MSPWM - Modificated Senoidal Pulse Width Modulation (Modulação por largura de pulsos senoidal modificada). UPWM - Uniform Pulse Width Modulation (Modulação por largura de pulsos uniforme). Choppers - Conversor CC – CC. IGBT – Insulated Gate Bipolar Transistor. TBP – Transistor Bipolar de Potência. f.e.m. – Força Eletro Motriz. f.m.m. – Força Magneto Motriz. Q1- Abreviatura de transistor 1. Duty-cycle - Ciclo de condução, expresso em percentagem. Boost – Incremento de tensão que foge à curva V/F original. DSP - Digital Signal Processor. Encoder – Sensor de posição e velocidade. Gate-Driver – Driver de Porta para elementos de potência, acopla o sinal gerado pelo microcontrolador à etapa de potência. Chip – Circuito Integrado. Status – Situação. 9 LISTA DE FIGURAS Figura 2.1 – Curvas de torque-velocidade para tensão do estator variável. .............18 Figura 2.2 – Controle de velocidade através da tensão do rotor...............................21 Figura 2.3 – Característica do torque com controle da freqüência............................22 Figura 2.4 – Curvas características torque-velocidade para o controle V/F..............23 Figura 2.5 – Acionamentos de máquinas CA com fonte de tensão...........................24 Figura 2.6 – Inversor trifásico em ponte e sinais de controle. ...................................26 Figura 2.7 – Sinais de comando para condução por 120º.........................................27 Figura 2.8 – Modulação por largura de pulso único...................................................28 Figura 2.9 – Harmônicos da modulação por largura de pulso único. ........................29 Figura 2.10 – Modulação por pulsos múltiplos...........................................................30 Figura 2.11 – Harmônicos da modulação por largura de pulsos múltiplos................30 Figura 2.12 – Sinais de controle e saída da modulação SPWM. ..............................32 Figura 2.13 – Harmônicos na modulação SPWM. .....................................................33 Figura 2.14 – Modulação MSPWM. ...........................................................................34 Figura 2.15 – Harmônicos da MSPWM......................................................................34 Figura 2.16 – Modulação Trapezoidal........................................................................35 Figura 2.17 – Modulação em degrau. ........................................................................36 Figura 4.1 – Esquema universal de potência.............................................................43 Figura 4.2 – Esquemático do controle por frequência ...............................................45 Figura 4.3 – Visão do circuito e da bancada de ensaio. ............................................47 Figura 4.4 – Visão panorâmica do circuito ensaiado. ................................................48 Figura 4.5 – Sinal gerado por 2 fases. .......................................................................48 Figura 4.6 - Sinal de uma fase após filtro de 1ª ordem..............................................49 Figura 4.7 – Valores da fase A, para as tabelas de 30 e 60Hz .................................60 Figura 4.8 - Simulação das 3 fases em 60Hz. 30 pulsos por ciclo. ...........................61 Figura 4.9 – Simulação da tensão entre as fases A e B do motor. ...........................62 Figura 4.10 – Fluxograma do laço principal. ..............................................................62 Figura 4.11 – Fluxograma da subrotina do Timer0....................................................64 Figura 4.12 – Curva das rampas de aceleração. .......................................................64 Figura 4.13 – Estrutura modular do projeto. ..............................................................66 10 Figura 4.14 - Esquema para a placa de potência. .....................................................68 Figura 4.15 – Esquemático do módulo de controle. ..................................................71 Figura 4.16 – Face superior da placa de controle. ....................................................72 Figura 4.17 – Vista panorâmica da placa de controle................................................72 Figura 4.18 – Face inferior da placa de controle........................................................72 Figura 4.19 – Modo de configuração no Terminal. ....................................................74 Figura 4.20 – Programa esperando botões serem pressionados..............................75 Figura 4.21 – Troca de tabelas na partida. ................................................................76 Figura 4.22 – Freqüência de 20Hz e tempo do Timer0. ............................................77 Figura 4.23 – Saídas P1.5 e P1.6 do 89C51AC2 a 40Hz..........................................78 Figura 4.24 – Saídas P1.5 e P1.6 do 89C51AC2 a 60Hz..........................................78 Figura 1 - Face superior da placa de controle. ..........................................................95 Figura 2 - Face inferior da placa de controle. ............................................................95 Figura 3 - Disposição dos componentes na placa de controle. .................................96 11 SUMÁRIO 1 INTRODUÇÃO .....................................................................................................13 1.1 PROPOSTA APRESENTADA......................................................................13 1.1.1 Justificativa ............................................................................................14 1.1.2 Objetivos................................................................................................14 1.1.2.1 Objetivo Geral ................................................................................14 1.1.2.2 Objetivos Específicos.....................................................................14 1.1.3 2 Metodologia ...........................................................................................15 REFERENCIAL TEÓRICO ..................................................................................16 2.1 INTRODUÇÃO..............................................................................................16 2.2 ACIONAMENTOS CA...................................................................................17 2.3 MÉTODOS DE CONTROLE DE MOTORES CA .........................................18 2.3.1 Controle da tensão do estator ...............................................................18 2.3.1.1 2.3.2 Controle da Tensão do Rotor ................................................................20 2.3.3 Controle da Freqüência .........................................................................21 2.3.4 Controle da Tensão e da Freqüência (Controle Escalar V/F)...............22 2.4 3 4 Perdas no rotor devido à variação do escorregamento.................19 INVERSORES TRIFÁSICOS........................................................................25 2.4.1 Condução por 180º................................................................................25 2.4.2 Condução por 120º................................................................................27 2.4.3 Controle de tensão de inversores .........................................................28 2.4.3.1 Modulação por largura de pulso único...........................................28 2.4.3.2 Modulação por largura de pulsos múltiplos (UPWM) ....................29 2.4.3.3 Modulação por largura de pulsos senoidal (SPWM) .....................31 2.4.3.4 Modulação por largura de pulsos senoidal modificada (MSPWM)33 2.4.3.5 Modulação Trapezoidal..................................................................35 2.4.3.6 Modulação escada ou degrau........................................................35 METODOLOGIA ..................................................................................................37 3.1 A ETAPA DE POTÊNCIA .............................................................................37 3.2 A ETAPA DE CONTROLE............................................................................38 ANÁLISE DOS DADOS .......................................................................................41 4.1 INTRODUÇÃO..............................................................................................41 12 4.2 PROJETO DE CONTROLE DE VELOCIDADE ...........................................42 4.2.1 4.3 PROJETO 1: CONTROLE POR FREQUÊNCIA A 120º ..............................45 4.3.1 4.4 Funcionamento do circuito ....................................................................46 PROJETO 2: CONTROLE V/F ATRAVÉS DO SPWM ................................50 4.4.1 O Software.............................................................................................51 4.4.1.1 Aplicação........................................................................................51 4.4.1.2 Tipo de Controle.............................................................................52 4.4.1.3 Compilador .....................................................................................52 4.4.1.4 Timer0 ............................................................................................53 4.4.1.5 Saídas PWM ..................................................................................54 4.4.1.6 Tabelas de Freqüências.................................................................54 4.4.1.7 Funcionamento do software...........................................................62 4.4.2 Hardware ...............................................................................................65 4.4.2.1 O “Gate-Driver”...............................................................................66 4.4.2.2 Módulo de Controle ........................................................................69 4.4.2.3 Custos do protótipo ........................................................................73 4.4.3 5 Esquema universal de potência ............................................................42 Resultados Experimentais.....................................................................74 AVALIAÇÃO GLOBAL DO PROJETO E CONSIDERAÇÕES FINAIS................80 ANEXO A – Especificação de Componentes .............................................................85 APÊNDICE A – Módulo de Controle ...........................................................................94 APÊNDICE B – O Software ........................................................................................97 13 1 1.1 INTRODUÇÃO PROPOSTA APRESENTADA Um dos equipamentos mais utilizados em processos industriais é, com certeza, o inversor de freqüência, devido ao fato de ser quase impossível encontrar um segmento industrial onde não seja necessária a utilização de motores trifásicos de indução. O inversor de freqüência possibilita o controle completo de um motor CA trifásico de indução, através da variação simultânea da freqüência e da tensão aplicados ao seu estator. Cita-se, como exemplo, a possibilidade de ter-se torque nominal em baixas rotações. Este método é denominado de controle escalar V/F, e entre outras características, impede que o enrolamento do motor queime em baixas freqüências, a partir da redução da tensão aplicada proporcionalmente à freqüência. PWM significa Pulse Width Modulation, ou Modulação por Largura de Pulso, seu princípio de funcionamento, basicamente, é o controle da largura e da quantidade dos pulsos aplicados sobre o motor. Os duty-cycles (ciclos de condução) dos pulsos devem ser alterados conjuntamente com a freqüência. Duty-Cycle diz respeito à razão em porcentagem, do tempo em que a saída de controle permanece em nível alto com relação ao período da portadora. Ao contrário do UPWM (PWM de pulsos múltiplos), na modulação SPWM (PWM Senoidal) os duty-cycles não possuem um único valor para todo o ciclo, pois cada pulso deve ter uma largura diferente proporcional ao seno do ângulo em questão. Através de um inversor pode-se parametrizar o tempo para a rampa de partida, velocidades de operação e valores de sobrecorrente e sobretensão. O avanço da eletrônica de potência e a microeletrônica, por meio dos microcontroladores, são o cerne sobre o qual se baseia o acionamento moderno de máquinas CA. Seria viável o desenvolvimento de um controle deste tipo? Hoje em dia existe uma grande gama de empresas fabricantes de componentes eletrônicos, o que torna a concorrência entre elas muito acirrada e acarreta na diminuição do preço das peças. Através de um microcontrolador com suporte a PWM, pode-se projetar um controle de velocidade para motores de 14 indução que atenda as especificações da modulação SPWM. 1.1.1 Justificativa A tecnologia utilizada no desenvolvimento de inversores é confidencial para as empresas, cada empresa utiliza um conjunto de componentes diferentes e programas diferentes para os microcontroladores, contudo pode-se criar um modelo padrão para o desenvolvimento de aplicações de controle de velocidade de motores trifásicos de indução. A única forma disponível no mercado de se controlar motores trifásicos com rendimento aceitável é via inversores comerciais, porém grande parte das aplicações existentes, como bombas, ventiladores, misturadores e borbulhadores, na qual a precisão não é extremamente crítica, poderiam ser acionados por um método alternativo de controle que tivesse um preço extremamente competitivo. 1.1.2 Objetivos 1.1.2.1 Objetivo Geral Desenvolver estudo sobre a viabilidade de um sistema de controle de velocidade de baixo custo para motores de indução. 1.1.2.2 Objetivos Específicos Estudar características de componentes eletrônicos, como: Microcontroladores, MOSFETs, IGBTs, Gate Drivers, entre outros. Detalhar diversos tipos de modulações possíveis de serem implementadas, com seus pontos fortes e fracos e o espectro de harmônicos gerados. Propor um projeto de baixo custo para o controle de velocidade de motores de indução de baixa potência. 15 1.1.3 Metodologia Pesquisar livros, papers e assuntos relacionados aos tipos de modulação PWM existentes, características de MOSFETs e IGBTs, Microcontroladores e compiladores. Para tanto serão utilizados a Internet, e livros da biblioteca do CEFET. Pelas informações obtidas será desenvolvido um modelo padrão sobre o qual outros controles de velocidade poderão ser desenvolvidos. O projeto a ser criado deverá gerar via microcontrolador os sinais PWM para disparo das chaves de potência da Ponte H. Deve-se escolher um microcontrolador que possua portas PWM, memória suficiente para alojar o programa, e velocidade para executar todas as rotinas sem perda de precisão. A partir do software desenvolvido e do microcontrolador escolhido será desenhado o esquemático de um módulo de controle para Pontes H, o qual será implementado e testado. É essencial que o módulo tenha um custo competitivo em comparação ao dos inversores comerciais. 16 2 2.1 REFERENCIAL TEÓRICO INTRODUÇÃO O uso de inversores para controle de velocidade de motores trifásicos de indução é bastante difundido na indústria em aplicações que variam desde bombeamento de fluidos até o controle da própria linha de produção. “Os motores de indução são muito utilizados em aplicações industriais devido a sua construção simples, sua baixa manutenção e tamanho reduzido se comparado a um motor de mesma potência, porém de corrente contínua” (SÁ, 1978, p9). No entanto a forma de controle dos motores trifásicos de indução é extremamente mais comp4lexa do que a de um motor de corrente contínua, devido ao fato de que se trabalha com reatâncias indutivas variáveis, de acordo com a freqüência de operação. A forma universalmente difundida e comprovadamente eficaz de controle destes motores é por PWM (Modulação por largura de Pulso), que é apenas uma das formas de controle da potência aplicada sobre o motor, e possui inúmeras variações, desde o simples PWM de Pulsos Múltiplos até o extremamente complexo, porém eficaz, PWM Vetorial. Em aplicações onde a precisão da velocidade do motor não é crítica (sistemas de acionamento de uso geral), deveria existir uma forma alternativa de controle de velocidade que fosse simples e barata. Seria viável a criação de um circuito de controle simples, focado em aplicações específicas, utilizando um único microcontrolador, e que pudesse controlar a velocidade de pequenos motores de indução? 17 2.2 ACIONAMENTOS CA O controle das máquinas CC requer o fornecimento de uma tensão CC variável que pode ser obtida a partir de choppers ou retificadores controlados, esses controladores de tensão são simples e baratos. Porém as máquinas CC são relativamente caras e requerem mais manutenção devido às escovas e comutadores que se desgastam rapidamente. Entretanto, os acionamentos CC ainda são utilizados em diversas aplicações industriais e de transporte. As máquinas CA, por sua vez, exibem estruturas altamente acopladas, nãolineares e multivariáveis, que são exatamente o oposto das máquinas CC de excitação separada, com estruturas desacopladas e muito mais simples. O controle dos acionamentos CA geralmente requer algoritmos complexos que podem ser implementados através de microcontroladores juntamente com conversores de potência de chaveamento rápido como as pontes H compostas de IGBTS ou MOSFETs. As máquinas CA possuem inúmeras vantagens: são mais leves (20% a 40% mais leves que as máquinas CC equivalentes), mais baratas e têm menos manutenção. Requerem basicamente controle de freqüência, tensão e corrente para aplicações de velocidade variável. (RASHID, 1992, Cap.15). Os conversores de potência, inversores e controladores de tensão CA podem controlar a freqüência, a tensão e/ou a corrente para fornecer os requisitos do acionamento. Os conversores de potência, que são relativamente complexos e mais caros, requerem técnicas avançadas de controle com realimentação, tais como modelo de referência, controle adaptativo, controle do escorregamento e controle de campo orientado. Entretanto as vantagens dos acionamentos CA compensam as desvantagens de controles tão complexos. 18 2.3 MÉTODOS DE CONTROLE DE MOTORES CA 2.3.1 Controle da tensão do estator Neste tipo de controle o torque é proporcional ao quadrado da tensão de alimentação do estator, e uma redução nesta produzirá uma redução na velocidade. A figura 2.1 mostra as curvas características típicas torque-velocidade para os vários valores de escorregamento. Os pontos de interseção com a linha da carga definem os pontos de operação estável. À medida que a tensão do estator é reduzida, o fluxo do entreferro e o torque também são reduzidos. A uma tensão mais baixa, a corrente terá um máximo a um escorregamento de s=1/3. A faixa de controle de velocidade depende do escorregamento para o torque máximo. Para uma máquina de baixo escorregamento, a faixa de velocidade é muito estreita, esse tipo de controle de tensão não é adequado para uma carga de torque constante e em geral é aplicado em situações que requerem baixo torque de partida e faixa estreita de velocidade. Figura 2.1 – Curvas de torque-velocidade para tensão do estator variável. FONTE: RASHID, 1992. 19 A tensão do estator pode ser variada através de: 1. Controladores CA trifásicos; 2. Inversores trifásicos do tipo fonte de tensão com interligação CC variável; 3. Inversores trifásicos PWM. Devido às características de faixa de velocidade limitada, os controladores de tensão CA normalmente são utilizados em controle de tensão de estator e são muito simples, mas o conteúdo harmônico é elevado e o fator de potência de entrada dos controladores é baixo. (RASHID, 1992, Cap.15). Caso o motor não tenha um rotor de alta resistência alguns problemas poderão ocorrer como: 1. A variação da característica do conjugado motor na faixa entre a partida e o conjugado máximo é instável. Manter uma velocidade limite nesta faixa só é possível com o auxílio de uma regulação extremamente rápida. 2. Para conseguir-se um alto conjugado de partida são necessárias correntes de partida da ordem de 6 a 10 vezes a corrente nominal. 3. O fator de potência da máquina é baixo para valores altos de escorregamento. 2.3.1.1 Perdas no rotor devido à variação do escorregamento A regulação de velocidade de um motor assíncrono através da variação da tensão do estator seria um processo simples e barato, se não houvesse uma desvantagem que limita sua utilização: o aumento do escorregamento resulta em grandes perdas no rotor da máquina. Para o escorregamento de 3% o motor deve poder absorver no rotor 3% da potência nominal sob a forma de perdas. O mesmo motor deveria, para conjugado resistente constante e escorregamento de 50%, admitir 50% da potência nominal com perdas no rotor. Sob estas condições, os motores de indução com carga constante não admitem variação de velocidade através do escorregamento. Quando o conjugado resistente varia com o quadrado da velocidade as relações são mais favoráveis. A potência máxima de perdas é de 15% da nominal 20 para 2/3 da velocidade síncrona. Neste caso através do sobredimensionamento do motor, é possível a operação em toda a faixa de velocidades. Para máquinas pequenas que sempre apresentam perdas porcentualmente maiores, o sobredimensionamento é menor do que nas máquinas grandes com bom rendimento. Baseado nestes motivos, o controle de velocidade, em motores de indução tipo gaiola de esquilo, é feito através da regulação da tensão do estator nos seguintes casos: • Para operação de curta duração, com duração de ligação do controle de velocidade exatamente definida, por exemplo: partida lenta de máquinas e aceleração de guindastes. • Regulação de velocidade de ventiladores e bombas com variação quadrática e cúbica do conjugado resistente e sobredimensionamento correspondente do motor. • Regulação de velocidade de pequenos motores que possuam baixo rendimento, por exemplo: indústria têxtil. 2.3.2 Controle da Tensão do Rotor Em uma máquina de rotor bobinado1, uma conexão trifásica de resistores externos pode ser feita aos anéis, como mostrado na figura 2.2. O torque desenvolvido pode ser variado através da variação da resistência Rx. Esse método aumenta o torque de partida, além de limitar a corrente de partida. Entretanto, é um método ineficiente e haverá desequilíbrio nas tensões e correntes se as resistências no circuito do rotor não forem exatamente iguais. Uma máquina de indução de rotor bobinado é projetada para ter baixa resistência de rotor de tal forma que a eficiência de operação seja elevada e o escorregamento a plena carga seja baixo. 1 O controle de velocidade por tensão de rotor só pode ser efetuado em máquinas com rotores bobinados. Ao Contrário das máquinas de rotor bobinado, os motores de indução com rotores “Gaiolas de Esquilo” não possuem bobinas de rotor nem tampouco anéis de comutação, contudo são os motores mais utilizados em aplicações industriais de qualquer tipo. 21 Figura 2.2 – Controle de velocidade através da tensão do rotor. FONTE: RASHID, 1992. O aumento na resistência do rotor não afeta o valor do torque máximo, mas aumenta o escorregamento no torque máximo. As máquinas de rotor bobinado são amplamente utilizadas em aplicações que requerem freqüentes partidas e frenagens com torques elevados (por exemplo, guindastes). Devido à disponibilidade dos enrolamentos do rotor para a variação da resistência deste, a máquina de rotor bobinado oferece maior flexibilidade para o controle, mas há um aumento do custo e necessidade de manutenção devido aos anéis e escovas. Rashid (1992, Cap.15) confirma que: “A máquina de rotor bobinado não é tão amplamente utilizada como a máquina de rotor em gaiola de esquilo”. 2.3.3 Controle da Freqüência O torque e a velocidade das máquinas de indução podem ser controlados variando-se somente a freqüência da fonte de alimentação. Se a tensão for mantida fixa em seu valor nominal enquanto a freqüência é reduzida abaixo do seu valor nominal, o fluxo aumentará, o que pode levar à saturação do fluxo do entreferro. Assim, os parâmetros da máquina podem perder sua validade. Em baixa freqüência, as reatâncias diminuem e a corrente da máquina pode ser muito elevada. Devido a estes problemas, “O controle de velocidade por freqüência normalmente não é muito utilizado”. (RASHID, 1992, Cap. 15). Se a freqüência for aumentada acima do seu valor nominal, o fluxo e o torque diminuem. 22 As curvas características típicas torque-velocidade são mostradas na fig. 2.3. Assim, pode-se concluir que o torque máximo é inversamente proporcional ao quadrado da freqüência, similar ao comportamento das máquinas CC em série. Nesse tipo de controle, diz-se que a máquina opera no modo de “enfraquecimento de campo”. Para β > 1, a máquina é operada à tensão nominal constante e o fluxo é reduzido, limitando dessa maneira a sua capacidade de torque. Para 1 < β < 1,5, a relação entre torque e β pode ser considerada aproximadamente linear. Para β < 1, a máquina é normalmente operada a fluxo constante, reduzindose a tensão nominal juntamente com a freqüência de tal forma que o fluxo permaneça constante. Para este último caso existe o controle escalar V/F, que será visto na seqüência. Figura 2.3 – Característica do torque com controle da freqüência. FONTE: RASHID, 1992. 2.3.4 Controle da Tensão e da Freqüência (Controle Escalar V/F) Se a relação entre a tensão e a freqüência for mantida constante, o fluxo permanecerá constante. O torque máximo, que é independente da freqüência, pode ser mantido aproximadamente constante. Entretanto, em baixa freqüência o fluxo do entreferro é reduzido devido à queda na impedância do estator, tendo a tensão de ser aumentada para manter o nível de torque. As curvas características típicas torque-velocidade são mostradas na fig. 2.4. 23 À medida que a freqüência é reduzida, β diminui e o escorregamento para o torque máximo aumenta. Para uma dada demanda de torque, a velocidade pode ser controlada variando-se a freqüência. Portanto, variando-se tanto a tensão quanto a freqüência, o torque e a velocidade podem ser controlados. O torque normalmente é mantido constante, enquanto a velocidade é variada. A tensão à freqüência variável pode ser obtida a partir de inversores trifásicos ou cicloconversores. Os cicloconversores são utilizados em aplicações de potências muito elevadas2, nas quais a exigência de freqüência é de metade ou um terço da freqüência da rede. Figura 2.4 – Curvas características torque-velocidade para o controle V/F. FONTE: RASHID, 1992. A partir do advento da modulação PWM para controle de máquinas de indução, três esquemas possíveis para obtenção de tensão e freqüência variáveis são apresentados na figura 2.5. 2 Por exemplo: Locomotivas e moinhos de cimento. 24 Figura 2.5 – Acionamentos de máquinas CA com fonte de tensão. FONTE: RASHID, 1992. Na figura 2.5a, a tensão permanece constante e a técnica PWM3 é aplicada para variar tanto a tensão quanto a freqüência do inversor. Devido ao retificador com diodos, não é possível a regeneração e o inversor irá gerar harmônicos em direção à alimentação CA. Na figura 2.5b, o chopper4 varia a tensão CC para o inversor e este controla a freqüência. Devido ao chopper, a injeção de harmônicos na rede de alimentação CA é reduzida. Neste caso o sistema de controle terá que trabalhar com 2 sinais PWMs, o primeiro fará a variação do sinal CC do chopper para a entrada do inversor, e o segundo fará a variação da freqüência do PWM na ponte H, que efetivamente será aplicada ao motor, sendo que o tipo de PWM aplicado ao motor pode aumentar ou reduzir ainda mais os harmônicos gerados. Na figura 2.5c, a tensão CC é controlada pelo conversor Dual e a freqüência é controlada pelo inversor. O arranjo permite regeneração, entretanto o fator de 3 PWM: Pulse Width Modulation ou Modulação por Largura de Pulso. Segundo Rashid ( 1992), o chopper é “[...] um conversor CC-CC, com entrada CC fixa e saída CC variável e controlada [...]”. 4 25 potência do conversor é baixo, especialmente quando o ângulo de disparo é alto. 2.4 INVERSORES TRIFÁSICOS Uma saída trifásica em degrau (tensão quase quadrada) pode ser obtida a partir da configuração padrão de inversores, onde são utilizados 6 MOSFETs, IGBTs ou Transistores Bipolares de potência. Os diodos em anti-paralelo servem para permitir um caminho de retorno para a corrente quando se alimenta uma carga indutiva. Este esquema se denomina Ponte H trifásica. 2.4.1 Condução por 180º Neste esquema, cada transistor conduz por 180º, ou seja, sempre existem três transistores conduzindo a qualquer instante de tempo. Quando o transistor Q1 entra em condução, o terminal a é conectado ao positivo da tensão CC de entrada. Quando o transistor Q4 entra em condução, o terminal a é levado ao negativo da fonte CC. Existem 6 modos de operação em um ciclo e a duração de cada modo é de 60º. Os sinais de comando mostrados na figura 2.6 são defasados de 60º uns dos outros para que se possa obter tensões trifásicas de saída equilibradas. A carga pode ser conectada em estrela ou em triângulo. Para uma carga em triângulo, as correntes de fase podem ser obtidas diretamente a partir das tensões de linha, uma vez que as correntes de fase são conhecidas as correntes de linha podem ser determinadas. Para uma carga em estrela, a tensão de fase-neutro tem de ser determinada de modo a se encontrar as correntes de linha e de fase. 26 Figura 2.6 – Inversor trifásico em ponte e sinais de controle. FONTE: RASHID, 1992. 27 2.4.2 Condução por 120º Neste tipo de controle cada transistor conduz por 120º. Apenas 2 transistores conduzem simultaneamente. Os sinais de comando são mostrados na figura 2.7. A qualquer instante, dois terminais da carga são conectados à fonte de alimentação CC e o terceiro permanece em aberto. O potencial desse terminal dependerá das características da carga. Como cada transistor conduz por 120º, cada um conduz por menos tempo que os de condução por 180º para as mesmas condições de carga. Figura 2.7 – Sinais de comando para condução por 120º. FONTE: RASHID, 1992. 28 2.4.3 Controle de tensão de inversores Para que possamos ter um controle V/F, precisamos saber as diversas técnicas existentes para se alterar o ganho do inversor. O método mais eficiente de controle do ganho consiste em incorporar o controle de modulação por largura de pulso (PWM) dentro do inversor. As técnicas mais utilizadas são: 2.4.3.1 Modulação por largura de pulso único Neste tipo de controle, existe somente um pulso por semiciclo e a sua largura é variada para controlar a tensão de saída do inversor. A figura 2.8 mostra a geração dos sinais de comando e a tensão de saída do inversor monofásico em ponte completa. Os sinais de comando são gerados por comparação de um sinal de referência retangular, com uma onda portadora triangular. A freqüência do sinal de referência determina a freqüência fundamental da tensão de saída. Figura 2.8 – Modulação por largura de pulso único. FONTE: RASHID, 1992. 29 Figura 2.9 – Harmônicos da modulação por largura de pulso único. FONTE: RASHID, 1992. Neste tipo de modulação, conforme figura 2.9, o harmônico dominante é o terceiro, que é muito difícil de ser filtrado por ter uma freqüência muito próxima da fundamental, e o fator de distorção aumenta significativamente para baixas tensões de saída. 2.4.3.2 Modulação por largura de pulsos múltiplos (UPWM) Os harmônicos podem ser reduzidos se ao invés de termos um único pulso por semiciclo, tivermos diversos pulsos. A geração dos sinais de comando para ligar e desligar os IGBTs é feita por comparação de um sinal de referência CC com uma onda portadora triangular conforme figura 2.10. A freqüência do sinal de referência estabelece a freqüência de saída, e a freqüência da portadora determina o número de pulsos por semiciclo. O índice de modulação controla a tensão de saída. Esse tipo de modulação também é conhecido como modulação por largura de pulso uniforme5. 5 Tradução do inglês: Uniform Pulse Width Modulation - UPWM 30 Figura 2.10 – Modulação por pulsos múltiplos. FONTE: RASHID, 1992. Figura 2.11 – Harmônicos da modulação por largura de pulsos múltiplos. FONTE: RASHID, 1992. Segundo a figura 2.11, para p = 5 pulsos por semiciclo, a ordem dos harmônicos é a mesma da modulação por pulso único, entretanto, devido a um maior número chaveamentos por unidade de tempo, as perdas por comutação aumentarão. Aumentando-se o valor de p, consegue-se diminuir as amplitudes dos harmônicos de baixa ordem, com o 3º e o 5º, porém as amplitudes de harmônicos de mais alta ordem aumentarão, o que não é problemático visto que tais harmônicos 31 podem ser facilmente eliminados com filtros, ou na própria bobina do motor. 2.4.3.3 Modulação por largura de pulsos senoidal (SPWM) Ao invés de manter a largura de todos os pulsos sempre a mesma, como no caso da modulação de pulsos múltiplos, a largura de cada pulso é variada em proporção à amplitude de uma onda senoidal de referência. Neste tipo de modulação, o fator de distorção e os harmônicos são reduzidos significativamente. Os sinais de controle são gerados através da comparação de um sinal de referência senoidal com uma onda portadora triangular. Esse tipo de modulação era muito utilizado em aplicações industriais, antes do advento da modulação vetorial. A freqüência do sinal de referência determina a freqüência de saída do inversor, e sua amplitude máxima controla o índice de modulação M, que, por sua vez, controla a tensão eficaz de saída. O número de pulsos por semiciclo depende da freqüência da portadora. Dentro da restrição de que dois MOSFETs ou IGBTs do mesmo ramo não podem conduzir ao mesmo tempo, a tensão de saída é mostrada na fig. 2.12. De acordo com a curva freqüência/torque, o motor de indução, a partir da tensão nominal de trabalho, consome a corrente nominal e entrega torque nominal à velocidade nominal, normalmente 1800rpm para 60Hz em um motor de 4 polos, conforme dados de placa. Quando se tem aumento de carga no eixo, em velocidade nominal, há uma perda de velocidade e tanto o escorregamento como a corrente no estator aumentam. O motor pode suportar até 2,5 vezes o torque nominal com apenas 20% de diminuição da velocidade nominal, porém, qualquer acréscimo extra de carga além deste limite causará a queima do motor. O torque desenvolvido pelo motor é diretamente proporcional ao campo magnético produzido pelo estator, isto é, a tensão aplicada ao estator é diretamente proporcional ao produto do fluxo e da velocidade angular. Isto faz o fluxo produzido pelo estator ser proporcional à razão entre tensão e freqüência aplicadas. Variando a freqüência, a velocidade do motor também pode ser variada, 32 porém, variando-se a tensão e a freqüência numa mesma proporção, obtemos fluxo e torque constantes por toda faixa de velocidades, ou seja, podemos ter torque constante em velocidades extremamente baixas. Em velocidade nominal, a tensão e a freqüência aplicadas ao motor precisam estar de acordo com os dados de placa do mesmo. Podemos acionar o motor em velocidades maiores que as nominais, através da aplicação de freqüências maiores que a nominal, porém, além do valor nominal, a tensão não pode ser incrementada, o que ocasiona diminuição da constante V/F, diminuição do campo e conseqüentemente perda de torque. Figura 2.12 – Sinais de controle e saída da modulação SPWM. FONTE: RASHID, 1992. 33 Figura 2.13 – Harmônicos na modulação SPWM. FONTE: RASHID, 1992. O perfil dos harmônicos é mostrado na fig. 2.13 para cinco pulsos por semiciclo. O fator de distorção é significativamente reduzido se comparado ao da modulação por pulsos múltiplos. Mas o mais importante é que este tipo de modulação elimina todos os harmônicos menores ou iguais a 2p -1. Para p = 5, o harmônico de mais baixa ordem é o 9º. A tensão de saída de um inversor sempre contêm harmônicos, porém, o SPWM força os harmônicos a uma faixa de alta freqüência em torno da freqüência de chaveamento e de seus múltiplos. 2.4.3.4 Modulação por largura de pulsos senoidal modificada (MSPWM) 6 As larguras dos pulsos mais próximos do valor de pico da senóide não mudam significativamente com a variação do índice de modulação, isso se deve à característica das ondas senoidais em geral, e a técnica SPWM pode ser modificada tal que a onda portadora seja aplicada durante o primeiro e o último intervalo de 60º por semiciclo, conforme figura 2.14. Esse tipo de modulação é conhecido como 6 MSPWM: Modified Sinusoidal Pulse Width Modulation. 34 MSPWM, que significa PWM senoidal modificada. Resulta em aumento da componente fundamental e suas características harmônicas são melhoradas conforme figura 2.15. Reduz-se também o número de chaveamentos dos dispositivos de potência e com isso as perdas por chaveamento. Figura 2.14 – Modulação MSPWM. FONTE: RASHID, 1992. Figura 2.15 – Harmônicos da MSPWM. FONTE: RASHID, 1992. 35 2.4.3.5 Modulação Trapezoidal Os sinais de comando são gerados por comparação de uma onda portadora triangular com uma onda de referência trapezoidal, como mostrado na figura 2.16. Figura 2.16 – Modulação Trapezoidal. FONTE: RASHID, 1992. 2.4.3.6 Modulação escada ou degrau O sinal de referência é uma escada, o qual não é uma aproximação de uma onda senoidal. Cada um dos degraus é calculado para que se possa eliminar harmônicos específicos e otimizar o valor da fundamental. Este é um PWM otimizado e não é recomendado para menos que 15 pulsos por ciclo, conforme figura 2.17. “Neste tipo de modulação, para que a tensão fundamental de saída seja elevada e o fator de distorção seja baixo, o número de pulsos por ciclo deve ser 15 para 2 degraus, 21 para três e 27 para quatro níveis”. (RASHID, 1992, Cap. 15). 36 Este tipo de modulação fornece alta qualidade da tensão de saída. Figura 2.17 – Modulação em degrau. FONTE: RASHID, 1992. 37 3 METODOLOGIA A partir da teoria de acionamentos, conclui-se que todo e qualquer circuito de controle de velocidade de motor de indução pode ser dividido em duas partes: 3.1 • Etapa de potência • Etapa de Controle A ETAPA DE POTÊNCIA Na etapa de potência, como o nome já diz, temos as altas correntes, a interface com o motor propriamente dito. Esta etapa segue sempre um mesmo desenho padrão, composta por um retificador (controlado ou não), e uma Ponte H que inverte a tensão CC para um sinal modulado em largura de pulso. Esta ponte H pode ser monofásica (composta por 4 elementos de potência7) ou trifásica (composta por 6 elementos), no caso de motores trifásicos de indução é relevante o estudo da ponte com 6 elementos e os pulsos necessários pelo controle para acioná-las. Cada um dos elementos deve receber um diodo em anti-paralelo externo, nos casos de Pontes H de grandes potências, para fornecer um caminho de retorno para a corrente armazenada nas bobinas do motor quando o elemento chaveador de potência não estiver conduzindo. Os únicos elementos semicondutores de potência que permitem condução enquanto houver pulso de gatilho e corte quando o pulso cessa, são os MOSFETs, IGBTs e Transistores Bipolares. Os IGBTs trabalham em freqüências menores, suportam maiores correntes e tensões e são os elementos mais utilizados por inversores comerciais e por aplicações com motores. O IGBT alia a facilidade de acionamento dos MOSFET com as pequenas perdas em condução dos Transistores Bipolares. Sua velocidade de chaveamento, em princípio semelhante à dos transistores bipolares, tem crescido nos últimos anos, 7 Elementos de potência conduzem quando recebem pulso de gatilho e cortam quando o pulso cessa. São chamados comercialmente de MOSFETs, IGBTs ou Transistores Bipolares. 38 permitindo operação em dezenas de kHz nos componentes para correntes na faixa de algumas dezenas de Ampéres. Os MOSFETs por sua vez, podem trabalhar com freqüências maiores porém com menores correntes e tensões entre dreno e fonte comparadas às dos IGBTs. A vantagem dos MOSFETs está no seu preço competitivo. O dimensionamento, e projeto, de condutores e componentes de potência deve ser feito a partir dos dados de placa do motor que se quer controlar. 3.2 A ETAPA DE CONTROLE A etapa de controle pode ser discreta ou microcontrolada. Salvo aplicações específicas, controles discretos não são utilizados em inversores que necessitem de parametrizações. Hoje em dia, com os avanços da microeletrônica, barateamento dos chips e o crescimento da cultura digital, ficou simples de se obter e programar um microcontrolador. Componentes desta espécie, da fabricante Microchip por exemplo, possuem preços a partir de R$5,00 e são facilmente encontrados em lojas de componentes eletrônicos em Curitiba. Um microcontrolador pode ter memória FLASH interna para gravação do programa, ou, quando a memória interna não tem a capacidade necessária suficiente, pode-se utilizar chips de memória externamente. O programa deve ser escrito em alguma linguagem a que o compilador tenha suporte, como Assembly ou C. A programação Assembly é extremamente complexa, pois trabalha diretamente com registros e bits, já a linguagem C cria uma camada extra entre o acesso aos registros e o código criado, o que facilita o trabalho do desenvolvedor do software. Entretanto utilizando-se linguagens de programação de alto nível, diminui-se a performance do controlador. Depois de criado o software, deve-se transferi-lo ao microcontrolador através de gravadores específicos, ou no caso do 89C51AC2 da Atmel, basta conectá-lo, através de um CI MAX232, à porta serial COM1 do microcomputador. Dados técnicos sobre o 89C51AC2 podem ser consultados no Anexo A. Neste trabalho, além da apresentação da teoria relacionada ao controle de 39 motores, procurou-se validá-lo a partir de projetos implementados. No primeiro projeto, o Controle por Freqüência, a idéia era reproduzir na prática os pulsos de controle descritos por RASHID, no livro eletrônica de potência, e verificar se na carga conectada à saída seria gerado um sinal em escada. Como será visto na seqüência o projeto por controle de freqüência obteve sucesso e conseguiu concluir seu objetivo. Para tanto foram analisados os sinais de controle de cada fase e conclui-se que seguiam um determinado padrão, ou seja, se repetiam a cada 6 ciclos. O controle por freqüência não é muito utilizado comercialmente, visto que pode queimar o motor em baixas freqüências, já que este sempre irá receber tensão nominal, e também por ter o torque variante por toda faixa de freqüências, o que não é interessante para a maioria das aplicações. Devido ao fato constatado, o controle por freqüência foi abandonado e decidiu-se implementar um controle V/F que pudesse variar a velocidade do motor de 10 a 75Hz, porém com torque nominal para todas as velocidades suportadas, para tanto foi utilizada a teoria sobre controle escalar V/F e como devem ser gerados os pulsos de controle para que obtenha-se na etapa de potência, sobre as bobinas do motor, um sinal de tensão PWM alternado. Neste segundo projeto, o Controle SPWM, foi necessário um empenho muito maior, visto que o projeto é microcontrolado, e para tanto foi necessário encontrar um microcontrolador no mercado que tivesse as características necessárias para o seu desenvolvimento, como portas PWM, memória suficiente para alojar as tabelas de freqüências e velocidade suficiente para executar todas as rotinas sem perda de precisão. Além disso, foi criado um software estruturado e específico para gerar os sinais PWM de controle. Em paralelo com o desenvolvimento do software foi projetado o hardware da etapa de controle. Após reunião com um profissional da área de vendas em acionamentos elétricos, verificou-se que antes de transformar este projeto em um produto, algumas alterações importantes deveriam ser implementadas, como: inclusão da parametrização de velocidades e da rampa de aceleração. Para que se pudesse parametrizar determinadas variáveis do programa, deveria ser criada uma interface com o usuário. Esta interface poderia ser um display, o qual apresentaria os valores a serem parametrizados, em conjunto com 40 alguns botões, ou poderia ser utilizado como interface, um microcomputador para aquisição dos dados e envio ao microcontrolador através de comunicação serial. Optou-se pelo segundo por facilidade de implementação tanto em hardware quanto em software. O microcontrolador escolhido, o 89C51AC2 da Atmel possui a facilidade de conexão serial de fábrica e, através do CI MAX232, pode ser conectado à porta serial de qualquer microcomputador. Através do “Terminal” do Windows pode-se parametrizar 3 frequências distintas e consecutivas, cada uma destas freqüências será disparada no momento do acionamento do respectivo botão. Um quarto botão serve para parada total, pois zera todas as saídas e permanece desta forma até que qualquer um dos outros 3 botões seja acionado novamente. Pode-se também parametrizar um tempo para a rampa de aceleração de partida e outro tempo para a rampa de mudança de velocidades, para os processos que necessitem de várias velocidades de acionamento. No mercado existem diversos microcontroladores de diversos fabricantes, cada qual com suas características, facilidades e dificuldades, portanto, após uma vasta pesquisa, decidiu-se escolher um microcontrolador que já possuísse internamente 3 saídas PWM parametrizáveis, para que assim não fosse preciso escrever funções específicas para a geração destes sinais em software. 41 4 4.1 ANÁLISE DOS DADOS INTRODUÇÃO Os motores de indução trifásicos com rotores gaiola de esquilo são os mais utilizados universalmente tanto no ambiente industrial como em automação, pelo simples fato de serem robustos, confiáveis e duráveis. Quando fornecemos tensão nominal a um motor de indução, ele conseqüentemente irá girar na velocidade e freqüência nominais, contudo várias aplicações industriais necessitam da facilidade de variação de velocidade. Por exemplo, uma bomba deve operar em diferentes velocidades, de acordo com a vazão necessária em determinado momento do processo. Antigamente, sistemas de engrenagem eram usados para se conseguir variar a velocidade, porém, neste caso, as perdas eram muito grandes, pois o motor estava sempre girando em freqüência nominal. Hoje, a eletrônica de potência e os sistemas de controle modernos amadureceram o suficiente para permitir a total substituição de todos os antigos sistemas de variação de velocidade. A eletrônica não apenas controla a velocidade do motor, mas pode aumentar as características dinâmicas e de estado estacionário do mesmo, além de reduzir a potência média consumida e a geração de ruído. O controle dos motores de indução é complexo devido a suas características não lineares. A forma mais utilizada de controle de velocidade é sem dúvida a variação simultânea de freqüência e tensão (V/F), o chamado controle escalar. Este método é comumente utilizado em aplicações onde não é necessário controle de posição e a precisão da velocidade do motor não é crítica. 42 4.2 PROJETO DE CONTROLE DE VELOCIDADE 4.2.1 Esquema universal de potência Um diagrama genérico em malha aberta, para o controle de qualquer motor CA de indução, é representado na figura 4.1. Para se controlar motores de altas potências, necessita-se de elementos de potência da ponte H com características que suportem as altas correntes a que serão submetidos. Da mesma forma o retificador trifásico será extremamente solicitado, visto que através dele irá circular toda a corrente de alimentação do motor + as perdas na ponte H. Ambos os blocos (Ponte H trifásica e Retificador trifásico) devem ser projetados a partir de dados de placa do motor, como corrente, tensão e potência nominais. A freqüência nominal não é crítica, visto que esta será a fundamental dos PWMs aplicados sobre a bobina do estator, e a velocidade de chaveamento é facilmente obtida com qualquer MOSFET, IGBT ou Transistor Bipolar comprado no mercado. O retificador trifásico contém 6 diodos de potência ligados em ponte, e a tensão CC em sua saída será √2*Vff. O capacitor em sua saída ajuda a minimizar a ondulação e torna o sinal CC pulsante em um sinal CC contínuo. O controle é a alma do inversor, ele tanto pode ser discreto quanto microcontrolado, e para diversos controles microcontrolados, podem existir softwares distintos capazes de otimizar determinadas características da fundamental. Por exemplo, podemos ter para um mesmo hardware um software de controle que gere uma saída em degrau, ou PWM de pulsos múltiplos, PWM Senoidal ou até mesmo o complexo PWM Vetorial. 43 Figura 4.1 – Esquema universal de potência O motor propriamente dito é conectado ao inversor conforme demonstrado na figura 4.1. A etapa de potência é composta por 6 elementos que são controlados pela etapa de controle para gerar os sinais CA a partir do CC do barramento. Os sinais PWM gerados pelo microcontrolador, controlam estas 6 chaves. A tensão de fase é determinada pelos duty-cycles de todos os pulsos componentes de um ciclo do sinal PWM. No máximo 3 dos 6 IGBTs estarão conduzindo simultaneamente. Quando estes estão ligados, a corrente flui do barramento CC para as bobinas de estator, devido ao fato do motor ser altamente indutivo, este mantém a energia em suas bobinas na forma de corrente. Parte desta corrente precisa ser devolvida à fonte de entrada quando as chaves estão desligadas, por isso, os diodos em anti-paralelo com os elementos de potência fornecem um caminho de retorno para a corrente armazenada nas bobinas do motor. Duas chaves do mesmo braço da ponte H nunca devem ser acionadas no mesmo instante, sob pena de termos um curto do barramento CC à terra. Para evitar este problema, um tempo morto é introduzido entre a abertura de uma chave e o fechamento da outra por um elemento chamado Gate-Driver. A introdução deste componente previne que as duas chaves estejam conduzindo entre a mudança de estados. 44 O Gate-Driver acopla os sinais gerados pelo controle aos elementos de potência. Serve para isolar as etapas de controle e de potência, além de criar um tempo morto entre os sinais aplicados a dois IGBTs de um mesmo braço da ponte H, sem o qual haveria curto-circuito fase-terra no instante em que um IGBT comutasse e o seu complementar abrisse. Isso ocorre porque a mudança de estados não é instantânea, isto é, pode levar alguns nanosegundos para que uma chave passe do estado de condução para o estado de corte e vice-versa. O controle por sua vez pode ser discreto ou microcontrolado. Na primeira solução tem-se um controle engessado que não pode ser parametrizado, porém com um microcontrolador tem-se o controle total do processo, tanto dos sinais gerados como das interfaces com o usuário, ou seja, ganha-se infinitamente em flexiblidade. 45 4.3 PROJETO 1: CONTROLE POR FREQUÊNCIA A 120º Segundo o capítulo 2.3.3, vê-se que através da variação da freqüência do sinal aplicado ao estator de um motor trifásico, pode-se, com isso, variar a sua velocidade. Para que tal fato fosse constatado, criou-se um circuito simples, com controle discreto e não microcontrolado, que pudesse reproduzir na prática a forma de onda em degrau com condução por 120º, descrita por Rashid, conforme capítulo 2.4.2. Inversores de freqüência antigos, da época dos relés eletromecânicos, geravam esse tipo de saída para alimentar motores e cargas reativas. Por ser uma carga reativa, aplicando esse tipo de sinal a um motor consegue-se que muitos harmônicos sejam filtrados. O motor funciona como um filtro passa-baixa, deixando apenas um certo ruído sobre a fundamental e alguns harmônicos de menor ordem. O circuito ensaiado utiliza CIs TTL8 e é apresentado na figura 4.2. Figura 4.2 – Esquemático do controle por frequência 8 TTL significa Transistor Transistor Logic, ou lógica a partir de transistores. São CIs que funcionam com 5Vcc de alimentação e são compostos por transistores. 46 4.3.1 Funcionamento do circuito Tem-se um clock, que é o padrão de tempo do circuito montado com portas lógicas inversoras (74LS04), variando-se o potenciômentro de 10kΩ, variamos a largura dos pulsos de clock e conseqüentemente a frequência do sinal trifásico de saída. Esses pulsos são aplicados sobre um 74LS93, um contador binário. Para cada pulso de clock que recebe, ele incrementa a saída binária, ou seja, antes do primeiro pulso ele está com 000 de saída, no primeiro pulso a saída vai pra 001 e assim por diante, conforme tabela 4.1. Pulso de Clock 1 2 3 4 5 6 7 74LS93 Saída (D2,D1,D0) 000 001 010 011 100 101 110 111 Utilizados X X X X X X NÃO UTILIZADO NÃO UTILIZADO Tabela 4.1 – Saídas do contador 74LS93. FONTE: Datasheet do 74LS93. Foram utilizados apenas 6 estados diferentes do contador, por isso uma porta AND, ligada das saídas D2 e D1 ao pino 3 (reset) do 74LS93, reseta o contador, que volta a 000 no 7o pulso de clock, quando a saída for pra 110. Essas saídas binárias do contador são ligadas a dois multiplexadores, os 74LS138, que a partir de um numero binário de entrada habilita cada uma das saídas, conforme tabela 4.2. 74LS138 Entrada (D2,D1,D0) 000 001 010 011 100 101 Tabela 4.2 – Saídas do 74LS138. FONTE: Datasheet do 74LS138. Saída (D7,D6,D5,D4,D3,D2,D1,D0) 11111110 11111101 11111011 11110111 11101111 11011111 47 Segundo a teoria de condução por 120º, os elementos ativos da etapa de potência, sejam eles MOSFETs, IGBTs ou transistores, precisam receber os pulsos de controle em sua base sempre de dois em dois, por isso foram utilizados dois MUX (multiplexadores). Quando o segundo está com 0 em D0 o primeiro já está com 0 em D1, e assim sucessivamente. As tensões aplicadas à carga, composta de rês resistores em estrela, são defasadas de 120o devido aos acionamentos das bases dos transistores serem seqüenciais e de dois em dois. Como pode-se perceber na figura 4.7, quando foi ligada uma carga capacitiva, vários harmônicos foram filtrados e o sinal se assemelhou ainda mais a uma senóide. Se fosse ligado um trafo à etapa de potência, o sinal em degrau sofreria a mesma filtragem. Nas figuras 4.3 e 4.4 pode-se ver o circuito montado na bancada de ensaio. Na figura 4.5 nota-se a semelhança do sinal gerado com a teoria. A tensão no barramento CC utilizada foi de 15V, porém, qualquer tensão CC neste barramento resultaria em amplitude proporcional do sinal de saída. Figura 4.3 – Visão do circuito e da bancada de ensaio. 48 Figura 4.4 – Visão panorâmica do circuito ensaiado. Figura 4.5 – Sinal gerado por 2 fases. 49 Figura 4.6 - Sinal de uma fase após filtro de 1ª ordem. Tentou-se filtrar a saída com um filtro passa-baixa para que fosse obtida somente a senoide fundamental, porém o sinal ficou distorcido e atenuado (figura 4.6). O filtro utilizado era de 1ª ordem e foi calculado para a freqüência fundamental de 60Hz, porém o sinal gerado em degrau possui diversos harmônicos de pequena ordem, como o 3º o que dificulta bastante a filtragem. Deve-se, portanto, analisar qual será a aplicação do sinal gerado e escolher corretamente a estratégia de controle a ser utilizada. Controles por condução a 120º são utilizados normalmente com motores de altas potências que possuem velocidades nominais baixas sob tensão nominal, isto é, sua função é converter a freqüência de 60Hz da rede para que se tenha um controle simples e barato da velocidade deste tipo de motor. 50 4.4 PROJETO 2: CONTROLE V/F ATRAVÉS DO SPWM Para a implementação do controle por “modulação de largura de pulsos senoidal” ou simplesmente, controle escalar V/F através de SPWM, recai-se sobre duas opções de controle: • Controle discreto; • Controle microcontrolado; Tanto o retificador trifásico, quanto a Ponte H seguem sempre um mesmo esquema para qualquer tipo de inversor. O que diferencia um inversor de outro é em essência, a estratégia de controle. Controles discretos, baseados em amplificadores operacionais comparando sinais de referência a portadoras triangulares não são mais utilizados devido a sua pouca flexibilidade e incapacidade de parametrização. Os controles modernos são sempre baseados sobre um microcontrolador. Para se desenvolver um controle escalar V/F em malha aberta, os cálculos matemáticos não são tão complexos como no controle vetorial, visto que não é necessário criar um modelo matemático da máquina a ser controlada dentro da memória do microcontrolador, e não são necessárias compensações no sistema através de realimentações de posição, velocidade, corrente ou tensão. No mercado existem diversos fabricantes de microcontroladores com suporte a PWM, porém foram pesquisados apenas dois, a Microchip e a Atmel. Microchip Os microcontroladores da família PIC18 possuem 2 saídas PWM prontas em hardware e parametrizáveis via firmware, porém, para gerar a terceira saída PWM, deve-se criar o código em Assembly. Qualquer aplicação com motores de indução requer 3 saídas PWM. O código Assembly do terceiro PWM pode ser encontrado no no site da microchip (www.microchip.com) porém esta solução foi descartada por ser difícil de encontrar no Brasil microcontroladores PIC18. 51 Atmel Os microcontroladores da família T89C51AC2 possuem 5 saídas PWM, 4 ports de 8 bits, 32k de memória FLASH e até 40MHz de clock, encapsulamento PLCC44. Pode ter o software reescrito “onboard”, via porta COM1 serial de qualquer micro padrão PC, sem a necessidade de gravadores específicos. Na implementação do controle V/F será visto como é feita a parametrização das freqüências geradas pelo controle, sem a necessidade de se retirar o microcontrolador de seu soquete. Este CI foi o escolhido para implementar o controle V/F a SPWM. Dados técnicos deste componente encontram-se no Anexo A. 4.4.1 O Software O desenvolvimento do Software foi feito em paralelo com o desenvolvimento do Hardware, e por fim o módulo de controle de velocidade foi testado e os sinais obtidos são mostrados na seqüência. O software completo em linguagem C está no Apêndice B. O software é a alma do controle, podendo ser diferente para um mesmo hardware, ou seja, um mesmo módulo de controle, através de diferentes programas gravados em sua memória pode fazer controles distintos no motor, pode aplicar diferentes formatos e seqüências de pulsos, de acordo com a estratégia de controle que se queira adotar, por isso, deve-se definir qual é a aplicação, o tipo de motor, quantos pulsos por ciclo, a freqüência de sincronismo e outros dados relevantes para que se possa escrever o código. 4.4.1.1 Aplicação Segundo estudo da COELCE (Companhia elétrica do Ceará), 40% dos motores em operação no Brasil são de baixa potência, de 0,5 a 10CV, portanto o mercado que pode ser alcançado com um projeto para controle de velocidade de baixo custo para esses motores é enorme. O controle utilizado para validar este projeto é o mesmo utilizado para o controle de motores de maiores potências, porém 52 a diferença é que neste caso, são utilizadas etapas de potência com maiores dimensões, devido às maiores correntes. 4.4.1.2 Tipo de Controle O microcontrolador pode ser programado para gerar quaisquer dos padrões de controle já apresentados no capítulo 2, porém cabe ressaltar que: Controles de 120 e 180º são descartados por não suportarem controle V/F única e exclusivamente via microcontrolador, sendo necessário um controle adicional para se variar a tensão CC do barramento, a qual precisa variar em conjunto com a freqüência, para então se conseguir um controle V/F. Fora a grande quantidade de harmônicos gerados por este tipo de modulação. Controle por pulsos múltiplos possui harmônicos de baixa ordem, sendo difícil a sua filtragem, ocasionando perdas menores do que controles a 120 e 180º, porém ainda significativas tanto na etapa de potência como no próprio motor. O controle escolhido é o SPWM, por poder ser implementado em malha aberta, ser universalmente difundido, ter perdas significativamente menores que o controle por pulsos múltiplos e ser extremamente mais simples de implementar do que o controle vetorial. 4.4.1.3 Compilador O código foi escrito na linguagem C e compilado no compilador freeware da própria Atmel, o qual foi obtido do endereço http://www.atmel.com Após compilado, o software é transferido via compilador para o 89C51AC2 através da saída serial COM1 do computador. O Jumper JP1 na placa de controle deve estar conectado para permitir a gravação do software. Esta mesma saída serial do computador se comunica com o microcontrolador para enviar as parametrizações recolhidas via Terminal e apresentar dados referentes ao Status (situação) do mesmo. 53 4.4.1.4 Timer0 O 89C51AC2 possui um temporizador chamado de Timer0, o qual é um registro que pode receber qualquer valor entre 0 e 255 e, a partir deste valor, gerar uma interrupção toda vez que chegar ao fim de sua contagem. No momento em que esta interrupção é gerada, o programa desvia de seu laço principal e passa a executar as funções da subrotina do Timer0. Uma vez que esta rotina chegue ao final, o programa retorna ao laço principal exatamente da linha onde parou. Cada valor carregado neste registro irá fornecer um tempo de interrupção diferente, porém, é interessante que na freqüência nominal de 60Hz, o número de pulsos seja exato, ou seja, a freqüência de sincronismo precisa ser múltipla de 60. Valores menores no Timer0 resultam em maiores freqüências de sincronismo e da mesma forma, maiores valores no Timer0 resultam em menores freqüências. Foi escolhido o valor de 254 para o estouro do Timer0, o que resulta na freqüência de sincronismo de 1,8kHZ, ou 0,56ms de intervalo entre uma interrupção e outra. Segundo o capítulo 2.4.3.3, a modulação SPWM elimina todos os harmônicos abaixo do harmônico de número 2p-1, que equivale ao 2*1800/60 – 1 = 59º harmônico. Os harmônicos de ordem maior do que o 59º são de alta freqüência e serão eliminados nas próprias bobinas do motor. Além disso, escolheu-se este valor pelo fato de ter-se um valor inteiro de interrupções na freqüência nominal, ou seja: P=Numero de Pulsos na freq. nominal = 1800Hz/60Hz = 30 pulsos. Para valores menores do que 254 no Timer0, tem-se freqüência maiores de sincronismo, porém, para se obter um número inteiro de pulsos por ciclo na freqüência nominal deve-se utilizar um valor múltiplo de 1,8kHz. Por exemplo, para o valor de 127 carregado ao Timer0, teremos uma portadora de 3,6kHz e assim por diante. Entre outras coisas, a cada estouro do Timer0, que ocorre a cada 0,56ms, o Duty-Cycle dos 3 PWMs é alterado, de acordo com a tabela de frequências que está sendo utilizada naquele instante. 54 4.4.1.5 Saídas PWM O 89C51AC2 possui 5 saídas PWM no Port 1.0 de 8bits, das quais iremos utilizar apenas 3. Cada uma destas três saídas são registros de 8bits e, assim como o Timer0, podem receber valores de 0 a 255. Estes 256 valores correspondem a 0 e 100% de duty-cycle respectivamente, ou seja, se colocarmos 127 no registro PWM_A a cada interrupção do timer0, teremos na saída um sinal quadrado, na freqüência de 1,8kHz com o mesmo tempo de alto e baixo, ou seja 0,56ms/2 de tempo alto e 0,56ms/2 de tempo baixo. A cada interrupção gerada pelo Timer0, uma nova linha da tabela de freqüência, que está sendo utilizada no momento, é escrita nos registros PWM. Cada uma dessas linhas permanece nos registros PWM pelo tempo de 0,56ms e dizem respeito a ângulos diferentes dentro do ciclo, de acordo com a tabela de freqüência que está sendo utilizada. Para a freqüência de 10Hz, teremos 180 pulsos de 0,56ms cada. Se dividirmos 360º/180 encontra-se 2º para cada pulso. Tem-se 180 valores diferentes de seno, e dos correspondentes duty-cycles, para esta freqüência. Senos de ângulos muito próximos são quase iguais e as primeiras casas decimais se repetem, resultando em repetição dos duty-cycles relacionados. 4.4.1.6 Tabelas de Freqüências O 89C51AC2 possui a função de cálculo de senos, porém como deve ser feito um cálculo de seno a cada 0,56ms para cada uma das fases, o tempo de processamento seria muito grande. Optou-se por pré-calcular as tabelas a serem utilizadas, já que sempre serão as mesmas, disponibilizá-las na memória e capturar apenas os valores que estiverem sendo requeridos. Como optou-se pelo controle V/F a SPWM, a freqüência deve ser variada na mesma proporção que a tensão, para assim obter-se fluxo nominal e conseqüente torque nominal no eixo do motor. 55 Já que a tensão nominal utilizada será 220V eficaz, e a freqüência nominal é 60Hz, chega-se na seguinte constante V/F: K(V/F) = 220/60 = 3,67 Para satisfazer esta constante, nota-se que devemos aplicar sobre as bobinas de estator 3 fases iguais, defasadas de 120º , com 220V e 60Hz. Como em 60Hz a tensão a ser aplicada é igual a nominal, deve-se aplicar ao registro PWM da fase A, o valor de 255, correspondente a 100% de duty-cycle em 90º, exatamente no pico da senóide. Da mesma forma, para 270º, o valor do registro deve ser 0, ou 0% de duty-cycle. Assim, tem-se variação nominal de valores de seno para todos os 30 pulsos do ciclo na freqüência nominal de 60Hz. Acima desta freqüência (60Hz), o único parâmetro possível de ser alterado é o número de pulsos por ciclo, que irá diminuir conforme a freqüência aumentar, porém os duty-cycles não podem ser incrementados além dos 100%9 o que irá causar perda de torque ao quadrado da variação de freqüência no motor, conforme teoria de controle V/F do capítulo 2.3.4. Devido à perda de torque acima de 60Hz, foi fixada a freqüência máxima de operação em 75Hz. Abaixo de 60Hz, os valores dos duty-cycles precisam ser proporcionais à constante k(V/F)=3,67, conforme tabela 4.3. F(Hz) Tensão de pico eficaz duty-cycle em 90º duty-cycle em 270º 10 36,66666667 58,3% 41,7% 20 73,33333333 66,6% 33,4% 30 110 75% 25% 40 146,6666667 83,3% 16,7% 50 183,3333333 91,6% 8,4% 60-75 220 100% 0% Tabela 4.3 – Duty-cycles de pico. 9 Não é possível aplicar ao motor um valor de tensão maior do que o disponível na rede. 56 Os duty-cycles em 90º foram calculados através da fórmula: Duty-cycle 90 (f) = (f * 0,5 / 60) + 0,5 (4.1) Os duty-cycles em 270º são os complementares de 90º, e foram calculados através da fórmula: Duty-cycle 270 (f) = 1 - Duty-cycle 90 (f) (4.2) Sendo: f a freqüência a ser gerada. Note que 50% de duty-cycle irá resultar em 0V sobre as bobinas do motor, ou seja, este valor de duty-cycle é utilizado como referência de tensão, valores de 50% a 100% de duty-cycle na saída do controle irão resultar sobre as bobinas do motor em pulsos positivos, e valores de 0 a 50% irão resultar em valores negativos nas bobinas após serem aplicados sobre a etapa de potência. As variações entre o maior duty-cycle (em 90º) e o menor (em 270º) vão aumentando proporcionalmente à freqüência da fundamental, visto que para mantermos a constante V/F, há a necessidade da aplicação de maiores tensões nas bobinas. Os sinais de controle apresentados são proporcionais aos valores reais gerados na saída da etapa de potência. Nas fórmulas de cálculos de duty-cycles não são requeridos valores de tensão porque sabe-se que, com 100% e 0% de duty-cycle obtem-se tensão nominal positiva e negativa respectivamente, na saída da etapa de potência, e estes valores devem ser utilizados nas tabelas de duty-cycles para as freqüências entre 60Hz e 75Hz, incluindo estas. Devido ao fato dos registros PWM serem de 8 bits, temos a capacidade de carregá-los com apenas 255 valores possíveis para os duty-cycles, porém para freqüências próximas, como por exemplo 59 e 60Hz, esta precisão não é o suficiente para serem obtidos valores distintos, ou seja, temos diversas tabelas com os mesmos valores para freqüências subseqüentes com o mesmo número de pulsos. Para freqüências pequenas a variação é menor ainda, por exemplo, para 10Hz temos 90 pulsos por semiciclo, visto que 1800/10 = 180pulsos por ciclo, 57 conforme tabela 4.3, chegamos ao valor de 58,3% de duty-cycle para o pico da senóide, ou seja, 8,3% acima do valor nulo, conforme teoria de PWM. Este valor de 8,3% deverá ser dividido entre todos os 90 pulsos do semiciclo, seguindo uma proporção senoidal, o que irá resultar em diversos valores de PWM repetidos, visto que a precisão é de apenas 255 valores. Tendo o valor de pico da senóide definido, pode-se criar a tabela completa da freqüência em questão, com valores os dos senos e dos duty-cycles de todos os ângulos possíveis para as três fases, como exemplo serão demonstrados os cálculos para duas freqüências, 30 Hz e 60Hz. Note que na memória do microcontrolador estão gravadas todas as tabelas entre 10 e 75Hz com precisão de 1Hz. Os valores binários de 8bits para os PWMs das três fases foram calculados por regra de três, visto que 255 equivale ao valor 1 ou 100%, e 0 a 0%, assim o valor calculado na coluna de seno vai resultar num valor proporcional de duty-cycle. 58 Freqüência: 60Hz Pulsos por ciclo: 1800/60 = 30 pulsos Intervalos entre ângulos: 360/30 = 12º Valor de pico da senóide: 0,5 Deslocamento no eixo y: 0,5 Ângulo 0,5+0,5*sen(f) PWM_A 0,5+0,5*sen(f+120) PWM_B 0,5+0,5*sen(f+240) PWM_C 0 0,5 127 0,933012702 237 0,066987298 17 12 0,603955845 154 0,871572413 222 0,024471742 6 24 0,703368322 179 0,793892626 202 0,002739052 0 36 0,793892626 202 0,703368322 179 0,002739052 0 48 0,871572413 222 0,603955845 154 0,024471742 6 60 0,933012702 237 0,5 127 0,066987298 17 72 0,975528258 248 0,396044155 100 0,128427587 32 84 0,997260948 254 0,296631678 75 0,206107374 52 96 0,997260948 254 0,206107374 52 0,296631678 75 108 0,975528258 248 0,128427587 32 0,396044155 100 120 0,933012702 237 0,066987298 17 0,5 127 132 0,871572413 222 0,024471742 6 0,603955845 154 144 0,793892626 202 0,002739052 0 0,703368322 179 156 0,703368322 179 0,002739052 0 0,793892626 202 168 0,603955845 154 0,024471742 6 0,871572413 222 180 0,5 127 0,066987298 17 0,933012702 237 192 0,396044155 100 0,128427587 32 0,975528258 248 204 0,296631678 75 0,206107374 52 0,997260948 254 216 0,206107374 52 0,296631678 75 0,997260948 254 228 0,128427587 32 0,396044155 100 0,975528258 248 240 0,066987298 17 0,5 127 0,933012702 237 252 0,024471742 6 0,603955845 154 0,871572413 222 264 0,002739052 0 0,703368322 179 0,793892626 202 276 0,002739052 0 0,793892626 202 0,703368322 179 288 0,024471742 6 0,871572413 222 0,603955845 154 300 0,066987298 17 0,933012702 237 0,5 127 312 0,128427587 32 0,975528258 248 0,396044155 100 324 0,206107374 52 0,997260948 254 0,296631678 75 336 0,296631678 75 0,997260948 254 0,206107374 52 348 0,396044155 100 0,975528258 248 0,128427587 32 360 0,5 127 0,933012702 237 0,066987298 17 Tabela 4.4 – Tabela dos registros PWM para 60Hz. 59 Freqüência: 30Hz Pulsos por ciclo: 1800/30 = 60 pulsos Intervalos entre ângulos: 360/30 = 6º Valor de pico da senóide: 0,25 Deslocamento no eixo y: 0,5 0 6 12 18 24 30 36 42 48 54 60 66 72 78 84 90 96 102 108 114 120 126 132 138 144 150 156 162 168 174 180 186 192 198 204 210 216 222 228 234 240 246 252 258 264 270 276 282 0,5+0,25*sen(f) PWM_A 0,5+0,25*sem(f+120) PWM_B 0,5+0,25*sen(f+240) PWM_C 0,5 127 0,716506351 182 0,283493649 72 0,526132116 134 0,702254249 179 0,271613636 69 0,551977923 140 0,685786206 174 0,262235871 66 0,577254249 147 0,667282652 170 0,2554631 65 0,601684161 153 0,646946313 164 0,251369526 64 0,625 159 0,625 159 0,25 63 0,646946313 164 0,601684161 153 0,251369526 64 0,667282652 170 0,577254249 147 0,2554631 65 0,685786206 174 0,551977923 140 0,262235871 66 0,702254249 179 0,526132116 134 0,271613636 69 0,716506351 182 0,5 127 0,283493649 72 0,728386364 185 0,473867884 120 0,297745751 75 0,737764129 188 0,448022077 114 0,314213794 80 0,7445369 189 0,422745751 107 0,332717348 84 0,748630474 190 0,398315839 101 0,353053687 90 0,75 191 0,375 95 0,375 95 0,748630474 190 0,353053687 90 0,398315839 101 0,7445369 189 0,332717348 84 0,422745751 107 0,737764129 188 0,314213794 80 0,448022077 114 0,728386364 185 0,297745751 75 0,473867884 120 0,716506351 182 0,283493649 72 0,5 127 0,702254249 179 0,271613636 69 0,526132116 134 0,685786206 174 0,262235871 66 0,551977923 140 0,667282652 170 0,2554631 65 0,577254249 147 0,646946313 164 0,251369526 64 0,601684161 153 0,625 159 0,25 63 0,625 159 0,601684161 153 0,251369526 64 0,646946313 164 0,577254249 147 0,2554631 65 0,667282652 170 0,551977923 140 0,262235871 66 0,685786206 174 0,526132116 134 0,271613636 69 0,702254249 179 0,5 127 0,283493649 72 0,716506351 182 0,473867884 120 0,297745751 75 0,728386364 185 0,448022077 114 0,314213794 80 0,737764129 188 0,422745751 107 0,332717348 84 0,7445369 189 0,398315839 101 0,353053687 90 0,748630474 190 0,375 95 0,375 95 0,75 191 0,353053687 90 0,398315839 101 0,748630474 190 0,332717348 84 0,422745751 107 0,7445369 189 0,314213794 80 0,448022077 114 0,737764129 188 0,297745751 75 0,473867884 120 0,728386364 185 0,283493649 72 0,5 127 0,716506351 182 0,271613636 69 0,526132116 134 0,702254249 179 0,262235871 66 0,551977923 140 0,685786206 174 0,2554631 65 0,577254249 147 0,667282652 170 0,251369526 64 0,601684161 153 0,646946313 164 0,25 63 0,625 159 0,625 159 0,251369526 64 0,646946313 164 0,601684161 153 0,2554631 65 0,667282652 170 0,577254249 147 60 288 294 300 306 312 318 324 330 336 342 348 354 360 0,262235871 0,271613636 0,283493649 0,297745751 0,314213794 0,332717348 0,353053687 0,375 0,398315839 0,422745751 0,448022077 0,473867884 0,5 66 69 72 75 80 84 90 95 101 107 114 120 127 0,685786206 0,702254249 0,716506351 0,728386364 0,737764129 0,7445369 0,748630474 0,75 0,748630474 0,7445369 0,737764129 0,728386364 0,716506351 174 179 182 185 188 189 190 191 190 189 188 185 182 0,551977923 0,526132116 0,5 0,473867884 0,448022077 0,422745751 0,398315839 0,375 0,353053687 0,332717348 0,314213794 0,297745751 0,283493649 140 134 127 120 114 107 101 95 90 84 80 75 72 Tabela 4.5 – Tabela dos registros PWM para 30Hz. Com estes dados plotou-se o gráfico 4.7, que demonstra como é a variação dos valores das tabelas de 30 e 60Hz com relação aos ângulos utilizados por cada uma. Valores do registro PWM_A 300 254 250 191 Valores 8 bits (0-255) 200 30Hz 60Hz 150 127 127 100 50 360 348 336 324 312 300 288 276 264 252 240 228 216 204 192 180 168 156 144 132 120 96 108 84 72 60 48 36 24 0 12 0 Ângulos Figura 4.7 – Valores da fase A, para as tabelas de 30 e 60Hz Nota-se, nesta simulação, que variando-se a freqüência em 2 vezes, de 30 para 60Hz, o valor máximo da amplitude de pico também varia 2 vezes, indo de 191 a 255, para que assim o valor da constante k(V/F) seja mantido. Devido a freqüência de referência (portadora) ser 1,8kHz, nota-se que os 61 pontos das duas curvas estão espaçados de 0,56ms, que é o tempo para ocorrer o estouro do Timer0 e ser gerada uma nova interrupção. O sinal de 30Hz possui mais pontos no gráfico devido à razão 1800/30=60pulsos por ciclo ser maior do que a razão 1800/60=30pulsos por ciclo. 6 5 4 PWM_A fundamental 3 PWM_B PWM_C 2 1 360 348 336 324 312 300 288 276 264 252 240 228 216 204 192 180 168 156 144 132 120 96 108 84 72 60 48 36 24 0 12 0 Figura 4.8 - Simulação das 3 fases em 60Hz. 30 pulsos por ciclo. Na figura 4.8 visualiza-se a simulação das três fases que serão geradas pelo microcontrolador de acordo com a estratégia de controle SPWM. Na figura 4.9 visualiza-se a simulação da tensão entre as fases A e B na carga, no caso o motor. Comparando estas duas simulações com a teoria demonstrada na figura 2.4.3.3, percebe-se a enorme semelhança entre elas, ou seja, conclui-se que a partir dos dados gerados o sistema de controle pode ser implementado e testado. 62 1,5 1 0,5 0 Tensão Vab 0 50 100 150 200 250 300 350 -0,5 -1 -1,5 Figura 4.9 – Simulação da tensão entre as fases A e B do motor. 4.4.1.7 Funcionamento do software Figura 4.10 – Fluxograma do laço principal. 400 63 Conforme figura 4.10, o programa possui uma rotina principal (main), que verifica quando qualquer um dos quatro botões for pressionado e em caso afirmativo coloca na matriz de freqüência qual a tabela que deve ser carregada naquele instante pelos registros PWM. Note que cada uma das linhas da tabela em questão só será gravada nos registros PWM uma por vez, a cada interrupção gerada pelo Timer0. O laço principal também lê o pino P2.5, que se estiver em nível baixo enquanto o software estiver sendo resetado, causa a entrada no modo de configuração, onde pode-se setar 3 freqüências consecutivas, as quais serão disparadas através dos botões ligados aos pinos P2.1, P2.2, P2.3. Estes disparos ocorrem em nível baixo através do pressionamento dos botões. Estes valores de parametrização são feitos via computador na tela de Terminal, a qual se encarrega de estabelecer uma conexão serial com o 89C51AC, através do acoplamento via MAX232. Um quarto botão, ligado a P2.0 zera todas as saídas, este é o botão de parada. Além disso, pode-se setar também a rampa de aceleração em segundos (limitado a 100s) para a partida e para mudança de velocidade. Para os casos onde o motor parte através do botão1, mas durante o processo é necessário que a velocidade seja alterada para uma segunda, ou até uma terceira freqüência. Resumindo, se o motor estiver parado e qualquer um dos 3 botões for acionado, ele irá demorar ∆t1 segundos para chegar à velocidade setada para o botão pressionado. Após estar em velocidade de regime, se qualquer um dos outros 2 botões remanescentes for pressionado, o motor irá levar ∆t2 segundos para mudar de velocidade. Conforme figura 4.12. 64 Figura 4.11 – Fluxograma da subrotina do Timer0. Frequência (Hz) f3 f2 f1 10 ∆t1 ∆t2 ∆t2 Tempo (s) Figura 4.12 – Curva das rampas de aceleração. Uma vez que o motor estiver parado e um dos botões for pressionado, o valor da freqüência setada para este botão no modo de configuração, é inicialmente comparado com a freqüência atual em uso, conforme fluxograma da subrotina Timer0 na figura 4.11, se forem diferentes o programa faz a seguinte conta: 65 ∆t1 Tempo entre troca de tabelas = freq. Final – 10Hz Este é o tempo que irá levar para o programa mudar a tabela de freqüência em uso, sendo que após o tempo ∆t1 o motor estará girando na velocidade do botão pressionado, conforme figura 4.12. O valor de 10Hz é o valor de partida, a menor freqüência gerada pelo programa. A cada mudança de tabela o programa envia para a porta serial, e apresenta na tela do computador, qual é a tabela em uso naquele instante. Se após isso for pressionado um segundo botão, o programa irá verificar se as freqüências inicial e final são diferentes e então irá calcular: ∆t2 Tempo entre troca de tabelas = freq. Final – freq.inicial Funciona da mesma forma que na partida, porém, dessa vez a freqüência inicial é uma variável. Durante o restante do tempo o programa continua carregando um novo valor da tabela de freqüência em uso nos registros PWM a cada interrupção do Timer0. A partir do CI MAX 232, o microcontrolador 89C51AC2 pode se comunicar via porta serial com o programa Terminal, disponível em qualquer PC rodando Windows. Na tela de terminal, o programa do microcontrolador constantemente informa qual o Status das saídas, qual freqüência está sendo gerada, qual botão foi pressionado e dentro da tela de configuração, quais os valores setados e gravados para as 3 frequências e as 2 rampas de aceleração. 4.4.2 Hardware O hardware foi dividido em módulos, o de controle e o de potência. A idéia foi dividir o projeto em dois módulos e conectá-los via “data-cable” para que o sistema se tornasse escalonável, isto é, pudesse controlar motores de maiores potências a 66 partir do mesmo módulo de controle bastando para isso alterar o módulo de potência. Conforme figura 4.13. Rede 3f Computador Modulo de Potência Modulo de Controle M 3f Botões Botão de Configuração Figura 4.13 – Estrutura modular do projeto. O módulo de controle foi implementado e os resultados experimentais obtidos nas saídas PWM e nas telas do Terminal podem ser conferidos na seqüência. O módulo de potência não foi implementado, porém a partir do módulo de controle, este trabalho pode ser continuado por outra equipe de projeto final que queira desenvolver aplicações para o acionamento de máquinas. 4.4.2.1 O “Gate-Driver” Para que se possa operar os MOSFETs como chaveadores de potência, uma apropriada tensão de porta tem de ser aplicada para excitá-los de modo a levá-los à saturação e a uma pequena queda de tensão em estado de condução, além disso é interessante que pouca corrente seja drenada pela Porta e que a troca de estados seja extremamente rápida10. 10 MOSFETs são elementos ativos de potência que saturam a partir de tensão aplicada ao Gate. 67 O circuito de controle gera 3 sinais PWM defasados de 120º nas portas P1.5, P1.6 e P1.7 do microcontrolador, os quais não podem ser aplicados diretamente sobre os elementos de potência, sendo necessário um acoplamento entre a saída do microcontrolador e a Porta (Gate) destas. A referência para estes pulsos de controle é o GND, que deve ser interligado ao GND da placa de potência e como pode-se perceber na figura 4.14, não há queda de tensão suficiente entre os Gates das chaves superiores e o GND. Ao contrário das chaves superiores, as inferiores se encontram em posição relativa ao GND que disponibiliza queda de tensão entre este e a Porta (Gate). Os pulsos de controle das chaves superioras deve ser referenciado ao pino Fonte, porém, devido às altas tensões nestes terminais, é necessário que exista algum isolamento galvânico e lógico entre as etapas de controle e potência. Outro problema que pode ocorrer em uma ponte H é a troca de estados simultânea entre duas chaves do mesmo braço11, que pode vir a causar curto entre o barramento CC e o GND. Isto ocorre porque as trocas de estados não ocorrem instantaneamente, na prática levam alguns nanosegundos para que mudem totalmente. Sem os gatedrivers pode acontecer de uma “chave” estar abrindo ao mesmo tempo em que a sua complementar está fechando, o que pode causar um curto. Através dos gate-drivers garante-se que a “chave” já mudou de estado para então ser acionada a sua complementar. Para evitar este problema, deve-se incluir um tempo morto entre as trocas de estado, ou seja, quando uma chave troca de estado, um elemento externo introduz alguns nanosegundos de tempo morto até que a sua complementar (a chave inferior) troque também de estado. O elemento que introduz os tempos mortos entre duas chaves do mesmo braço e, além disso, fornece isolamento entre as etapas de potência e a de controle, é chamado de Gate-Driver, justamente por ser ligado aos Gates dos elementos de potência. Além disso, o Gate-Driver referencia o pino Fonte das chaves superiores para receberem os pulsos de controle com a tensão correta. 11 Os pulsos de controle das chaves inferiores são complementares aos das superiores, isto é, quando um vai a nível alto, o outro vai a nível baixo. 68 Figura 4.14 - Esquema para a placa de potência. O componente utilizado no projeto foi o IR2111 da International Rectifier, que é um Gate-Driver de meia-ponte, isto é, ele recebe os pulsos de controle vindos do microcontrolador no pino IN e gera dois outros o LO e o HO, já com os devidos tempos mortos, na tensão de alimentação de 15V, necessária para o chaveamento dos elementos da Ponte H. O LO é aplicado à chave inferior e o HO à superior do mesmo braço. O pino VS fornece referência para o pino HO poder saturar as chaves superiores. O GND é a referência de tensão de alimentação que por sua vez é interligada ao GND do controle e da placa de potência. Cada IR2111 é resposável por uma fase do circuito, por isso foram utilizadas três peças para que fossem gerados 6 sinais de controle a partir dos 3 vindos do microcontrolados 89C51AC2. Maiores detalhes sobre o Gate-Driver e sua pinagem podem ser encontrados no Anexo A. Os 3 Gate-Drivers se encontram na placa de controle, e seus sinais são obtidos no conector CON4, conforme esquema na figura 4.15. 69 4.4.2.2 Módulo de Controle O módulo de controle é baseado no funcionamento do microcontrolador 89C51AC2, sendo que o restante dos componentes são apenas interfaces deste com os periféricos externos. As face superior e inferior da placa montada estão no Apêndice A. No esquemático na figura 4.15, percebe-se que o cristal X1 de 11,0592MHz que em conjunto com os dois capacitores de 22pF, fornecem a base de tempo ao microcontrolador via pinos XTAL1 e XTAL2. O microcontrolador pode funcionar à freqüência de até 40MHz, porém, como o módulo irá se comunicar serialmente com o computador, a velocidade de transmissão e recepção de dados deve ser múltiplo da velocidade de funcionamento da porta serial COM1 do computador, ou seja, deve haver sincronismo. Por isso, a freqüência utilizada é de apenas 11,0592MHz, que é proporcional à base de tempo utilizada pela COM1 neste projeto, 57600bps. A chave S2 reseta o microcontrolador, reiniciando o software e zerando todas as saídas. Apenas neste instante de reset pode-se entrar no modo de configuração, após qualquer um dos botões ter sido pressionado este modo é bloqueado. O capacitor C14 está ligado em paralelo com a chave de reset para segurar a tensão no pino de reset por pelo menos 30ciclos de máquina, o que na verdade é apenas uma segurança para garantir o evento de reset, visto que a freqüência de amostragem é alta. O jumper JP1 deve ser conectado para habilitar a gravação da memória FLASH, e com isso, poder-se reescrever o software por uma nova versão. O LED1 é apenas um indicativo de funcionamento, e está setado para piscar na freqüência de 1Hz ou 1 piscada a cada segundo. O MAX232 é o CI que faz o acoplamento dos dados seriais que são enviados pelo microcontrolador ao computador e deste para a memória do microcontrolador. Os valores dos capacitores utilizados foram obtidos no datasheet do CI, conforme Anexo A. O CON1 é um DB9 macho em 90º, utilizado para montagem na borda de placas de circuito impresso. Nele é ligada uma das extremidas de um cabo composto por dois conectores DB9 fêmeos, e a outra extremidade deste cabo é 70 ligada à COM1 do computador. O conector CON2 fornece os pinos onde devem ser ligados os 3 botões de acionamento P2.1, P2.2, P2.3, o botão de parada P2.0 e o botão de configuração o P2.5. O CON3 não é utilizado nesta versão do projeto, porém prevê 5 entradas D/A, digital-analógica, para leitura de dados do motor e da etapa de potência como corrente, tensão, velocidade e posição. Os pinos Vcc, Varef e GND são utilizados pelas D/As como referências de tensão. O pino 2.7 apresenta o sinal de sincronismo de 1,8kHz, sobre o qual ocorre o estouro do Timer0, conforme capítulo 4.4.1.4. Este conector pode ser utilizado para se criar, a partir deste controle em malha aberta, outro em malha fechada, aumentando assim a precisão do controle e do rendimento do motor. Nota-se também que um port inteiro de 8bits, o port P0, não foi utilizado, porém, caso abandone-se o computador, este pode ser utilizado por um display de cristal líquido de diversas linhas para apresentar os dados de parametrização. O IC2, IC4 e IC5 são os Gate-Drivers IR2111, os responsáveis pela geração dos 6 pulsos de controle de 15V (LO e VO) a partir do sinal de controle de 5V (P1.5, P1.6 e P1.7), além da geração do tempo-morto e do isolamento entre etapa de controle e potência. Para o controle das chaves superiores deve-se utilizar o pino VS para se referenciar a tensão de controle destes ao pino Fonte. O conector CON4 fornece todos os 6 sinais PWM de controle, juntamente com as referências de Fonte VS e o GND. A placa montada pode ser vista nas figuras 4.16, 4.17 e 4.18. 71 Figura 4.15 – Esquemático do módulo de controle. 72 Figura 4.16 – Face superior da placa de controle. Figura 4.17 – Vista panorâmica da placa de controle. Figura 4.18 – Face inferior da placa de controle. 73 4.4.2.3 Custos do protótipo Resistores 1/2W Capacitores 25V 89C51AC2 IR2111 MAX232 Placa Botões Outros Software Qtde 10 15 1 3 1 1 5 1 1 Custo unitário (R$) 0,05 0,10 40,00 9,50 3,50 10,00 2,00 20,00 0,00 TOTAL Total (R$) 0,50 1,50 40,00 28,50 3,50 10,00 10,00 20,00 0,00 R$114,00 Tabela 4.6 – Custos do protótipo. A tabela 4.6 mostra os custos brutos do protótipo apresentado neste trabalho a partir de peças encontradas em Curitiba na R. 24 de maio, porém, para produção em série, os componentes podem ser importados em lotes SMD (Surface Mounted Device), o que irá baratear o custo de produção em pelo menos 50%. 74 4.4.3 Resultados Experimentais Uma vez montados os módulos, partiu-se para a verificação dos sinais gerados, assim como das freqüências obtidas. O protótipo foi alimentado por 5Vcc, regulado por um LM7805. Testou-se inicialmente o modo de configuração do programa, para isso o pino P2.5 precisava estar em nível baixo na inicialização do software. Apenas neste momento, quando não há sinal de saída, o controle está habilitado a ser configurado. O teste da comunicação serial com o computador teve sucesso, pode-se entrar no modo de configuração e setar freqüências para 3 velocidades e duas rampas, uma de partida e outra para a troca de velocidades. Conforme tela capturada do computador na figura 4.19. Figura 4.19 – Modo de configuração no Terminal. 75 Figura 4.20 – Programa esperando botões serem pressionados. Após a parametrização, o programa limpa a tela e fica em espera, e indica isto na tela do computador, aguardando que qualquer um dos três botões seja pressionado, conforme figura 4.20. Quando isto ocorre, o programa verifica se o estado atual do motor é parado, em caso afirmativo faz a partida do motor através do incremento das tabelas de freqüência, desde a velocidade mínima 10Hz, até a velocidade setada para o botão pressionado no modo de configuração (figura 4.19), conforme figura 4.21. 76 Figura 4.21 – Troca de tabelas na partida. Note na figura 4.21 que todas as tabelas, com variação de 1Hz, foram carregadas nos regsitros PWM, durante os 30 segundos da partida, conforme valor setado para ∆t1 na figura 4.20. O tempo que o programa irá levar para trocar de uma tabela para outra é função do tempo setado para ∆t1 pela freqüência final. Na troca de velocidades, quando qualquer um dos outros dois botões são pressionados, a lógica é a mesma, há uma velocidade inicial diferente de zero, e uma velocidade final. O tempo que o programa irá levar para trocar de uma tabela para outra vai depender do valor setado para ∆t2 pela freqüência final. No momento da partida, a freqüência e a tensão são baixas, logo, os valores dos duty-cycles dos pulsos são muito próximos e o número de pulsos por ciclo é muito grande, à medida que as tabelas vão sendo trocadas, a freqüência aumenta, o número de pulsos por ciclo diminui e os duty-cycles começam a se diferenciar. Na figura 4.22, tem-se duas fases durante a partida, nota-se que os pulsos possuem quase a mesma largura durante o período amostrado. O tempo indicado pelo ∆, de 550µs é referente ao tempo de cada interrupção do Timer0, ou o tempo entre dois términos de pulso. 77 Figura 4.22 – Freqüência de 20Hz e tempo do Timer0. Na figura 4.23 a troca de tabelas já chegou ao fim e a saída estabilizou na freqüência setada para o botão 2, no caso 40Hz. O número de pulsos num ciclo pode ser contado entre os marcadores verticais como 46, o que é validado pelo cálculo 1800Hz/40Hz = 45 pulsos por ciclo. O tempo de 12,6ms é equivalente a um semiciclo, ou 25,2ms por ciclo, o que resulta em 39,68Hz. Nota-se que o valor de pico para esta freqüência não é 100% de duty-cycle, devido ao fato de termos tempos com nível zero em torno dos 90º. Da mesma forma o duty-cycle para 270º, o menor valor negativo, também não chega totalmente a 0%, por possuir pulsos estreitos em torno deste ângulo. 78 Figura 4.23 – Saídas P1.5 e P1.6 do 89C51AC2 a 40Hz. Figura 4.24 – Saídas P1.5 e P1.6 do 89C51AC2 a 60Hz. 79 Da mesma forma que em 40Hz, na figura 4.24 vê-se os sinais de duas fases na freqüência de 60Hz, medidos nas saídas P1.5 e P1.6 do 89C51AC2. O tempo de 16,6ms entre os dois marcadores verticais diz respeito a um ciclo completo, ou 60Hz. Nota-se que o valor de pico para 60Hz, visto que é a freqüência nominal, é de 100% de duty-cycle, inclusive os ângulos ao redor de 90% também são 100%, devido à falta de precisão dos registros PWM, por só suportarem 8bits, ou 255 valores diferentes de largura de pulso. Da mesma forma, o ângulo de 270º possui duty-cycles nulos, ou 0%. Comparando estes sinais com a simulação da figura 4.8, conjuntamente com os dados obtidos pelas medições, variações de larguras de pulso e quantidade de pulsos por ciclo, vê-se que são extremamente parecidos, assim, conclui-se que o controle funciona de forma correta. 80 5 AVALIAÇÃO GLOBAL DO PROJETO E CONSIDERAÇÕES FINAIS O objetivo específico “Estudar características de componentes eletrônicos, como: Microcontroladores diversos, MOSFETs, IGBTs, Gate Drivers, entre outros” na proposta deste trabalho foi concluído, pelo fato de que a partir da pesquisa destes itens pode-se estruturar o projeto e efetivamente implementar um módulo de controle pela técnica SPWM. O objetivo específico: “Detalhar diversos tipos de modulações possíveis de serem implementadas, com seus pontos fortes e fracos e o espectro de harmônicos gerados” está detalhado no capítulo dois deste trabalho, através desta base teórica pode-se escrever o software para o 89C51AC2. O objetivo específico: “Apresentar um projeto de baixo custo para o controle de velocidade de motores de indução de baixa potência”, foi concluído através do projeto desenvolvido, pela especificação de componentes e meramente superado por ter sido implementado e testado. Conclui-se que proposta deste trabalho foi totalmente concluída e por fim superada através da implementação do projeto de controle baseado na teoria do capítulo 2 sobre modulação SPWM. Neste trabalho não foram efetuados testes com um motor real, entretanto, como pode-se perceber pelos sinais obtidos, e pelo comparativo com a teoria a respeito de acionamentos V/F, conseguiu-se gerar sinais perfeitos em SPWM, assim conclui-se que o motor teria sua velocidade controlada corretamente caso fosse ligado. O programa como um todo é baseado em tabelas, cada uma com quantidade de linhas e valores específicos para cada uma das freqüências. Sendo assim, é de se supor que apenas recalculando-se as tabelas pode-se alterar a forma de controle, para, por exemplo, controle MSPWM (PWM Senoidal Modificado) que otimiza o controle V/F, inserindo um boost de torque adicional entre os ângulos de 60 a 120º, fixando a saída na tensão nominal. Assim, forçando o controle a fugir da curva V/F entre estes ângulos, ganhamos torque extra e diminuímos a geração de harmônicos. 81 Prevendo uma continuação deste trabalho por outras equipes de projeto final, ou até mesmo por pessoas que queiram um tema para desenvolver um mestrado, foi disponiblizado no protótipo o conector CON3, que possui 5 entradas digital/analógica (DAs) para leitura de dados do motor como corrente, tensão, velocidade e posição. Tais leituras servem para aumentar a precisão no controle de velocidade, visto que dependendo da carga aplicada sobre o eixo do motor, no caso de controle em malha aberta, o escorregamento aumenta e a velocidade real cai, gerando assim um erro de velocidade, que pode ser corrigido a partir do momento em que se sabe qual a freqüência real de rotação. A partir disso pode-se mudar a tabela em uso no momento para uma de freqüência maior. Dessa forma a freqüência no eixo sempre será a correta, mesmo que para isso a freqüência aplicada sobre as bobinas do motor seja maior. Esta correção seria utilizada nos casos em que o torque solicitado é maior do que o nominal para determinada velocidade. Estas entradas DAs poderiam ser utilizadas para controle de sobrecorrentes e sobretensões na etapa de potência, monitorando os valores a cada período de amostragem (por exemplo 0,5ms) e desligando todo o circuito quando determinados valores fossem excedidos. A parametrização dos valores limites de sobrecorrente e sobretensão poderiam ser feitas via Terminal, da mesma forma que as freqüências e a rampa de aceleração. Pela filosofia escalonável criada neste projeto, pode-se controlar motores de várias potências apenas trocando-se a etapa de potência, ou seja, reprojetando o módulo de potência com novos MOSFETs ou IGBTs e uma nova ponte retificadora é logicamente viável o controle de motores de potências maiores. Contudo um estudo mais aprofundado, com os limites de potência que podem ser controlados a partir deste módulo de controle, contemplando cálculos de temperatura, deveria ser realizado. No 89C51AC2 existe um outro port, o port P0 que não foi utilizado para nenhuma função, porém, caso fosse dada continuidade ao projeto, outra versão poderia contemplar um display ligado a este Port, e a parametrização de variáveis não mais necessitaria da interligação a um computador. Outras funções extremamente necessárias e que ainda devem ser implementadas, antes que este produto possa ser colocado no mercado são as parametrizações de sobrecorrente e sobretensão, porém tais proteções devem ser 82 desenvolvidas tanto em hardware quanto em software. Contudo a placa base de controle, neste caso, continuaria intocada, sem modificações, sendo necessário apenas um “driver” que faça a leitura da grandeza escolhida e a converta em um valor CC de tensão de 0 a 5V, o qual será lido pelas entradas A/D. 83 REFERÊNCIAS [1] RASHID, Muhammad H. Circuitos, Dispositivos e Aplicações: Eletrônica de Potência, 1ª ed., São Paulo: Editora Makron Books, 1992, 827p. [2] SÁ, Jocélio Souza de. Controle e Regulação de Acionamentos Elétricos em Corrente Alternada: Informativo Técnico, Volume X: Siemens S.A., 1978, 115p. [3] LANDER, Cyril W. Eletrônica Industrial, Teoria e Aplicações. 2ª ed., 1996, 356p. [4] GRESHOCK, Kevin; WEBB, John. Industrial Control Electronics. 1992, 253p. [5] MILLER, T. J. E. Switched Reluctance Motors and Their Control. Magna Physics Publishing, Oxford : Oxford Science Publications, 1993. [6] Mc INTYRE, R. L. Electric Motor Control Fundamentals. 3a ed., 1991. [7] PHILLIPS, Charles L. Digital Control System, Analysis and Design. 2a ed., New Jersey: Editora Prentice Hall, 1989, 630p. [8] SACCOMANO, Alaor Mousa. Revista Mecatrônica Atual. Automação. Número 8. São Paulo: Editora Saber, fevereiro de 2003. [9] BRAGA, Newton C. Saber Eletrônica Especial. Número 7. São Paulo: Editora Saber, julho de 2002. [10] OTTOBONI, Augusto. Saber Eletrônica. Número 358. São Paulo: Editora Saber, novembro de 2002. [12] YEDAMALE, Padmaraja. Speed Control of 3-Phase Induction Motor Using PIC18 Microcontrollers. 2002. http://www.microchip.com/pic18/docs/AN843.pdf 84 [13] Cadsoft. EAGLE: Easily Applicable Graphical Layout Editor. 2003. http://www.cadsoft.de/freeware.htm [14] Atmel. Fabricante de microcontroladores. 2003. http://www.atmel.com [15] International Rectifier. Fabricante de componentes semicondutores. 2003. http://www.irf.com 85 ANEXO A Especificações de componentes 94 APÊNDICE A Módulo de controle 95 Figura 1 - Face superior da placa de controle. Figura 2 - Face inferior da placa de controle. 96 Figura 3 - Disposição dos componentes na placa de controle. 97 APÊNDICE B O Software 98 /*-----------------------------------------------------------------------3-Phase Generator with 89C51AC2 Copyright (C) 2003 Leonardo Castro e Evandro Luiz Hauenstein ------------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include #include #include "8051.h" "t89c51ac2.h" "edit.h" "iserial.h" "output.h" "vt100.h" "dtb.h" "defines.h" <stdio.h> <stdlib.h> volatile unsigned char index; volatile bit switch_pwm_table = 0; volatile bit current_pwm_table; bit P2_7_toggle_flag = 0; #define #define #define #define #define bit bit bit bit KEY1_PRESSED 1 KEY2_PRESSED 2 KEY3_PRESSED 4 KEY4_PRESSED 8 KEY_SCAN_RATE 72 key1_flag key2_flag key3_flag key4_flag volatile volatile volatile volatile = = = = // // // // // key1 key2 key3 key4 40ms mask mask mask mask (pwm_reload_isr is called every 1/1800 second) 1; 1; 1; 1; unsigned unsigned unsigned unsigned char char char char key1 key2 key3 key4 = = = = 0; 0; 0; 0; unsigned char pwm1_maxindex; code pwm_table * pwm1_ptr; unsigned char pwm2_maxindex; code pwm_table * pwm2_ptr; unsigned unsigned unsigned unsigned unsigned unsigned char char char char char char misc_wait = 10; start_wait = 30; current_freq; freq1 = 40; freq2 = 60; freq3 = 75; unsigned int time_base = 0; volatile unsigned int clock = 0; xdata unsigned char str_tmp[10]; /* variable located in XRAM */ void config_parameters (void); void switch_to_the_freq (unsigned char freq, unsigned char time); void wait_switch_table (void); void load_table_from_flash (unsigned char freq); unsigned char scan_input_keys (void); void print_out_table(void); /* - PWM RELOAD INTERRUPT SERVICE ROUTINE pwm_reload_isr proccess the following tasks: * toggle the P2_7 pi/o * reload the PWM module capture registers * provide the clock timebase * scan the keyboard */ 99 void pwm_reload_isr (void) interrupt TF2_VECTOR using 3 { /* toggle the measure output */ P2_7_toggle_flag = ~P2_7_toggle_flag; P2_7 = P2_7_toggle_flag; /* clock will be incremented every 10ms */ if (time_base == 18) { time_base = 0; clock++; } time_base++; /* clear timer 2 overflow flag */ TF2 = 0; /* test what is the current loaded table */ if (current_pwm_table) { /* load next PWM values from table ptr 1 */ CCAP4H = (pwm1_ptr + index)->r; CCAP3H = (pwm1_ptr + index)->s; CCAP2H = (pwm1_ptr + index)->t; /* increments to the next position in the table */ index++; if (index >= pwm1_maxindex) { index = 0; /* verify if a switch table operation is requested */ if (switch_pwm_table) { current_pwm_table = ~current_pwm_table; switch_pwm_table = 0; } } } else { /* load next PWM values from table ptr 2 */ CCAP4H = (pwm2_ptr + index)->r; CCAP3H = (pwm2_ptr + index)->s; CCAP2H = (pwm2_ptr + index)->t; /* increments to the next position in the table */ index++; if (index >= pwm2_maxindex) { index = 0; /* verify if a switch table operation is requested */ if (switch_pwm_table) { current_pwm_table = ~current_pwm_table; switch_pwm_table = 0; } } } /* Scan the key 1 */ if (P2_0 == 0) { if (key1 < KEY_SCAN_RATE) key1++; } else { if (key1 > 0) key1--; } 100 /* Scan the key 2 */ if (P2_1 == 0) { if (key2 < KEY_SCAN_RATE) key2++; } else { if (key2 > 0) key2--; } /* Scan the key 3 */ if (P2_2 == 0) { if (key3 < KEY_SCAN_RATE) key3++; } else { if (key3 > 0) key3--; } /* Scan the key 4 */ if (P2_3 == 0) { if (key4 < KEY_SCAN_RATE) key4++; } else { if (key4 > 0) key4--; } /* toggle the measure output */ P2_7_toggle_flag = ~P2_7_toggle_flag; P2_7 = P2_7_toggle_flag; } int main (void) { unsigned char keypress; unsigned char waiting_keys; /* Enable X2 mode */ CKCON = 0x7F; /* Set Timer 2 with highest priority */ IPH0 = 0x20; IPL0 = 0x20; /* initialize standard output */ set_serial_output(); /* initialize serial */ com_initialize(CPU_CLOCK,57600); enable_interrupts(); /* clearscreen and put the cursor at position 1,1 */ vt100_set(CLEARSCREEN); vt100_set(CURSOR_HOME); /*-----------------------------------------------Sets up the input parameters ------------------------------------------------*/ config_parameters(); /* shutdown the serial */ //com_shutdown(); /*-----------------------------------------------Sets up the TIMER 0 - Mode 2 101 ------------------------------------------------*/ { ET0 = 0; /* disable timer 0 interrupt */ TR0 = 0; /* stop timer 0 */ TH0 = 254; TL0 = TH0; /* 460800 Hz */ TMOD &= ~0x0F; TMOD |= 0x02; /* clear timer 0 mode bits */ /* put timer 0 into MODE 2 */ TR0 = 1; /* start timer 0 */ } /* Configure P2 as input */ P2_0 = 1; P2_1 = 1; P2_2 = 1; P2_3 = 1; /*-----------------------------------------------Sets up the TIMER 2 - AutoReload Mode ------------------------------------------------*/ { RCAP2L = TL2 = 0x00; /* reload rate of 1800 Hz */ RCAP2H = TH2 = 0xFE; C_T2 = 0; /* clock fonte is CPU_CLOCK/12 */ CP_RL2 = 0; /* auto-reload on timer 2 overflow */ T2MOD = 1; TF2 = 0; /* clear timer 2 overflow flag */ ET2 = 1; /* enable timer 2 interrupts */ TR2 = 1; /* start timer 2 */ } /*-----------------------------------------------Sets up PCA ------------------------------------------------*/ { /* PCA input is Timer 0 */ CMOD = 0x04; /* init counter registers */ CH = 0; CL = 0; /* PWM A - Initialize Module 4 in PWM mode */ CCAPM4 = ECOMn | PWMn; /* PWM B - Initialize Module 3 in PWM mode */ CCAPM3 = ECOMn | PWMn; /* PWM C - Initialize Module 2 in PWM mode */ CCAPM2 = ECOMn | PWMn; /* Set CCAP4H CCAP3H CCAP2H the initial comparison value */ = 0; = 0; = 0; } /*-----------------------------------------------Wait key1 to be pressed ------------------------------------------------*/ index = 0; waiting_keys = KEY1_PRESSED; printf("\r\nWaiting key1 press..."); /*-----------------------------------------------Finally the main loop! ------------------------------------------------*/ while (1) { 102 keypress = scan_input_keys(); if ((keypress & KEY1_PRESSED)&&(waiting_keys & KEY1_PRESSED)) { printf("\r\nKey 1! Main loop"); if (CR == 1) { /* Turn PCA timer OFF */ CR = 0; printf("\r\nStopped!"); waiting_keys = KEY1_PRESSED; printf("\r\nWaiting key1 press..."); } else { /* Sets up the first table */ index = 0; current_freq = 10; current_pwm_table = 0; // start with pwm1 table load_table_from_flash(current_freq); // start with 10Hz current_pwm_table = 1; // load the pwm1 table /* Turn PCA timer ON */ CR = 1; printf("\r\nStarted!"); waiting_keys = KEY1_PRESSED; printf("\r\nLoading freq1 %d", freq1); switch_to_the_freq(freq1,start_wait); printf("\r\nOK"); waiting_keys = KEY1_PRESSED | KEY2_PRESSED | KEY3_PRESSED | KEY4_PRESSED; } } if ((keypress & KEY2_PRESSED)&&(waiting_keys & KEY2_PRESSED)) { // load freq1 printf("\r\nKey 2! loading freq1 %d", freq1); switch_to_the_freq(freq1,misc_wait); printf("\r\nOK"); } if ((keypress & KEY3_PRESSED)&&(waiting_keys & KEY3_PRESSED)) { // load freq2 printf("\r\nKey 3! loading freq2 %d", freq2); switch_to_the_freq(freq2,misc_wait); printf("\r\nOK"); } if ((keypress & KEY4_PRESSED)&&(waiting_keys & KEY4_PRESSED)) { //load freq3 printf("\r\nKey 4! loading freq3 %d", freq3); switch_to_the_freq(freq3,misc_wait); printf("\r\nOK"); } } return 1; } void config_parameters(void) { config_parameters_loop: /* Welcome message */ vt100_set(CLEARSCREEN); printf("Edit the requested parameters:\r\n"); 103 printf("* frequencies must be between 10Hz and 100Hz and \r\n must follows the equation: freq1 < freq2 < freq3\r\n"); printf("* input delta time must be less than 100 seconds\r\n"); /* get the startup wait parameter */ sprintf(str_tmp,"%u",start_wait); printf("\r\nstart up delta time: "); X = 22; Y = 6; vt100_xedit(str_tmp,10); start_wait = (unsigned char) atol(str_tmp); /* get the misc wait parameter */ sprintf(str_tmp,"%u",misc_wait); printf("\r\nmisc delta time: "); X = 18; Y++; vt100_xedit(str_tmp,10); misc_wait = (unsigned char) atol(str_tmp); /* get the freq1 parameter */ sprintf(str_tmp,"%u",freq1); printf("\r\nbutton 1 frequency (freq1): "); X = 29; Y++; vt100_xedit(str_tmp,10); freq1 = (unsigned char) atol(str_tmp); /* get the freq2 parameter */ sprintf(str_tmp,"%u",freq2); printf("\r\nbutton 2 frequency (freq2): "); X = 29; Y++; vt100_xedit(str_tmp,10); freq2 = (unsigned char) atol(str_tmp); /* get the freq3 parameter */ sprintf(str_tmp,"%u",freq3); printf("\r\nbutton 3 frequency (freq3): "); X = 29; Y++; vt100_xedit(str_tmp,10); freq3 = (unsigned char) atol(str_tmp); printf("\r\n"); if ( (freq1 >= freq2) || (freq1 < 10) || (freq1 > 100) || (freq2 >= freq3) || (freq2 < 10) || (freq2 > 100) || (freq1 >= freq3) || (freq3 < 10) || (freq3 > 100) || (misc_wait > 100) || (start_wait > 100) ) { printf("\r\nError in the input parameters...\r\n"); printf("< press any key to reconfigure >\r\n"); com_getchar(); goto config_parameters_loop; } } unsigned char scan_input_keys(void) { unsigned char key; unsigned char result; result = 0; EA = 0; key = key1; EA = 1; if ((key == KEY_SCAN_RATE) && (key1_flag == 1)) { key1_flag = 0; result = result + KEY1_PRESSED; 104 printf("\r\nKey 1 pressed!"); } else { if ((key == 0) && (key1_flag == 0)) { printf("\r\nKey 1 depressed!"); key1_flag = 1; } } EA = 0; key = key2; EA = 1; if ((key == KEY_SCAN_RATE) && (key2_flag == 1)) { key2_flag = 0; result = result + KEY2_PRESSED; printf("\r\nKey 2 pressed!"); } else { if ((key == 0) && (key2_flag == 0)) { printf("\r\nKey 2 depressed!"); key2_flag = 1; } } EA = 0; key = key3; EA = 1; if ((key == KEY_SCAN_RATE) && (key3_flag == 1)) { key3_flag = 0; result = result + KEY3_PRESSED; printf("\r\nKey 3 pressed!"); } else { if ((key == 0) && (key3_flag == 0)) { printf("\r\nKey 3 depressed!"); key3_flag = 1; } } EA = 0; key = key4; EA = 1; if ((key == KEY_SCAN_RATE) && (key4_flag == 1)) { key4_flag = 0; result = result + KEY4_PRESSED; printf("\r\nKey 4 pressed!"); } else { if ((key == 0) && (key4_flag == 0)) { printf("\r\nKey 4 depressed!"); key4_flag = 1; } } return result; } void switch_to_the_freq(unsigned char freq, unsigned char time) { unsigned int aux; unsigned int clock_timeout; 105 unsigned int clock_current; if (freq < current_freq) { aux = (time * 100) / (current_freq - freq); printf("\r\nClock counts between frequencies = %u", aux); wait_switch_table(); while (freq < current_freq) { EA = 0; clock_timeout = clock + aux; clock_current = clock; EA = 1; while(clock_timeout > clock_current) { EA = 0; clock_current = clock; EA = 1; if (scan_input_keys() & KEY1_PRESSED) { /* Turn PCA timer OFF */ CR = 0; printf("\r\nStopped!"); return; } } current_freq--; printf("\r\nfreq = %d", current_freq); load_table_from_flash(current_freq); switch_pwm_table = 1; wait_switch_table(); printf("\r\nTable loaded!"); } return; } if (freq > current_freq) { aux = (time * 100) / (freq - current_freq); printf("\r\nClock counts between frequencies = %u", aux); wait_switch_table(); while (current_freq < freq) { EA = 0; clock_timeout = clock + aux; clock_current = clock; EA = 1; while(clock_timeout > clock_current) { EA = 0; clock_current = clock; EA = 1; if (scan_input_keys() & KEY1_PRESSED) { /* Turn PCA timer OFF */ CR = 0; printf("\r\nStopped!"); return; } } current_freq++; printf("\r\nfreq = %d", current_freq); load_table_from_flash(current_freq); 106 switch_pwm_table = 1; wait_switch_table(); printf("\r\nTable loaded!"); } return; } printf("\r\nSame freq!"); } void wait_switch_table (void) { while(switch_pwm_table); } void load_table_from_flash (unsigned char freq) { unsigned char table; table = freq - pwm_freqs[0]; if (current_pwm_table) { printf("\r\nLoading table %u (%uHz) into pwm2_ptr", table, pwm_freqs[table]); pwm2_ptr = pwm_tables[table]; pwm2_maxindex = pwm_values[table]; } else { printf("\r\nLoading table %u (%uHz) into pwm1_ptr", table, pwm_freqs[table]); pwm1_ptr = pwm_tables[table]; pwm1_maxindex = pwm_values[table]; } //print_out_table(); } void print_out_table(void) { unsigned char aux; unsigned char values; if (current_pwm_table) values = pwm2_maxindex; else values = pwm1_maxindex; aux = 0; while (aux < values) { if (current_pwm_table) { printf("\r\n%3d ", printf("%3d ", printf("%3d", } else { printf("\r\n%3d ", printf("%3d ", printf("%3d", } aux++; } } (pwm2_ptr + aux)->r); (pwm2_ptr + aux)->s); (pwm2_ptr + aux)->t); (pwm1_ptr + aux)->r); (pwm1_ptr + aux)->s); (pwm1_ptr + aux)->t);