do arquivo - Programa de Pós
Transcrição
do arquivo - Programa de Pós
Universidade Federal da Bahia Escola Politécnica Departamento de Engenharia Elétrica Programa de Pós-Graduação em Engenharia Elétrica SISTEMA EMBUTIDO PARA ESTIMAÇÃO DO TORQUE EM MOTORES DE INDUÇÃO TRIFÁSICOS CONSIDERANDO O REGIME NÃO ESTACIONÁRIO Ademário José de Carvalho Neto DISSERTAÇÃO DE MESTRADO Salvador–BA Novembro de 2015 Universidade Federal da Bahia Escola Politécnica Departamento de Engenharia Elétrica Ademário José de Carvalho Neto SISTEMA EMBUTIDO PARA ESTIMAÇÃO DO TORQUE EM MOTORES DE INDUÇÃO TRIFÁSICOS CONSIDERANDO O REGIME NÃO ESTACIONÁRIO Trabalho apresentado ao Programa de Pós-Graduação em Engenharia Elétrica do Departamento de Engenharia Elétrica da Universidade Federal da Bahia como requisito parcial para obtenção do grau de Mestre em Engenharia Elétrica. Orientador: Amauri Oliveira, Dr. Coorientador: Eduardo Furtado Simas Filho, Dr. Salvador–BA Novembro de 2015 Dedicos aos meus pais Pedro e Maria, às minhas irmãs Nı́via e Rosemeire, às minhas avós Deza e Jovi, ao meus avôs Manoel (in e ao meu tio memoriam) e Ademário (in memoriam) Edivaldo (in memoriam). AGRADECIMENTOS Agradeço, Primeiramente à minha famı́lia, meus pais, Pedro e Maria, minhas irmãs Nı́via e Rosemeire, pelo apoio incondicional em todos momentos da minha vida. Agradeço também às minhas avós Jovi e Deza, que na mais serena simplicidade, sempre tiveram uma “palavra doce” para me incentivar a continuar a traçar o meu caminho. Um agradecimento especial ao professor Amauri de Oliveira, pela orientação, pelos conhecimentos transmitidos, pela paciência e, sobretudo, pela admirável serenidade. Agradeço também ao meu coorientador, o professor Eduardo Simas, pela acessibilidade e disponibilidade, principalmente, durante a revisão do artigo e da dissertação. Aos professores Paulo César, Wagner Oliveira e Evangivaldo Lima pela oportunidade de desenvolver atividades que serviram para elevar o meu conhecimento e abrir horizontes a respeito de novas áreas de pesquisa no campo das engenharias. Agradeço ao professor Jés Fiais pelas dicas e sugestões para o desenvolvimento de algumas atividade relacionadas ao projeto de pesquisa. Ao amigo e professor Wilton Lacerda pelas dicas valorosas em horas de conversas, pelo constante incentivo, pela acessibilidade e pela amizade. Ao colega e amigo Valter Rosa pelos inúmeros e valorosos debates acerca da “cachaça” (eletrônica et. al). Por me fazer entender que a “corda de caranguejo” não tem fim e, principalmente, por me ensinar que “100% é muita coisa . . . ”. Agradeço também ao Ubiratã Júnior e aos meus amigos Eleilson Silva, Manoel Messias e Coleto Neto por me ajudarem diretamente em atividades relacionadas ao trabalho. Aos colegas e amigos que estiveram comigo e compartilharam bons momentos na sala de estudos do PPGEE: Ademir de Jesus, Andressa Pereira, Antônio Sobrinho, Ashton D’alcântara, Carolina Moreno, Cesar Peña, Charles Marques, Daniel Gonçalves, Diego Stéfano, Edmar Egı́dio, Fábio Cruz, Huilman Sanca, Marcos Camada, Omar Vilcanchi, Reginey Barbosa, Thaı́s Nascimento e Thiago Carvalho e todos de que contribuı́ram direta ou indiretamente para realização deste trabalho. Ao Conselho Nacional de Desenvolvimento Cientı́fico e Tecnológico (CNPq) pela concessão da bolsa de estudos. v RESUMO A estimativa de grandezas referentes à operação dos motores de indução trifásicos, especialmente da velocidade e torque, é uma questão que tem despertado o interesse particular de muitos pesquisadores. Estudos mais recentes têm concentrado seus esforços no desenvolvimento de técnicas não invasivas, comumente denominadas sensorless. Entretanto, o desenvolvimento de instrumentos de medição, baseados nessas técnicas, aplicados a sistemas não estacionários, ainda é pouco difundido. Neste sentido, este trabalho tem como objetivo apresentar o desenvolvimento do protótipo de um sistema embutido para a estimação do torque em Motores de Indução Trifásicos (MIT) operando em regime não estacionário. O sistema é baseado no método de análise espectral dos componentes de frequência relacionados às ranhuras do rotor tipo gaiola de esquilo, que estão presentes na corrente do estator. A abordagem metodológica consiste, essencialmente, nas seguintes etapas: especificação da plataforma de hardware; desenvolvimento dos algoritmos de processamento digital de sinais, tais como a Transformada de Fourier e a Transformada Chirp-Z; implementação dos algoritmos para estimação da velocidade e torque; desenvolvimento dos circuitos eletrônicos para condicionamento de sinais e interfaceamento com dispositivos externos; além de uma interface gráfica implementada para permitir a parametrização do sistema. Foi desenvolvida, ainda, uma versão final do firmware, baseando-se na utilização um sistema operacional de tempo real (FreeRTOS). Como resultado é apresentado um protótipo, baseado em um microcontrolador ARM Cortex M4, capaz de digitalizar e processar os sinais de corrente do estator, de modo que a velocidade e o torque no eixo do MIT possam ser estimados com exatidão similares às obtidas pelos instrumentos de referência (tacômetro e torquı́metro). O protótipo resultado deste trabalho apresenta-se como base para o desenvolvimento de produtos que podem ser destinados a sistemas de medição de velocidade e torque, em regime não estacionário, de maneira minimamente invasiva. Além de tı́picas aplicações industriais, pode ser aplicado, por exemplo, no monitoramento de unidades de bombeio mecânico utilizadas na extração de petróleo. Palavras-chave: Sistemas Embutidos, estimação de velocidade, torque, técnicas sensorless, harmônicos de ranhura, transformada Chirp-Z. vii ABSTRACT The estimation of variables related to the operation of induction motors, especially the speed and torque, is an issue that has aroused particular interest of many researchers. Recent studies have concentrated their efforts in developing non-invasive techniques, commonly called sensorless. However, the development of devices of specific use based on these techniques, applied to non-stationary systems, it is still not disseminated. Thus, this work presents the development of an embedded system prototype for the torque estimation in Three-Phase Induction Motors (TIM) operating in non-stationary mode. The proposed system is based on the spectral analysis of frequency components method related to the slots of rotor squirrel cage, that are present in the stator current. The methodological approach consists of the following steps: hardware platform specification; development of digital signal processing algorithms such as Fourier transform and a chirp-Z transform; implementation of algorithms for estimating the speed and torque; development of electronic circuits for signal conditioning and interfacing with external devices; as well as a graphical interface implemented to allow for the system parameterization, was developed also a final version of the firmware, based in the utilization of a real time operating system (FreeRTOS). As a result is presented a prototype based on a microcontroller ARM Cortex M4, that is able to scanning and processing the stator current signals so the speed and the torque of a TIM can be estimated with similar accuracy to those obtained by an instrument Reference (tachometer and torque wrench). The results of this work are presented as a basis for the development of products which can be intended for measurement systems of speed and torque, in non-steady state, with a minimally invasive manner. In addition to the typical industrial applications, can be applied, for example, in monitoring of sucker-rod pumping system used in oil extraction. Keywords: Embedded Systems, Speed estimation, Torque estimation, Sensorless Techniques, Slot har-monics, Chirp-Z transform. ix SUMÁRIO Capı́tulo 1—INTRODUÇÃO 1 1.1 CONSIDERAÇÕES INICIAIS . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 ORGANIZAÇÃO DA DISSERTAÇÃO . . . . . . . . . . . . . . . . . . . 4 Capı́tulo 2—CONTEXTUALIZAÇÃO 2.1 7 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1 Objetivos especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 CONTEXTUALIZAÇÃO DO TRABALHO . . . . . . . . . . . . . . . . 8 2.3 CONSIDERAÇÕES ADICIONAIS . . . . . . . . . . . . . . . . . . . . . 11 Capı́tulo 3—MOTORES DE INDUÇÃO TRIFÁSICOS 3.1 15 MOTORES DE INDUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.1 Curva Velocidade versus Torque . . . . . . . . . . . . . . . . . . . 17 3.2 ACIONAMENTO DE MOTORES DE INDUÇÃO . . . . . . . . . . . . . 18 3.3 CONTROLE DA VELOCIDADE DE MOTORES DE INDUÇÃO . . . . 20 3.4 MODOS DE CONTROLE . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Capı́tulo 4—COMPONENTES DE RANHURA E ANÁLISE ESPECTRAL 4.1 4.2 25 ESTIMAÇÃO DA VELOCIDADE A PARTIR DOS COMPONENTES DE RANHURA DO ROTOR . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 ANÁLISE ESPECTRAL . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2.1 Transformada rápida de Fourier . . . . . . . . . . . . . . . . . . . 28 4.2.2 Algoritmo Radix-2 . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.2.3 A estrutura Butterfly . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.4 Transformada Chirp-Z (CZT) . . . . . . . . . . . . . . . . . . . . 31 xi xii SUMÁRIO 4.2.5 Short time Fourier Transform (STFT) . . . . . . . . . . . . . . . 35 4.2.6 Considerações adicionais . . . . . . . . . . . . . . . . . . . . . . . 37 Capı́tulo 5—SISTEMAS EMBUTIDOS 39 5.1 TECNOLOGIAS EMBEDDED . . . . . . . . . . . . . . . . . . . . . . . 39 5.2 CONCEITOS BÁSICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.3 PROJETO DE SISTEMAS EMBUTIDOS . . . . . . . . . . . . . . . . . 41 5.4 SISTEMAS EMBUTIDOS DE TEMPO REAL . . . . . . . . . . . . . . 42 5.5 SISTEMAS OPERACIONAIS DE TEMPO REAL . . . . . . . . . . . . 43 Capı́tulo 6—PROJETO 45 6.1 ESPECIFICAÇÃO DA PLATAFORMA DE HARDWARE . . . . . . . . 45 6.2 ALGORITMOS DE PROCESSAMENTO DIGITAL DE SINAIS . . . . . 47 6.2.1 Implementação do algoritmo da CZT . . . . . . . . . . . . . . . . 47 6.2.2 Validação do algoritmo . . . . . . . . . . . . . . . . . . . . . . . . 51 6.2.3 Testes iniciais com dados de corrente . . . . . . . . . . . . . . . . 52 6.2.4 Algoritmo para estimação da velocidade . . . . . . . . . . . . . . 52 6.2.5 Primeiros resultados práticos na estimação da velocidade . . . . . 58 6.2.6 Verificação da contribuição da FPU . . . . . . . . . . . . . . . . . 59 6.2.7 Considerações adicionais . . . . . . . . . . . . . . . . . . . . . . . 60 MELHORAMENTO DO ALGORITMO DA CZT . . . . . . . . . . . . . 60 6.3.1 Instruções SIMD . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.3.2 Melhoramento dos algoritmos de PDS . . . . . . . . . . . . . . . . 62 DEFINIÇÃO DOS PARÂMETROS PARA AQUISIÇÃO DOS DADOS . 63 6.4.1 Conversor Analógico Digital (ADC) . . . . . . . . . . . . . . . . . 64 6.4.2 Controlador de acesso direto à memória (DMA) . . . . . . . . . . 64 6.3 6.4 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS . . . . . . . . . . 67 6.5.1 Filtro anti-recobrimento (anti-aliasing) . . . . . . . . . . . . . . . 67 6.5.2 Circuito para adição da componente DC (offset) . . . . . . . . . . 68 6.5.3 Primeiros testes em bancada . . . . . . . . . . . . . . . . . . . . . 70 6.5.4 Coleta de dados na Bancada BI - EXPERIMENTO T1 . . . . . . 72 xiii SUMÁRIO 6.5.5 Filtro passa-altas Elı́ptico . . . . . . . . . . . . . . . . . . . . . . 75 6.5.6 Coleta de dados na Bancada BI - EXPERIMENTO T2 . . . . . . 80 6.5.7 Amplificador de Ganho Programável . . . . . . . . . . . . . . . . 84 6.6 INTERFACE COM CLP . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.7 INTERFACE DE PARAMETRIZAÇÃO . . . . . . . . . . . . . . . . . . 91 6.8 INTERFACE DE COMUNICAÇÃO SERIAL . . . . . . . . . . . . . . . 91 6.9 VERSÃO FINAL DO FIRMWARE UTILIZANDO O FREERTOS . . . 93 6.9.1 Sistemas Bare-metal . . . . . . . . . . . . . . . . . . . . . . . . . 94 6.9.2 Sistemas Operacionais de Tempo Real . . . . . . . . . . . . . . . 95 6.9.3 FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.9.4 Visão geral sobre o firmware do projeto . . . . . . . . . . . . . . . 97 6.9.5 Implementação da tarefa vTask DAT . . . . . . . . . . . . . . . . 99 6.9.6 Implementação da tarefa vTask PDS . . . . . . . . . . . . . . . . 101 6.9.7 Implementação da tarefa vTask CVT . . . . . . . . . . . . . . . . 103 6.9.8 Implementação da tarefa vTask CLP . . . . . . . . . . . . . . . . 106 6.9.9 Implementação da tarefa vTask IHM . . . . . . . . . . . . . . . . 107 6.10 CONSIDERAÇÕES ADICIONAIS . . . . . . . . . . . . . . . . . . . . . 108 Capı́tulo 7—RESULTADOS E DISCUSSÕES 109 7.1 CONSIDERAÇÕES SOBRE O DESEMPENHO COMPUTACIONAL . . 109 7.2 EXPERIMENTOS PARA A ESTIMAÇÃO DA VELOCIDADE . . . . . 110 7.2.1 Estimação da velocidade na Bancada BT - Experimento BT01 . . 112 7.2.2 Estimação da velocidade na Bancada BI - Experimento BI01 . . . 113 7.2.3 Estimação da velocidade na Bancada BI - Experimento BI02 . . . 115 EXPERIMENTO PARA A ESTIMAÇÃO DO TORQUE . . . . . . . . . 117 7.3.1 119 7.3 Estimação do torque na Bancada BT - Experimento BT02 . . . . Capı́tulo 8—APLICAÇÕES E TRABALHOS FUTUROS 121 8.1 CARACTERÍSTICAS GERAIS . . . . . . . . . . . . . . . . . . . . . . . 121 8.2 SISTEMAS DE BOMBEIO MECÂNICO DE PETRÓLEO . . . . . . . . 122 8.2.1 122 Unidade de Bombeio Mecânico (UBM) . . . . . . . . . . . . . . . xiv SUMÁRIO 8.2.2 8.3 8.4 8.5 Monitoramento do poço em funcionamento . . . . . . . . . . . . . 124 OBTENÇÃO DA CARTA DINAMOMÉTRICA A PARTIR DO TORQUE NO MOTOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 APLICAÇÃO DO PROTÓTIPO DESENVOLVIDO NESTE TRABALHO 126 8.4.1 Caraterı́sticas do processo de obtenção da carta dinamométrica . 127 8.4.2 Caraterı́sticas temporais do sistema desenvolvido . . . . . . . . . 127 LIMITAÇÕES DO MÉTODO E NOVOS TRABALHOS . . . . . . . . . 130 Capı́tulo 9—CONCLUSÕES 133 Apêndice A—LAYOUTS E ESQUEMÁTICOS DE ALGUNS CIRCUITOS 137 A.1 FILTRO PASSA-BAIXAS - CHEBYSHEV DE 8ª ORDEM . . . . . . . . 137 A.2 FILTRO PASSA-ALTAS - ELÍPTICO - ESTÁGIO DE 2ª ORDEM . . . 137 Apêndice B—CÓDIGO FONTE DE ALGUMAS ROTINAS 141 B.1 FIRMWARE - CÓDIGO PARA CONFIGURAÇÃO DO ADC COM DMA 141 B.2 FIRMWARE - CÓDIGO PARA CONFIGURAÇÃO DO TIMER2 . . . . 142 B.3 FIRMWARE - CÓDIGO DO ALGORITMO DA CZT . . . . . . . . . . 143 B.4 ALGORITMO PARA MULTIPLICAÇÃO COMPLEXA OTIMIZADO . 144 B.5 MATLAB - CÓDIGO DO PROGRAMA DE TESTE DA FFT/CZT . . . 144 Apêndice C—RESUMO DO ARTIGO PUBLICADO NO CBA 2014 147 LISTA DE FIGURAS 2.1 Montagem experimental utilizada nos trabalhos Silva e Oliveira (2012b) . 12 2.2 Diagrama genérico do sistema proposto. . . . . . . . . . . . . . . . . . . 12 3.1 Motor de indução com rotor gaiola de esquilo. . . . . . . . . . . . . . . . 16 3.2 Rotor do tipo gaiola de esquilo. . . . . . . . . . . . . . . . . . . . . . . . 17 3.3 Curvas torque versus velocidade tı́picas de um MIT. . . . . . . . . . . . . 18 3.4 Diagrama de blocos de um inversor de frequência. . . . . . . . . . . . . . 19 3.5 Esquemático básico de um inversor de frequência. . . . . . . . . . . . . . 19 3.6 Relação tensão versus frequência no estator de um MIT. . . . . . . . . . 21 3.7 Curva Torque versus Frequência. . . . . . . . . . . . . . . . . . . . . . . 21 3.8 Curva de corrente versus frequência no controle escalar. . . . . . . . . . . 22 4.1 Sinal representado no domı́nio do tempo e da frequência. . . . . . . . . . 29 4.2 Estrutura elementar designada Butterfly. . . . . . . . . . . . . . . . . . . 30 4.3 Simplificação de uma DFT de 8 pontos. . . . . . . . . . . . . . . . . . . . 31 4.4 Simplificação de uma DFT de 4 pontos (ı́ndices pares). . . . . . . . . . . 31 4.5 Simplificação de uma DFT de comprimento 2. . . . . . . . . . . . . . . . 31 4.6 Alocação dos pontos no plano complexo pela CZT. . . . . . . . . . . . . 33 4.7 Comparação entre a DFT e a CZT. . . . . . . . . . . . . . . . . . . . . . 34 4.8 Erro entre a curva sintetizada e a curva estimada utilizando as funções janelas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.9 Espectrograma obtido a partir da aplicação da STFT. . . . . . . . . . . . 37 5.1 Diagrama básico de um sistema embutido. . . . . . . . . . . . . . . . . . 40 6.1 Kit de desenvolvimento STM32F4-Discovery. . . . . . . . . . . . . . . . . 46 6.2 Ilustração dos passos envolvidos no cálculo da CZT. . . . . . . . . . . . . 48 6.3 Diagrama de blocos do algoritmo da convolução discreta. . . . . . . . . . 49 xv xvi LISTA DE FIGURAS 6.4 Erro percentual entre os cálculos realizados pelo Matlab e pelo firmware. 51 6.5 Esquema básico de coleta de dados de corrente. . . . . . . . . . . . . . . 53 6.6 Fluxograma para a estimação da velocidade de giro do eixo do MIT. . . . 53 6.7 Desvio máximo relativo da rotação em função da duração da janela de observação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.8 Curva de resposta em frequência do filtro digital projetado. . . . . . . . . 55 6.9 Espectro de frequência da janela de dados analisada entre t1=0s e t2=0,2048s. 56 6.10 Espectro de frequência da CZT realizada na primeira janela do sinal. . . 57 6.11 Curva comparativa entre a velocidade medida e a velocidade estimada. . 58 6.12 Erros percentuais entre a velocidade estimada e medida. . . . . . . . . . 59 6.13 Histograma do erro associado à estimação da velocidade. . . . . . . . . . 59 6.14 Arquitetura básica dos núcleos Cortex M3 e M4. . . . . . . . . . . . . . . 61 6.15 Curvas de resposta em frequência de um filtro ideal e um caso prático. 67 . 6.16 Curva de resposta em frequência do filtro passa baixas analógico projetado. 68 6.17 Interface gráfica do software Bode Analyzer. . . . . . . . . . . . . . . . . 69 6.18 Circuito para adicionar o componente DC ao sinal de saı́da do filtro. . . . 69 6.19 Sinal de saı́da do filtro: (a) sem e (b) com a adição do componente DC. . 70 6.20 Estrutura utilizada nos experimentos (Bancada BI). . . . . . . . . . . . . 71 6.21 Estrutura utilizada nos experimentos (Bancada BT). . . . . . . . . . . . 72 6.22 Esquema básico para coleta de dados. . . . . . . . . . . . . . . . . . . . . 72 6.23 Análise espectral dos dados coletados. . . . . . . . . . . . . . . . . . . . . 73 6.24 Espectro obtido com a CZT aplicada sobre os dados coletados (60 Hz). . 74 6.25 Espectro para o MIT operando em baixo escorregamento. . . . . . . . . . 76 6.26 Comparação entre as respostas do filtro ideal e elı́ptico. . . . . . . . . . . 77 6.27 Resposta em frequência da função de transferência obtida. . . . . . . . . 78 6.28 Estágio básico para um filtro KHN. . . . . . . . . . . . . . . . . . . . . . 79 6.29 Resposta em frequência para estágio de 2ª ordem. . . . . . . . . . . . . . 79 6.30 Curva de resposta obtida para os dois estágios em cascata. . . . . . . . . 80 6.31 Diagrama básico para o novo circuito de coleta de dados. . . . . . . . . . 81 6.32 Comparação do espectro dos sinais com e sem o filtro passa-altas. . . . . 81 6.33 Comparação dos espectros antes e depois do filtro PA (30 Hz). . . . . . . 82 LISTA DE FIGURAS xvii 6.34 Resumo com os espectros dos piores casos obvervados com a utilização do filtro passa-altas elı́ptico. . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.35 Amplificador com off-set ajuste programável de ganho. . . . . . . . . . . 84 6.36 Diagrama de bloco do MCP4XXXX. . . . . . . . . . . . . . . . . . . . . 85 6.37 Diagrama temporal para comunicação SPI. . . . . . . . . . . . . . . . . . 85 6.38 Formato do byte de comando do potenciômetro. . . . . . . . . . . . . . . 86 6.39 Fluxograma básico do algoritmo para ajuste de ganho do amplificador. . 87 6.40 Diagrama simplificado de um sistema com interface 4-20mA. . . . . . . . 88 6.41 Diagrama de bloco funcional do AD420. . . . . . . . . . . . . . . . . . . 89 6.42 Diagrama temporal para interfaces Thee-Wire. . . . . . . . . . . . . . . . 89 6.43 Circuito para interface de corrente 4-20 mA com CLP. . . . . . . . . . . 90 6.44 Interface gráfica do software de parametrização do sistema. . . . . . . . . 92 6.45 Formato do pacote de dados de parametrização. . . . . . . . . . . . . . . 92 6.46 Circuito de interfaceamento USB-UART. . . . . . . . . . . . . . . . . . . 93 6.47 Circuito para interfaceamento RS232-UART. . . . . . . . . . . . . . . . . 94 6.48 Diagrama temporal da execução de um programa com superloop. . . . . . 95 6.49 Diagrama temporal da execução de tarefas em um SO. . . . . . . . . . . 96 6.50 Diagrama geral do sistema projetado. . . . . . . . . . . . . . . . . . . . . 98 6.51 Fluxo principal de dados dentro do sistema. . . . . . . . . . . . . . . . . 99 6.52 Estrutura do buffer circular triplo implementado. . . . . . . . . . . . . . 101 6.53 Fluxograma básico da tarefa vTask PDS. . . . . . . . . . . . . . . . . . . 102 6.54 Fluxograma básico da tarefa vTask CVT. . . . . . . . . . . . . . . . . . . 103 6.55 Curva Torque versus Velocidade do MIT. . . . . . . . . . . . . . . . . . . 104 6.56 Curva torque x velocidade - representação genérica da região linearizada. 105 6.57 Curva torque x velocidade para diferentes frequências de alimentação do MIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.58 Fluxograma básico da tarefa vTask IHM. . . . . . . . . . . . . . . . . . . 107 7.1 Estrutura da montagem experimental para estimação da velocidade. . . . 110 7.2 Tacômetro utilizado nos experimentos. . . . . . . . . . . . . . . . . . . . 111 7.3 Curva comparativa entre a velocidade medida e estimada - Experimento BT01. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 xviii LISTA DE FIGURAS 7.4 Erro percentual entre a velocidade medida e estimada - Experimento BT01.113 7.5 Histograma do erro associado à estimação da velocidade - Experimento BT01. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Curva comparativa entre a velocidade medida e estimada - Experimento BI01. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 7.6 7.7 Erro percentual entre a velocidade medida e estimada - Experimento BI01. 115 7.8 Histograma do erro associado à estimação da velocidade - Experimento BI01.115 7.9 Resultados obtidos com o inversor operando a 45 Hz - Experimento BI02. 116 7.10 Resultados obtidos com o inversor operando a 30 Hz - Experimento BI02. 117 7.11 Estrutura da montagem experimental para estimação do torque. . . . . . 118 7.12 Resultados obtidos para estimação do torque - Experimento BT02. . . . . 119 7.13 Erro obtido no precedimento de estimação do torque. . . . . . . . . . . . 120 8.1 Estrutura geral de um sistema de bombeio mecânico. . . . . . . . . . . . 123 8.2 Ilustração de uma unidade de bombeio mecânico. . . . . . . . . . . . . . 124 8.3 Unidade de bombeio com detalhe da célula de carga e sensor magnético. . 125 8.4 Geometria de uma unidade de bombeio mecânico. . . . . . . . . . . . . . 126 8.5 Diagrama de tempo do processo de obtenção da carta dinamométrica. . . 128 8.6 Comparação das cartas dinamométricas estimada e recuperada. . . . . . 131 A.1 Layout das PCBs projetadas: (a) Filtro passa-baixas Chebyshev de 8ª Ordem. (b) Estágio de 2ª ordem do filtro passa-altas elı́ptico . . . . . . . 137 A.2 Circuito do filtro passa-baixas - Chebyshev de 8ª Ordem. . . . . . . . . . 138 A.3 Circuito do filtro passa-altas - Elı́ptico de 2ª Ordem. . . . . . . . . . . . 139 LISTA DE TABELAS 6.1 Dados da placa do MIT gaiola de esquilo utilizado. . . . . . . . . . . . . 52 6.2 Algumas instruções básicas do conjunto SIMD. . . . . . . . . . . . . . . . 62 6.3 Resumo das melhorias obtidas sobre o processamento da CZT. . . . . . . 63 6.4 Principais parâmetros do controlador DMA. . . . . . . . . . . . . . . . . 66 6.5 Especificações básicas da sonda 80i-110s. . . . . . . . . . . . . . . . . . . 71 6.6 Especificações do filtro elı́ptico de 4ª ordem projetado no MATLAB. . . . 77 6.7 Especificações do filtro elı́ptico de 2ª ordem projetado no MATLAB. . . . 80 6.8 Algumas especificações do sistema. . . . . . . . . . . . . . . . . . . . . . 99 xix Capı́tulo 1 INTRODUÇÃO 1.1 CONSIDERAÇÕES INICIAIS A necessidade crescente do aumento da produtividade, das especificações técnicas e da qualidade dos produtos, aliada aos conceitos de automação industrial e de eficiência energética, bem como os avanços da microeletrônica e da eletrônica de potência, experimentados pela indústria, impulsionaram o desenvolvimento de sistemas de acionamento em corrente alternada de alto desempenho. Atualmente, esses sistemas praticamente substituı́ram, em muitas aplicações, àqueles baseados em acionamento por corrente contı́nua. Diante desse cenário as máquinas de indução são as mais difundidas em aplicações comerciais quando comparado a outros tipos. O funcionamento delas se dá por meio de indução magnética, esteja atuando como motor ou gerador. No caso da má-quina funcionando como motor, a alimentação se dá por meio de tensões alternadas e defasadas que induzem correntes no rotor. Quando a máquina esta operando como gerador o fluxo de energia se inverte e, com a rotação do eixo, surge nos terminais do estator uma força eletromotriz. Existem basicamente dois tipos de máquinas de indução, que são: (i) máquina de indução com rotor Gaiola de esquilo e (ii) máquina de indução como rotor bobinado. As máquinas de indução com rotor bobinado, no qual é construı́do com enrolamentos distribuı́dos em torno de um conjunto de chapas do rotor, são pouco utilizadas, sendo encontradas em um conjunto limitado de aplicações especı́ficas. Por outro lado, as máquinas de indução com rotor gaiola de esquilo, cujo enrolamento consiste em barras condutoras encaixadas em ranhuras de ferro do rotor e curto-circuitadas em cada lado por anéis condutores, são o tipo mais comumente utilizado na indústria. A sua simplicidade, robustez da construção e baixo custo representa uma notável vantagem para este tipo de rotor, que são utilizados em motores fracionários e até em máquinas de grande porte. O conhecimento de informações sobre a operação de motores de indução, tais como: escorregamento, velocidade e toque são de grande relevância para diversas aplicações 1 2 INTRODUÇÃO dessas máquinas. A variação da velocidade de rotação de motores de indução pode ser obtida por meio da manipulação de alguns parâmetros da máquina, mais especificamente do número de polos, do escorregamento e/ou da frequência de tensão estatórica. Sabe-se ainda que a utilização de inversores estáticos de frequência atualmente compreende o método mais eficiente para controlar a velocidade dos motores de indução. Os inversores transformam a tensão da rede, de amplitude e frequência constantes, em uma tensão de amplitude e frequência variáveis. Variando-se a frequência da tensão de alimentação, varia-se também a velocidade do campo girante e consequentemente a velocidade mecânica de rotação da máquina. Para manter a densidade de fluxo aproximadamente constante a tensão também deve variada de tal maneira que a relação V /f (Volt por Hertz) se mantenha constante (Fitzgerald; Kingsley Jr; Umans, 2006; WEG, 2014). Se por um lado as técnicas de controle dos motores de indução trifásicos (MIT) são bem estabelecidas, por outro, devido ao seu grau de não linearidade dinâmica, há ainda alguns complicadores para estimação indireta de grandezas mecânicas como velocidade e torque a partir das grandezas elétricas do MIT. Este fato muitas vezes conduz a uma estimação de velocidade e torque por uma abordagem de medição feita de forma mais direta, e que é realizada basicamente através de dispositivos eletrônicos para sensoriamento externo, tais como tacômetro, encoders, torquı́metro e etc. Entretanto, as técnicas não invasivas, comumente denominadas por sensorless, tem experimento grandes avanços, haja vista que estudos mais recentes têm concentrado seus esforços no desenvolvimento destas técnicas. A estimativa de algumas grandezas referentes à operação dos MITs, especialmente da velocidade, é uma questão que tem despertado o interesse particular de muitos pesquisadores. Segundo (Holtz, 2002) as principais vantagens em se determinar a velocidade utilizando técnicas sensorless é que, além dos custos, é reduzida a complexidade do hardware, o tamanho do driver de acionamento, o sistema adquire uma maior imunidade a ruı́dos, eliminação dos cabos dos sensores e menos requisitos de manutenção, o que resulta em uma maior confiabilidade do sistema. Ele afirma ainda que em ambientes hostis, em sua maior parte, dificulta a utilização de sensores o torna necessária a implementação de técnicas não invasivas. Alguns trabalhos propostos nas últimas duas décadas apresentam novas alternativas para obtenção de sistemas baseados em técnicas sensorless de alto desempenho. Dentre essas técnicas pode-se destacar: a utilização de modelos de regressão linear e algoritmos recursivos (Câmara; Grüdling, 2004; Velez-reyes; Fung; Ramos-torres, 2001), filtro de Kalman (Salvatore; Stasi; Cupertino, 2001; Texas Instruments, 1997), filtro de Kalman estendido (Alonge; D’ippolito; Sferlazza, 2014), estimação de torque e fluxo (Lascu; Boldea; Blaabjerg, 2000), modos deslizantes adaptativos (Cirrincione et al., 2004; Li; Xu; Zhang, 2005; Tursini, 2000), Redes Neurais Artificiais (Cirrincione et al., 2007; Goedtel, 2007). Dentre outras, destaca-se ainda uma técnica sensorless que, devido a sua praticidade, tem sido alvo de muitos estudos nos últimos anos e baseia-se na análise espectral relacionada às ranhuras do rotor do tipo gaiola de esquilo (Aiello; Cataliotti; 1.1 CONSIDERAÇÕES INICIAIS 3 Nuccio, 2005; Almeida et al., 2010; Ishida; Iwata, 1984, 1987; Nandi; Ahmed; Toliyat, 2001; Nishibata et al., 2006; Silva; Oliveira, 2012a; Silva; Lima; Oliveira, 2014, 2015b). Conforme explicitado nos parágrafos anteriores, existe um grande número de métodos destinados à estimação e controle da velocidade das máquinas de indução trifásicas e a grande maioria deles requer um número muito grande de operações matemáticas. Deste modo, a implementação destas técnicas em sistemas microprocessados requer o uso de dispositivos com alto poder de processamento. Se por um lado as técnicas de estimação de grandezas relacionadas ao funcionamento dos motores de indução exigem a utilização de dispositivos com alto poder de processamento, por outro, nos últimos anos é experimentado uma crescente utilização de sistemas embutidos em praticamente todos os equipamentos eletrônicos. Antes eles eram utilizados apenas em sistemas complexos e de alto custo como a indústria de aeronaves, navios e etc. Hoje vemos sistemas embutidos nos mais diversos dispositivos, tais como, geladeiras, televisores, eletrodomésticos, brinquedos. Pesquisas do inı́cio da década passada já apontavam que 80% de todos os processadores existentes eram usados em sistemas embutidos (Tennenhouse, 2000). Os avanços não ocorreram apenas no sentido quantitativo, houve também um grande avanço no poder de processamento dos dispositivos, aliando-se ainda uma redução dos custos. Muitos recursos antes disponı́veis apenas em equipamentos especiais e de alto custo, como os Processadores Digitais de Sinais (DSPs), passaram a integrar a arquitetura de dispositivos mais populares. Hoje em dia muitos microcontroladores possuem um núcleo com grande poder de processamento e ainda integram em seu encapsulamento muitos periféricos, tais como: conversores analógico digital (ADCs), timers, moduladores por largura de pulso (PWM), unidade de ponto flutuante (FPU), unidade dedicada às operações de multiplicação, acesso direto à memória (DMA) entre outros. Os microcontroladores da famı́lia ARM Cortex-M4/7 possuem um grupo, ainda que pequeno, de instruções do tipo SIMD (Single Instruction Multiple Data) o que os torna potencialmente interessante em aplicações que envolvem processamento digital de sinais. Mais recentemente tem-se observado uma expansão e popularização até mesmo de algumas linhas de DSPs, a Texas Instruments, por exemplo, já possui um segmento especı́fico para a aplicação em motores elétricos. As atividades deste projeto foram desenvolvidas em conjunto com o grupo de pesquisa em Sensores e Atuadores do Programa de Pós-Graduação em Engenharia Elétrica da Universidade Federal da Bahia. O projeto é continuidade de outros trabalhos já desenvolvidos dentro do grupo. Rodeiro, Oliveira e Cerqueira (2006) apesentaram um algoritmo para a determinação automática de parâmetros especı́ficos de motores de indução trifásicos. Reboucas et al. (2006) apresentou uma proposta para a estimação do torque do motor de indução a partir da análise do espectro da corrente de alimentação do estator. Partindo para a concepção de um produto de uso especı́fico, utilizando tecnologias de sistemas embutidos, Almeida et al. (2010) desenvolveu um equipamento para estimação do torque no eixo de motores de indução trifásicos alimentados por inversores de frequência, baseando-se, também, na 4 INTRODUÇÃO análise espectral do sinal de corrente do estator. O desenvolvimento da plataforma de hardware foi baseado em um DSP, onde foram embutidos os algoritmos de processamento digital de sinais para estimação do torque. Entretanto, vale ressaltar que o dispositivo foi desenvolvido para aplicação em sistemas que operem em regime estacionário, isto é, onde a carga não varia com o tempo. Este trabalho é consequência direta dos resultados obtidos nas pesquisas realizadas no trabalho de doutoramento de Silva (2014), onde foram desenvolvidos, dentre outros, estudos detalhados sobre diversas técnicas de processamento digital de sinais aplicadas em algoritmos para estimação do escorregamento, velocidade e torque em motores de indução trifásicos considerando o regime não estacionário. Diante do exposto, da relevante importância dos motores de indução trifásicos, os quais têm sido objeto de estudo de diversos pesquisadores ao longo dos últimos anos, bem como da expansão e popularização dos sistemas microprocessados, este trabalho apresenta o desenvolvimento de um sistema embutido para a determinação do escorregamento, velocidade e torque em motores de indução trifásicos baseando-se no método de análise espectral relacionada às ranhuras do rotor do tipo gaiola de esquilo. Com principal contribuição tem-se o fato de considerar o regime não estacionário na concepção dos algoritmos e do hardware. Nos próximos capı́tulos serão discutidos aspectos teóricos sobre o método utilizado, técnicas de processamento digital de sinais, especificações do hardware utilizado, detalhes da concepção dos algoritmos, circuitos para condicionamento dos sinais e resultados obtidos. 1.2 ORGANIZAÇÃO DA DISSERTAÇÃO Capı́tulo 2 – É feita a revisão bibliográfica deste trabalho. É realizada, também, a conxtualização dentro do grupo de pesquisa Sensores e Atuadores/DEE-POLIUFBA. Capı́tulo 3 – São apresentados alguns conceitos relacionados aos motores de indução trifásicos. Além das caracterı́sticas básicas do MIT é realizado também uma breve descrição sobre inversores de frequência. Capı́tulo 4 – É apresentada a base da metodologia utilizada para estimar a velocidade de um MIT a partir da análise espectral dos componentes de frequência relacionados às ranhuras do rotor. Além disso, são apresentadas as principais técnicas de Processamento Digital de Sinais utilizadas na análise do sinal de corrente do MIT. Capı́tulo 5 – São apresentados alguns conceitos relacionados a Sistemas embutidos. Capı́tulo 6 – São discutidos todo o processo de elaboração do projeto. Especificação do hardware; Implementação dos algoritmos do sistema; Projetos dos circuitos de condicionamento dos sinais; Desenvolvimento da interface de parametrização e dentre outras coisas, são apresentados alguns resultados parciais do trabalho; 1.2 ORGANIZAÇÃO DA DISSERTAÇÃO 5 Capı́tulo 7 – São apresentados e discutidos os principais resultados obtidos no trabalho. Capı́tulo 8 – Discute a possibilidade de que sistema desenvolvido possa ser servir de base para o desenvolvimento de um dispositivo capaz de gerar uma carta dinamométrica de superfı́cie se a necessidade de um dinamômetro. Capı́tulo 9 – São feita as considerações finais sobre o trabalho. Apêncide A – Apêncide contendo o layout e esquemático dos principais circuitos desenvolvidos para o projeto. Apêncide B – Apêncide que reúne o código fonte algumas rotinas importantes utilizadas no projeto. Referências Bibliográficas – São apresentadas as referências bibliográficas utilizadas no trabalho. Capı́tulo 2 CONTEXTUALIZAÇÃO 2.1 OBJETIVOS Este trabalho tem como objetivo principal o desenvolvimento de um sistema embutido para a determinação do escorregamento, velocidade e torque em motores de indução trifásicos considerando o regime não estacionário. 2.1.1 Objetivos especı́ficos Especificar um dispositivo de hardware microprocessado que seja capaz de processar os algoritmos envolvidos no método adotado; Implementar os algoritmos de processamento digital de sinais (PDS) para o microcontrolador especificado, visando aproveitar ao máximo os recursos disponı́veis possibilitando aumentar o desempenho do dispositivo; Efetuar testes experimentais para validação dos algoritmos de PDS implementados; Implementar e validar, por meio de testes experimentais, os algoritmos para estimação da velocidade e torque; Projetar os circuitos para condicionamento dos sinais de corrente do MIT; Definir uma Interface Máquina-Máquina (IMM) que possibilite a comunicação do protótipo com um Controlador Lógico Programável (CLP); Criar uma Interface Humano-Máquina (IHM) que possibilite a parametrização dos dados referentes ao motor do sistema onde o protótipo for utilizado; 7 8 2.2 CONTEXTUALIZAÇÃO CONTEXTUALIZAÇÃO DO TRABALHO Conforme já explicitado, existem diversos métodos para estimação da velocidade e escorregamento dos MITs. Entretanto um dos mais difundidos atualmente baseia-se na análise espectral dos componentes de ranhuras de rotor presentes nas correntes do estator. A estrutura básica para aplicação deste método é relativamente simples. A princı́pio é necessário apenas um sensor de corrente, que é utilizado em uma das fases de alimentação do motor. O sinal de corrente é condicionado, digitalizado e armazenado em memória para, em sequência, serem analisados. Estes ensaios quase sempre envolvem algoritmos de processamento digital de sinais, tais como a Fast Fourier Transform (FFT), Chirp-Z Transform (CZT) e outros. Nos próximos parágrafos será apresentada uma breve descrição de alguns trabalhos relacionados ao tema principal desta pesquisa, isto é, publicações que se baseiam na utilização dos componentes de ranhura do rotor de MITs do tipo gaiola de esquilo para estimação de grandezas referentes à operação dessas máquinas. No trabalho de Ishida e Iwata (1984) é proposto um método para detecção das frequências dos componentes de ranhura do rotor de um motor de indução trifásico. O método baseia-se na soma das três tensões das fases de alimentação do motor para obter as tensões dos componentes de ranhura. Foram utilizadas técnicas sofisticadas de amostragem para obter uma tensão proporcional à frequência desses componentes. Resultados experimentais mostraram uma boa linearidade da detecção dos componentes que variassem entre 0,5 e 1,3 da frequência de alimentação do estator. Esta mesma técnica é utilizada posteriormente pelos autores (Ishida; Iwata, 1987) para controlar a velocidade e o torque de motores de indução trifásicos. Os resultados permitiram avaliar um controle preciso da velocidade e torque em uma grande faixa de velocidades (200 a 2500 RPM). Entretanto, para velocidades menores os resultados foram considerados insatisfatórios (ARM, 2015). Ferrah, Bradley e Asher (1992) foi um dos pioneiros em efetuar a análise espectral baseada na Fast Fourier Transform (FFT) para a estimação sensorless da velocidade em MITs. As informações utilizadas são extraı́das dos componentes de ranhura do rotor. O sistema totalmente digital foi implementado em um microcomputador equipado com um processador Intel 80386. Vale ressaltar que o sistema foi utilizado apenas para motores operando em regime estacionário e que a exatidão na estimativa fica atrelada a resolução da FFT. A detecção dos componentes de ranhura é fundamental para implementação de técnicas sensorless de estimação de grandezas referentes aos motores de indução. Sabese, porém, que nem todos os MITs são capazes de gerar estes componentes. No trabalho de Nandi, Ahmed e Toliyat (2001) é feito um estudo sobre a importância das caracterı́sticas construtivas do MIT, sobretudo do número de ranhuras do rotor, na estimação da velocidade, baseada na análise desses componentes. Foram realizadas simulações detalhadas, onde foi possı́vel quantificar os componentes sob diferentes combinações de carga, de número de pares de polo, do número de ranhuras do rotor e condições de excentri- 2.2 CONTEXTUALIZAÇÃO DO TRABALHO 9 cidade. Embora não tenha sido apresentada uma ferramenta que pudesse identificar de maneira direta quais motores podem produzir os componentes de ranhura, os autores indicaram a possibilidade do não aparecimento em alguns motores. Geralmente, a análise espectral de sinais é realizada através da Discrete Fourier Transform (DFT). Existem diversos algoritmos para implementação eficiente da DFT, o mais popular deles constitui uma sofisticada famı́lia de algoritmos denominada de FFT (Fast Fourier Transform). Esses algoritmos são amplamente utilizados em trabalhos relacionados à estimação da velocidade em MITs, entretanto existem algoritmos mais simples, tanto sob o ponto de vista de implementação como, também, com relação ao custo computacional. Em Zhao e Zinger (2000) é proposto a utilização do Algoritmo de Goertzel para a estimação da velocidade em motores de indução trifásicos. Esse algoritmo normalmente é utilizado em sistemas DFMF (Dual-Tone Multi-Frequency) que são amplamente aplicados em redes de telefonia. Os resultados apresentados mostraram um erro máximo menor que 0,3% na estimação da velocidade. Entretanto vale ressaltar que a aplicação dessa técnica fica restrita a sistemas que operem em regime estacionário, haja vista que é necessário conhecer, a priori, os componentes de frequência que devem ser avaliados. As técnicas de análise espectral costumam utilizar sofisticados algoritmos de processamento digital de sinais que, normalmente, demandam um grande número de operações matemáticas complexas, implicando, desta maneira, num elevado custo computacional para implementações práticas. No sentido de diminuir o tempo de estimação de parâmetros de funcionamento dos MITs, Keysan e Ertan (2013) apresentaram uma metodologia baseada nos componentes de ranhura de ordem elevada. A técnica consiste na inserção de uma bobina externa no motor e posteriormente é realizada a demodulação dos sinais de corrente colhidos. Embora esta técnica demande algoritmos mais simples e com tempo de execução menor que os obtidos com técnicas tradicionais de PDS, ela possui o inconveniente da necessidade da conexão da bobina externa ao motor. Este fato pode inviabilizar a utilização desta metodologia em sistemas que já estejam em operação. O trabalho de Aiello, Cataliotti e Nuccio (2005) foi apresentado uma nova técnica para medir a velocidade de motores de indução por meio da estimativa da frequência dos componentes de ranhura de MITs do tipo gaiola de esquilo operando com cargas variáveis. A principal novidade foi a utilização da Chirp-Z Transform (CZT). A aplicação da CZT possibilitou uma melhor resolução espectral e uma janela de observação mais curta. Os resultados experimentais foram apresentados para validar o método proposto, além disso, foi realizada a comparação com um método semelhante baseado na FFT, indicando as vantagens da utilização da técnica em sistemas que operem em regime não estacionário. Estas técnicas de estimação de parâmetros dos motores de indução trifásicos, conforme já mencionado, também são estudadas pelo Grupo de Pesquisa em Sensores e Atuadores do departamento de Engenharia Elétrica da Escola Politécnica na Universidade Federal da Bahia. Vale ainda ressaltar que o projeto resultante desta dissertação é continuação de uma série de trabalhos que vêm sendo desenvolvidos pelo grupo ao longo dos últimos 10 anos. A seguir será realizada uma breve descrição de alguns dos principais 10 CONTEXTUALIZAÇÃO trabalhos que, de maneira direta ou indireta, estão relacionados a este projeto. Em sua dissertação de mestrado, Rodeiro (2005) apresentou uma metodologia e um algoritmo para a determinação automática de parâmetros especı́ficos de motores de indução trifásicos, como por exemplo, o número de ranhuras e a ordem de alguns componentes de frequência significativos. O método proposto é baseado em análise espectral da corrente e é fundamentado em equações que relacionam alguns componentes de frequência com parâmetros do MIT. Reboucas et al. (2006) apresentou uma proposta para a estimação do torque do motor de indução a partir da análise do espectro da corrente de alimentação do estator. Foram apresentados resultados de ensaios realizados em laboratório para a estimação do torque e também são realizadas comparações entre o método de análise espectral do sinal de corrente com o método baseado na amplitude dessa mesma corrente. Na avaliação dos resultados ficou constado que o método baseado na análise espectral apresentou melhores resultados. O desenvolvimento prático dos algoritmos foi realizado a partir de ferramentas computacionais como o MATLAB e o LABVIEW. A aquisição de dados dos sinais de corrente dos motores foi realizada através de placas de aquisição de dados da National Instruments. Partindo para a concepção de um produto de uso especı́fico utilizando tecnologias de sistemas embutidos, Almeida et al. (2010) desenvolveu um equipamento para estimação do torque no eixo de motores de indução trifásicos alimentados por inversores de frequência, baseando-se, também, na análise espectral do sinal de corrente do estator. O desenvolvimento da plataforma de hardware foi baseado em um DSP (Digital Signal Processor ), onde foram embutidos os algoritmos de processamento digital de sinais para estimação do toque. Entretanto vale ressaltar que a aplicação do dispositivo fica restrita, apenas, a sistemas que operem em regime estacionário. Em sistemas que operam com carga constante a estimação de grandezas como, por exemplo, a velocidade, pode ser realizada a partir da aplicação de técnicas tradicionais de processamento digital de sinais, tal como a Transformada Discreta de Fourier (DFT). A exatidão na estimativa depende apenas do comprimento (duração) da janela de dados analisada e da frequência de amostragem do sinal de corrente do estator. Com uma carga constante a velocidade também não sofrerá variações. Desta maneira, mesmo que a DFT seja implementada em dados correspondentes a uma janela de tempo consideravelmente grande, isso não implicará em perdas de informações sobre a grandeza estimada. Por outro lado, em sistemas que operam em regime de carga variável, a janela de tempo onde os dados são avaliados não pode ser definida de maneira arbitrária. Se for definida uma janela com duração maior, a fim, por exemplo, de melhorar a exatidão da estimativa, as variações da grandeza avaliada que ocorrerem nesse intervalo de tempo não serão percebidas. Nesse caso faz-se necessária a aplicação de técnicas mais sofisticadas de processamento digital de sinais. No sentido de apresentar soluções para as questões discutidas no parágrafo anterior, surge o trabalho de doutoramento de Silva (2014) que, em particular, tem aplicação voltada para sistemas de elevação artificial de petróleo que utilizam unidades de bombeio 2.3 CONSIDERAÇÕES ADICIONAIS 11 mecânico. No trabalho foram desenvolvidos, entre outros, estudos detalhados sobre diversas técnicas de processamento digital de sinais aplicados em algoritmos para a estimação do escorregamento, velocidade e torque de motores de indução trifásicos considerando o regime não estacionário. Em Silva e Oliveira (2012a) é realizado um estudo sobre a formação dos componentes relacionados às ranhuras de rotor no motor de indução trifásico. No trabalho é realizada uma análise detalhada das equações responsáveis pela identificação desses componentes, que estão presentes na corrente de fase que alimentam os MITs. Nessa análise, além de constatada a dependência do número de polos e do número de ranhuras na formação dos componentes espectrais, também foi proposto uma metodologia, em forma de tabela, que permite a identificação de quais motores podem ou não produzir os componentes de ranhura. Também foram realizados experimentos de validação da metodologia e para isso foram utilizados motores de 4 e 6 polos, com 28, 40 e 44 ranhuras no rotor. Em Silva e Oliveira (2012b) foi apresentado resultados experimentais sobre a influência da duração da janela da Short Time Fourier Transform (STFT) e da utilização da transformada Chirp-Z nos algoritmos de estimação da velocidade no eixo de motores de indução trifásico. Foram realizadas comparações entre a FFT e a CZT onde ficou constatado que a principal vantagem da Transformada Chirp-Z diz respeito à melhor resolução proporcionada ao espectro de frequências. Também foram realizados testes práticos com diversos comprimentos de blocos de dados para a execução dos algoritmos de processamento digital de sinais, onde o autor fez uma análise gráfica indicando o quanto estes parâmetros influenciam na estimação da velocidade. Os trabalhos avaliados, até aqui, apresentaram aspectos proeminentes para o desenvolvimento do projeto, dão sustentação a ideia e validam os conceitos e técnicas essenciais para implementação do método. O protótipo desenvolvido contribui com um dispositivo capaz de estimar o escorregamento, velocidade e torque de um MIT, e diferencia-se dos demais trabalhos, mais especificamente do trabalho de Almeida et al. (2010), pelo fato de considerar em sua implementação que o mesmo poderá ser empregado em sistemas que operem em regime não estacionário. Portanto, faz uso de algoritmos de processamento digital de sinais mais sofisticados. 2.3 CONSIDERAÇÕES ADICIONAIS As questões discutidas até aqui serviram para mostrar que existem diversos estudos já desenvolvidos e foram eles que forneceram um embasamento cientı́fico e indicaram a viabilidade técnica para a realização deste trabalho. Vale lembrar, sobretudo, que este projeto é a implementação prática dos estudos desenvolvidos por Silva (2014). Entretanto, vale ressaltar alguns aspectos desafiadores que, a primeira vista, podem não parecer evidentes. Antes de continuar, porém, é interessante descrever o cenário experimental no qual o trabalho foi desenvolvido. A Figura 2.1 ilustra a montagem tı́pica adotada nos experimentos realizados por Silva e Oliveira (2012b). No arranjo, um gerador CC é utilizado como carga; o controlador, que alimenta as 3 fases do MIT, pode ser um inversor 12 CONTEXTUALIZAÇÃO de frequência, porém em alguns experimentos o motor foi alimentado diretamente pela rede elétrica. Observa-se ainda, a utilização de um sensor hall para aquisição dos sinais de corrente, os quais passam por um circuito de condicionamento, depois são digitalizados e enviados para um computador. Bloco A ComputadorProcessamento Digital de Sinais Controlador Condicionador e Digitalizador Fase T Fase S Fase R Sensor Hall Ajuste de Carga Gerador CC MIT Figura 2.1 Montagem experimental utilizada nos trabalhos Silva e Oliveira (2012b) A principal observação em relação aos experimentos realizados em Silva (2014) diz respeito ao fato de todo processamento e análises das informações tenham sido realizadas em um computador pessoal. O protótipo do sistema embutido desenvolvido tem como objetivo substituir os blocos de digitalização, condicionamento e processamento dos sinais, agrupados como Bloco A na Figura 2.1. O diagrama genérico do sistema desenvolvido é apresentado, abaixo, na Figura 2.2. Circuito Microprocessado Interface CLP Unidade de Processamento IHM Circuito Condicionador Sensor Hall Filtros Amp. Figura 2.2 Diagrama genérico do sistema proposto. O sensor de efeito hall é responsável por detectar o sinal de corrente em uma das fases de alimentação do MIT. O circuito de condicionamento é constituı́do basicamente por um conjunto de filtros analógicos e amplificadores que tem a função de adequar os sinais captados pela sonda de corrente, tanto aos parâmetros elétricos do conversor analógico digital (ADC), quanto aos algoritmos envolvidos no processamento das informações. O bloco do circuito microprocessado é formado pela unidade de processamento, constituı́da basicamente por um microcontrolador, onde os algoritmos responsáveis pelo processamento dos sinais são embutidos. Integra o bloco, ainda, uma Interface Humano-Máquina 2.3 CONSIDERAÇÕES ADICIONAIS 13 (IHM) que foi desenvolvida para permitir a parametrização dos dados referentes aos motores e, também, ao funcionamento dos algoritmos. Foi implementado, também, um interface de comunicação com Controladores Lógico Programáveis (CLP). Cada um dos estágios representados no diagrama serão discutidos, em detalhes, no Capı́tulo 6. Conforme mencionado, Silva (2014) utilizou um computador pessoal (PC) para realizar o processamento das informações digitalizadas. Sabe-se que os PCs possui uma quantidade de recursos e poder de processamento incrivelmente grande quando comparados aos dispositivos utilizados em aplicações especı́ficas. Os processadores modernos de alto desempenho, aliado a uma grande quantidade de memória RAM (Random Accesses Memory), juntando-se ainda a grande disponibilidade de softwares especializados em ferramentas dedicadas a resolução de problemas das mais diversas naturezas cria um quadro favorável o rápido desenvolvimento de sistemas. O software Matlab é um exemplo de ferramenta que confere uma grande flexibilidade no desenvolvimento softwares, especialmente para fins cientı́ficos, uma vez que permite que o programador se concentre na essência do problema que pretende investigar, em vez de sobrecarregar-se com a eventual programação dos algoritmos requeridos para resolver tarefas secundárias. Existem pacotes com algoritmos das mais diversas áreas de conhecimento. O toolbox de processamento digital de sinais possui diversas implementações de algoritmos, tais como: filtros digitais, convolução, transformada de Fourier (DFT, FFT e STFT), transformada de Hilbert, transformada chirp-Z (CZT) e muitos outros (Mathworks, 2015). Por outro lado, quando tratamos de sistemas embutidos temos que lidar com uma severa limitação de recursos de hardware, em especial da quantidade de memória RAM. Muito embora o mercado de sistemas embutidos venha experimentando grandes avanços com a disponibilização de tecnologias sofisticadas e de alto desempenho, neste trabalho foi firmado, também, o compromisso em desenvolver um protótipo que, além de atender as especificações técnicas e operacionais do projeto, também pudesse ter uma menor relação custo/benefı́cio. Diante desse cenário, a tarefa de especificar um hardware “otimizado” implicou em um desafio adicional na implementação do firmware do sistema. Levando em consideração que as rotinas de processamento digital de sinais envolvem uma grande quantidade de operações matemáticas e ainda que os dados sejam processados em tempo real, foi necessário investigar e implementar técnicas de programação que possibilitassem e garantissem a relação de compromisso entre custo e benefı́cio. Vale lembrar, ainda, que existem situações especiais decorrentes da própria natureza do problema, como por exemplo, a especificação do comprimento da janela de tempo, conforme já mencionado, está diretamente relacionado com a resolução obtida na transformada do domı́nio do tempo para o da frequência, bem como ao esforço computacional para realização do algoritmo. Estes fatores implicaram em um desafio extra no desenvolvimento do protótipo. Capı́tulo 3 MOTORES DE INDUÇÃO TRIFÁSICOS 3.1 MOTORES DE INDUÇÃO As máquinas de indução, devido a sua robustez, simplicidade e ao seu baixo custo quando comparado a outros tipos de máquinas são, de longe, as mais utilizadas em diversas aplicações industriais. O seu funcionamento se dá por meio de indução magnética, esteja ela atuando como motor ou gerador. No caso da máquina funcionando como motor, a alimentação ocorre por meio de correntes alternadas e defasadas que são aplicadas diretamente sobre o estator e a corrente do rotor é adquirida por meio de indução. Quando a excitação é feita por uma fonte polifásica equilibrada, um campo magnético é produzido no entreferro girando na velocidade sı́ncrona, que por sua vez é determinada a partir do número de polos e pela frequência da corrente aplicada ao estator. Já a máquina operando como gerador, o fluxo de energia se inverte e com a rotação do eixo surge nos terminais do estator uma força eletromotriz (Bim, 2014). O rotor de uma máquina de indução polifásica pode ser de dois tipos, bobinado ou gaiola de esquilo. O rotor enrolado ou bobinado, que é construı́do na forma de um enrolamento polifásico semelhante ao estator e possui o mesmo número de polos. Os terminais do enrolamento do rotor são conectados a anéis deslizantes montados sobre o eixo. Escovas de carvão apoiadas sobre esses anéis permitem que os terminais do rotor se tornem disponı́veis externamente ao motor. Este tipo de máquina tem sua aplicação limitada a um número de casos especı́ficos (Fitzgerald; Kingsley Jr; Umans, 2006). O motor de indução mostrado na Figura 3.1 utiliza um rotor do tipo gaiola de esquilo, onde o enrolamento consiste em barras condutoras encaixadas em ranhuras no ferro do rotor e curto-circuitadas em cada lado por anéis condutores. Nos rotores maiores, os anéis terminais são soldados aos condutores em vez de serem moldados na construção do rotor. As barras desse tipo de rotor nem sempre são paralelas ao eixo do rotor. Elas costumam ser colocadas com uma pequena inclinação em relação ao eixo rotatório e tem como função produzir um torque mais uniforme e para reduzir o “zumbido” magnético durante a operação do motor (Kosow, 1993). A sua simplicidade, robustez da construção e 15 16 MOTORES DE INDUÇÃO TRIFÁSICOS baixo custo representa uma notável vantagem para este tipo de rotor, que são utilizados em motores fracionários e até em máquinas de grande porte (Fitzgerald; Kingsley Jr; Umans, 2006). Figura 3.1 Motor de indução com rotor gaiola de esquilo. Fonte: (WEG, 2014) A velocidade de giro da onda da força magnetomotriz (FMM) de entreferro, também denominada de velocidade sı́ncrona, Ns dada em rpm (rotações por minuto), pode ser expressa em termos da frequência elétrica aplicada f0 , em Hz e do número de pares de polos p, como na Equação (3.1): Ns = 60 f0 p rpm (3.1) Nos motores de indução, o campo magnético girante do estator, criado pela corrente alternada que o alimenta, possui velocidade diferente à do giro do eixo do rotor. Por este motivo são denominados motores assı́ncronos. A diferença entre a velocidade sı́ncrona Ns e a do eixo do rotor N é referida, comumente, como escorregamento s, que normalmente é expresso como uma fração da velocidade sı́ncrona, definido matematicamente pela Equação (3.2) como: s= Ns − N Ns (3.2) A velocidade do eixo do rotor, em rpm, pode ser expressa em termos do escorregamento e da velocidade sı́ncrona, conforme a Equação (3.3) descrita a seguir: N = (1 − s)Ns (3.3) 17 3.1 MOTORES DE INDUÇÃO O movimento relativo entre o fluxo do estator e os condutores do rotor induz tensões de frequência fr denominada frequência de escorregamento e é expressa na Equação (3.4) por: fr = sf0 (3.4) Assim, o comportamento de uma máquina de indução é semelhante ao de um transformador, com o adicional da transformação de frequência produzida pelo movimento relativo entre os enrolamentos do estator e do rotor. A Figura 3.2 ilustra a estrutura de um rotor do tipo gaiola de esquilo. Figura 3.2 Rotor do tipo gaiola de esquilo. Fonte: (Kosow, 1993). 3.1.1 Curva Velocidade versus Torque A curva velocidade versus torque de um MIT é uma das caracterı́sticas usadas para selecioná-lo em uma determinada aplicação. O desenvolvimento do rotor de gaiola dupla agregou versatilidade aos projetos dos motores de indução por conduzir a uma variedade de caracterı́sticas torque versus velocidade. Modificando a construção das ranhuras do rotor, a curva torque velocidade também se modifica provocando variantes que resultam em torques e correntes de partidas maiores ou menores e que influenciam no rendimento do motor (Fitzgerald; Kingsley Jr; Umans, 2006; Kosow, 1993; WEG, 2004). Para distinguir-se entre os vários tipos disponı́veis de MIT, a Associação Brasileira de Normas Técnicas (ABNT), com base de estudos da NEMA (National Electrical Manufacturer’s Association), adotou um sistema de código alfabético, no qual cada tipo de motor de indução de rotor em gaiola que é construı́do se situa numa certa categoria (classes) designada por uma letra (Toro, 1999). A Figura 3.3 ilustra as curvas torque versus velocidade, tı́picas para as várias classes 18 MOTORES DE INDUÇÃO TRIFÁSICOS de motor de indução de gaiola que variam com os detalhes de construção das ranhuras do rotor (Kosow, 1993). Nota-se no gráfico da figura que em certos trechos a velocidade percentual e o torque tem relação quase linear possibilitando uma estimação do torque em função da velocidade ou escorregamento juntamente com informações de pontos da curva fornecido pelo fabricante (Rodeiro, 2005). Figura 3.3 Curvas torque versus velocidade tı́picas de um MIT. Fonte: (Rodeiro, 2005) Foram baseadas nessas caracterı́sticas que o algoritmo para estimação do torque foi implementado para este trabalho. Os procedimentos envolvidos serão discutidos, em detalhes, no Capı́tulo 6. 3.2 ACIONAMENTO DE MOTORES DE INDUÇÃO O método mais simples para efetuar o acionamento de um motor de indução trifásico é conectá-lo diretamente a rede elétrica. Durante muitos anos essa foi a principal forma de acionamentos de MITs. Entretanto, o desenvolvimento de semicondutores de potência possibilitou a criação de tecnologias especı́ficas para o comando/controle de máquinas elétricas. A principal delas foram os inversores estáticos de frequência. Os inversores de frequência são dispositivos eletrônicos que, a partir do sinal de tensão da rede de alimentação fornecida pelas concessionárias de energia elétrica, cuja amplitude e frequência são constantes, podem sintetizar um sinal senoidal trifásico. O sistema trifásico obtido a partir do inversor pode controlar tanto a amplitude como a frequência das tensões geradas. A Figura 3.4 ilustra o diagrama de bloco genérico de um inversor de frequência. O primeiro estágio do inversor de frequência é o retificador, que é constituı́do basicamente por uma ponte de diodos e tem a função de transformar o sinal alternado, proveniente da rede de alimentação, em um sinal contı́nuo pulsante. O segundo estágio 19 Barramento DC R S Retificador T Alimentação do motor Tensão e frequência variáveis Rede de alimentação Tensão e frequência fixas 3.2 ACIONAMENTO DE MOTORES DE INDUÇÃO Inversor Filtro Unidade de Controle Microprocessada Figura 3.4 Diagrama de blocos de um inversor de frequência. Fonte: (WEG, 2014) é constituı́do por um filtro que tem a função de diminuir a ondulação do sinal retificado pela ponte de diodos. Para esta função normalmente é utilizado um banco de capacitores. O último estágio é constituı́do pelo circuito inversor, propriamente dito, e é baseado em transistores de potência. O IGBT (Insulated Gate Bipolar Transistor ) é o componente mais utilizado em inversores estáticos de frequência (WEG, 2004). A Figura 3.5 ilustra o esquemático básico de um inversor de frequência de seis chaves. Retificador Inversor Barramento DC Fonte Trifásica C G R S T C G C G E E E C C C C1 G G E G E E Figura 3.5 Esquemático básico de um inversor de frequência. Os IGBTs são chaveados seguindo algumas regras de tal maneira que seja gerada uma aproximação de um sinal senoidal na saı́da do circuito. Para o chaveamento dos transistores, os inversores de frequência modernos utilizam uma estratégia baseada em PWM (Pulse Width Modulation). Esta técnica de modulação por largura de pulso permite a geração de ondas senoidais de frequência variável com resolução de até 0,01 Hz (WEG, 2004). Existem diversas vantagens em acionar um motor elétrico a partir de um inversor de frequência, tais como, economia de energia, eliminação de picos de corrente de partida, melhor rendimento do motor e dentre outros, pode-se destacar, ainda, o melhoramento do desempenho de equipamentos, devido à adaptação da velocidade aos requisitos do processo (WEG, 2004). 20 3.3 MOTORES DE INDUÇÃO TRIFÁSICOS CONTROLE DA VELOCIDADE DE MOTORES DE INDUÇÃO A utilização de inversores estáticos de frequência atualmente compreende o método mais eficiente para controlar a velocidade dos motores de indução. Para que isso fique claro, lembremos que, ao substituir a Equação (3.1) na Equação (3.3) obtem-se a relação entre a rotação, a frequência de alimentação, o número de pares de polos e o escorregamento de um motor de indução, conforme definido na Equação (3.5): N= 60 (1 − s)f0 p (3.5) Ao analisar a Equação (3.5) pode-se notar que a velocidade de rotação depende essencialmente de três parâmetros. Segundo (WEG, 2014) a variação do número de polos permite apenas uma variação discreta da velocidade e ainda resulta em um superdimensionamento da carcaça. A variação do escorregamento, apesar de resultar em uma mudança contı́nua da velocidade, produz perdas rotóricas e a faixa de variação é pequena. Por fim, a fabricante assinala, ainda, que a variação da frequência da tensão estatórica permite uma variação contı́nua da velocidade e neste ponto se faz necessário a utilização dos inversores estáticos de frequência. Variando-se a frequência da tensão de alimentação, varia-se também a velocidade do campo girante e consequentemente a velocidade mecânica de rotação da máquina. O torque desenvolvido pelo MIT é definido pela Equação (3.6): T = k1 φm Ir (3.6) Desprezando-se a queda de tensão devido à impedância dos enrolamentos do estator, o fluxo de magnetização (φm ) pode ser definido conforme a Equação (3.7): φm = k2 V0 f0 (3.7) onde: T – Torque disponı́vel na ponta do eixo do motor (N.m); φm – Fluxo de magnetização (Wb); Ir – Corrente no rotor (A); V0 – Tensão de alimentação do estator (V); f0 – Frequência da tensão de alimentação do estator (Hz); k1 e k2 – Constantes que dependem do material e da construção do motor; Admitindo-se que a carga no motor é constante, que a corrente no rotor depende dessa carga e, portanto, também não sofrerá variações, é possı́vel verificar que variando a relação V0 /f0 o fluxo e, consequentemente, o torque permanecem constantes. O motor fornece assim um ajuste contı́nuo de velocidade e conjugado com relação 3.3 CONTROLE DA VELOCIDADE DE MOTORES DE INDUÇÃO 21 a uma carga mecânica. As perdas podem ser minimizadas de acordo com as condições de carga, mantendo-se constante o escorregamento da máquina em qualquer velocidade, para a mesma carga (WEG, 2004). Ao observarmos a Figura 3.6 podemos notar que a variação da relação V0 /f0 é feita linearmente até a frequência nominal do motor, denominada frequência base. Acima dela a tensão é máxima e permanece constante, havendo neste caso apenas a variação da frequência aplicada ao enrolamento estatórico do motor. Tensão Vb fb Frequência Figura 3.6 Relação tensão versus frequência no estator de um MIT. A faixa acima da frequência nominal é denominada de região de enfraquecimento de campo, pois, a partir dela o aumento da frequência resultará na diminuição do fluxo magnetizante, provocando dessa maneira a diminuição do torque. A curva torque versus frequência é ilustrada na Figura 3.7. Torque T b Enfraquecimento de campo f Frequência b Figura 3.7 Curva Torque versus Frequência. 22 3.4 MOTORES DE INDUÇÃO TRIFÁSICOS MODOS DE CONTROLE Existem basicamente dois tipos de controle dos inversores estáticos de frequência: o escalar e o vetorial. Em linhas gerais o controle escalar baseia-se em uma estratégia de comando que consiste em manter constante a relação V0 /f0 e com isso mantem, também, o torque constante, igual ao torque nominal, independente da velocidade de funcionamento do motor. Tensão Corrente Em uma análise simplificada diz-se que a corrente que circula pelo estator depende, essencialmente, da tensão aplicada e da impedância (I = V /Z), que por sua vez é a composição da resistência e da reatância indutiva do estator (Z = [R2 + XL2 ]1/2 ). Sabe-se que a reatância indutiva (XL = 2πf L) depende da indutância L do bobinado do estator e da frequência da tensão aplicada. Para frequências acima de 30 Hz o valor da resistência é muito pequeno se comparado ao da reatância indutiva. No método de controle escalar a resistência é desprezada e desta maneira obtém-se um modelo simplificado onde a corrente e diretamente proporcional a tensão de alimentação e inversamente proporcional à indutância e a frequência. Com a estratégia de controle escalar varia-se a tensão proporcionalmente com a variação da frequência de modo que seja obtida no estator uma corrente constante na ordem da corrente nominal especificada para o motor (WEG, 2014). A Figura 3.8 mostra a curva da corrente em função da frequência para um inversor que utilize controle escalar. In 380 V In 254 V In 127 V 20Hz 40Hz 60Hz 80Hz Frequência Figura 3.8 Curva de corrente versus frequência no controle escalar. O controle escalar normalmente é aplicado em sistemas mais simples e que não exijam respostas rápidas a comandos de torque e velocidade. Quando o motor opera em baixas velocidades, isso ocorre normalmente quando a frequência da tensão de alimentação é baixa, a resistência do bobinado do estator interfere significativamente na corrente. Para corrigir esta questão alguns inversores possuem uma função denominada de boost de tensão, que tem o objetivo de compensar o efeito da queda de tensão na resistência estatórica, de maneira que a capacidade de torque do motor seja mantida. 3.4 MODOS DE CONTROLE 23 Para melhorar o desempenho do motor alguns inversores possuem, também, funções especiais para compensação de escorregamento e que tem o objetivo de atenuar a variação da velocidade em função da carga. O controle escalar e o mais utilizado devido a sua simplicidade e devido ao fato de que a grande maioria das aplicações não requer alta precisão e/ou rapidez no controle da velocidade. Em aplicações onde é necessária um performance dinâmica elevada, com respostas rápidas e alta exatidão na regulação da velocidade e torque dos motores, faz se uso de uma estratégia de comando denominado controle vetorial. O circuito de potência de um inversor de frequência com controle vetorial não é diferente de um inversor escalar e são compostos basicamente pelos mesmos blocos funcionais. O controle vetorial leva em consideração um modelo matemático mais complexo do motor e decompõe a corrente do estator em dois vetores: um que produz o fluxo magnetizante e outro que produz torque, regulando separadamente cada uma dessas grandezas (WEG, 2004, 2014). O controle vetorial pode ser realizado em malha aberta ou em malha fechada: Com sensor de velocidade: No sistema em malha fechada é necessário a instalação de um sensor de velocidade no eixo do motor. Este tipo de controle possibilita maior exatidão no controle da velocidade e do torque, inclusive em rotações muito baixas, próximo de zero. Sem sensor de velocidade: O sistema em malha aberta é, obviamente, mais simples que o controle com sensor, entretanto, apresenta algumas limitações, principalmente no controle do torque em baixas rotações. Em velocidades maiores é praticamente tão eficiente quanto o controle vetorial em malha fechada (WEG, 2014). As principais diferenças entre os dois tipos de estratégia são que o controle escalar considera apenas as amplitudes das grandezas elétricas instantâneas, referindo-as ao estator. O modelo matemático baseia-se no circuito equivalente do motor, isto é, são equações de regime permanente (WEG, 2004). No controle vetorial admite a representação das grandezas elétricas instantâneas por meio de vetores. A modelagem matemática toma como base as equações espaciais dinâmicas do motor, e dessa maneira é possı́vel a regulação independente para o torque e o fluxo. Capı́tulo 4 COMPONENTES DE RANHURA E ANÁLISE ESPECTRAL 4.1 ESTIMAÇÃO DA VELOCIDADE A PARTIR DOS COMPONENTES DE RANHURA DO ROTOR Sabe-se que quando um enrolamento trifásico é alimentado por correntes trifásicas, cria-se um campo girante, como se houvesse um único par de polos girantes, de intensidade constante. Este campo girante, criado pelo enrolamento trifásico do estator, induz tensões nas barras do rotor, que por estarem curto-circuitadas geram correntes, e, consequentemente, um campo no rotor, de polaridade oposta à do campo girante do estator. Como campos opostos se atraem e o campo do estator é rotativo, é desenvolvendo um conjugado que faz com que o rotor gire e tende a acompanhar a rotação do campo girante do estator (Fitzgerald; Kingsley Jr; Umans, 2006; Kosow, 1993; WEG, 2014). Vale ressaltar que, o campo criado pela corrente que circula no rotor também irá induzir tensões e, consequentemente, correntes no estator. Estudos (Nandi; Ahmed; Toliyat, 2001; Silva, 2014) mostram que as caracterı́sticas dessas correntes estão relacionadas aos parâmetros construtivos e de funcionamento do MIT, tais como: número de ranhuras, número de polos e frequência da tensão de alimentação do estator. A partir da relação entre estes parâmetros é possı́vel extrair informações importantes sobre o funcionamento do motor, como, por exemplo, o escorregamento e a velocidade. Este trabalho tem como base na análise dos componentes de frequência relacionado às ranhuras do rotor que estão contidas na corrente do estator. Em Silva e Oliveira (2012a) foi realizado um estudo que ajudar a interpretar as equações apresentadas na literatura e que são responsáveis pela caracterização e identificação dos componentes espectrais relacionados às ranhuras do rotor do tipo gaiola de esquilo. Em uma análise detalhada dessas equações foi possı́vel verificar a dependência do número de polos da máquina e do número de ranhuras do rotor na geração dos componentes espectrais, conforme pode ser constatado na Equação (4.1), a seguir: 25 26 COMPONENTES DE RANHURA E ANÁLISE ESPECTRAL fsh = λZ (1 − s) ± δ f0 p (4.1) onde: fsh – Frequência relacionada com os componentes de ranhuras do rotor (Hz); f0 – Frequência fundamental da alimentação (Hz); Z – Número de ranhuras do rotor; s – Escorregamento; λ – Qualquer número inteiro positivo. p – Número de pares de polo; δ – Ordem temporal do harmônico da fonte de alimentação (δ = 2k − 1, onde k = 1, 2, 3 . . . ); Segundo Silva (2014), o primeiro conjunto de componentes apresenta maior amplitude e, desta maneira, pode-se admitir que λ seja igual um e, portanto, resolvendo a Equação (4.1) para o escorregamento s temos que: p s=1− Z fsh ∓δ f0 (4.2) Ao substituirmos a Equação (4.2) na Equação (3.5) podemos verificar que a velocidade de rotação do eixo, também, pode ser expressa pela Equação (4.3): n= 60 (fsh ∓ δf0 ) Z (4.3) Ao observarmos as Equações (4.1), (4.2) e (4.3) podemos notar que para estimar a velocidade no eixo do motor, além dos parâmetros construtivos da máquina, como número de ranhuras do rotor e número de pares de polos do estator, é necessário conhecer a frequência da tensão de alimentação do estator e a frequência dos componentes relacionado às ranhuras do rotor. Na literatura estes componentes espectrais são denominados de Principal Slot Harmonics (PSH) (Silva; Oliveira, 2012a). Geralmente, para a determinação de f0 e fsh é utilizado uma famı́lia de algoritmos de processamento digital de sinais denominada de FFT (Ferrah; Bradley; Asher, 1992; Shi; Unsworth; Gao, 2006; Li; Hu, 2008). Entretanto é necessário que haja uma atenção especial na utilização destes algoritmos, devido às limitações referentes à exatidão na detecção dos componentes espectrais que não sejam múltiplos inteiros da frequência de amostragem (Silva; Oliveira, 2012b). Em face às limitações da DFT/FFT, aparece a Transformada Chirp-Z (CZT) que é baseada na transformada Z, onde o plano Z pode ser dividido em um arco de cı́rculo de comprimento arbitrário. A CZT constitui uma ferramenta muito útil para detecção de componentes espectrais em uma faixa limitada de frequência (Aiello; Cataliotti; Nuccio, 2005; Rabiner; Schafer; Rader, 1969). 4.2 ANÁLISE ESPECTRAL 27 Além do problema referente à resolução, a DFT/FFT possui ainda outro fator que restringe a sua aplicação e está relacionado à necessidade de que os componentes em frequência do sinal sejam estacionários. A tentativa de solucionar esta questão vem com a aplicação de uma técnica denominada de Short Time Fourier Transform (STFT) (Silva; Oliveira, 2012b). Esta técnica foi extremamente importante para o desenvolvimento deste projeto, haja vista que dispositivo foi desenvolvido para ser empregado, sobretudo, em sistemas que operam em regime não estacionário. Vale ressaltar, porém, que para este projeto foi implementado uma versão da STFT baseada na CZT, a qual foi denominada de STCZT (Short Time Chirp-Z Transform). Em (Silva; Oliveira, 2012b) também foi apresentado um estudo sobre a influência da duração da janela da STFT e a utilização da Transformada Chirp-Z no método para estimação da velocidade no eixo dos MITs. Os resultados apresentados mostraram que a técnica da CZT, apesar de exigir um maior esforço computacional, apresenta-se como um algoritmo bastante atrativo para a aplicação em questão, haja vista que com um número menor de amostras dos sinais foram obtidas resoluções melhores que a FFT e consequentemente uma maior exatidão na estimação. Com relação ao comprimento da janela de tempo da STCZT, Silva e Oliveira (2012b) deixam claro que há necessidade de se estabelecer uma relação de compromisso entre resolução e esforço computacional que é viabilizada partir da determinação de um comprimento mı́nimo e máximo para a janela. A determinação do comprimento ótimo utilizando métodos analı́ticos seria muito complexa, pois envolve muitos fatores, tais como relação sinal ruı́do, taxa de variação da carga, inércia do sistema, velocidade de operação, entre outras. Entretanto, Silva, Lima e Oliveira (2015b) apresentam uma metodologia para a detecção do comprimento de janela ideal para uma determinada aplicação. No algoritmo são realizadas sucessivas estimativas de velocidade com diferentes comprimentos de janela, para cada estimativa é calculado o erro associado e desta forma define qual comprimento de janela pode se ajustar melhor na relação de compromisso entre resolução e esforço computacional. 4.2 ANÁLISE ESPECTRAL Conforme já mencionado os principais algoritmos que foram desenvolvidos para este projeto são fundamentados em técnicas de processamento digital de sinais, especialmente àquelas que permitem a análise dos sinais no domı́nio da frequência. Diante disso serão apresentados, a seguir, alguns conceitos referentes a estas ferramentas. As potencialidades da análise espectral com base na Transformada de Fourier contı́nua são bem estabelecidas. Ainda que teoricamente atrativo, o cálculo prático do espectro via transformada clássica, empregando propriedades ou soluções analı́ticas, não é comum. Vários sinais de interesse, como voz, vı́deo e etc. não possuem expressões analı́ticas para descrevê-los. A maneira usual de lidar com sinais fı́sicos é fazendo-se uso da Transformada Discreta de Fourier (DFT), mas precisamente por meio de uma famı́lia de algoritmos denominada de Fast Fourier Transform (FFT). 28 COMPONENTES DE RANHURA E ANÁLISE ESPECTRAL Tipicamente a análise espectral é realizada através de um equipamento, especı́fico para esta finalidade, denominado de analisador de espectro. Entretanto, com o avanço das tecnologias eletrônicas, nos últimos anos têm surgido equipamentos de uso geral que permite a digitalização de sinais analógicos e o armazenamento em meio digital. Uma vez digitalizados e armazenados em memória computacional, essas informações podem ser avaliadas por meio das mais diversas técnicas de PDS, incluindo os algoritmos de análise espectral baseados na DFT. Exemplo, bem sucedido, desses equipamentos são os dispositivos de aquisição de dados fabricados pela National Instruments, muito populares no meio acadêmico. Recursos de digitalização também estão presentes em microcontroladores, onde as informações, depois de digitalizadas podem ser processadas por meio de algoritmos embutidos na memória desses dispositivos. A análise espectral de um sinal fornece informação adicional difı́cil de ser obtida numa análise temporal. Por exemplo, ao analisarmos um sinal senoidal levemente distorcido em função do tempo, dificilmente percebemos essa imperfeição. Na análise no domı́nio da frequência, pequenas distorções e imperfeições que implicam em componentes de frequência diferentes são facilmente identificadas, pois cada componente de frequência é visualizada separadamente. 4.2.1 Transformada rápida de Fourier A Fast Fourier Transform (FFT) é um algoritmo, ou mais precisamente uma famı́lia de algoritmos, que implementam a Discrete Fourier Transform (DFT) de um modo mais eficiente. A FFT, assim como a DFT, permite que um sinal seja analisado no domı́nio da frequência em vez do domı́nio de tempo discreto, entretanto, são reutilizados cálculos para fornecer tempos mais rápidos de computação (Cooley; Lewis; Welch, 1967; Ifeachor; Jervis, 2002; Proakis, 2007). A FFT foi implementada com o objetivo de diminuir complexidade temporal necessária para calcular uma DFT (Transformada Discreta de Fourier), visando aplicações em tempo real. Ela é usada frequentemente em áudio e outros sinais unidimensionais e aplicações de processamento de imagem (Zhang; Yu; Sheng, 2006). O gráfico ilustrado na Figura 4.1 mostra um sinal no domı́nio do tempo, bem como no domı́nio da frequência. No espectro de frequências é possı́vel ver claramente a frequência dos componentes, bem como, perceber as relações entre suas respectivas magnitudes. 4.2.2 Algoritmo Radix-2 Algoritmos FFT têm sido estudados por muitos anos (He; Torkelson, 1996). Vejamos a seguir uma breve descrição da ideia básica do Radix-2, um dos algoritmos mais populares para a implementação da FFT. A transformada de Fourier discreta (DFT) de uma sequência {x[n]} de N-pontos é definida pela Equação (4.4): 29 4.2 ANÁLISE ESPECTRAL Figura 4.1 Sinal representado no domı́nio do tempo e da frequência. X [k] = N −1 X x [n]WNkn para k = 0, 1, . . . , N − 1 (4.4) n=0 onde WNkn =e−j2πkn/N é denominado de twiddle factor. A ideia inicial consiste em dividir a sequência {x[n]} em duas outras, cada uma correspondente aos termos pares e ı́mpares de tal modo que a DFT possa ser calculada através de duas transformadas de N/2 pontos (Cuong; Lam; Minh, 2012). Conforme pode ser verificado a seguir: (N/2)−1 X [2r] = X rn (x [n] +x [n+ (n/2)])WN/2 (4.5) (x [n] −x [n+ (n/2)])WNn W rn N/2 (4.6) n=0 (N/2)−1 X [2r + 1] = X n=0 onde r = 0, 1, 3...N/2 − 1 Se N é um número com potência de 2, a DFT pode, finalmente, ser decomposta em DFTs de N/2 pontos, o que exige menos operações de soma e multiplicação (Cuong; Lam; Minh, 2012). Conforme definido na Equação (4.7). 30 COMPONENTES DE RANHURA E ANÁLISE ESPECTRAL (N/2)−1 X [k] = X WNkn x [n] +(−1) x [n+ (n/2)] k (4.7) n=0 Na prática esse processo de decompor a sequência {x[n]}, denominado de dizimação no tempo, é realizado sucessivamente até reduzir-se ao cálculo de uma DFT de duas amostras (Ifeachor; Jervis, 2002; Oppenheim; Schafer; Buck, 1999; Proakis, 2007). 4.2.3 A estrutura Butterfly No contexto dos algoritmos da transformada rápida de Fourier, uma butterfly é uma representação esquemática que explora o centro de simetria sobre os diferentes sinais a partir dos pares de equações obtidas através do processo de dizimação no tempo (Ifeachor; Jervis, 2002; Oppenheim; Schafer; Buck, 1999). A estrutura elementar denominada de Butterfly é mostrada na Figura 4.2. Figura 4.2 Estrutura elementar designada Butterfly. Fonte: (Proakis, 2007) Quando decompomos uma sequência {x[n]} em duas outras sequências teremos o diagrama butterfly para o cálculo das DFTs. A Figura 4.3 ilustra um exemplo para uma DFT de oito pontos decompostas em duas sequências de ı́ndices pares e ı́mpares. Posteriormente pode-se decompor novamente a sequência e obtém-se o diagrama conforme a Figura 4.4, onde é ilustrada a simplificação de uma DFT de quatro pontos referentes aos ı́ndices pares. E por fim, decompondo mais uma vez, o diagrama recai sobre a estrutura elementar apresentado na Figura 4.5. 31 4.2 ANÁLISE ESPECTRAL Figura 4.3 Simplificação de uma DFT de 8 pontos. Fonte: (Proakis, 2007) Figura 4.4 Simplificação de uma DFT de 4 pontos (ı́ndices pares). Fonte: (Proakis, 2007) Figura 4.5 Simplificação de uma DFT de comprimento 2. Fonte: (Proakis, 2007) 4.2.4 Transformada Chirp-Z (CZT) Sabe-se que a resolução da FFT (Res =fs /N ) é proporcional a frequência de amostragem (fs ) e inversamente proporcional ao número N de amostras. Portanto, para melhorar a resolução pode-se reduzir a frequência de amostragem e/ou aumentar o número amostras analisadas, entretanto, isso pode ser um fator limitante dependendo 32 COMPONENTES DE RANHURA E ANÁLISE ESPECTRAL da aplicação. Existem algumas técnicas que vêm sendo estudadas com o propósito de melhorar a resolução e consequentemente reduzir o erro de detecção dos componentes espectrais, tais como: zero-padding, a transformada interpolada de Fourier e a transformada chirp-Z (Aamir; Maud; Loan, 2005; Rabiner; Schafer; Rader, 1969; Schoukens; Pintelon; Van Hamme, 1992). A técnica zero-padding consiste em adicionar zeros ao sinal no domı́nio do tempo com o objetivo de aumentar o número de pontos e consequentemente melhorar a resolução da transformação. O algoritmo da transformada interpolada de Fourier propõe utilizar pontos presentes no espectro de frequência para estimar pontos que não estão presentes, isto, como o próprio nome sugere, por meio de interpolação. A transformada Chirp-Z (CZT) é baseada na transformada Z, onde o plano complexo é dividido em um arco de cı́rculo com comprimento arbitrário. A CZT é uma importante ferramenta na detecção de componentes espectrais numa faixa de frequência delimitada (Rabiner; Schafer; Rader, 1969). Embora esta técnica demande um maior esforço computacional, devido ao maior número de operações, matemática quando comparada à FFT, também resulta em uma maior exatidão na detecção dos componentes espectrais (Silva; Oliveira, 2012b). Para entender melhor a ideia por trás da CZT é conveniente iniciar pela definição da transformada Z de acordo a Equação (4.8) (Proakis, 2007). X[Z] = ∞ X x[n]Z −n (4.8) n=−∞ Se tomarmos um contorno circular zk de raio r com N pontos igualmente espaçados temos a Equação (4.9). kn zk = rei2π N , k = 0, 1, . . . , L − 1 (4.9) Substituindo a Equação (4.9) na Equação (4.8) obtemos a Equação (4.10). X [zk ] = N −1 X kn x [n] r−n e−i2π N , k = 0, 1, 2, . . . , N − 1 (4.10) n=0 Neste caso o algoritmo da FFT pode ser aplicado na sequência modificada x [n] r−n . De maneira genérica suponhamos que os pontos zk que comece em algum ponto no plano-Z zk = r0 eiθ0 e pensando em uma espiral formada a partir da origem, os pontos zk podem ser definidos conforme a Equação (4.11) . k zk = r0 eiθ0 R0 eiϕ0 , k = 0, 1, . . . , L − 1 (4.11) 33 4.2 ANÁLISE ESPECTRAL onde: r0 – Módulo do ponto inicial da curva; θ0 – Ângulo do ponto inicial; ϕ0 – Incremento do ângulo a partir do ponto inicial; R0 – Razão de variação dos módulos dos pontos; L – Número de pontos no plano complexo; Substituindo a Equação (4.11) pelo valor de Z na Equação (4.8) temos que: X [zk ] = N −1 X x [n] r0 eiθ0 −n R0 eiϕ0 −nk , k = 1, 2, . . . , M − 1 (4.12) n=0 Diferentemente da FFT, a CZT poder gerar diversos pontos no plano complexo para cada ponto no domı́nio do tempo, gerando, invés de pontos, curvas, cujo formato depende das variáveis: r0 ; θ0 ; ϕ0 e R0 . A Figura 4.6 ilustra a influência destes parâmetros na formação dessas curvas. Im(z) Im(z) Círculo Unitário Círculo Unitário r0 Re(z) Re(z) R0 =r0 =1 r0 <1 φ0 =θ0 =0 R0 =r0 =1 Im(z) Im(z) Círculo Unitário r0 θ0 Círculo Unitário Re(z) Re(z) R0 <1 R0 >1 Figura 4.6 Alocação dos pontos no plano complexo pela CZT. Fonte: (Proakis, 2007) Ao observamos a Figura 4.6 podemos notar que se R0 < 1, então o arco formará uma espiral em direção à origem do plano, caso R0 > 1 teremos a formação de uma espiral para longe da origem. Se r0 = R0 = 1 então o contorno será um arco de cı́rculo 34 COMPONENTES DE RANHURA E ANÁLISE ESPECTRAL unitário. Com isso podemos observar que a variação dos parâmetros possibilita a geração de diversos tipos de curvas. No entanto, vale ressaltar que este trabalho irá abordar um caso especı́fico da CZT, que é justamente a realização do arco sobre o cı́rculo unitário e nesse sentido será feito uso da capacidade de limitar a análise a uma faixa de frequência delimitada pelos parâmetros θ0 e ϕ0 . A Figura 4.7 resume melhor as possibilidades de curvas possı́veis de serem obtidas a partir da implementação da CZT e, sobretudo, permite uma comparação entre a implementação da DFT e da CZT sobre o cı́rculo unitário. Figura 4.7 Comparação entre a DFT e a CZT. Fonte: (Silva; Lima; Oliveira, 2015b) Quando comparada à DFT/FFT, a CZT apresenta grandes melhorias do que diz respeito à resolução espectral, que é obtida graças à redução da janela de observação em frequência, além de necessitar de um menor número de pontos amostrados (Aiello; Cataliotti; Nuccio, 2005). Para exemplificar melhor as vantagens da utilização da CZT, tomemos como exemplo um suposto sinal cuja frequência seja de 20 Hz e que o mesmo tenha sido amostrado a uma taxa de 100 amostras por segundo. Supondo, novamente, que os pontos contidos na Figura 4.7 sejam decorrentes das implementações da DFT e da CZT sobre este sinal, então podemos fazer as seguintes observações: (i) Ao aplicarmos a DFT sobre 8 amostras do sinal no domı́nio tempo obtêm-se 8 amostras igualmente espaçadas no intervalo [0; 2π] sobre o cı́rculo unitário e isso implica em uma resolução de 12,5 Hz que por sua vez define um erro máximo de 6,25 Hz associado a estimação dos componentes de frequência. No caso especı́fico do sinal de 20 Hz o valor mais provável da frequência detectada seria de 25 Hz, o que resultaria em um erro absoluto de 5 Hz. (ii) Por outro lado ao aplicarmos a CZT 35 4.2 ANÁLISE ESPECTRAL sobre os mesmo 8 pontos podemos obter um espectro de frequências com número maior, igual ou menor que 8 pontos. Entretanto, para fins práticos consideremos a obtenção de um número de pontos igual ao do sinal de entrada. Vale ressaltar que, diferentemente da DFT, com CZT pode-se delimitar a faixa de frequências de interesse em que se deseja efetuar a análise. Estes limites são definidos através dos parâmetros θ0 e ϕ0 . Assim, admitindo que na Figura 4.7 o intervalo [θ0 ; ϕ0 ] corresponde aproximadamente aos ângulos 0 e π/2, respectivamente. Tomando como base a frequência de amostragem de 100 Hz, este intervalo é equivalente a uma faixa de frequências compreendida entre 0 e 25 Hz e consequentemente obtêm-se uma resolução na ordem 3,2 Hz e um erro máximo associado a estimação dos componentes de frequência na ordem de 1,6 Hz. Portanto a CZT apresenta se como possı́vel substituta para a DFT/FFT em aplicações onde a resolução seja fator determinante. Os detalhes sobre a implementação do algoritmo da CZT serão discutidos na Subseção 6.2.1 do Capı́tulo 6. 4.2.5 Short time Fourier Transform (STFT) Além da limitação da DFT/FFT no que diz respeito à resolução do espectro de frequência, conforme discutido na seção anterior, existe ainda o fator relacionado à necessidade dos componentes de frequência serem estacionários. Se, por exemplo, a FFT for aplicada a um conjunto de amostras composto pela soma de duas senóides de frequências f1 e f2 , identificaremos no espectro de frequências as informações dessas duas frequências, entretanto não temos como afirmar em que instante de tempo cada sinal aparece. Neste contexto surge a Short Time Fourier Transform (STFT) que tem como objetivo determinar o instante aproximado de tempo onde as alterações do sinal acontece (Zhang; Yu; Sheng, 2006). Na prática os dados do sinal de entrada são divididos em janelas, as quais são utilizadas para o cálculo da transformada de Fourier. A STFT é definida matematicamente na Equação (4.13). X [k, n] = N −1 X x [n + m] w [m] e− i2πkm N para k = 0, 1, 2, . . . , N − 1 (4.13) m=0 Observa-se que o sinal no domı́nio do tempo é multiplicado por uma função w[m] denominada de janela e que serve para reduzir as perdas causadas pela descontinuidade dos sinais amostrados. A transformada de Fourier do Sinal resultante do “janelamento” é obtida conforme a janela “desliza” sobre o eixo do tempo resultando assim em uma representação do sinal bidimensional, conforme pode ser observado na Figura 4.9. A função janela w[m] é geralmente uma função par com valores reais e positivos que tem seu máximo em torno do zero (Silva, 2014). Os tipos de funções mais comuns para janelas são: Hanning, Hamming, Kaiser-Bessel, Blackman e Gaussianas. Cada uma dessas funções possuem caracterı́sticas que produzem diferentes efeitos sobre o espectro 36 COMPONENTES DE RANHURA E ANÁLISE ESPECTRAL resultante, algumas, por exemplo, garantem melhor resolução em frequência e já outras melhoram a resolução em amplitude. Em Silva (2014) foi realizado alguns testes que permitiu identificar qual é o tipo de janela é mais adequado para a aplicação abordada nesse trabalho. O autor realizou uma simulação onde foi sintetizado um sinal com Frequência modulada (FM). Os algoritmos de PDS foram aplicados sobre o sinal sintetizado e foram testadas a utilização de janelas baseadas em diferentes funções (Hamming, Hanning, Kaiser e Bartlett). Finalmente foi realizada a comparação dos dados estimados com o sinal original. A Figura 4.8 mostra o gráfico os comparação entre as curvas dos erros obtidos a partir da utilização dos diversos tipo de “função janela”. Ao observarmos o gráfico fica evidente que janela Hanning é que resulta em um erro menor. Por este motivo neste trabalho foi adotado este tipo janela e sempre que o termo “função janela” for utilizado estará fazendo referência a janela com função de Hanning. Figura 4.8 Erro entre a curva sintetizada e a curva estimada utilizando as funções janelas. Fonte: (Silva, 2014) A Figura 4.9 apresenta um espectrograma que nos permite obter informações de um determinado sinal, tanto no que diz respeito à identificação das frequências que compõem o sinal, como também dos instantes de tempo, aproximados, que cada frequência aparece. Em uma análise simplificada, podemos observar a presença de um componente de 10 Hz nos instantes de tempo aproximados entre 0 e 6 s; 25 Hz entre 6 e 10 s; 50 Hz entre 10 e 16 s e finalmente observa-se que um componente de 100 Hz aparece entre 16 e 20 s. A exatidão do cálculo do componente de frequência está diretamente relacionada com o comprimento da “função janela”, haja vista que a resolução no espectro de frequências é diretamente proporcional ao número de amostras utilizado na transformação (Silva; Oliveira, 2012b). Uma última e importante consideração deve ser feita com relação à utilização da STFT, pois, conforme já discutido, a análise de espectro utilizada nesse projeto é baseada no algoritmo da CZT. Nesse sentido a aplicação prática da ideia da STFT passa por uma 4.2 ANÁLISE ESPECTRAL 37 Figura 4.9 Espectrograma obtido a partir da aplicação da STFT. adaptação simples, que consiste basicamente na aplicação da CZT “janelada”, definindo assim a ideia da STCZT (Short Time Chirp-Z Transform). 4.2.6 Considerações adicionais Vale ressaltar a importância da aplicação dessas técnicas de PDS no projeto desenvolvido. Conforme já foi dito, a FFT, embora seja amplamente utilizada para análise espectral, possui algumas limitações. Uma delas é fato de extrair do sinal apenas informações sobre o domı́nio da frequência, de modo que não é possı́vel obter a informação de quando, no tempo, ocorrem as diferentes frequências que compõem o sinal. Levando em consideração que o sistema desenvolvido neste trabalho tem como uma de suas especificações principais o fato de ser destinado a sistemas que operem em regime não estacionário, fica evidente que a aplicação direta da FFT não permitiria que esta especificação fosse obedecida. É nesse sentido que neste trabalho foi aplicado a STCZT, haja vista que, devido ao processo denominado “janelamento”, é possı́vel obter uma representação bidimensional do sinal, permitindo obter informações sobre um amplo domı́nio. A aplicação da CZT foi uma alternativa a outra limitação da FFT, que é a questão da exatidão na detecção dos componentes espectrais. O algoritmo da CZT embora exija maior esforço computacional possibilita uma exatidão muito maior na detecção desses componentes, haja vista que através dele é possı́vel selecionar uma faixa de frequências onde se deseja analisar, melhorando significantemente a resolução do espectro. Esta 38 COMPONENTES DE RANHURA E ANÁLISE ESPECTRAL exatidão na detecção dos componentes de frequência é especialmente importante para a estimação da velocidade de giro do eixo do motor. Para ter uma ideia de como a exatidão interfere nesses resultados basta analisar a Equação (4.3) que é utilizada para a estimação da velocidade. Fica clara a importância de uma medida mais exata, especialmente para a estimação da frequência de alimentação da rede elétrica (f0 ), pois a depender da ordem temporal (δ) do componente que é utilizado, um erro pequeno na estimação de f0 poderá resultar em um erro considerável na estimação da velocidade. Capı́tulo 5 SISTEMAS EMBUTIDOS 5.1 TECNOLOGIAS EMBEDDED Dados estimados por pesquisas em alta tecnologia indicam que mais de 90% dos microprocessadores fabricados na atualidade são destinados à equipamentos que normalmente não são chamados de computadores. Dentre alguns destes dispositivos estão os fornos micro-ondas, aparelhos celulares, automóveis, aparelhos de TV e DVD entre outros (Gupta, 2002). O que diferencia este conjunto de dispositivos de um computador pessoal (PC) é o seu projeto baseado em um conjunto dedicado e especialista formado por hardware, software e periféricos, constituindo o que é denominado por Sistema Embutido ou Sistema Embarcado (Reis, 2004). No inı́cio dos anos 2000 já era nı́tido a crescente evolução do mercado mundial de comercialização de dispositivos que englobam a categoria de Sistemas Embutidos. Os dados da época indicavam que dispositivos digitais para controle de Drivers de corrente alternada já possuı́a status de tecnologia consolidada, com faturamento na casa dos 12 bilhões de dólares e projeções de crescimento anual na faixa dos 15% (Holtz, 2002). O ESC Brazil, maior evento de tecnologia embedded na América Latina, apresentou em agosto de 2013, um estudo sobre o impacto econômico do setor no Brasil e no mundo onde foi estimado que as tecnologias de sistemas embutidos movimentassem cerca de US$ 14 trilhões até o ano 2023. As tecnologias embedded encontram-se cada vez mais presentes em nosso cotidiano, e deste modo tornam-se necessários estudos nas áreas de projeto em hardware, software e interfaceamento com base em sistemas embutidos. 5.2 CONCEITOS BÁSICOS Um sistema é classificado como embutido quando este é dedicado a uma única tarefa e interage continuamente com o ambiente a sua volta por meio de sensores e atuadores 39 40 SISTEMAS EMBUTIDOS (Ball, 2005). Todo sistema embutido é composto por uma unidade de processamento, que é um circuito integrado, fixado a uma placa de circuito impresso. Possuem uma capacidade de processamento de informações vinda de um software que está sendo processado internamente nessa unidade, de modo diz-se que o software está embutido na unidade de processamento. Todo software embutido é classificado como firmware (Ball, 2005). A Figura 5.1 mostra o diagrama básico de um sistema embutido monitorando um ambiente. Microcontrolador Memória Periféricos Firmware CPU Conversor A/D Conversor D/A Atuador Sensor Ambiente Figura 5.1 Diagrama básico de um sistema embutido. Segundo (Cunha, 2013) a principais caracterı́sticas de um sistema embutido está em sua capacidade computacional e a sua independência operacional. Outros aspectos relevantes são referentes aos tipos de sistemas, modos de funcionamento e itens desejados em aplicações embarcadas. O autor destaca ainda os principais tipos de aplicações embarcadas, como: aplicações de propósito gerais; em sistemas de controle; sistemas de comunicação e processamento digital de sinais. Dado a natureza do projeto desenvolvido, cabe, aqui, uma pequena explanação sobre as aplicações que envolvem processamento digital de sinais. Normalmente técnicas de PDS estão presentes em sistemas onde envolve um grande volume de informação a ser processada em curto espaço de tempo. Os sinais a serem tratados são digitalizados através de um conversor analógico-digital, processados, e a depender da aplicação, podem novamente serem convertidos em sinais de controle que permitem atuar sobre uma determinada planta. Os DSPs (Digital Signal Processor ) são dispositivos destinados à diversas funções, tais como: tratamento de áudio; filtros digitais; moduladores; demoduladores; compressão de vı́deo; radares; sonares e muitas outras. A maioria dos DSPs são dispositivos com alto poder de processamento se comparado a um microcontrolador de uso geral, haja vista que seu hardware é projetado para oferecer grande desempenho em atividades que envolvam processamento digital de informação. Essas caraterı́sticas englobam desde o conjunto de instruções até a própria organização interna do hardware, com a presença de coprocessadores com finalidades especı́ficas. Alguns DSPs, por exemplo, possuem embutidos em sua arquitetura um coprocessador matemático destinado à implementação 5.3 PROJETO DE SISTEMAS EMBUTIDOS 41 do algoritmo da FFT, o que os tornam atraentes para aplicações que necessite de análise espectral em tempo real. Com o avanço da microeletrônica, atualmente alguns microcontroladores passaram a ser dotados com alguns recursos que antes eram restritos à DSPs, como por exemplo, o Blackfin da Analog Devices, o Cortex-M4 da ARM e os DsPICs da Microchip. Estes recursos mais sofisticados que equipam alguns microcontroladores, como o ARM Cortex, por exemplo, foram extremamente importantes para o desenvolvimento deste projeto, uma vez que a base dos principais algoritmos que foram embutidos é fundamentada em técnicas avançadas de processamento digital de sinais. Estes recursos serão discutidos com mais detalhes no Capı́tulo 6. 5.3 PROJETO DE SISTEMAS EMBUTIDOS O projeto de sistemas embutidos, por envolver conceitos pouco analisados pela computação de propósitos gerais, pode se tornar uma tarefa muito complexa. Questões como portabilidade, limite de consumo de potência sem perda de desempenho, baixa disponibilidade de memória, necessidade de segurança e confiabilidade, operação em uma rede e o curto tempo de projeto fazem com que o desenvolvimento de sistemas computacionais embutidos seja considerado uma área de estudo muito ampla (Wolf, 2012). Levando-se em conta uma possı́vel complexidade da arquitetura de um sistema embutido, contendo múltiplos componentes de hardware e software em torno de uma estrutura de comunicação e tendo ainda uma grande variedade de soluções possı́veis visando o atendimento de requisitos de projeto é essencial a adoção de uma metodologia consistente que maximize as tarefas envolvidas na elaboração do projeto. Embora existam na literatura recomendações que apontam para uma metodologia ideal, segundo a perspectiva do estado da arte da pesquisa na área, é muito complexo determinar um método ótimo que leve a uma solução inquestionável (Wolf, 2012). O sistema embutido geralmente é uma solução formada de microcontrolador e firmware, dedicados e especı́ficos para desempenhar as funções operacionais especificadas no projeto de determinado equipamento. Para Cunha (2013) assim como para Wolf (2012), existem outros fatores importantes e que devem ser levados em consideração no desenvolvimento de um sistema embutido, tais como: dimensões fı́sicas; potência dissipada; robustez e tolerância a falhas; requisitos de tempo real e, dentre outras, segurança e integridade das informações. Segundo Cunha (2013), normalmente, o primeiro passo do projeto de um sistema embutido é escolher o núcleo do sistema, ou seja, a unidade de processamento do sistema embutido que pode ser um microcontrolador ou um microprocessador. Levando em consideração a existência de um espaço quase infindável de soluções arquiteturais possı́veis, com uma correspondente complexidade computacional para exploração do mesmo esta etapa é usualmente simplificada pela escolha prévia de uma plataforma arquitetural conhecida e adequada ao domı́nio da aplicação. 42 SISTEMAS EMBUTIDOS Atualmente o mercado de tecnologias embedded disponibiliza diversas plataformas com o intuito de acelerar o desenvolvimento de dispositivos de sistemas embutidos. A maioria dos fabricantes disponibilizam kits de desenvolvimento baseados em seus chips. Os mais comuns são o kits baseados em microcontroladores que agregam, também, outros componentes necessários à implementação de tarefas secundárias, todos interconectados através de uma estrutura de comunicação também pré-definida. Um exemplo dessas plataformas é a STM32F4-Discovery fabricado pela ST Microeletronics e que foi utilizada como base para este trabalho. Os detalhes sobre suas especificações e funcionalidades serão discutidos na Seção 6.1 do Capı́tulo 6. 5.4 SISTEMAS EMBUTIDOS DE TEMPO REAL Juntamente com o avanço da microeletrônica, alcançado ao longo dos anos, houve também um aumento da complexidade dos projetos de sistemas embutidos, que, naturalmente, passaram a exigir soluções mais robustas. Essas soluções passaram a exigir nı́veis elevados de abstração de software e que pudesse, de maneira eficiente, interagir com o hardware. Nesse âmbito destaca-se uma classe de sistemas que trabalham com restrições temporais e são denominados Sistemas de Tempo Real. A principal caracterı́stica desses sistemas é que além de executarem uma determinada tarefa, seja de processamento ou de controle, suas respostas ao ambiente devem ser dadas em tempo suficiente para que o sistema não entre em um estado inconsistente. Segundo Cooling (2003), um Sistema de Tempo Real pode ser entendido como um software que gerencia os recursos de um sistema computacional, com a garantia de que todos os eventos sejam atendidos dentro de suas respectivas restrições de tempo, garantido, ainda, que todos os recursos sejam gerenciados da maneira mais eficiente possı́vel. O software responsável pelo gerenciamento dos recursos computacionais pode ser desenvolvido pelo próprio projetista, nesses casos temos o que é chamado desenvolvimento bare-metal. Sistemas mais complexos costumam ser implementados com base em um Kernel, isto é, em um núcleo de um Sistema Operacional de Tempo Real que no mercado é conhecido como RTOS (Real-Time Operation System). Para entender a importância de um Sistema de Tempo Real é preciso entender o conceito de restrição de tempo para eventos ou tarefas computacionais. Existem basicamente dois tipos de sistemas de tempo real: soft e hard. No soft, as tarefas são realizadas o mais rápido possı́vel, porém, as tarefas não têm a obrigatoriedade de serem concluı́das em um intervalo de tempo especı́fico. Nesses casos, a não execução de uma tarefa dentro das restrições temporais não causam falhas graves ao sistema. Já no hard, as tarefas têm não apenas que serem executadas corretamente, mas também em tempo máximo rigorosamente especificado. Um sistema de tempo real é um sistema que reage a um estı́mulo do ambiente dentro de intervalos de tempo bem definidos. Existem basicamente dois tipos de sistemas de tempo real: soft e hard. No soft, as tarefas são realizadas o mais rápido possı́vel, porém, as tarefas não têm que ser concluı́das em um intervalo de tempo especı́fico. Já no hard, 5.5 SISTEMAS OPERACIONAIS DE TEMPO REAL 43 as tarefas têm não apenas que serem executadas corretamente, mas também em tempo máximo rigorosamente especificado. A maioria dos sistemas consiste em uma combinação desses requisitos. As aplicações dos sistemas de tempo real são bastante vastas, mas a maioria delas é disponibilizada por meio de tecnologias embutidas (Labrosse, 2002). 5.5 SISTEMAS OPERACIONAIS DE TEMPO REAL Sistemas operacionais como Microsoft Windows e MAC OS fornecem uma excelente plataforma para desenvolvimento e, a depender dos requisitos do sistema, permite a execução de aplicações não crı́ticas de medição e controle. Entretanto, por serem sistemas operacionais projetados para um propósito geral, eles não são as melhores opções para executar aplicações que necessitem de um desempenho determinı́stico ou de um maior tempo sem falhas (Yamamoto; Azevedo, 2013). O kernel de um Sistema Operacional (SO) de propósito geral é projetado para executar uma variedade de aplicações simultaneamente, assegurando que todas as aplicações possuam um tempo de processamento. Esses sistemas operacionais também devem responder à interrupções de periféricos como mouse e teclado, sendo que o usuário tem controle limitado sobre o modo como essas tarefas são manipuladas pelo processador. Como resultado, tarefas de alta prioridade podem ser interrompidas para que tarefas de baixa prioridade sejam executadas, fazendo com que seja impossı́vel garantir um tempo de resposta constante para suas aplicações crı́ticas. Em contraste, sistemas operacionais de tempo real proporcionam a capacidade de priorizar tarefas, para que as tarefas mais crı́ticas possam sempre ter controle do processador quando necessário. Essa propriedade possibilita a criação de aplicações com resultados que podem ser previstos (Yamamoto; Azevedo, 2013). Para Burns e Wellings (2001), um sistema operacional de tempo real (RTOS) para funcionar adequadamente, além de cobrir as funções principais, como gerência de processos, comunicação entre processos, gerência de memória e dispositivos de entrada e saı́da, depende, também do atendimento correto de requisitos temporais associados à execução dos processos, tais como os tempos máximos de execução, denominado de deadlines, e os intervalos de tempo entre os inı́cios sucessivos de execução de um processo. As restrições temporais têm grande influência, principalmente, sobre a função associada à gerência de processos, isto é, sobre a polı́tica de escalonamento de tarefas. Num RTOS, cada tarefa tem uma prioridade associada, definida inicialmente pelo projetista, mas que pode variar de acordo com critérios definidos pelo algoritmo de escalonamento como forma de garantir o atendimento das restrições temporais. A alternância entre tarefas, denominada de troca de contexto, em uma aplicação de tempo real, deve ser preemptiva, ou seja, a execução de uma tarefa pode ser interrompida, para que outra tarefa com maior prioridade seja executada. Em um sistema operacional de tempo real, uma tarefa pronta para executar, não necessariamente, terá sua execução iniciada, como acontece em um SO convencional. Normalmente é executada a tarefa que tem prioridade máxima naquele instante de tempo. Um RTOS utiliza temporizadores que permitem pro- 44 SISTEMAS EMBUTIDOS gramar interrupções para execução de funções como o escalonamento de tarefas (Burns; Wellings, 2001). Métricas para a avaliação de RTOS incluem, entre outras, a latência das interrupções (tempo decorrido entre o pedido de interrupção e seu atendimento completo), o tempo de chaveamento de contexto, a resolução do relógio dos temporizadores e o tempo de execução das diversas chamadas do sistema. Segundo Li, Potkonjal e Wolf (1997), um sistema operacional de tempo real projetado para aplicações em sistemas embutidos precisam atender outros requisitos além daqueles já exigidos a um RTOS. Primeiramente, os serviços devem ser oferecidos por meio de bibliotecas modulares que poderão ser utilizados pelo projetista de acordo as necessidades do projeto no momento da geração da aplicação. Nesse sentido cumpre-se o requisito de escalabilidade. Em segundo lugar, um RTOS deve atender restrições de projeto da aplicação, tais como, a quantidade de memória exigida, restrições de desempenho e consumo de potência (Li; Potkonjal; Wolf, 1997; Stepner; Rajan; Hui, 1999). Existe, disponı́vel no mercado, um número grande de sistemas operacionais de tempo real dedicados a sistemas embutidos. Alguns são de livre distribuição e outros são pagos. Alguns dos principais utilizados atualmente são: FreeRTOS; µC OS-II/III; Cos; QNX; VxWorks; Monta Vista e outros; Uma das especificações do protótipo desenvolvido é de que o mesmo possa, também, ser aplicado em sistemas com requisitos de operação em tempo real, ou seja, as rotinas envolvidas na implementação dos algoritmos devem ser executadas em um tempo máximo que deve ser severamente respeitado. Embora esse requisito pudesse ser atendido, também, por meio de uma implementação bare-metal a versão final do firmware do protótipo desenvolvido foi elaborada com base no FreeRTOS. As discussões a cerca da implementação e principais caracterı́sticas do RTOS serão tratadas na Seção 6.9 do Capı́tulo 6. Capı́tulo 6 PROJETO 6.1 ESPECIFICAÇÃO DA PLATAFORMA DE HARDWARE Geralmente o primeiro passo do projeto de um sistema embutido é escolher o núcleo do sistema, ou seja, a unidade de processamento, que pode ser um microcontrolador ou um microprocessador. Contudo, as possı́veis soluções de arquitetura para a implementação de uma determinada aplicação embutida são diversas e isso pode fazer com que o processo de especificar uma arquitetura computacional se torne uma tarefa muito complexa. Nesse sentido, a utilização de plataformas de hardware padronizadas e previamente testadas é bastante conveniente. Existem soluções orientadas para diversos domı́nios de aplicação e a adoção de uma delas resulta numa grande redução no tempo de projeto de um determinado sistema. Os trabalhos iniciais desenvolvidos para esta pesquisa foram apoiados na utilização de um kit de desenvolvimento baseado no microcontrolador STM32F103VE (STMicroelectronics, 2015). O kit HY-STM32-100P agrega diversos módulos (Display de LCD, pinos de entrada e saı́da, conector USB/RS-232, SDCARD) que permite o acesso facilitado aos recursos do dispositivo. O microcontrolador possui um núcleo ARM Cortex M3 que opera a 72 MHz, com 64 KB de memória RAM (Random Accesses Memory), 512 kB de memória flash, conversor analógico digital de 12 bits, acesso direto à memória, além de outros periféricos. Alguns testes foram realizados, em uma iniciativa de se estabelecer uma configuração de hardware inicial para o projeto. Para tanto foi implementado um analisador de espectro, baseado em análise de Fourier. Nessa etapa foi possı́vel estudar alguns recursos do dispositivo que foram extremamente importantes para a viabilização do projeto, tais como o ADC (Analog Digital Converter ) e DMA (Direct Memory Access). Com a implementação das rotinas de PDS, mais especificamente da FFT, foi possı́vel avaliar o poder de processamento do Cortex-M3. Apesar dos testes iniciais indicarem positivamente a viabilidade de utilização da plataforma de hardware, os trabalhos posteriores mostraram algumas limitações do microcontrolador. A primeira foi com relação à quantidade de memória RAM e memória 45 46 PROJETO FLASH, pois, para um bom desempenho dos algoritmos de PDS, alguns coeficientes precisam ser calculados previamente e armazenados em memória. Desde as especificações iniciais do projeto estes recursos se mostraram limitantes. Outra questão foi com relação aos resultados obtidos nas implementações iniciais do algoritmo da CZT. Em casos práticos, a implementação eficiente da CZT, que será discutida mais adiante, envolve um convolação discreta, ou seja, é necessária a utilização de duas FFTs e uma IFFT (Inverse Fast Fourier Transform). Fica evidente que desenvolvimento do algoritmo da CZT naturalmente envolve um custo computacional maior que o da FFT e levando em conta as restrições de memória detectadas, aliando se ainda o fato de o microcontrolador suportar apenas aritmética de ponto fixo, o que torna ainda mais complexo o processo como um todo, foi necessário buscar por alternativas mais robustas para o desenvolvimento do projeto. Após uma pesquisa sobre as alternativas que pudessem viabilizar o desenvolvimento do trabalho, foi adquirido, pelo grupo de pesquisa, o kit de desenvolvimento stm32f4discovery que é baseado em núcleo Cortex M4 e é fabricado pela ST Microelectronics. A Figura 6.1 mostra imagem do kit. Figura 6.1 Kit de desenvolvimento STM32F4-Discovery. O principal atrativo para a utilização deste kit no desenvolvimento do trabalho foi o microcontrolador STM32F429, cujas principais caracterı́sticas são: Núcleo de 32 bits com unidade de ponto flutuante; opera em frequências de até 180 MHz; Instruções DSP; Multiplicador/acumulador em hardware, 2 MB de memória Flash; 256 kB de memória SRAM, 3 Conversores analógico digital de 12 bits; 2 Conversores digital analógico de 12 bits; 16 canais de DMA (Direct Memory Access). Além das instruções DSP, alguns desses periféricos, tais como o ADC, DMA e FPU (Floating-Point Unit) foram extremamente importantes para o desenvolvimento do projeto. As discussões sobre as caracterı́sticas de cada um deles serão discutidas, mais adiante, dentro do contexto em que forem aplicados. 6.2 ALGORITMOS DE PROCESSAMENTO DIGITAL DE SINAIS 6.2 6.2.1 47 ALGORITMOS DE PROCESSAMENTO DIGITAL DE SINAIS Implementação do algoritmo da CZT Para descrever os procedimentos envolvidos na implementação do algoritmo da CZT nos lembremos da definição apresentada da Equação (4.12), descrita novamente a seguir: X[zk ]= N −1 X −n x[n](r0 eiθ0 ) (R0 eiϕ0 ) −nk , k = 0, 1, 2, . . . , M − 1 (4.12) n=0 Para simplificar a representação assumimos que A = r0 eiθ0 e W = R0 e−iϕ0 , dessa forma obtemos a Equação (6.1). X[zk ]= N −1 X x[n]A−n W nk , k = 0, 1, 2, . . . , M − 1 (6.1) n=0 A ideia básica do algoritmo consiste em um “artifı́cio” baseado na substituição do termo nk pela identidade de Bluestein (Smith, 2007), conforme definida na Equação (6.2). nk = n2 k 2 (k − n)2 + − 2 2 2 (6.2) Substituindo a Equação (6.2) na Equação (6.1) obtemos a Equação (6.3). X[zk ]=W k2 2 N −1 X n=0 n2 x[n]A−n W 2 W − | {z } (k−n)2 2 (6.3) y[n] (k−n)2 O termo W − 2 sugere que a Equação (6.3) envolve uma operação de convolução discreta. Lembremos que a convolução de duas sequências r(n) e s(n) pode ser expressa por conforme a Equação (6.4). t(k) = N −1 X s[n]r[k − n], k = 0, 1, . . . , L − 1 n=0 (6.4) ou r[n] ⊗ [n] = t(k) = N −1 X n=0 r[n]s[k − n] 48 PROJETO A Equação (6.3) poder ser entendida como um processo de 3 etapas que consiste em: 1. Formar uma nova sequência y[n] pela ponderação de x[n] de acordo com a Equação (6.5): n2 (6.5) y[n] = x[n]A−n W 2 , n = 0, 1, . . . , N − 1 2. Efetuando a convolução de y[n] com a sequência v[n] definida como: n2 (6.6) v[n] = W − 2 , n = 0, 1, 2, . . . , M − 1 obtém-se a sequência g[k] conforme: g[k] = N −1 X y[n]v[k − n], k = 0, 1, . . . , L − 1 (6.7) n=0 3. Multiplicando g[k] por W k2 2 obtém-se: X[k] = g[k]W k2 2 (6.8) , k = 0, 1, . . . , M − 1 Este processo descreve os principais procedimentos envolvidos no algoritmo da CZT e está ilustrado na Figura 6.2. x(n) y(n) Conv. Discreta X(k) g(k) n=0,1,...,N-1 k=0,1,...,M-1 n2 -n 2 A W - n2 v(n)=W 2 k2 2 W Transformada Chirp-Z Figura 6.2 Ilustração dos passos envolvidos no cálculo da CZT. Em termos práticos a aplicabilidade do algoritmo da CZT depende da disponibilidade de um método de alto desempenho computacional para efetuar o cálculo da convolução discreta. Uma técnica eficiente, que confere alta performance nessa tarefa, baseia-se no teorema da convolução que afirma que uma operação de convolução no domı́nio do tempo é equivalente a operação de multiplicação no domı́nio da frequência. Este artifı́cio é utilização na implementação do algoritmo Fast Convolution (Convolução Rápida), cujo diagrama de blocos é mostrado na Figura 6.3. Primeiramente aplica-se a FFT sobre a sequência y(n) e obtém-se Y(r); similarmente a FFT é aplicada sobre v(n) 49 6.2 ALGORITMOS DE PROCESSAMENTO DIGITAL DE SINAIS y(n) FFT Y(r) n=r=0,1,...,L-1 v(n) FFT V(r) G(r) IFFT g(k) k=0,1,...,M-1 Convolução Discreta Figura 6.3 Diagrama de blocos do algoritmo da convolução discreta. e é obtido V(r); a multiplicação de Y(r) por V(r) resulta em G(r); finalmente é aplicada a IFFT (Inverse Fast Fourier Transform) sobre G(r) e obtém-se a sequência g(k). Sobre o custo computacional, considere as sequências x(n) e X(k), indicadas na Figura 6.2, para N e M moderadamente grande, em uma implementação direta da convolução o tempo estimado para o cálculo da CZT seria proporcional a N*M. Entretanto, sob a abordagem da convolução rápida, o tempo de computação é aproximadamente proporcional a [N + M ] ∗ log2 [N + M ] (Rabiner; Schafer; Rader, 1969). As discussões sobre os tempos computacionais envolvidos na execução do algoritmo da CZT, desenvolvido neste projeto, serão apresentadas na Subseção 6.3.2 deste capı́tulo. Um ponto importante sobre o algoritmo da convolução rápida, que deve ser ressaltado, diz respeito à condição de identidade entre a convolução discreta/linear e a convolução circular (Oppenheim; Schafer; Buck, 1999). Sabe-se que a convolução linear entre dois sinais de comprimentos M e N, por exemplo, resultará em nova sequência de comprimento M+N-1. Por outro lado, sabemos, também, que o comprimento da sequência obtida a partir da aplicação da DFT/FFT é igual ao das sequências no domı́nio do tempo. Por exemplo, ao aplicar a FFT sobre dois sinais de comprimento L=M=N obtêm-se dois vetores de comprimento L, portanto, a multiplicação dessas duas sequências resultará também em um novo vetor de comprimento L, obviamente menor que N+M-1. Esse procedimento é conhecimento como Convolução Circular e nele ocorre um fenômeno denominado aliasing de covolução, isto é, ocorre uma sopreposição dos dados no vetor resultante. Para que o resultado obtido por meio da convolução circular seja igual ao obtido por através da convolução linear/discreta é necessário que uma condição de identidade seja respeitada. Na prática os comprimentos das sequências originais devem ser aumentados, com adição de valores nulos (zeros), de modo a obter uma nova sequência de comprimento L ≥ N+M-1. Respeitando essa condição, podemos executar o algoritmo descrito pelo diagrama da Figura 6.3 com a designação de convolução discreta. Todos os procedimentos envolvidos na implementação do algoritmo da CZT estão resumidos nos seguintes passos: 1. Definir o valor da variável L como um número inteiro em potência de 2, de tal modo 50 PROJETO que seja maior ou igual a M + N − 1. A potência de 2 é um restrição imposta pelo algoritmo FFT utilizado, que no caso deste projeto é o Radix-2. 2. Formar uma nova sequência y(n) de comprimento L a partir da ponderação descrita pela Equação (6.5). Conforme já mencionado, para atender a condição de identidade entre a convolução circular e a convolução linear, a sequência y(n) é expandida com valores nulos para os ı́ndices na faixa entre N e L − 1, conforme descrito pela Equação (6.9). ( n2 n = 0, 1, 2, . . . , N − 1 x[n]A−n W 2 , (6.9) y[n] = 0, n = N, N + 1, . . . , L − 1 3. Calcular a DFT/FFT de L pontos da sequência y(n), obtida por meio da Equação (6.9), resultando em uma nova sequência denominada Y (r), onde r = 0, 1, ..., L − 1. 4. Formar a sequência v(n) conforme definida pela Equação (6.10), descrita a seguir: v[n] = n2 W− 2 , arbitrário, 2 W − (L−n) 2 , 06n6M −1 M − 1 6 n 6 L − N + 1 se L > N + M − 1 (6.10) L−N +16n6L−1 Note-se que se L = N +M −1, não haverá termos de valores arbitrários em V (n). A sequência V (n) é definida de maneira peculiar a fim de fazer com que a convolução circular convenientemente possa produzir a convolução discreta. 5. Calcular a DFT/FFT de L pontos da sequência v(n), obtida por meio da Equação (6.10), resultando em uma nova sequência denominada V(r), onde r=0,1,2,...,L-1. 6. Mutiplicar as sequências Y (r) e V (r), definindo um nova sequência G(r) = Y (r)V (r), onde r = 0, 1, 2, ..., L − 1. 7. Calcular a IDFT/IFFT de L pontos da sequência G(r), resultando em g(k), onde k = 0, 1, ..., L − 1. 8. Finalmente multiplicam-se os primeiros M termos de g(k) por W conforme a Equação (6.11), os valores de X(k): X(k) = W k2 2 {g(k)}, k = 0, 1, . . . , M − 1 k2 2 , definindo, (6.11) Conforme pode ser notado para implementação dos algoritmos da CZT são necessárias duas FFTs e uma IFFT. Os algoritmos das transformadas de Fourier foram obtidos através da CMSIS DSP software library, uma biblioteca, desenvolvida pela ARM, com mais de 60 funções para vários tipos de dados: ponto fixo (Q7, Q15, Q31) e ponto 51 6.2 ALGORITMOS DE PROCESSAMENTO DIGITAL DE SINAIS flutuante (32 bits). As implementações para Cortex-M4 são otimizadas para o conjunto de instruções DSP (Martin, 2013; Yiu, 2014). O firmware foi desenvolvido utilizando a IDE uVision 5.0 da KEIL integrado ao compilador ARMCC. 6.2.2 Validação do algoritmo A validação do algoritmo da CZT foi realizada através de uma comparação entre os resultados obtidos com o firmware embutido no kit de desenvolvimento e o Matlab executado em um computador de uso geral. Para tanto foram utilizados 15 segundos de um sinal no domı́nio do tempo sobre o qual foram realizadas sucessivas aplicações da CZT. O erro percentual entre os resultados foi calculado tomando como referência o valor obtido com a execução no Matlab. A Figura 6.4 mostra o desvio entre as duas implementações e o histograma. Pode-se notar que o erro máximo calculado foi na ordem 0,0074%, que a princı́pio foi considerado aceitável. No segundo gráfico, onde é apresentado o histograma, é possı́vel notar que a maioria das ocorrências de erro está na faixa entre -0,005% e 0,003%. O desvio padrão associado à comparação dos resultados é da ordem de 0,0028%. −3 Erro percentual (Matlab vs Discovery) x 10 0,0074% Erro (%) 5 0 −5 −0,0073% 0 5 10 Tempo(s) 15 Número de ocorrências Histograma do erro (Matlab vs Discovery) 30 Desvio padrão: 0,0028 % 20 −0,005% 0,003% 10 0 −8 −6 −4 −2 0 2 Valor mais provável do erro (%) 4 6 8 −3 x 10 Figura 6.4 Erro percentual entre os cálculos realizados pelo Matlab e pelo firmware. 52 6.2.3 PROJETO Testes iniciais com dados de corrente Uma vez que o algoritmo da CZT foi implementado e validado, a etapa posterior foi desenvolver as rotinas para estimação da velocidade no MIT e verificar, também, a influência da FPU no tempo de processamento dos dados. Essa primeira etapa teve como foco verificar a capacidade do microcontrolador de realizar os cálculos envolvidos na técnica de estimação de velocidade e, desde modo, foi adotada uma abordagem metodológica baseada na análise off-line dos dados da corrente do estator de um MIT que foram coletados previamente. Desta maneira não seria, a princı́pio, necessário trabalhar nos circuitos responsáveis pelo condicionamento dos sinais analógicos, haja vista que os dados não precisariam ser digitalizados pelo ADC do microcontrolador. Os dados utilizados foram obtidos nos Laboratórios de Máquinas Elétricas e Intrumentação Eletrônica do Departamento de Engenharia Elétrica da Universidade Federal da Bahia, dentro do grupo de pesquisa em Sensores e Atuadores. Foram obtidos 15 segundos de dados de sinais da corrente do estator de um MIT e mais 15 segundos correspondentes aos dados de leitura da velocidade do eixo do motor, coletados no mesmo instante que os dados de corrente, por meio de um tacômetro digital. Estes dados são utilizados como referência para comparação com os resultados obtidos por meio da análise espectral da corrente do estator. Os dados foram coletados com o motor alimentado diretamente pela rede elétrica de 60 Hz e com variação da carga, configurando desta maneira o regime não estacionário de operação. As informações básicas referentes aos dados da placa do MIT estão organizadas na Tabela 6.1. Tabela 6.1 Dados da placa do MIT gaiola de esquilo utilizado. Potência (cv) Velocidade nominal (rpm) Escorregamento nominal (%) Número de pares de polos Número de ranhuras 1 1730 3,88 2 44 Os dados da corrente do estator do MIT e do tacômetro digital foram capturados utilizando-se um dispositivo DAQ (Data Acquisition) da National Instruments. A conversão analógico-digital foi realizada a uma taxa de 10000 amostras por segundo utilizando uma codificação de 14 bits. A Figura 6.5 mostra o arranjo básico que ilustra a coleta dos dados utilizados. 6.2.4 Algoritmo para estimação da velocidade A metodologia adotada no desenvolvimento do algoritmo para estimação da velocidade é similar à apresentada por (Silva; Oliveira, 2012b). A Figura 6.6 apresenta o 6.2 ALGORITMOS DE PROCESSAMENTO DIGITAL DE SINAIS NI 6009 DAQ 53 Dados de corrente 15 segundos fs=10000 amostras/s Dados do tacômetro 15 segundos fs=10000 amostras/s Figura 6.5 Esquema básico de coleta de dados de corrente. fluxograma genérico da versão inicial do algoritmo utilizado para a estimação da velocidade de rotação do MIT. Figura 6.6 Fluxograma para a estimação da velocidade de giro do eixo do MIT. Conforme já mencionado os dados utilizados para validação dos algoritmos de estimação da velocidade foram capturados previamente e armazenados, em forma de vetor, na memória Flash do microcontrolador. Entretanto, antes de iniciar as explicações sobre o funcionamento do algoritmo, vale ressaltar algumas considerações importantes sobre os dados. 54 PROJETO Os 15 segundos de dados coletados foram amostrados a uma taxa de 10000 amostras por segundo o que resulta em um número total de 150000 amostras. Conforme discutido por Silva e Oliveira (2012b), Silva (2014) o comprimento da janela de dados é um fator importante na estimação de parâmetros de um MIT a partir da análise espectral dos componentes de ranhura. Para o caso especı́fico dos dados utilizados foi constatada, através de testes práticos realizados no Matlab, a necessidade de uma janela com duração aproximada de 204 ms. Embora ainda não tenham sido apresentados, na literatura, modelos analı́ticos para determinação do comprimento ideal para janela de observação, em Silva, Lima e Oliveira (2015b) é apresentado um algoritmo para estimar o melhor comprimento (duração) da janela de observação para estimação da velocidade de MITs operando em regime não estacionário. Nele são realizados sucessivas comparações entre os valores medidos e estimados da velocidade. O comprimento da janela é variado dentro de uma faixa e, então, o erro é calculado. Os resultados obtidos pelos autores indicam que o comprimento ideal converge para uma janela com duração aproximada de 200 ms, conforme indicado no gráfico da Figura 6.7. Para todos experimentos realizados neste trabalho foi utilizada janela com duração de 204,8 ms. Figura 6.7 Desvio máximo relativo da rotação em função da duração da janela de observação. Fonte: (Silva; Lima; Oliveira, 2015b) Levando-se em consideração a taxa de amostragem utilizada na captura dos dados, a implementação de uma CZT para 2048 amostras (204,8 ms) satisfaria este requisito. O processamento de um número maior de amostras por meio da CZT sendo executada em computador pessoal, fazendo se uso do Matlab, por exemplo, não implica em um tempo computacional significativo, haja vista que os recursos de hardware destas plataformas normalmente são abundantes. Por outro lado, quando lidamos com plataformas de sistemas embutidos os recursos de hardware são fatores restritivos e devemos considerar estas limitações de maneira que se obtenha um menor custo computacional na execução de uma determinada tarefa. Diante disso, foi realizada uma análise prévia dos dados obtidos, pela qual ficou constatada que os componentes espectrais de maior frequência, úteis para estimação da velocidade, são sempre menores que 1500 Hz. Lembrando que esta afirmação é válida 55 6.2 ALGORITMOS DE PROCESSAMENTO DIGITAL DE SINAIS apenas para motores com os mesmos parâmetros (número de ranhuras, número de polos) do que foi utilizado no experimento onde os dados foram coletados, e também alimentados diretamente pela rede elétrica. Sendo assim, uma frequência de amostragem de 3000 Hz seria o suficiente para atender o critério de Nyquist (Oppenheim; Schafer; Buck, 1999). Tendo isso em vista foi projetado um filtro digital FIR (Finite Impulse Response) cuja curva de resposta em frequência é mostrada na Figura 6.8. Resposta em frequência − FIR − Passa baixas Magnitude 1 0.5 Magnitude (dB) 0 0 500 1.500 2500 3500 4500 5.000 4500 5000 0 −52 dB −50 −100 0 500 1500 2500 Frequência (Hz) 3500 Figura 6.8 Curva de resposta em frequência do filtro digital projetado. Ao observarmos a curva de resposta do filtro projetado podemos notar uma atenuação a partir de 1500 Hz e vemos ainda que frequências superiores a 2500 Hz são atenuadas em pelo menos 50 dB. Com isso ao aplicarmos o filtro sobre os dados originais praticamente garantimos a ausência de componentes espectrais com frequências maiores que 2500 Hz. Feito isso, posteriormente foi efetuada uma subamostragem de ordem 2 sobre o sinal, ou seja, foi obtido um novo sinal com a metade do número de amostras do sinal original e com uma frequência de amostragem de 5000 Hz. Depois de efetuado o tratamento das informações da corrente do estator, foi possı́vel garantir que um segmento de dados de 1024 amostras fosse equivalente a uma janela temporal de 204,8 ms. Com esse procedimento foi possı́vel diminuir pela metade o número de amostras processadas pela CZT e consequentemente um esforço computacional desnecessário foi evitado. Definido o tamanho da janela a ser utilizada podemos seguir com a explicação do funcionamento do algoritmo. A primeira tarefa executa a seleção do bloco de dados equivalente ao comprimento da janela especificada . Depois disso, o bloco de dados avaliado é multiplicado pela “função janela”. Neste tabalho, conforme discutido na Subseção 4.2.5 do Capı́tulo 4, foi utilizada uma janela com função de Hanning. Feito isso, a CZT é aplicada sobre estes dados dentro da faixa de frequências do sinal de corrente de alimentação do motor. 56 PROJETO Amplitude Fast Fourier Transform (FFT) para NP=1024, fs=5000 Hz e Resolução=4.8828 Hz 200 Motor: p=2 e Z=44 Alimentação rede elétrica 60 Hz 58,59 Hz Janela 204,8 ms (1024 amostras) 100 0 0 500 1000 1500 2000 Amplitude Chirp Z−Transform (CZT) para m=1024 e fs=5000 Hz e Resolução=0.0097656 Hz 200 59,99 Hz 100 0 55 60 65 Frequência Figura 6.9 Espectro de frequência da janela de dados analisada entre t1=0s e t2=0,2048s. Ao observarmos a Figura 6.9, onde é mostrada a resposta da FFT e da CZT aplicada sobre a primeira janela de dados, fica evidente a diferença de exatidão entre a transformada realizada por meio da FFT e pela CZT. Como o motor foi alimentado diretamente pela rede elétrica, poderı́amos esperar que a frequência detectada fosse 60 Hz ou algo muito próximo disso. O valor da frequência detectada pela FFT foi de 58,59 Hz e a CZT detectou como 59,99 Hz, tomando como referência o valor esperado de 60 Hz da rede temos um erro de 2,35% associado ao cálculo realizado pela FFT e um erro de 0,0166% no cálculo realizado pela CZT, que é devido ao fato dela ter sido executada em uma faixa de frequências limitada, entre 55 e 65 Hz, o que confere uma resolução muito melhor do que a obtida com a FFT, que analisa todo o espectro. Depois de determinar a frequência da tensão de alimentação da rede (f0 ) é preciso estabelecer a faixa de frequências onde se deve procurar os componentes de ranhura (fsh ) produzidos pelo rotor do MIT. Para isso é preciso estabelecer o valor mı́nimo e máximo para fsh . Ao analisarmos a Equação (4.1), descrita novamente abaixo, podemos notar que, uma vez estabelecidos os valores de Z, p e δ, o valor de fsh varia única e exclusivamente em função do escorregamento, sendo assim, fsh atingirá seu valor máximo quando o escorregamento se aproximar de zero e terá seu valor mı́nimo quando o escorregamento se aproximar do valor nominal, que nesse caso especı́fico é 3,88%. Adotando esta estratégia definimos a faixa de frequências, compreendida entrefsh min e fsh máx , onde o componente de frequência fsh deverá ser calculado. 57 6.2 ALGORITMOS DE PROCESSAMENTO DIGITAL DE SINAIS fsh = Z (1 − s) ± δ f0 p (4.1) A Figura 6.10 mostra o espectro de frequências da CZT realizada entre 1250 Hz e 1450 Hz. Podemos observar através das linhas verticais a indicação das frequências fsh min e fsh máx . A CZT é implementada nesta faixa de frequências (entre 1326 Hz e 1378 Hz) e o valor de fsh é calculado a partir do componente de maior amplitude, conforme indicado na figura. A posição de fsh dentro do espectro de frequências depende do escorregamento do MIT, que varia em função da carga do motor. Entretanto a variação desse componente ocorrerá sempre dentro desta faixa de frequências que correspondem respectivamente aos valores de escorregamento nominal e próximo de zero. Chirp Z−Transform (CZT) para m=1024 e fs=5000Hz e Res=0.19531 0.5 fsh (1376 Hz) (para δ=1) 0.45 0.4 Amplitude 0.35 Motor: p=2, Z=44, Sn=3,88% Alimentação: Rede 60 Hz 0.3 0.25 fsh min (1316 Hz) fsh 0.2 máx (1378 Hz) 0.15 0.1 0.05 0 1.250 1.280 1.326 1.340 1.378 Frequência (Hz) 1.400 1.430 1.450 Figura 6.10 Espectro de frequência da CZT realizada na primeira janela do sinal. Depois de determinar o valor do componente fsh , o cálculo da velocidade do MIT é realizado através da Equação (4.3) que é descrita novamente abaixo. N= 60 (fsh ∓ δf0 ) Z (4.3) Uma vez que já conhecemos os valores de f0 , δ, fsh e Z o valor estimado da velocidade no eixo do motor pode ser obtido de maneira direta. O processo se repete até que todas as amostras dos dados sejam processadas, conforme indicado no fluxograma da Figura 6.6. 58 PROJETO 6.2.5 Primeiros resultados práticos na estimação da velocidade Os dados obtidos em laboratório foram utilizados para verificação prática do funcionamento do algoritmo. Os 15 segundos de dados referentes à corrente do estator do motor foram processados utilizando-se os algoritmos embutidos no microcontrolador STM32F429. A CZT foi aplicada sucessivamente, conforme mencionado na descrição do algoritmo, até que todos os fossem processados. Foi utilizada uma janela de 1024 amostras (204,8 ms) com uma sobre posição de 512 amostras (50%). O resultado do processo de estimação da velocidade do MIT é mostrado através da curva tracejada na Figura 6.11. Comparação entre a velocidade medida e velocidade estimada 1800 Velocidade medida Velocidade estimada Velocidade (RPM) 1790 1780 1770 1760 1750 1740 0 3 6 9 12 15 Tempo (s) Figura 6.11 Curva comparativa entre a velocidade medida e a velocidade estimada. Para validação dos resultados estimados pela técnica de análise espectral foi utilizado o dado referente às medidas de velocidade realizadas através de um tacômetro digital. Pode-se observar ainda que a velocidade varia entre 1743 RPM e 1795 RPM. Isso ocorre devido à variação da carga no motor durante a coleta dos dados. A curva referente às medidas efetuadas com o tacômetro está destacada através da linha contı́nua na Figura 6.11. Os erros percentuais (erro% = 100 [Vm − Ve ] /Vm ) entre a velocidade medida (Vm ) e a estimada (Ve ) são apresentados na Figura 6.12. Pode-se observar que o erro máximo está na ordem de 0,16%. O desvio quadrático médio na comparação dos dados está na ordem de 0,6742 RPM. O histograma fornece uma análise estatı́stica melhor do erro, ao observarmos a Figura 6.13 podemos afirmar que o valor mais provável do erro percentual associado às medidas está na faixa entre ± 0, 05%. 59 6.2 ALGORITMOS DE PROCESSAMENTO DIGITAL DE SINAIS 0.2 Máx. ( 0,16%) 0.15 0,14% 0,1% Erro (%) 0.1 0,07% 0.05 0 −0.05 −0.1 −0.15 - 0,13% 0 5 Tempo(s) 10 15 Figura 6.12 Erros percentuais entre a velocidade estimada e medida. Número de ocorrências 25 20 15 10 5 0 −0.15 −0.1 −0.05 0 0.05 0.1 Valor mais provável do erro percentual 0.15 Figura 6.13 Histograma do erro associado à estimação da velocidade. 6.2.6 Verificação da contribuição da FPU Para verificação do desempenho do hardware foram realizados testes dos algoritmos executando-os tanto com e sem a utilização da unidade de ponto flutuante. Primeiramente o código foi compilado de modo que a FPU não fosse utilizada. Neste cenário o tempo médio para o processamento de uma janela de 1024 amostras foi de 300 ms. Posteriormente o código foi recompilado considerando a presença da FPU e o tempo de processamento da mesma janela foi em média 215 ms. Conforme o esperado, a utilização da FPU proporcionou uma melhoria no desempenho do algoritmo, reduzindo o tempo de processamento em cerca de 28%. Uma observação importante é que apesar do prejuı́zo no quesito tempo computacional, a exatidão dos cálculos não foi comprometida quando o firmware foi executado sem a utilização da FPU. 60 PROJETO Conforme já mencionado, uma janela de 1024 pontos amostrados a 5000 Hz equivale a um intervalo de tempo igual a 204,8 ms, que é um tempo menor do que o microcontrolador levou para processá-los, mesmo com a utilização da unidade de ponto flutuante. 6.2.7 Considerações adicionais Apesar de nessa etapa do trabalho não ter sido abordado a parte de instrumentação eletrônica necessária em uma utilização prática do sistema, pode-se fazer algumas observações sobre a elaboração dos circuitos condicionadores de sinal, mas especificamente sobre o filtro anti-aliasing. A análise espectral realizada sobre os dados obtidos nos laboratórios permitiu verificar que os componentes espectrais utilizados na estimação da velocidade são menores que 1500 Hz e diante disso foi possı́vel aplicar um filtro digital para eliminar os componentes de maior frequência. Além de permitir especificar a taxa de amostragem mı́nima dos dados analisados, estas informações foram levadas em consideração, também, no projeto do filtro analógico anti-recobrimento, de tal maneira que a curva de resposta em frequência fosse similar à apresentada na Figura 6.8. A análise dos resultados permitiu, também, verificar a eficiência da técnica de estimação da velocidade além de fornecer alguns parâmetros sobre capacidade de processamento do microcontrolador, definindo assim os cenários onde a aplicação do sistema pode ou não se recomendada. Os resultados obtidos até esta etapa do projeto foram publicados no XX Congresso Brasileiro de Automática (CBA 2014) em um artigo intitulado de ALGORITMOS PARA ESTIMAÇÃO SENSORLESS DA VELOCIDADE EM MITs EMBUTIDOS EM HARDWARE DE BAIXO CUSTO. O resumo do artigo encontra-se disponı́vel no Apêndice C. 6.3 MELHORAMENTO DO ALGORITMO DA CZT Conforme discutido na seção anterior, os resultados referentes ao desempenho do microcontrolador indicaram restrições com relação ao desenvolvimento de um sistema com requisitos mais rı́gidos de operação em tempo real. Entretanto a operação em tempo real é uma das especificações iniciais do projeto. Nesse sentido foi necessário um estudo mais aprofundado dos recursos disponı́veis no STM32F429 a fim de uma melhoria dos algoritmos de PDS, de tal maneira que os requisitos temporais necessários para operação em tempo real pudesse ser atendida. 6.3.1 Instruções SIMD De acordo com a fabricante ARM os núcleos Cortex M4 são microcontroladores projetados para processar tarefas com resposta de tempo real e na prática seria uma versão melhorada dos tradicionais Cortex-M3. A Figura 6.14 mostra as arquiteturas básicas dos núcleos Cortex M3 e Cortex M4. 6.3 MELHORAMENTO DO ALGORITMO DA CZT 61 Figura 6.14 Arquitetura básica dos núcleos Cortex M3 e M4. Fonte: (ARM, 2015; Yiu, 2014) Se observarmos a estrutura básica dos dois núcleos podemos notar que são praticamente idênticos. As principais diferenças ficam por conta de que no Cortex M4 existe a unidade de ponto flutuante, conforme já discutido, e também as chamadas extensões DSP, que estão incorporadas à unidade central de processamento (CPU). Estas extensões são, na verdade, um grupo de instruções que geralmente estão incluı́das na arquitetura dos famosos Processadores Digitais de Sinais. Dentre outras, estão incluı́das nesse conjunto adicional de instruções do Cortex M4, a operação de multiplicação-acumulação (MLA) e multiplicação-subtração (MLS) que podem ser executadas em apenas um ciclo de clock e ainda possui uma versão em ponto flutuante para a operação multiplica-acumula (ARM, 2015; Yiu, 2014). Existe ainda, agregado às extensões DSP do Cortex M4, um conjunto especial de instruções denominadas por SIMD (Single Instruction Multiple Data) que, normalmente, estão presente apenas em DSPs e processadores de alto desempenho. De acordo com Almasi e Gottlieb (1994) arquiteturas SIMD normalmente são utilizadas para a resolução de problemas especı́ficos da área cientı́fica e de engenharia, onde existem estruturas de dados regulares como vetores e matrizes. Essas máquinas apesar de possuı́rem apenas uma unidade de controle que executa uma instrução de cada vez, cada instrução pode operar sobre vários dados simultaneamente. As duas principais formas de máquinas SIMD são os processadores matriciais e vetoriais (Duncan, 1990). Em termos práticos pode-se executar duas ou mais operações em apenas um ciclo de instrução. Embora o conjunto de extensões SIMD do Cortex M4 seja limitado, se comparado a um DSP, é um recurso bastante interessante e que expande o leque de aplicações para os microcontroladores dessa famı́lia, sobretudo para aplicações de processamento digital. Nesse ponto surge a dúvida sobre o motivo do baixo desempenho do STM32F429 na execução dos algoritmos de PDS desenvolvidos. Depois de investigar o modo como utilizar essas instruções, ficou constatado que nas versões atuais dos ambientes de de- 62 PROJETO senvolvimento, tanto baseado no ARM-GNU como os proprietários KEIL e IAR, mesmo quando compilam um programa no nı́vel máximo de “otimização”, não são capazes de reconhecer estruturas de processamento de sinais como sendo trechos que possam fazer uso de instruções SIMD. A Tabela 6.2 contém algumas instruções básicas das extensões SIMD dos núcleos Cortex M4. Tabela 6.2 Algumas instruções básicas do conjunto SIMD. Instruções Descrição Efetua quatro somas/subtrações simultâneas de 8 bits SADD8 Rd, Rn, Rm / SSUB8 Rd, Rn, Rm "empacotados" em Rn com Rm, e armazena o resultado em Rd Efetua duas somas/subtrações de 16 bits cujos valores são SADD16 Rd, Rn, Rm / SSUB16 Rd, Rn, Rm "empacotados" em Rn, Rm com resultado armazenado em Rd Tendo dois valores de 16 bits "empacotados" em Rn e Rm, ambos SMLAD Rd, Rn, Rm, Ra multiplicam entre si, seus respectivos half-words, somam-se os resultados, que são acumulados em Ra e guardados em Rd Ao observarmos as instruções contidas na Tabela 6.2 fica evidente que elas podem ser bastante úteis no desenvolvimento de rotinas para processamento digital de sinais. A lista completa de todas as instruções, incluindo as extensões DSP, está contida no manual técnico de referências do Cortex M4 (ARM, 2015). A melhor maneira de utilizar essas instruções ainda é escrevendo as funções em Assembly. Por uma questão de praticidade é mais comum escrever todo o código em linguagem Assembly e importar as chamadas da função em C. 6.3.2 Melhoramento dos algoritmos de PDS Nas primeiras tentativas de melhoramento do algoritmo da CZT foram desenvolvidas algumas sub-rotinas para efetuar operações frequentes dentro do código. Ao efetuar uma análise de desempenho dessas funções que compõe o algoritmo da CZT foi verificado que o gargalo principal estava relacionado a trechos que envolviam funções trigonométricas e operações de multiplicação complexa. A primeira versão da função para efetuar a multiplicação complexa foi realizada a partir da utilização direta das instruções SIMD e escrita em Assembly. Já nessa primeira implementação foi verificado um grande melhoria no tempo de processamento. As janelas de dados com 204 ms que antes eram processadas em 215 ms passaram a ser processadas em aproximadamente 176 ms, o que corresponde a um melhoria quase 20% no desempenho da função. Com relação às operações trigonométricas foram realizados alguns estudos de como calcular de um modo mais eficiente as operações de seno e cosseno. Uma das possibilidades seria utilizar as instruções SIMD e efetuar interpolação a partir de valores tabelados. Contudo, foi verificado que a CMSIS fornece junto ao seu conjunto de bibliotecas um grupo especial de funções pré-compiladas e “otimizadas” para o Cortex M4 com unidade ponto flutuante. Nesse grupo estão incluı́das funções para o cálculo de diversas operações 6.4 DEFINIÇÃO DOS PARÂMETROS PARA AQUISIÇÃO DOS DADOS 63 envolvidas em processamento digital de sinais, incluindo funções trigonométricas, multiplicação complexa, operações matriciais e, entre outros, a FFT. Nesse sentido essas rotina foram utilizadas para na implementação de uma nova versão do algoritmo da CZT. Com a substituição das funções padrões, que efetuam os cálculos das operações trigonométricas, pelas funções “otimizadas” o tempo processamento foi reduzido de maneira muito significativa. A janela de dados de 204 ms foi processada em cerca de 36 ms. Este tempo de processamento já tornaria possı́vel que o requisito de tempo real do sistema fosse atendido, entretanto, ainda foi verificado que, com a utilização das funções de multiplicação complexa “otimizadas” o tempo de processamento do algoritmo da CZT foi reduzido para aproximadamente 18 ms. A Tabela 6.3 mostra o resumo das ações que foram efetuadas sobre o algoritmo da CZT e os resultados alcançados com relação ao tempo de processamento. Todos os tempos obtidos referem-se ao processamento de uma janela de dados com duração de 204 ms. Tabela 6.3 Resumo das melhorias obtidas sobre o processamento da CZT. Ação Tempo de processamento 1 Implementação em Assembly da função de 176 ms multiplicação complexa baseando-se nas instruções SIMD 2 Utilização das funções trigonométricas “otimizadas” 36 ms para instruções SIMD 3 Utilização da função de multiplicação complexa 18 ms “otimizada” para instruções SIMD Os resultados obtidos no intuito de melhorar o desempenho do algoritmo da CZT se mostraram bastante satisfatórios, haja vista que houve uma redução de mais de 90% do tempo de processamento com relação aos primeiros resultados obtidos. Mesmo considerando que o algoritmo da CZT deve ser executado duas vezes e, ainda, que as janelas de dados terão 50% de sobreposição, é possı́vel garantir que o processamento dos sinais de corrente do MIT pode ser efetuado de forma contı́nua. Obviamente essa garantia é válida para uma janela com duração aproximada de 200 ms. Para outras situações é necessário uma reavaliação dos parâmetros considerados e a realização de testes práticos para obtenção de novos dados sobre o desempenho do sistema. 6.4 DEFINIÇÃO DOS PARÂMETROS PARA AQUISIÇÃO DOS DADOS Uma vez resolvidas às questões técnicas referentes à implementação dos algoritmos de processamento digital de sinais e de estimação da velocidade, que foram validados a partir da análise off-line de dados coletados previamente, foi necessário estudar os recursos de hardware que possibilitasse a aquisição dos dados referentes ao funcionamento do MIT para que pudesse ser processados no momento da coleta. Dentro desses quesitos foram explorados os recursos do Conversor Analógico Digital (ADC) fazendo-se uso, também, do controlador de Acesso Direto à Memória (DMA). 64 PROJETO 6.4.1 Conversor Analógico Digital (ADC) Os ADCs dos microcontroladores da famı́lia STM32Fx são baseados no princı́pio de aproximações sucessivas, através do qual a conversão é realizada em várias etapas. O número de etapas necessárias para conversão é igual ao número de bits do conversor que no caso do STM32F429 são de 12 bits. Podem possuir até 19 canais multiplexados que lhe permitem adquirir os sinais a partir de 16 fontes externas, duas fontes internas além do canal VBAT . As principais caracterı́sticas do ADC estão listadas abaixo: Resolução configurável de 12 bits, 10 bits, 8 bits ou 6 bits; Modos de conversão única e contı́nua; Modo de digitalização automática do canal 0 até o canal N; Alinhamento de dados configurável em registrador de 16 bits; Taxa de amostragem programável a partir do clock da CPU (Máx. 2, 4 M sps); Opção de utilizar uma fonte externa para gerar a taxa de amostragem; Modo Dual /Triplo intercalado (taxa de amostragem de até 7, 2 M sps); Modo de armazenamento de dados configurável com DMA; Alimentação de 2, 4 V a 3, 6 V em alta velocidade e 1, 8 V para baixa velocidade; Intervalo do sinal de entrada: VREF − 6 VIN 6 VREF + ; Para o protótipo desenvolvido o ADC foi utilizado na resolução máxima de 12bits. Embora a taxa de amostragem possa ser ajustada por meio de um prescaler, as taxas obtidas quase sempre resultam em valores fracionados, haja vista que o resultado é função da divisão da frequência de operação da CPU por fatores predeterminados e quase sempre não resultará em um número inteiro. Para especificar um valor exato para frequência de amostragem o mais adequado é utilizar um temporizador (TIMER) para gerar o sinal de disparo de conversão do ADC. A função de configuração do ADC foi implementada de modo que o TIMER2 fosse utilizado para gerar o sinal externo que controla a conversão do ADC3 do STM32F429. Para definir a taxa de amostragem basta utilizar um valor inteiro como parâmetro da função de configuração do TIMER2, que pode ser alterada de maneira dinâmica em qualquer parte do firmware. 6.4.2 Controlador de acesso direto à memória (DMA) Outro recurso extremamente necessário para implementação do protótipo foi o controlador DMA (Direct Memory Access), que possibilita a movimentação de dados entre diferentes locais do banco de memória. Um exemplo tı́pico seria a leitura do valor 6.4 DEFINIÇÃO DOS PARÂMETROS PARA AQUISIÇÃO DOS DADOS 65 de um registrador do módulo ADC e seu respectivo armazenamento em uma variável na memória RAM. Claro que isso pode ser facilmente implementado fazendo-se uso da CPU, o problema deste tipo de tarefa é que ela pode sobrecarregar a unidade de processamento, interferindo no desempenho da aplicação. Nesse caso deve-se verificar constantemente se novos dados estão disponı́veis no periférico através da leitura e verificação de um ou mais bits de status, ou ainda, pode-se utilizar uma interrupção para alertar a chegada de novos dados e realizar a transferência. Essas opções podem ser perfeitamente adequadas quando estamos interessados apenas na transferência de um pequeno número de bytes, porém, se for necessário transferir grandes quantidades de dados de maneira continua, mesmo o método baseado em interrupções pode tornar-se bastante ineficiente, pois há uma sobrecarga associada à frequente utilização das rotinas de tratamento da interrupção. É nesse ponto que o controlador DMA se faz necessário, pois, é possı́vel configurá-lo para que possa efetuar a transferência de dados entre diferentes endereços de memória sem a necessidade do uso do CPU. Considerando, ainda o exemplo do ADC, seria definido o endereço inicial de um vetor como destino para os dados e outro endereço de memória como origem, que no caso é endereço do periférico ADC. Quando determinada quantidade de dados especificada tiver sido transferidos, então, um sinal de interrupção é gerado e os dados podem ser acessados pela CPU. Essencialmente, o controlador DMA permite o uso dos recursos do sistema microcontrolado de forma mais eficiente. Ele libera a CPU para outras tarefas enquanto os dados estão sendo transferidos entre endereços de memórias. Para o protótipo desenvolvido a configuração do ADC está associada também ao controlador DMA, que no STM32F429 possui uma variedade de parâmetros. Os principais deles estão organizados na Tabela 6.4. Vale observar que as nomenclaturas utilizadas nesse trabalho para designar parâmetros de configuração dos periféricos embutidos na arquitetura do microcontrolador (ADC, DMA, TIMER, etc) referem-se às definições contidas na API CMSIS (Cortex Microcontroller Software Interface Standard ) desenvolvida pela ARM para a linha Cortex-M. Trata-se de um conjunto de funções que servem como driver para configuração dos diversos periféricos do microcontrolador. O principal objetivo abstrair a camada de baixo nı́vel, que faz referência direta aos registradores, e consequentemente padronizar, facilitar e acelerar o processo de desenvolvimento. Para o firmware implementado, o ADC3 foi configurado para operar fazendo uso do seu respectivo canal do DMA. O comprimento da janela utilizada para análise dos dados no algoritmo da CZT, conforme já discutido, é de 1024 amostras. A princı́pio, esse valor poderia ser usado para determinar o parâmetro DMA BufferSize do controlador DMA. Os dados seriam transferidos de maneira automática do registrador do ADC para os endereços de memória especificados a partir do endereço base de memória. Este endereço base está associado a um vetor de 1024 posições reservado na memória do microcontrolador. Entretanto, os dados devem ser processados de maneira contı́nua e, de tal modo, é necessária a utilização de um buffer duplo. Na prática, o parâmetro DMA BufferSize é definido como um valor duas vezes maior que a janela de dados 66 PROJETO Tabela 6.4 Principais parâmetros do controlador DMA. Parâmetro Função Define qual canal do controlador DMA será utilizado. Depende do periférico e pode ser consultado no datasheet DMA_Channel do microcontrolador. No caso específico do ADC3 é utilizado canal 2 do controlador DMA2. Define o endereço base do periférico. No STM32F429 o DMA_PeripheralBaseAddr endereço do ADC3 é 0x4001224C; DMA_Memory0BaseAddr Especifica um endereço base de memória. Determina o sentido da transferência dos dados. Pode ser DMA_DIR no sentido memória-periférico; de memória para memória ou de periférico para memória. DMA_BufferSize Define a quantidade de dados que serão transferidos. Especifica o modo de funcionamento do controlador. DMA_Mode Pode ser o modo Normal e Circular. Habilita ou desabilita o incremento dos endereços de DMA_MemoryInc memória. Útil quando é utilizado um buffer de dados. Determinar o comprimento da palavra de dados. Pode ser DMA_MemoryDataSize 8, 16 ou 32 bits. utilizada. Um vetor de 2048 posições é utilizado para armazenar os dados digitalizados. Para que o armazenamento dos dados funcione como um buffer circular, o parâmetro DMA Mode é definido como circular. Para sincronizar a transferência dos dados é habilitada duas fontes de interrupções associada ao controlador DMA. Uma delas detecta que a metade dos dados foram transferidos e a outra detecta que transferência está completa, isto é, que o buffer está cheio. Como o controlador opera em modo circular, quando o buffer estiver cheio os novos dados são armazenados no inı́cio do vetor. Esta ideia do buffer duplo circular é essencial para que nenhuma informação seja perdida durante o tratamento daquelas que foram previamente coletadas. Em sı́ntese, a cada interrupção os dados são lidos nas primeiras ou nas últimas 1024 posições do buffer. Quando uma interrupção é detectada as amostras são transferidas para uma estrutura de dados, onde poderão ser acessadas e devidamente processadas. Vale lembrar que na execução da STCZT as janelas de dados são sobrepostas em 50% do seu comprimento e dessa maneira um simples buffer duplo pode não ser suficiente para o tratamento adequado das informações. Para garantir que essa questão não causasse nenhum problema, foi implementado, via software, um buffer circular triplo. As questões relacionadas a esta implementação serão discutidas na Subseção 6.9.5. Os códigos das funções implementadas para configuração do ADC e do controlador DMA estão disponı́veis no Apêndice B. 67 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS Depois que foram ajustados os parâmetros dos periféricos do microcontrolador, relacionados a aquisição de dados, foram desenvolvidos os circuitos eletrônicos necessários para o condicionamento dos sinais amostrados. Esses circuitos são, basicamente, filtros analógicos e amplificadores com ajuste de ganho e offset. 6.5.1 Filtro anti-recobrimento (anti-aliasing) Frequência f1 a) Filtro anti-aliasing Ideal Saída do Filtro Saída do Filtro Sabe-se que, de acordo com o teorema de Nyquist, a taxa de amostragem de um sinal deve ser pelo menos o dobro do componente máximo de frequência do sinal de interesse. Conforme discutido na Subseção 6.2.4, a frequência máxima de interesse nos sinais utilizados para estimação da velocidade dos motores são da ordem de 1500 Hz. Dessa maneira o filtro analógico deve começar atenuar o sinal a partir dessa frequência. Idealmente, conforme ilustrado na Figura 6.15, a partir dessa frequência o sinal deveria ser completamente atenuado. Entretanto, em filtro real haverá uma banda de transição, também ilustrada na Figura 6.15, entre a frequência de corte e a frequência a partir da qual o sinal poderá ser totalmente desprezado, ou seja, no caso do filtro anti-aliasing é a frequência a partir da qual não irá provocar a sobreposição no espectro do sinal. Banda de Transição Frequência f1 f2 b) Filtro anti-aliasing real Figura 6.15 Curvas de resposta em frequência de um filtro ideal e um caso prático. O filtro utilizado no protótipo desenvolvido foi projetado para apresentar uma curva de resposta em frequência similar àquela obtida com o filtro digital utilizado na análise off-line dos dados, cuja curva de resposta em frequência está ilustrada na Figura 6.8. O projeto desse filtro foi realizado fazendo-se uso do software FilterPro Desktop produzido e distribuı́do gratuitamente pela Texas Instruments. A utilização dessa ferramenta garante grande flexibilidade no desenvolvimento de filtros analógicos de diversos tipos. O usuário basicamente tem que informar os parâmetros do filtro, escolher entre algumas topologias disponı́veis, escolher o tipo de aproximação e o software sintetiza o circuito. Os valores dos componentes podem ser ajustados para aproximações de valores comerciais de acordo o nı́vel de exatidão que o usuário desejar. Para obter a curva de resposta em frequência, conforme ilustrado na Figura 6.16, foi utilizado um filtro Chebyshev de 8ª ordem com topologia Sallen-Key. O circuito completo está disponı́vel no Apêndice A. Observa-se na Figura 6.16 que a atenuação entre as frequências menores que 1500 68 PROJETO Hz e maiores que 2500 Hz é, no pior dos casos, de aproximadamente 31 dB. Esse nı́vel de atenuação se mostrou suficiente para evitar o aparecimento de componentes de frequências que possam gerar aliasing. Isso decorre da própria natureza dos sinais analisados, cujos componentes nessa faixa de frequência possuem amplitudes muito pequenas. Lembrando que a frequência de Nyquist do sistema é de 2500 Hz (fs =5000 Hz), a atenuação de 31 dB foi suficiente para garantir que não houvesse problema com a sobreposição de sinais. Figura 6.16 Curva de resposta em frequência do filtro passa baixas analógico projetado. A caracterização dos circuitos dos filtros desenvolvidos nesse trabalho foi realizada através da utilização da placa de aquisição de dados NI myDAQ que é fabricada pela National Instruments. Nesta plataforma é disponibilizada uma interface de software (NI ELVISmx Instrument Launcher) totalmente integrada ao hardware e constitui um flexı́vel laboratório virtual (Chesnutt; Baker, 2011; Bogdan, 2011; Warren; Yao, 2010). Entre os instrumentos disponı́veis, existe o Bode Analyzer, que possibilita obter a resposta em frequência de circuitos lineares. A Figura 6.17 mostra a interface gráfica do software. 6.5.2 Circuito para adição da componente DC (offset) Conforme já foi dito, o intervalo do sinal de entrada do ADC é definido pela seguinte relação: VREF − 6 V IN 6 VREF + . Entretanto, no STM32F429 a referência de tensão negativa (VREF − ) é conectada internamente ao VSSA (GND). Efetivamente, no caso do kit de desenvolvimento utilizado, deve ser aplicada na entrada do ADC uma tensão que varie entre 0 e 3 V. O circuito do filtro analógico fornece um sinal simétrico em sua saı́da. O ganho do filtro inicialmente foi ajustado para fornecer, no máximo, uma tensão de 3 V pico a pico, isto é, que variasse entre -1,5 e 1,5 V. Diante dessa questão foi necessário projetar um circuito para adicionar uma componente DC ao sinal de saı́da do filtro. Dessa forma, 69 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS Figura 6.17 Interface gráfica do software Bode Analyzer. para garantir um sinal entre 0 e 3 V é necessário um componente DC de 1,5V. O Circuito utilizado para realizar esta função é mostrado na Figura 6.18. V+ Rf 2*Rf AO01 + R3 Vi Vf R1 R2 AO02 + Vout R4 Figura 6.18 Circuito para adicionar o componente DC ao sinal de saı́da do filtro. Ao observar a Figura 6.18 pode-se notar que o circuito é constituı́do basicamente por um amplificador inversor e um amplificador subtrator. Para o estágio subtrator, sabe-se que quando R1 = R2 = R3 = R4, então o valor da tensão de saı́da do circuito será dado pela diferença do valor das tensões Vf e Vi , mais precisamente temos que Vout = Vf − Vi . De maneira direta, para a saı́da do amplificador inversor no circuito temos que Vi = −0, 5V+ . Desta forma temos que o valor da tensão de saı́da do circuito 70 PROJETO pode ser definido por Vout = Vf + 0, 5V+ . No caso do kit de desenvolvimento STM32F4-Discovery, o valor da tensão de referência positiva (VREF + ) utilizada no ADC é igual a 3 V. Este valor de tensão, que pode ser obtido através dos terminais de uso geral do kit, é aplicado ao terminal V+ do circuito da Figura 6.18. Deste modo, finalmente, temos que o sinal será aplicado na entrada do ADC, que pode ser definido como Vout = (Vf + 1, 5) V , onde Vf é o valor da tensão de saı́da do filtro anti-recobrimento. Assim, no caso de amplificação máxima do sinal de saı́da do filtro, temos o cenário ilustrado na Figura 6.19. v v 1,5 3 O -1,5 a) O b) Figura 6.19 Sinal de saı́da do filtro: (a) sem e (b) com a adição do componente DC. 6.5.3 Primeiros testes em bancada Depois de concluı́dos os circuitos básicos, necessários para o condicionamento dos sinais, foram realizados os primeiros testes a fim de verificar a funcionalidade do sistema como um todo. O objetivo principal desses testes foi, sobretudo, verificar se a resolução do ADC (12 bits) do microcontrolador seria suficiente para identificação dos componentes espectrais referentes às ranhuras do rotor, haja vista, que até então os testes haviam sido realizados com dados digitalizados em um ADC de 14 bits. A estrutura apresentada na Figura 6.20 foi utilizada nos primeiros experimentos. Essencialmente é composta por um MIT de 2 cv, alimentado por um inversor de frequências (160 SSC) fabricado pela Allen-Bradley. Um gerador de corrente contı́nuas, que funciona como carga, é conectado ao eixo do motor. O controle da carga é efetuado por meio da variação da intensidade da corrente de campo do gerador. Acoplado ao gerador, existe ainda um dinamômetro que é calibrado junto à estrutura para fornecer uma indicativa da carga no motor. No texto, sempre que necessário, essa estrutura será referenciada como Bancada BI. Uma segunda bancada, apresentada da Figura 6.21, também foi utilizada para realizar alguns experimentos nesse trabalho. Essa bancada será referenciada nesse trabalho como Bancada BT. Assim como na Bancada BI, nela a carga é implementada com base em um motor de corrente contı́nua operando como gerador. A excitação do campo do gerador é definida a partir de um sistema microcontrolado que aciona um driver inversor por meio de modulação PWM (Pulse Width Modulation). O controle do ciclo de trabalho 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS 71 Figura 6.20 Estrutura utilizada nos experimentos (Bancada BI). do modulador pode ser efetuado de forma manual, através de um potenciômetro, ou digitalmente através de uma porta de entrada paralela de 8 bits. Desse modo é possı́vel gerar variações que simulem diversos tipos de carga. A alimentação do MIT originalmente é realizada por meio da rede elétrica. Entretanto, um inversor de frequência externo, como por exemplo, o da Bancada BI, pode ser utilizado como fonte alimentação. A bancada é equipada, também, como um torquı́metro rotativo DATAFLEX 22/20. Com ele é possı́vel efetuar tanto medições do torque como da velocidade. Para obter os sinais de corrente do MIT foi utilizada uma sonda de corrente do tipo pinça fabricada pela Fluke. Segundo a fabricante, o modelo 80i-110s, que foi utilizado nos experimentos realizados neste trabalho, é “otimizado” para reprodução precisa de correntes na frequência de linha e até o 50º harmônico. Devido a sua blindagem, é garantida uma elevada imunidade a ruı́do quando operada junto a motores elétricos (FLUKE, 2005). As principais especificações técnicas do modelo estão resumidas na Tabela 6.5. Tabela 6.5 Especificações básicas da sonda 80i-110s. Faixa de corrente nominal Sinal de saída Exatidão Deslocamento de fase Banda útil 0-10 A ou 0-100 A 10 mV/A ou 100 mV/A (3% + 50 mA) @ 10A 1,5 graus para frequências menores que 65 Hz 100 kHz 72 PROJETO Figura 6.21 Estrutura utilizada nos experimentos (Bancada BT). 6.5.4 Coleta de dados na Bancada BI - EXPERIMENTO T1 Em sı́ntese, os dados foram coletados no seguinte cenário: com o MIT acionado, a sonda foi conectada a uma das fases; a saı́da sonda foi conectada à entrada do filtro anti-aliasing, que, por usa vez, possui sua saı́da conectada ao circuito que adiciona o componente DC ao sinal. Finalmente o circuito é conectado ao kit de desenvolvimento, mais especificamente ao pino PC.3, correspondente ao ADC3 do STM32F429. A Figura 6.22 ilustra o arranjo básico utilizado para coleta de dados nessa etapa do projeto. MIT Sonda Corrente Filtro PB Amp. c/ offset Discovery Board Figura 6.22 Esquema básico para coleta de dados. Para esses testes preliminares as coletas dos dados foram realizadas com o motor operando com carga constante, haja vista que o objetivo nessa etapa foi verificar se os componentes de ranhuras seriam identificados. Foram realizadas diversas coletas de dados com o MIT operando em diferentes frequências de alimentação e diferentes cargas. 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS 73 Conforme já foi discutido, a frequência de amostragem (fs ) definida para o sistema foi de 5000 amostras/segundo. A Figura 6.23 mostra o espectro dos dados obtidos na primeira coleta realizada. Neste cenário o MIT foi acionado com o inversor operando a 60 Hz e com a carga ajustada para provocar um escorregamento próximo ao valor nominal especificado para o motor. Figura 6.23 Análise espectral dos dados coletados. Na Figura 6.23 são mostrados três gráficos onde estão representados, respectivamente, o espectro para FFT, para CZT aplicada entre 25 e 75 Hz e para CZT aplicada na faixa de frequências entre 1000 e 1400 Hz. Ao observarmos o gráfico da FFT podemos notar que o único componente que se destaca claramente refere-se à frequência de alimentação do sistema. Embora o valor esperado seja 60 Hz, devido à resolução da FFT, o valor do componente foi identificado como 58,59 Hz. No segundo gráfico é possı́vel identificar claramente o valor aproximado de 60,16 Hz para o componente de alimentação do MIT. No terceiro gráfico a CZT foi aplicada entre 1000 e 1400 Hz de modo que pudesse ser verificada a presença dos componentes de ranhura. Dado que o valor do escorregamento nominal do MIT é da ordem de 4,4%, o componente de frequência associado a δ = 1 deve estar, aproximadamente, entre as frequências de 1320 e 1380 Hz. É possı́vel observar que o componente de frequência de 1324 Hz se destaca dentro da faixa de espectro analisada. Pode ser verificado, por meio da Equação (4.3), que a velocidade do MIT nessa situação 74 PROJETO é aproximadamente igual a 1724,24 RPM, satisfazendo a expectativa do valor de 1725 RPM obtidos por meio da medição realizada com o tacômetro digital. A Figura 6.24 mostra, para três condições de cargas diferentes, o espectro obtido através da CZT aplicada na faixa de frequências onde é possı́vel encontrar os componentes de ranhura. Nessa situação o motor foi alimentado pelo inversor operando a 60 Hz. Figura 6.24 Espectro obtido com a CZT aplicada sobre os dados coletados (60 Hz). O primeiro gráfico da Figura 6.24 mostra o espectro pra uma carga próxima do valor nominal, o que pode ser verificado por meio da estimativa do escorregamento, que no caso é da ordem de 4,46%. Nele é possı́vel observar o componente de ranhura, de aproximados 1324 Hz e, também, a relação entre a amplitude desse componente e o segundo maior componente observado na faixa de procura. Nesse caso pode ser observado um relação de 13,63 dB entre os dois maiores componentes encontrados na faixa. Essa relação, apesar de não ser tão expressiva, pode ser considerada satisfatória, haja vista que o componente de frequência fsh se destaca e é pouco provável que ruı́do indesejado possa suprimir esta 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS 75 informação. O segundo gráfico mostra o espectro para o MIT operando com escorregamento intermediário (na ordem de 2,5%). Observemos que a relação entre os dois componentes de maiores amplitudes é da ordem de 10,57 dB. No terceiro gráfico vemos o espectro relacionado ao MIT operando com carga muito baixa, praticamente a vazio, com escorregamento menor que um 1%. Nessa situação foi verificada a pior relação sinal-ruı́do (2,69 dB). Apesar do componente ainda ser visualmente identificável dentro do espectro, é possı́vel observar uma nı́tida atenuação, de tal maneira que esta situação de baixa carga deve ser analisada com mais atenção. A Figura 6.25 mostra os espectros obtidos com o inversor operando em outras frequências (50, 40 e 30 Hz). Estão apresentados apenas os piores casos observados, isto é, para o MIT operando em baixo escorregamento. O primeiro gráfico mostra o espectro para o motor operando em 50 Hz e é possı́vel observar uma relação sinal-ruı́do de 5,65 dB. Para o MIT operando a 40 Hz, conforme ilustrado no segundo gráfico, a relação entre as amplitudes dos dois maiores componentes é de aproximadamente 4 dB. A pior situação detectada é quando o MIT está funcionando em baixo escorregamento e acionado pelo inversor operando a 30 Hz. No espectro mostrado no terceiro gráfico é possı́vel observar que a amplitude do componente fsh apresenta-se bastante atenuada, praticamente no mesmo nı́vel de componentes indesejados. A relação sinal-ruı́do de apenas 1,52 dB faz com que a integridade de medidas realizadas nessas condições seja contestável, haja vista que é impossı́vel garantir o não surgimento, dentro do espectro analisado, de um componente indesejável com amplitude maior que fsh . A partir da análise realizada sobre os dados coletados nesses primeiros experimentos foi possı́vel verificar que, apesar do ADC de 12 bits ser capaz de identificar os componentes de ranhura do rotor, existem algumas limitações quando os dados são coletados sob certas condições. A amplitude dos componentes de ranhura varia proporcionalmente com frequência do inversor e com a carga no eixo do MIT. Quando o motor está operando com valor de carga próximo ao valor nominal, mesmo em baixas frequências, é possı́vel identificar os componentes de interesse com uma boa relação sinal-ruı́do. Entretanto, quando o MIT está operando em baixo escorregamento a relação entre a informação útil e o ruı́do, observada nas análises, não se mostram muito consistentes. Diante dessas circunstâncias foi necessário implementar algumas soluções para melhorar a relação sinal-ruı́do e, consequentemente, a integridade das informações utilizadas para estimar a velocidade. 6.5.5 Filtro passa-altas Elı́ptico Ao observarmos na Figura 6.23 o espectro obtido com a FFT, é possı́vel ver que o componente de 60 Hz, referente à tensão de alimentação, se destaca com amplitude muito superior aos primeiros harmônicos (3º, 5º e 7º), que podem ser vistos com amplitude aproximadamente 20 vezes menor. Na faixa de frequências onde estariam os componentes de ranhura não é possı́vel identificar nenhuma informação. 76 PROJETO Figura 6.25 Espectro para o MIT operando em baixo escorregamento. Ao analisar os dados foi possı́vel verificar que os componentes referentes à tensão de alimentação do MIT e os componentes de ranhura do rotor possuem uma relação de amplitude na ordem 40 a 45 dB. Considerando o ADC de 12 bits e o sinal de entrada com amplitude ajustada para ocupar toda faixa dinâmica é possı́vel concluir que apenas 5 ou 6 bits estão sendo utilizados para representar os componentes de ranhura. Diante dessas circunstâncias foi adotada a estratégia de atenuar a amplitude dos componentes de alimentação de tal modo de os mesmos não mascarassem os componentes de ranhura do rotor. Evidentemente, depois de atenuar as frequências mais baixas, todo o sinal deve ser amplificado de modo a ocupar toda a faixa dinâmica do ADC, que, especificamente, no caso deste trabalho, varia de 0 a 3 V. Efetivamente todos esses procedimentos têm o objetivo final de amplificar os componentes de ranhura do rotor, presentes na corrente do estator, de tal modo que suas amplitudes sejam elevadas para valores próximos aos dos componentes relacionados ao sinal de alimentação do MIT. A solução adotada neste projeto consiste, idealmente, na aplicação de um filtro com caracterı́sticas especiais. Seria necessário um filtro que possuı́sse tanto a banda de passagem quanto a banda de rejeição plana, isto é, com ganhos constantes dentro 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS 77 de suas respectivas faixas de frequências. O primeiro gráfico da Figura 6.26 ilustra a curva ideal para filtro. Em casos práticos, porém, é impossı́vel obter um filtro com esta particularidade e o modelo que mais se assemelha com estas caracterı́sticas é o do filtro elı́ptico, também conhecido como Filtro de Cauer. Desde que seja implementado um filtro de ordem par, seus parâmetros podem ser ajustados para que as bandas de passagem e rejeição sejam aproximadamente planas, conforme mostrado na curva do segundo gráfico da Figura 6.26. Figura 6.26 Comparação entre as respostas do filtro ideal e elı́ptico. A primeira etapa no desenvolvimento do projeto do filtro foi a obtenção da função de transferência com as caracterı́sticas desejadas. Para isso foram utilizadas funções disponı́veis no software MATLAB. As especificações básicas do filtro estão descritas na Tabela 6.6. Tabela 6.6 Especificações do filtro elı́ptico de 4ª ordem projetado no MATLAB. Frequência de corte da banda passante (wp) 2π×500 rad/s Frequência de corte da banda de rejeição (ws) 2π×300 rad/s Ondulação na banda passante (Rp) 0,17 dB Atenuação na banda de rejeição (Rs) 40 dB A partir das especificações organizadas na Tabela 6.6 foi obtida a função de transferência descrita na Equação (6.12). A curva de resposta em frequência referente a essa função é mostrada na Figura 6.27. 78 PROJETO H(s) = 0.9772s4 + 3.803e06s2 + 2.022e12 s4 + 7689s3 + 3.703e07s2 + 8.829e10s + 2.022e14 (6.12) Figura 6.27 Resposta em frequência da função de transferência obtida. Ao observar a Figura 6.27 pode-se notar a existência de grandes ondulações na banda de rejeição que é caracterı́stica dos filtros elı́pticos. O número de ondulações para um filtro de ordem N será igual a N/2. Apesar dessas ondulações, a faixa de frequências onde estão presentes os componentes referentes à tensão de alimentação do MIT sofrem atenuações entre 40 e 45 dB, o que atende às necessidades do projeto. As ondulações na banda de passagem podem ser definidas a partir das especificações do filtro, quanto maior a ordem do filtro, menor será as ondulações. É possı́vel ver claramente que para frequências superiores a 550 Hz as amplitudes praticamente não sofrem atenuação. Para sintetizar o circuito foi utilizada a topologia denominada por filtro de variável de estado, também conhecido como filtro de KHN, em homenagem aos seus inventores Kerwin, Huelsman e Newcomb (Malvino; Bates, 2009) Embora sua construção seja mais complexa do que as topologias Sallen-Key e multiple-feedback, por exemplo, ela possui algumas vantagens. A principal delas é o fato da curva de resposta em frequência ser menos sensı́vel a variações dos valores nominais dos componentes utilizados, fazendo com que sua sintonia seja mais fácil de ser realizada do que em outros filtros. A Figura 6.28 mostra o circuito básico para um estágio do filtro KHN. Adicionando um quarto amp-op (amplificador operacional) e alguns componentes, o ganho de tensão se torna independente do fator de qualidade (Q), o que torna o filtro ainda mais flexı́vel (Malvino; Bates, 2009). Embora sejam necessários a utilização de 3 a 5 amp-ops para construir um 79 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS estágio de 2ª ordem, esta topologia pode ser utilizada para implementar qualquer circuito linear a partir da sua função de transferência. R C C C R Vin R R HPout LPout R1 R BPout Figura 6.28 Estágio básico para um filtro KHN. A implementação de um filtro KHN de 4ª ordem pode ser realizada através de um único estágio, sendo necessário, para isso, a utilização de 6 amp-ops, que deixaria o circuito mais complexo. Para diminuir a complexidade e evitar possı́veis problemas de ajustes o circuito do filtro foi construı́do a partir de dois estágios de 2ª ordem conectados em cascata. Embora, para sintetizar um circuito com a resposta em frequência mostrada na Figura 6.27 sejam necessários estágios com caracterı́sticas diferentes, para este projeto foram obtidos bons resultados com a utilização de dois estágios semelhantes. As especificações do filtro de 2ª ordem estão organizadas na Tabela 6.7. A Figura 6.29 mostra a curva de resposta em frequência obtida em um dos estágios. Figura 6.29 Resposta em frequência para estágio de 2ª ordem. A curva de resposta em frequência obtida a partir da associação dos dois estágios de segunda ordem pode ser vista na Figura 6.30. O circuito completo para um estágio de segunda é apresentado no Apêndice A. Devido à utilização de estágios praticamente idênticos, é possı́vel notar a semelhança com a curva da Figura 6.29, onde vemos apenas 80 PROJETO Tabela 6.7 Especificações do filtro elı́ptico de 2ª ordem projetado no MATLAB. Frequência de corte da banda passante (wp) Frequência de corte da banda de rejeição (ws) Ondulação na banda passante (Rp) Atenuação na banda de rejeição (Rs) 2π×550 rad/s 2π×150 rad/s 0,17 dB 20 dB uma ondulação, entretanto, os nı́veis de atenuação obtidos são semelhantes aos observados na Figura 6.27. Pode ser observado que os ganho na faixa de frequências referentes à alimentação do MIT estão atenuadas em pelo menos 40 dB. Já as amplitudes dos componentes de ranhura estão localizadas entre 36 e 40 dB acima dos componentes referentes à alimentação. Figura 6.30 Curva de resposta obtida para os dois estágios em cascata. 6.5.6 Coleta de dados na Bancada BI - EXPERIMENTO T2 Para verificar a influência do filtro passa altas sobre os dados de corrente do estator, coletados em uma das fases do MIT, um novo experimento foi realizado. Os novos dados foram coletados na Bancada BI e o motor foi submetido a condições de carga semelhante às realizações do primeiro experimento. A Figura 6.31 mostra o diagrama atualizado do sistema utilizado para realizar a nova coleta de dados. A única diferença com relação ao esquema mostrado, anteriormente, na Figura 6.22 é a presença do filtro passa altas que foi conectado antes do filtro anti-aliansing. Assim como do primeiro experimento, nesse, também, foram realizadas diversas coletas de dados com o MIT operando em diferentes frequências de alimentação e diferentes cargas. A Figura 6.32 mostra a comparação entre os espectros obtidos a partir da aplicação da FFT sobre uma janela de dados coletada para o MIT operando com carga e frequência nominais. 81 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS MIT Sonda Corrente Filtro PA Filtro PB Amp. c/ offset Discovery Board Figura 6.31 Diagrama básico para o novo circuito de coleta de dados. Figura 6.32 Comparação do espectro dos sinais com e sem o filtro passa-altas. Ao observarmos os dois espectros na Figura 6.32 é possı́vel notar, de maneira muito evidente, a influência do filtro passa-altas (PA) na exibição dos componentes de frequências do sinal de corrente do estator. No primeiro gráfico, onde os dados foram coletados sem o filtro PA, praticamente, o único componente evidente é referente a frequência fundamental do sinal de alimentação do MIT, que no caso foi alimentado com o inversor funcionando a 60 Hz. No segundo gráfico, já com a presença do filtro PA, é possı́vel ver um espectro bem mais complexo, além da frequência fundamental de alimentação do MIT, é possı́vel notar, também, alguns harmônicos (5º e 7º) de maneira bem evidente. Na faixa de frequências relacionada aos componentes de ranhura do rotor é possı́vel identificar todos principais componentes. Nota-se que amplitude desses componentes varia de acordo a ordem temporal (δ) a que estão associados. O componente de maior amplitude pode variar, também, de acordo com caracterı́sticas construtivas e condições de operação do MIT. Para o motor da Bancada BI, o componente de maior amplitude está associado a δ = 1. A relação 82 PROJETO absoluta entre as amplitudes do componente fundamental de alimentação do MIT (f0 ) e o componente de ranhura do rotor (fsh 99K δ = 1) é menor que 3 dB, uma vez que o sinal de saı́da do filtro foi amplificado para ocupar toda a faixa dinâmica do ADC, é possı́vel concluir que, para este caso, a magnitude do componente de ranhura está sendo representado pelos 12 bits na conversão. A Figura 6.33 mostra a comparação entre os espectros obtidos com a CZT aplicada na faixa de frequências onde é possı́vel encontrar os componentes de ranhura para o MIT, quando alimentado a 30 Hz. Figura 6.33 Comparação dos espectros antes e depois do filtro PA (30 Hz). Os dados foram coletados em condições onde, anteriormente, haviam sido obtidos os piores resultados, isto é, com o inversor operando em baixa frequência e, sobretudo, com a carga ajustada para o menor valor possı́vel, fazendo com que o MIT trabalhasse praticamente a vazio. Nota-se claramente que o espectro apresentado no primeiro gráfico da Figura 6.33 apresenta uma relação sinal-ruı́do (SNR) bastante ruim. Embora seja possı́vel identificar pequenos picos dos componentes produzidos pelas ranhuras do rotor, a maioria deles se apresenta de maneira muito confusa, de tal modo que não é possı́vel garantir a integridade das estimativas de velocidade realizada a partir desses componentes. Em contrapartida, no espectro exibido no segundo gráfico, quando foi utilizado o filtro PA, é possı́vel ver claramente a maioria dos componentes de ranhura do MIT. A amplitude dos componentes de ranhura possuem variações similares àquelas de quando o motor foi alimentado a 60 Hz, e neste caso, também, o componente de maior amplitude está associado a δ = 1. A Figura 6.34 resume os espectros dos piores casos observados depois da utilização 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS 83 do filtro PA. Cada gráfico apresenta o espetro obtido a partir da aplicação da CZT na faixa de frequências onde é possı́vel encontrar os componentes de ranhura (fsh ) de ordem temporal igual a 1 (δ = 1), uma vez que, para o MIT da Bancada BI, são os que apresentam maior amplitude. Para cada frequência de operação do inversor a carga foi ajustada para o menor valor possı́vel, uma vez que foram nessas condições que foram obtidos os piores resultados durante a realização do Experimento T1. Figura 6.34 Resumo com os espectros dos piores casos obvervados com a utilização do filtro passa-altas elı́ptico. Na Figura 6.34, diferentemente do observado na Figura 6.25, é possı́vel identificar claramente os componentes de ranhura do rotor (fsh ). A relação-sinal ruı́do (SNR) dos espectros varia entre 18 e 25 dB. Observa-se, ainda, que no pior caso, quando o MIT é alimentado à 30 Hz, existe uma relação sinal-ruı́do da ordem de 18 dB. Inicialmente, sem a utilização do filtro PA, em condições de operação idênticas, a relação observada foi de apenas 1,52 dB. Vale lembrar que o sinal de saı́da dos circuitos de condicionamento foi ajustado para ocupar toda a faixa dinâmica do ADC (12 bits) quando o inversor estava operando a 60 Hz e que as amplitudes dos componentes são diretamente proporcionais à frequência de operação. Diante disso podemos constatar que a amplitude do componente de ranhura para o MIT operando a 30 Hz e em baixo escorregamento é representado por 10 bits. 84 6.5.7 PROJETO Amplificador de Ganho Programável O circuito da Figura 6.18, conforme já discutido, é utilizado para adicionar um componente DC ao sinal de saı́da dos filtros, bem como para adequar a amplitude desses sinais à entrada do ADC. Entretanto, conforme discutido da seção anterior, as amplitudes dos componentes do sinal de corrente é função tanto do valor da corrente que circula no estator como da frequência de operação do inversor. Desse modo, em casos práticos, geralmente o ganho do amplificador é ajustado em função da corrente nominal do MIT. Uma rede de resistores, selecionáveis por meio de chaves mecânicas, poderia ser dimensionada para flexibilizar a escolha do ganho do amplificador em uma função aproximada da corrente nominal do MIT. Entretanto uma solução mais eficiente para esta questão, que foi adotada para este projeto, é a utilização de um amplificador com ajuste de ganho programável. A Figura 6.35 mostra o circuito do amplificador com off-set e ajuste programável de ganho. Rf Vref+ R 2*Rf AO Vi R Vx R Vin AO Vout R AO B W A MCP41010 Figura 6.35 Amplificador com off-set ajuste programável de ganho. O circuito é praticamente o mesmo apresentado na Figura 6.18 exceto pelo fato de já incluir o estágio amplificador, que anteriormente era utilizado na saı́da do filtro passabaixas. Antes de seguir com as explicações vale lembrar que os filtros utilizados possuem ganho unitário (0 dB) e dessa forma, de acordo as caracterı́sticas desses circuitos, os sinais aplicados à entrada do amplificador programável possuem amplitudes muito pequena e dessa forma o ganho deverá ser maior que 1. A principal diferença desse amplificador está na utilização do dispositivo MCP41010, que é um potenciômetro digital fabricado pela Microchip. A Figura 6.36 mostra o diagrama de blocos genérico da famı́lia MCP4XXXX, que possui modelos com um ou dois canais e valores de 10 kΩ, 50 kΩ ou 100 kΩ, todos com resolução de 8 bits (256 nı́veis). O MCP41010, utilizado neste projeto, é um modelo de 10 kΩ e possui apenas um canal. O controle do dispositivo é realizado através de uma interface de comunicação serial baseada 6.5 CIRCUITOS DE CONDICIONAMENTO DE SINAIS 85 no protocolo SPI (Serial Peripheral Interface). A Figura 6.37 mostra o diagrama temporal para escrita de instruções ou dados no potenciômetro digital. Os três terminais utilizado para comunicação SPI são: CS (Chip Select), SCK (Serial Clock ) e SI (Serial Data Input). O sinal CS deve ser colocado em nı́vel baixo para iniciar a comunicação e posteriormente, ao fim da transmissão, deve ser colocado em nı́vel alto para que os dados sejam carregados nos registradores. O sinal de clock (SCK) serve para sincronizar a transmissão dos dados que ocorre por meio do terminal (SI). Cada pacote transmitido é composto por dois bytes, um de comando e outro com o dado referente ao valor da resistência. Figura 6.36 Diagrama de bloco do MCP4XXXX. Fonte: (Microchip, 2003) Figura 6.37 Diagrama temporal para comunicação SPI. Fonte: (Microchip, 2003) A Figura 6.38 mostra os detalhes sobre o formato do byte de comando. Efetiva- 86 PROJETO mente são utilizados apenas quatro bits para definir o comando. Os bits C0 e C1 define o tipo de comando, conforme descrito na figura e os bits P0 e P1 é utilizado para selecionar para qual potenciômetro o comando será direcionado. No caso do modelo MCP41010, que possui apenas um canal, o bit P1 não tem função definida (Don’t Care) e pode assumir qualquer valor. Figura 6.38 Formato do byte de comando do potenciômetro. Fonte: (Microchip, 2003) A utilização do amplificador com ganho programável confere ao circuito de condicionamento uma maior flexibilidade, uma vez que o ganho pode ser ajustado por software. Um rotina simples foi implementada no firmware para ajustar o ganho de modo que a tensão de saı́da dos circuitos pudesse ocupar toda faixa dinâmica do ADC. Conforme já discutido, a amplitude dos componentes de frequência presentes no sinal de corrente do estator é função de alguns parâmetros de operação do MIT, sobretudo da corrente nominal e da frequência da tensão de alimentação. A rotina que efetua o ajuste do ganho do amplificador é executada, condicionalmente, antes que o os algoritmos principais sejam iniciados, ou seja, sua execução pode ser habilitada ou desabilitada de acordo as necessidades de uso. Durante a execução do ajuste de ganho a carga no eixo do MIT deve ser elevada para o maior valor possı́vel no ciclo de trabalho, uma vez que nessas condições a corrente do estator irá apresentar maior amplitude. Durante a operação em sistemas não estacionários a carga no motor sofre variações, contudo, vale lembrar que a maioria dos MITs são projetados para operar com carga nominal e, dessa forma, nos experimentos realizados neste trabalho para definir o ganho do amplificador a carga no eixo do motor foi ajustada para um valor próximo do nominal. A Figura 6.39 mostra o fluxograma simplificado do algoritmo utilizado para realizar o ajuste do ganho do amplificador. Ao iniciar a rotina a variável MCPR é definida como zero, o que na prática significa o envio do comando de escrita para que o valor da resistência RBW , conforme circuito da Figura 6.35, seja definido como zero. Isso faz com 6.6 INTERFACE COM CLP 87 que o ganho do amplificador seja de 0 dB, pois o amplificador operacional funcionará como um seguidor de tensão. Em seguida o valor de MCPR é incrementado, isto é, a relação RBW /RAW será maior que zero. Depois disso é realizada a coleta de uma janela de dados por meio do ADC. Esses dados são processados para que o valor de pico do sinal amostrado seja identificado. Posteriormente o valor obtido a partir da leitura do ADC é comparado com um valor de tensão máximo. Este valor (VM AX ) normalmente é definido para próximo do limite superior da faixa dinâmica do ADC. Enquanto a tensão lida no conversor analógico-digital (VADC ) for menor que VM AX , o processo de incrementar o valor de MCPR, ou seja, de incrementar o ganho, se repetirá. Quando a condição for atendida o valor da variável MCPR será salvo, através de funções especı́ficas, na memória flash do microcontrolador. Figura 6.39 Fluxograma básico do algoritmo para ajuste de ganho do amplificador. Quando os circuitos são desenergizados, os valores armazenados nos registradores do MCP41010 são restaurados para valores padrões, entretanto, durante a inicialização do sistema, caso não seja desejado um novo ajuste do ganho do amplificador, o valor de MCPR é lido na memória flash e enviado para o potenciômetro digital, fazendo que o valor do ganho seja reestabelecido. 6.6 INTERFACE COM CLP A interface de comunicação com CLP utilizada neste projeto é baseada em telemetria por corrente. Nesse sistema a magnitude da grandeza é convertida em uma corrente contı́nua proporcional que circula em um loop e é detectada pelo receptor, no extremo da linha, medindo-se a o valor da queda de tensão sobre uma resistência de valor conhecido. Uma das principais vantagens em se utilizar este sistema está no fato dele possuir uma maior imunidade a ruı́dos, uma vez que esses, em sua maioria, são sinais de tensão e não altera as informações contidas no sinal de corrente. De maneira geral um emissor 4-20 mA pode entendido como uma fonte de corrente ajustável, isto é, é capaz de impor um valor de corrente independente da variação das cargas na linha (Pallás-areny; Webster, 2001). Apesar de existirem outro valores, a faixa de 4 a 20 mA é mais habitualmente 88 PROJETO utilizada e existem uma grande variedade de transceptores que implementam este padrão. Outra vantagem em utilizar 4 mA para representar o valor 0 é que, dessa forma, é possı́vel distingui-lo da ocorrência de um loop aberto (0 mA). O valor utilizado para a resistência do receptor é de 250Ω, sendo possı́vel, dessa forma, obter valores de tensão entre 1 e 5 V. A Figura 6.40 mostra um diagrama simplificado de um sistema de telemetria com interface 4-20 mA. 4-20 mA Saída do dispositivo 0-5 VDC Entrada Analógica i i Transmissor i 250 ohms Receptor Figura 6.40 Diagrama simplificado de um sistema com interface 4-20mA. O interfaceamento adotado para este projeto é baseado no circuito integrado AD420 fabricado pela Analog Devices. A Figura 6.41 mostra o diagrama funcional do dispositivo. O AD420 é baseado em um Conversor Digital Analógico (DAC) com arquitetura Sigma-Delta (Σ−∆) e resolução de 16 bits. O dispositivo foi projetado para atender as necessidades de controle industrial e constitui uma solução de baixo custo e alta precisão integrada em um único encapsulamento. A corrente de saı́da pode ser configurada para variar na faixa de 0 a 20 mA ou de 4 a 20 mA. Alternativamente ele fornece, também, os valores de tensão em um pino separado. O dispositivo possuir, ainda, um pino de saı́da digital utilizado para informar se houve o rompimento do loop de corrente (Analog-devices, 1999). Os sinais de dados e controle podem ser transmitidos por meio de comunicação serial e de maneira muito flexı́vel, uma vez que podem ser usadas interfaces three-wire no modo SPI ou MICROWIRE. Também pode ser utilizado um modo assı́ncrono que minimiza o número de sinais de controle. Os dados podem ser transmitidos a uma taxa máxima de 3,3 Mbps. No modo assı́ncrono a taxa máxima para transmissão é de 150kbps (Analog-devices, 1999). A Figura 6.42 mostra o diagrama temporal para comunicação utilizando interfaceamento three-wire. A comunicação a 3 fios pode ser utilizada com qualquer microcontrolador sem a necessidade de recursos especiais. Os dados (DATA IN) são carregados para o registrador de entrada sob o controle do sinal de CLOCK e são carregados para o DAC quando o sinal do LATCH é colocado em nı́vel alto. A Figura 6.43 mostra o circuito proposto pra interfaceamento entre o microcontrolador STM32F429 e dispositivos que utilizem o padrão 4-20 mA. O circuito foi elaborado seguindo as recomendações indicada no datasheet do componente. Vale uma pequena observação sobre as fontes de tensão do circuito. A tensão VCC é a fonte de alimentação do AD420, responsável por alimentar todos os componentes internos e deve possuir valores entre 12 e 32 V. A tensão designada por VLL possui valor de 4,5 V e é gerada interna- 89 6.6 INTERFACE COM CLP Figura 6.41 Diagrama de bloco funcional do AD420. Fonte: (Analog-devices, 1999) Figura 6.42 Diagrama temporal para interfaces Thee-Wire. Fonte: (Analog-devices, 1999) mente para alimentar os elementos digitais do integrado. Ela também é disponibilizada através do pino 2 e geralmente é utilizada para alimentar os resistores pull-up. Embora possa ser utilizado uma fonte de tensão de 5 V aplicado ao terminal 2, o que faria a diminuir a potência dissipada internamente no dispositivo, o uso de VLL, além de deixar o circuito mais compacto, facilita o processo de isolação do circuito do laço de corrente e do circuito microcontrolado, que é alimentado pela tensão VDD. Os pinos 4 e 5 são utilizados para configurar a faixa de corrente na saı́da. Para 90 PROJETO 100 Ω VLL VCC 10 kΩ 2 5 4 23 14 15 7 3 AD420 8 PCLOCK 100 Ω FAULT 100 Ω PLATCH 100 Ω VDD 100nF 10 kΩ 10 kΩ 100nF VLL 10 kΩ VDD VCC 18 9 20 PDATA 10nF 21 68 Ω 4-20 mA Iout 11 10nF Figura 6.43 Circuito para interface de corrente 4-20 mA com CLP. que o AD420 funcione no modo de corrente na faixa de 4-20 mA, é necessário colocar o pino 4 em nı́vel baixo (0 volts) e o pino 5 deve ser ativado, para isso geralmente é utilizado a tensão VLL (+4,5 V). O pino 3 é uma saı́da do tipo dreno aberto e é acionada quando ocorre um rompimento do laço de corrente. Esse terminal (FAULT) gera um sinal de interrupção que tratado pelo microcontrolador. Os demais terminais, PLATCH, PCLOCK e PDATA, são utilizados para a comunicação sı́ncrona entre o microcontrolador e o AD420. O algoritmo para envio dos dados é extremamente simples e é baseado no protocolo SPI. Inicialmente o sinal PLATCH é levado ao nı́vel 0, depois acontece o envio sequencial dos 16 bits de dados (inicia pelo mais significativo) que são sincronizados com a subida de borda do sinal PCLOCK. Finalmente, quando o sinal PLATCH é levado ao nı́vel alto, na subida de borda, os dados digitais são convertidos em sinais analógicos de tensão e corrente, disponibilizado nos pinos 17 e 18, respectivamente. Vale lembrar que, antes do envio, os dados precisam ser ajustados para serem representados por uma variável de 16 bits. Primeiramente deve ser definida a faixa de valores onde a grandeza será avaliada. Essa variação deve ser convertida em um número inteiro de 16 bits, isto é, qualquer variação definida previamente deve corresponder a variação de 0 a 65535. Este ajuste pode ser realizado através da Equação (6.13), onde G é o valor real da grandeza, Gmin e Gmáx são, respectivamente, os valores mı́nimos e máximos que compreende a faixa de valores avaliados. O valor Gc corresponde ao dado convertido e seu valor varia de 0 a 2n − 1, onde n é o número de bits. G − Gmin Gc = (2 − 1) Gmáx − Gmin n (6.13) Neste trabalho a grandeza avaliada é o torque de motores de indução trifásico e foi 6.7 INTERFACE DE PARAMETRIZAÇÃO 91 definida uma faixa de torque avaliada entre 0 e 1,5 vezes o valor do torque nominal do MIT. Considerando que a resolução do AD420 é de 16 bits podemos, a partir da Equação (6.13), chegar na Equação (6.14). Te Dc = 43690 × Tn (6.14) onde Te e Tn (ambos em N.m) são, respectivamente, o torque estimado e nominal do MIT e Dc é o dado convertido que será arredondado para o inteiro mais próximo e posteriormente enviado para o AD420. 6.7 INTERFACE DE PARAMETRIZAÇÃO Conforme já foi discutido na Subseção 6.2.4, a implementação da técnica de análise espectral dos componentes de ranhura presentes na corrente do estator é baseada na utilização da Equação (4.1). Observa-se que o componente fsh é função, dentre outros, de parâmetros fı́sicos do MIT, tais como número de ranhura (Z) e número de pares de polos (p). Esse e outros parâmetros do motor de indução são utilizados pelos algoritmos desenvolvidos para o projeto. Para possibilitar uma maior flexibilidade na definição desses parâmetros foi desenvolvida uma Interface Humano-Máquina (IHM). Para isso foi implementado uma interface de software em linguagem de alto nı́vel (Delphi 2010). Na interface gráfica, mostrada na Figura 6.44, os parâmetros são inseridos pelo usuário. Os dados são formatados em um pacote de caracteres e enviados via comunicação serial. A Figura 6.45 mostra o formato do pacote de dados utilizados para parametrização. O protocolo desenvolvido é bastante simples e o pacote de dados é constituı́do basicamente por quatro partes. A primeira utiliza o caractere “#” para marcar o inı́cio do pacote de dados. A segunda guarda o código da função que é definida por uma letra maiúscula. Para o projeto foram implementadas apenas 2 funções: leitura (“R”) e escrita (“W”). A terceira parte do pacote contêm os valores dos parâmetros que serão transmitidos, onde a separação de cada valor é realizada pelo marcador identificado pelo caractere “:”. Finalmente o final do pacote é marcado pelo caractere “*”. O algoritmo que trata a recepção dos dados é bastante simples. Nele os marcadores são utilizados para identificar cada parte do pacote de dados, possibilitando a identificação de todas as informações contidas no mesmo. 6.8 INTERFACE DE COMUNICAÇÃO SERIAL Conforme apresentado na seção anterior, uma interface de software foi desenvolvida para o PC, através dela é possı́vel enviar, para o microcontrolador, alguns parâmetros necessários para o funcionamento adequado do sistema. A comunicação pelo meio fı́sico é baseada num controlador USART (Universal Synchronous Asynchronous Receiver Transmitter ) que integra a arquitetura da grande maioria dos microcontroladores. Este con- 92 PROJETO Figura 6.44 Interface gráfica do software de parametrização do sistema. # Cód.Função INÍCIO P1 : P2 ... PN PARÂMETROS SEPARADOR FINAL Figura 6.45 Formato do pacote de dados de parametrização. trolador segue quase que integramente as especificações do padrão RS-232, com exceção dos nı́veis de tensão, que no caso do controlador USART geralmente são utilizadas 0 V para representar o nı́vel baixo e 3,3 V (CMOS) ou 5 V (TTL) para representar o nı́vel alto. Atualmente praticamente todo dispositivo que dispõem do padrão de comunicação serial RS-232 utilizam como base os controladores USART, onde geralmente um circuito eletrônico é utilizado para conversão dos nı́veis de tensão (Mathivanan, 2007; Seyer, 1988). Em ambientes industriais a utilização do padrão RS-232 é mais recomendável do que a utilização puramente do módulo USART. Entretanto, para garantir uma maior portabilidade, no protótipo resultante desse trabalho foi adotada uma solução baseada em comunicação USB (Universal Serial Bus). Mais especificamente, foi utilizado o modo de comunicação CDC (Communication Device Class) que consiste em um mecanismo de comunicação de propósito geral que pode ser usado para a comunicação entre um grande número de dispositivos (Axelson, 2011). Na prática esse modo de operação permite que a tecnologia USB/CDC seja utilizada para emular uma porta serial tradicional. Embora a comunicação seja baseada na pilha de protocolos USB, os procedimentos utilizados para 6.9 VERSÃO FINAL DO FIRMWARE UTILIZANDO O FREERTOS 93 o desenvolvimento da interface gráfica no PC são exatamente os mesmos utilizados para o padrão RS-232, isto é, os softwares são exatamente os mesmos. Existem diversas soluções para circuitos de interfaceamento USB-USART. Para este trabalho foi utilizado o circuito integrado PL2303HX fabricado pela Prolific. Este chip opera como uma ponte entre a porta USB e uma porta serial USART/RS232. Por possuir dois grandes buffers que acomodam o fluxo de dados dos dois barramentos diferentes e utilizar o modo de transferência USB Bulk é possı́vel obter taxas de transferências maiores do que aquelas que, geralmente, são alcançadas pelos controladores tradicionais (Axelson, 2015; Prolific, 2007). A Figura 6.46 mostra o circuito de interfaceamento USBUSART utilizado no projeto. Em caso da necessidade da utilização do padrão RS-232 real, também, existem diversas soluções possı́veis (Dobkin; Hamburger, 2014). Como sugestão é apresentado o circuito da Figura 6.47 que é baseado no MAX 3232 (Texas Instruments, 2015). Figura 6.46 Circuito de interfaceamento USB-UART. 6.9 VERSÃO FINAL DO FIRMWARE UTILIZANDO O FREERTOS Inicialmente os algoritmos desenvolvidos para firmware do sistema embutido foram baseados em um projeto bare-metal, ou seja, que não faz uso de um sistema operacional. Nesta seção será tratado o desenvolvimento da versão final do firmware, onde foi utilizado um sistema operacional de tempo real (RTOS), mais especificamente foi utilizado 94 PROJETO Figura 6.47 Circuito para interfaceamento RS232-UART. o FreeRTOS. Nos tópicos seguintes serão discutidas as principais caracterı́sticas desses sistemas, onde serão apresentadas as principais razões para a utilização de um sistema operacional de tempo real. Serão apresentados, também, a estrutura básica das tarefas e rotinas implementadas para o sistema. 6.9.1 Sistemas Bare-metal Projetos de sistemas bare-metal são aqueles onde o desenvolvedor manipula diretamente as rotinas que controla o hardware do sistema, isto é, aquelas que executam instruções de acesso aos periféricos do sistema do microcontrolador, sobretudo, da memória. Projetos de sistemas embutidos de baixa complexidade que, geralmente, fazem uso desse tipo de estrutura não possuem controle explı́cito de tempo, fazendo com que o controle de temporal seja obtido por meio de rotinas de retardo escritas pelo próprio desenvolvedor. Este procedimento costuma ser denominado como controle implı́cito de tempo. Um procedimento que geralmente é empregado no desenvolvimento de sistemas embutidos bare-metal é o Foreground/Background, também chamado, popularmente, de super-loop (Oshana; Kraeling, 2013). Este tipo de aplicação consiste em um loop infinito onde ocorrem, sequencialmente, as chamadas das funções que compõem o firmware. Este loop principal é chamado de background. Nesses sistemas a ocorrência de um evento assı́ncrono normalmente é detectada por interrupção de hardware. As rotinas de tratamento dessas interrupções são denominadas de Foreground. Quando o processamento da função de foreground é concluı́do, o sistema troca o contexto de execução novamente para a operação de Background (Labrosse, 2002; Singh, 2002). A Figura 6.48 mostra o diagrama temporal da execução e um programa desenvolvido utilizando a abordagem do superloop. É possı́vel observar o comportamento do sistema, onde as funções principais são executadas em background em são interrompidas para execução das rotinas de ISR (Interrupt Service Routine). Pode-se observar, ainda, 95 6.9 VERSÃO FINAL DO FIRMWARE UTILIZANDO O FREERTOS a troca de contexto entre duas ISRs de prioridades diferente. Foreground (ISR2) Foreground (ISR1) Background Função #1 Função #2 Função #3 Loop infinito Linha do tempo Figura 6.48 Diagrama temporal da execução de um programa com superloop. As principais vantagens desse tipo de projeto são: (i) desenvolvimento fácil e rápido; (ii) não requer o conhecimento de API’s especı́ficas de um RTOS; (iii) não consome recursos adicionais se comparado à solução com sistema operacional. Pode ser considerada uma solução adequada para projetos pequenos e com restrições temporais mais flexı́veis. Se por um lado esse gera um baixo overhead de sistema (memória e processamento), por outro possui o grande inconveniente de não ser determinı́stico no que se refere a tempo, ou seja, é muito difı́cil que uma operação seja executada dentro das restrições tempo. Uma vez que todo código em background tem o mesmo nı́vel de prioridade, se uma das funções, por exemplo, demorar mais que o esperado, todo o sistema será impactado. Uma simples alteração no laço principal pode alterar o comportamento temporal das funções seguintes ao ponto onde ocorreram as modificações. Existe, também, um grande desafio associado à coordenação entre as funções de background e foreground. Diante dessas questões é preciso adotar uma solução que gerencie de maneira adequada os requisitos temporais de um sistema. E nesse quesito onde encontramos as principais vantagens em se utilizar um sistema operacional de tempo real. Um SO de tempo real constitui uma poderosa ferramenta para gerenciar a complexidade temporal, facilitar o reuso e aumentar a portabilidade do firmware/software e, também, diminuir o tempo de desenvolvimento de um determinado produto. 6.9.2 Sistemas Operacionais de Tempo Real Uma maneira de solucionar os problemas encontrados na implementação Background/Foreground, sobretudo do não determinismo, é partir para utilização de sistema operacional de tempo real. Baseando-se no conceito de tarefas e prioridades, um kernel de tempo real é um software responsável por gerenciar o tempo e os recursos da Unidade Central de Processamento (CPU). Todas as funcionalidades do sistema são divididas em tarefas. O kernel também é responsável por determinar qual tarefa será executada, ge- 96 PROJETO ralmente, baseando-se na prioridade das tarefas. O desenvolvedor tem a responsabilidade de dividir o sistema em tarefas e definir prioridades de acordo com as especificações de tempo real de cada uma delas (Oshana; Kraeling, 2013). Uma das caracterı́sticas de um SO é a facilidade de modularizar o sistema por meio da criação de tarefas com finalidades bem definidas e, consequentemente, a alteração das rotinas que compõem o sistema se torna um procedimento simples. Além do mais, esse tipo de implementação favorece o reaproveitamento de código. Em um sistema de múltiplas tarefas o usuário tem a sensação de que todas as tarefas (tasks/threads) são executadas simultaneamente. Entretanto, considerando que o sistema possui apenas um núcleo de processamento e que um processador pode executar apenas uma tarefa de cada vez, é necessária a realização da comutação entre as tarefas (Curtis, 2011). Esta situação é representada na Figura 6.49, onde é ilustrado um diagrama temporal para execução de 3 tarefas. Observe que cada tarefa ocupa uma fatia de tempo, entretanto, vale lembrar que nem sempre as tarefas são chaveadas de maneira sequencial como está ilustrado na figura. Tarefa 1 Tarefa 2 Tarefa 3 t1 t2 t3 ... tn Linha do tempo Figura 6.49 Diagrama temporal da execução de tarefas em um SO. Esta comutação entre as tarefas executadas, que pode acontecer por diferentes situações que são gerenciadas pelo kernel, é tecnicamente denominada de mudança de contexto. Em termos práticos o contexto é o conjunto de dados mı́nimos usados por esta tarefa, durante a sua execução, que devem ser guardados quando houver sua interrupção e permitir em um momento futuro a continuação desta tarefa no ponto que ela foi interrompida. Deste modo, enquanto uma tarefa está sendo executada ela possui um determinado contexto, isto é, informações da pilha (stack ), registradores da CPU, etc. A estrutura que armazena estes dados é chamada de TCB (Task Control Block ) (Hyder; Perrin, 2005). O escalonador de tarefas é a parte do kernel responsável por decidir qual tarefa será executada em um determinado instante. Existem diversos algoritmos em que são definidas as polı́ticas de escalonamento, um dos mais populares é o Round-Robin Scheduling. Um kernel de tempo real geralmente tem outras responsabilidades, tais como: gerenciamento da comunicação entre as tarefas e entre tarefas e rotinas ISRs; gerenciar o uso de memória, etc (Kamal, 2008). Como vantagem mais evidente da utilização de um RTOS, pode ser apontada a 6.9 VERSÃO FINAL DO FIRMWARE UTILIZANDO O FREERTOS 97 possibilidade de priorizar tarefas, como forma de garantir que as restrições temporais da aplicação sejam atendidas. Além de permitir que o sistema seja orientado e eventos, possibilita a modularidade do mesmo. 6.9.3 FreeRTOS O FreeRTOS é um sistema operacional de tempo real de código aberto criado o inı́cio dos anos 2000 por Richard Barry. Atualmente é distribuı́do pela Real Time Enginneers Ltd e é RTOS mais utilizado no mundo dos sistemas embutidos (Barry, 2010). As principais caracterı́sticas do FreeRTOS são: 1. O kernel foi projetado para ser pequeno e de fácil utilização; 2. Foi escrito predominantemente em linguagem C, possui grande portabilidade; 3. Suporte para cerca de 34 arquiteturas diferentes; 4. Overhead muito pequeno, uma imagem binária, em configurações tı́picas do kernel, consome entre 4 e 9 kB de memória flash e em cerca de 200 byte de memória RAM. 5. O kernel pode, ainda, trabalhar tanto de forma preemptiva ou colaborativa, possui capacidade de trace e detecção de stack overflow ; permite mutex com suporte à herança de prioridade. 6. Não existe nenhuma restrição com relação ao número de tarefas criadas e oferece, ainda, suporte a aplicações de baixo consumo. O FreeRTOS possui uma comunidade vasta de desenvolvedores e a documentação é muito bem organizada. As funções da API estão todas documentadas em manual de referência especı́fico (Barry, 2009). Existe, ainda, um guia prático com exemplos da utilização de funções e serviços disponibilizados pelo SO. Oferece alguns serviços essenciais para o desenvolvimento de qualquer aplicação baseada em um conjunto de tarefas. Exemplos desses serviços básicos são aqueles utilizados para sincronização de tarefas como: Queues; Binary semaphores; Counting semaphores; Recursive semaphores e Mutexes. 6.9.4 Visão geral sobre o firmware do projeto Antes de iniciar as discussões a cerca do desenvolvimento da versão final do firmware para o projeto, vale relembrar a organização geral do mesmo. A Figura 6.50 mostra o diagrama geral contendo os principais blocos do sistema. Resumidamente, o sistema opera da seguinte forma: 1. Os dados de uma das fases do MIT, obtidos por meio da sonda de corrente, são aplicados no circuito de condicionamento; 98 PROJETO Circ. Cond. DMA RAM USART Interface PC ADC CPU GPIO LEDs / Botão SPIx Discovery Interface CLP STM32F429 Figura 6.50 Diagrama geral do sistema projetado. 2. Os dados devidamente ajustados pelo circuito de condicionamento são amostrados pelo ADC; 3. O controlador DMA, sem a interferência da CPU, transfere as informações contidas nos registrados do ADC para um buffer na memória RAM do microcontrolador; 4. Quando o número de amostras no buffer chega aos valores especificados interrupções são geradas para que a CPU possa acessa-los; 5. Os dados acessados na memória RAM são processados pelos algoritmos desenvolvidos para o projeto; 6. Os valores das grandezas estimadas são enviados, através de comunicação SPI, para o circuito de interface com o CLP; 7. Vale lembrar ainda que o controlador SPI é usado, também, para enviar dados ao circuito de condicionamento, onde o ganho do amplificador de saı́da é ajustado; 8. O controlador USART é utilizado para enviar e receber dados do PC, onde o software de parametrização fica instalado; 9. O botão é utilizado para que o usuário habilite ou não a execução da rotina de ajuste automático do ganho do amplificador de ganho programável; 10. Os LEDs não possuem função especı́fica que interfira no funcionamento dos algoritmos, são utilizados como sinalizadores do fluxo de dados que estão sendo amostrados pelo ADC; Um LED é utilizado, também, para sinalizar falhas no loop de corrente (4-20 mA) da interface com CLP; Uma vez compreendido o modelo geral do sistema, conforme Figura 6.50, podese, então, determinar quais tarefas são necessárias para o funcionamento adequado do protótipo. O fluxo principal de informação no sistema, conforme apresentado na Figura 6.51, consiste no procedimento de digitalização e armazenamento dos dados de corrente 99 6.9 VERSÃO FINAL DO FIRMWARE UTILIZANDO O FREERTOS Buffer[...] ADC/DMA PDS (FFT/CZT) Algoritmos Vel./Torq. Enviar CLP (SPI) Figura 6.51 Fluxo principal de dados dentro do sistema. do MIT; processamento digital dos sinais e estimação das grandezas; e posterior envio, através de comunicação SPI, para o circuito de interface com CLP; A partir do esquema apresentado na Figura 6.51 pode-se compreender melhor a divisão das principais tarefas do sistema. Para execução desses blocos de processamento de informação foram implementadas 4 tarefas principais que são executadas periodicamente, são elas: 1. Tarefa vTask DAT; 2. Tarefa vTask PDS; 3. Tarefa vTask CVT; 4. Tarefa vTask CLP; Também foi implementada uma tarefa denominada de vTask IHM para tratar as rotinas envolvidas no processamento dos dados de parametrização do sistema. 6.9.5 Implementação da tarefa vTask DAT A tarefa denominada de vTask DAT tem a função de tratar os dados digitalizados e prepara-los para o processamento. Esta é uma das tarefas fundamentais para o funcionamento adequado do sistema. Embora, em sı́ntese, os procedimentos envolvidos na execução da tarefa sejam relativamente simples, existem algumas particularidades que necessitam uma melhor explanação. Antes, porém, lembremo-nos de algumas caracterı́sticas e especificações do sistema conforme indicadas na Tabela 6.8. Tabela 6.8 Algumas especificações do sistema. Frequência de amostragem Comprimento da janela Sobreposição das janelas 5000 Hz 1024 amostras (204,8 ms) 50% / 512 amostras (102,4 ms) A utilização do controlador DMA torna desnecessária qualquer tipo rotina para o tratamento individual das amostras digitalizadas pelo ADC. Conforme discutido na Subseção 6.4.2, as amostras, digitalizadas a uma taxa de 5000 amostras/s, são transferidas para um buffer de memória sem interferência do CPU. Cada janela de dados tem um comprimento de 1024 amostras, o que equivale, no tempo, 204,8 ms. Lembrando que o sistema deve processar os dados de forma contı́nua e para isso foi utilizado um buffer 100 PROJETO circular duplo. Na prática é definido um buffer com 2048 posições, onde o controlador DMA inicia a transferência das amostras para as posições iniciais e quando o buffer estiver cheio, as amostras voltam a ser armazenadas nas posições inicias. Para detecção das janelas de dados, foi habilitada duas fontes de interrupção, uma que detecta que a metade do buffer está completo, e outra que detecta quando o buffer está cheio. Em resumo, uma interrupção é gerada a cada 1024 amostras digitalizadas. O recurso do buffer circular duplo é fundamental para que nenhuma informação seja perdida durante o processamento dos dados coletados em um instante de tempo anterior. Entretanto este recurso, da forma como é originalmente disponibilizado, não é suficiente, por si só, para garantir que o processamento das janelas de dados seja realizado com sobreposição. Conforme discutido nas seções anteriores, para o processamento das janelas de dados foi utilizado uma faixa de sobreposição de 512 amostras o que equivale a 50% do comprimento total da janela. Considerando, ainda, o caso do buffer duplo, imaginemos, como exemplo, uma situação onde o sistema é iniciado e uma interrupção indique a “chegada” das primeiras 1024 amostras. Elas serão lidas em suas respectivas posições de memória e são disponibilizadas para o processamento. Uma vez concluı́do o processamento dessa janela é preciso esperar que uma nova interrupção indique que existem mais 1024 amostras disponı́veis para processamento. Entretanto os dados devem ser avaliados com uma sobreposição de 512 amostras, isto é, das 1024 amostras referentes à nova janela, 512 são da janela processada anteriormente e outras 512 são do novo bloco de dados recebido. Lembrando que o controlador DMA funciona no modo circular, ou seja, os dados são gravados de maneira contı́nua e, dessa forma, os dados mais antigos vão sendo sobrepostos pelos mais recentes na taxa de amostragem dos sinais. Nesse sentido, faz-se necessário um cuidado maior no intuito de garantir que, no processamento de uma nova janela sobreposta, os dados referentes à janela anterior não tenham sido alterados. Se por um lado, as caracterı́sticas temporais das rotinas envolvidas no processamento não indiquem uma criticidade com relação essa questão, por outro, levando em consideração a escalabilidade proporcionada pela utilização de um RTOS esse é um ponto que suscita ideias que devem ser tratadas com cuidado maior. Entre as possı́veis soluções para as questões discutidas nos parágrafos acima, neste projeto foi adotada a utilização de um buffer circular triplo, implementado via software. A Figura 6.52 mostra a estrutura básica do buffer implementado com comprimento de 3 janelas. A ideia básica consiste em ler e escrever blocos de dados com comprimento da janela utilizada para processamento (1024 amostras). Os ı́ndices j e k indicados na Figura 6.52 representam os endereços base de leitura e escrita, respectivamente. O cálculo dos ı́ndices para leitura e escrita no buffer pode ser facilmente realizado pela relação descrita pela Equação (6.15) onde N é comprimento total do buffer : irw = (irw + 1) %N (6.15) 6.9 VERSÃO FINAL DO FIRMWARE UTILIZANDO O FREERTOS 101 j irw 1 02 4 24 10 N=3x1024 k 1024 irw =0, 1, 2...N, 0, 1,2...N, 0, 1, 2... Figura 6.52 Estrutura do buffer circular triplo implementado. O processo de escrita no buffer é sincronizado pelas interrupções geradas pelo controlador DMA, que sinalizam que uma janela de dados já pronta pra ser processada. Num instante inicial, as posições de leitura e escrita são iguais j=k=0. Na primeira interrupção detectada os dados são escritos no buffer e dessa forma o endereço base de leitura continua apontando para o inı́cio (j=0), já o endereço base para escrita apontará para o termo imediatamente posterior ao comprimento de uma janela, isto é, k=k+1024. O processo de leitura consiste, primeiramente, em verificar se o número de amostras disponı́veis no buffer é maior ou igual ao comprimento de uma janela. Este teste é essencialmente importante para o sincronismo da troca de informações, pois, após o processamento dos dados disponı́veis no buffer sempre restarão 512 amostras que serão utilizadas no processamento da janela subsequente. Desta maneira quando o teste verificar que o número de amostras disponı́veis no buffer é menor do que comprimento da janela (1024 amostras) a tarefa vTask PDS (responsável pela leitura dos dados) será colocada em estado de bloqueio até que uma nova interrupção seja gerada pelo controlador DMA. Após a realização do teste ocorre a leitura e processamento dos dados entre as posições j e j+1024. Na mesma rotina de leitura o ı́ndice é incrementado em 512 amostras (j=j+512).(colocar e explicar fluxogramas) 6.9.6 Implementação da tarefa vTask PDS A tarefa vTask PDS é responsável pela execução dos algoritmos de processamento digital de sinais. Conforme discutido na Seção 6.2 desde capı́tulo, objetivo da aplicação das técnicas de PDS é obter, como a maior exatidão possı́vel, os valores da frequência de alimentação (f0 ) e da frequência dos componentes de ranhura (fsh ) do MIT. Para obter uma maior exatidão na detecção dessas frequências, em face às limitações da FFT foi utilizada a CZT. Lembremo-nos de que a faixa de frequências onde os componentes de 102 PROJETO ranhura podem ser encontrados, depende do número de polos e ranhuras, e também é função do escorregamento nominal e da frequência de alimentação do MIT. Já a frequência de alimentação geralmente está dentro da faixa de 30 a 90 Hz. Sabe-se ainda que a resolução do espectro obtido com a CZT está diretamente relacionada com a extensão da faixa de frequências onde ela é calculada. A princı́pio, a fim de melhorar a exatidão na detecção de f0 , poderia, por exemplo, aplicar primeiramente a CZT numa faixa maior, para obter uma aproximação do valor e posteriormente aplicar novamente em uma faixa menor para que resolução fosse melhorada. Entretanto, pensando no custo computacional, esta primeira aproximação de valor de f0 pode ser realizada pela aplicação direta da FFT e em seguida aplica-se a CZT numa faixa de frequências em torno do valor aproximado, obtido com a FFT. O fluxograma da tarefa vTask PDS é mostrado da Figura 6.53. Figura 6.53 Fluxograma básico da tarefa vTask PDS. Os dados lidos no buffer são, primeiramente, utilizados como entrada da FFT para o cálculo do valor aproximado (fa ) da frequência de alimentação do MIT. A partir dessa aproximação é definida a faixa de frequências (bwo ) onde a CZT será aplicada a fim de obter o valor da frequência de alimentação (f0 ) com maior exatidão. A largura dessa faixa de frequências é 2 vezes a resolução da FFT (fs /N ) e com frequência central igual a (fa ). Sabe-se, ainda, que o erro máximo apresentado no espectro da FFT é igual a metade do valor da resolução (Erromax = fs /2N ). A partir dessa relação pode-se garantir que a CZT sempre será executada na faixa de frequências onde se encontra o valor de f0 . Uma vez definido o valor de f0 , é calculada a faixa de frequências onde a CZT 6.9 VERSÃO FINAL DO FIRMWARE UTILIZANDO O FREERTOS 103 deverá ser aplicada a fim de obter o valor de fsh . Para este propósito é utilizada a rotina BWSH que é função tanto da frequência de alimentação como de outros parâmetros (PM IT ) do MIT, tais como o escorregamento nominal, o número de polos e de ranhura. Em seguida valor de fsh é obtido a partir da avaliação do espectro obtido com CZT. Finalmente os valores de f0 e fsh são armazenados em uma estrutura do tipo fila (queue) de modo que possam ser acessado por outras tarefas. 6.9.7 Implementação da tarefa vTask CVT Outra tarefa do sistema, a vTask CVT, é responsável por efetuar os cálculos para estimação da velocidade e do torque. O fluxograma básico da tarefa é mostrado na Figura 6.54. Figura 6.54 Fluxograma básico da tarefa vTask CVT. Inicialmente os valores de f0 e fsh , que são calculados previamente através da tarefa vTask PDS, são lidos na fila. A velocidade é calculada com base na Equação (4.3), apresentada novamente a seguir: n= 60 (fsh ∓ δf0 ) Z Além dos valores de f0 e fsh , a velocidade estimada depende, também, do número de ranhuras (Z) e da ordem temporal do harmônico da fonte de alimentação (δ). O valor de δ pode variar de acordo com o motor, entretanto, para todos os experimentos realizados neste trabalho, os componentes associados a δ = 1 foram os que apresentaram melhores resultados. Em Silva (2014) são apresentados maiores detalhes sobre a escolha adequada dos valores de δ. Uma vez que o valor da velocidade estimada (ne ) é obtido através da função VCALC, o próximo passo é a execução da função TCALC, que tem a função de calcular o torque estimado (Te ). O cálculo do torque, conforme discutido no Capı́tulo 3, é realizado com base na curva torque versus velocidade. Mais precisamente, na região compreendida entre a velocidade sı́ncrona e a velocidade nominal do MIT o torque possui uma relação quase linear com a velocidade e pode ser aproximada de uma reta. A Figura 6.55 mostra a curva caracterı́stica torque versus velocidade de um MIT, representada pela linha contı́nua. A 104 PROJETO linha tracejada representa a curva linearizada entre os pontos (Ns , 0) e (Nn , Tn ). Onde Ns é a velocidade sı́ncrona; Nn e Tn correspondem, respectivamente, a velocidade e torque nominais. Figura 6.55 Curva Torque versus Velocidade do MIT. Fonte: (Silva, 2014) A equação da reta representada na Figura 6.55 possui a forma y = −mx + b. Utilizando os pontos definidos na reta podemos mostrar facilmente que a Equação (6.16) pode ser utilizada para obter o torque estimado. Te = Tn Ns − n Ns − Nn (6.16) De posse das informações de placa do MIT e usando o valor estimado da velocidade, obtido a partir da Equação (4.3), na Equação (6.16) podemos estimar o valor do torque eletromagnético no MIT. Observe, porém, que a equação modela especificamente apenas a região da curva representada na figura, notemos que o valor da velocidade sı́ncrona (Ns ), conforme definido na Equação (6.17), varia em função da frequência de alimentação. O valor de Ns representado na figura está associado aos parâmetros nominais do MIT. Porém, na situação em que o MIT é alimentado pelo inversor, obviamente, o valor da velocidade sı́ncrona também sofrerá variações de acordo a frequência da tensão gerada. Nesse sentido é preciso chegar a uma equação que possa levar em consideração esta variação. A curva traço-ponto indicada na Figura 6.56 mostra uma reta genérica onde são definidos novos pontos considerando a variação da frequência de alimentação. Um ponto da reta é localizado em (Nsc , 0), onde o termo Nsc é a velocidade sı́ncrona corrigida considerando a variação da frequência do inversor. O segundo ponto que define a reta é (Nnc , Tn ), onde Nnc é a “velocidade nominal corrigida”. Utilizando esse ponto obtemos a Equação (6.17). Te = Tn Nsc − n Nsc − Nnc (6.17) 6.9 VERSÃO FINAL DO FIRMWARE UTILIZANDO O FREERTOS 105 Figura 6.56 Curva torque x velocidade - representação genérica da região linearizada. Fonte: (Silva, 2014) O problema, nessa situação, seria a dificuldade em definir o valor da “velocidade nominal corrigida” (Nnc ). Contudo, podemo-nos valer de uma caracterı́stica da operação dos motores de indução trifásico, que é fato de que o valor absoluto do escorregamento, com o MIT operando com carga nominal, permanece constante, desde que o motor esteja operando na região onde não ocorre o enfraquecimento do campo, isto é, para frequências menores ou igual a frequência nominal (Fitzgerald; Kingsley Jr; Umans, 2006; WEG, 2004). A Figura 6.57 ilustra esta situação para um MIT com dois pares de polos, frequência nominal igual a 60 Hz e velocidade nominal 1750 rpm. Observe que a diferença entre a velocidade sı́ncrona e a velocidade do MIT no torque nominal permanece constante (50 Hz) para diversas frequências de operação. A partir dessas observações é possı́vel concluir que a inclinação da curva permanece constante e dessa forma podemos afirmar que Nsc − Nnc = Ns − Nn . Usando essa relação na Equação (6.17), finalmente obtemos a Equação (6.18). Onde Ns é a velocidade sı́ncrona obtida a partir da frequência nominal e Nsc é a velocidade sı́ncrona obtida a partir da frequência de operação do inversor. Te = Tn Nsc − n Ns − Nn (6.18) A função TCALC indicada no fluxograma da Figura 6.54 efetua o cálculo do torque com base na Equação (6.18). Uma vez definidos os valores estimados da velocidade e do torque, eles são colocados em um fila para que possam ser acessados por outras tarefas. 106 PROJETO 30 Hz 40 Hz 60 Hz Torque (%) 200 150 100 Torque nominal 900 rpm 850 rpm 1200 rpm 1800 rpm 1150 rpm 1750 rpm Velocidade (rpm) Figura 6.57 Curva torque x velocidade para diferentes frequências de alimentação do MIT. Fonte: (WEG, 2004) 6.9.8 Implementação da tarefa vTask CLP Os valores da velocidade estimada (Ne ) e do toque eletromagnético estimado (Te ), depois de calculados pela tarefa vTask CVT e armazenados em uma estrutura de dados do tipo fila, são acessados pela tarefa vTask CLP. Esta tarefa é essencialmente muito simples e tem a função de enviar os valores da grandeza avaliada para o circuito de interfaceamento com o CLP, que no caso desse projeto, conforme apresentado da Seção 6.6, é baseado no circuito integrado AD420. A ideia básica consiste em converter o valor da grandeza em um número inteiro de 16 bits. Embora tanto os valores de velocidade ou de torque, disponı́veis na fila, possam ser convertidos e enviados para a interface CLP, no algoritmo desenvolvido neste projeto foi utilizado apenas o valor do torque. Conforme discutido na Seção 6.6, foi considerado que o torque varie numa faixa de 0 até 1,5 vezes o valor do torque nominal do MIT. A conversão do valor do torque estimado para o valor a ser enviado para a interface de corrente (4-20 mA) é efetuado por meio da Equação (6.14), apresentada novamente abaixo: Te Dc = 43690 × Tn onde Tn é o torque nominal especificado para o MIT. O tratamento do valor da velocidade estimada pode ser realizado de maneira similar e o algoritmo pode facilmente modificado para que o usuário tenha opção de escolha sobre qual grandeza será enviada para a interface 4-20 mA. Depois de convertido o valor de Te em um número inteiro de 16 bits 6.9 VERSÃO FINAL DO FIRMWARE UTILIZANDO O FREERTOS 107 (Dc ) é executado uma rotina de envio dos dados, do microcontrolador para o AD420, utilizando comunicação serial SPI. O código fonte da rotina para envio dos dados via comunicação SPI está disponı́vel no Apêndice B.. 6.9.9 Implementação da tarefa vTask IHM A tarefa vTask IHM é responsável por tratar os dados envolvidos na parametrização do sistema. Conforme discutido na Seção 6.8, a comunicação entre o microcontrolador e o circuito de interface com o computador de uso geral (PC) é baseado no controlador USART. Na estratégia adotada no projeto, o PC sempre inicia a comunicação. Os caracteres recebidos são detectados por meio de interrupção. Eles são sucessivamente armazenados em um buffer até que o caractere “*” seja recebido, indicando o fim do pacote. Assim que um pacote completo é recebido, uma estrutura do tipo semáforo binário é utilizado sinalizar o evento. Em seguida é utilizada uma função da API do FreeRTOS para forçar a troca de contexto. No momento que o semáforo binário é liberado, sinalizando um evento de chegada de um novo pacote de dados, a tarefa vTask IHM fica pronta pra ser executada. Como ele possui prioridade maior que as demais tarefas, durante a troca de contexto, será colocada em execução. A Figura 6.58 mostra o fluxograma básico da tarefa vTask IHM. Figura 6.58 Fluxograma básico da tarefa vTask IHM. Conforme já foi discutido, foram implementados apenas dois comandos básicos: uma pra leitura, identificado pelo caractere “R” e outro pra escrita, identificado pelo caractere “W”. Ao iniciar a execução da tarefa é realizada a decodificação dos dados 108 PROJETO armazenados no buffer, por meio da função DECOD. Esta função identifica o tipo de comando (leitura ou escrita) e, caso exista, os valores dos parâmetros são armazenados em uma estrutura denominada PM IT . Em seguida é verificado o tipo de comando, caso seja um procedimento de escrita, os dados contidos na estrutura PM IT são salvos, por meio da função SALVAR, na memória flash do microcontrolador. No caso do procedimento de leitura, a função LER transfere os dados referentes aos parâmetros do MIT, da memória flash para a estrutura PM IT . Posteriormente, por meio da função ENVIAR, os dados são codificados e enviados através do controlador USART. As funções LER e SALVAR fazem uso de algoritmos especiais que permitem que a memória flash do microcontrolador possa ser utilizada para armazenar dados não voláteis, ou seja, permite emular uma memória EEPROM. Os detalhes sobre estas rotinas estão na nota de aplicação AN3969 disponibilizada pelo fabricante do microcontrolador (STMicroelectronics, 2011). 6.10 CONSIDERAÇÕES ADICIONAIS No inı́cio deste capı́tulo foram a apresentadas as especificações da plataforma de hardware adotada para este projeto. Além disso, foram apresentados os detalhes envolvidos na implementação do algoritmo da CZT e do algoritmo para estimação da velocidade do MIT, baseando-se na análise espectral dos sinais de corrente do estator. Na seção 6.2.4 deste capı́tulo foram apresentados resultados para estimação da velocidade, obtidos a partir da análise off-line de dados que foram previamente coletados e serviram para iniciar os testes de validação dos algoritmos de PDS e também da capacidade de processamento do microcontrolador adotado no projeto. No decorrer do capı́tulo foram discutidas questões como: melhoramento dos algoritmos de PDS; desenvolvimento dos circuitos de condicionamento de sinais (filtros e amplificadores) e de interfaceamento com dispositivos externos (PC e CLP). Finalmente foi apresentado o desenvolvimento de uma versão do firmware baseada na utilização de um kernel de tempo real, o FreeRTOS. No capı́tulo seguinte será apresentada uma análise sobre o desempenho computacional do firmware do sistema, bem como, serão apresentados resultados obtidos a partir de experimentos especı́ficos realizados a fim de verificar a eficiência do sistema em estimar velocidade e o torque como MIT operando em regime de carga varável. Capı́tulo 7 RESULTADOS E DISCUSSÕES No Capı́tulo 6 foram apresentados os detalhes envolvidos na implementação do projeto. Algumas análises e resultados preliminares também foram apresentados. Neste capı́tulo, além de uma análise sobre o desempenho computacional dos algoritmos envolvidos na implementação do firmware, serão apresentados, especificamente, os resultados de experimentos realizados com o intuito de validar o protótipo desenvolvido, no desempenho da tarefa principal para o qual ele foi concebido, isto é, para estimar velocidade e o torque. 7.1 CONSIDERAÇÕES SOBRE O DESEMPENHO COMPUTACIONAL Esta seção tem o objetivo de apresentar a discussão sobre o desempenho computacional do protótipo do sistema embutido desenvolvido. Os resultados obtidos no intuito de melhorar o desempenho do algoritmo da CZT, conforme discutido na Seção 6.3, se mostraram satisfatórios, haja vista que ouve uma redução de mais de 90% do tempo de processamento com relação aos primeiros resultados obtidos (publicados no CBA 2014). A partir desses novos resultados foi possı́vel considerar o processamento contı́nuo dos sinais de corrente do MIT. Inicialmente, para executar a CZT com 1024 amostras, o que equivale a uma janela com duração de 204,8 ms (fs =5000 Hz), eram necessários aguardar cerca de 215 ms. Com o melhoramento do algoritmo foi possı́vel reduzir o tempo de computação para aproximadamente 18 ms. Dentre as tarefas implementadas para o sistema, a que executa os algoritmos de PDS, com a função de implementação da CZT, por exemplo, é a que demanda maior esforço computacional, haja vista, o grande número de operações matemáticas complexas envolvidas no algoritmo, conforme foi apresentado na Subseção 6.2.1. Praticamente toda a carga computacional fica por conta da tarefa vTask PDS. Para passar uma ideia melhor, o tempo médio de execução da tarefa é de 38,56 ms, enquanto a soma dos tempos de execução das outras tarefas resulta em um valor inferior a 1 ms. 109 110 RESULTADOS E DISCUSSÕES Para que fique mais claro, em uma abordagem simplista, lembremo-nos de que o algoritmo para estimação da velocidade realiza, pelo menos, duas execuções da CZT, o tempo total para estimação da velocidade e/ou torque é menor que 40 ms. Considerando, ainda, que uma janela de dados é processada com uma sobreposição de 50%, o tempo total para o processamento de uma janela com duração de 204 ms fica em torno de 80 ms. Com isso, mesmo considerando a existência de rotinas auxiliares, necessárias ao projeto, podemos afirmar o processamento “pesado”, envolvido nos cálculos, são realizados em um tempo muito menor do que o necessário para que novos dados estejam disponı́veis para processamento. Desse modo, pode ser garantido um processamento contı́nuo e em tempo real dos dados coletados no MIT. Na Subseção 8.4.2 é realizada um discussão sobre como o sistema desenvolvido pode ser utilizado em sistemas de bombeio mecânico de petróleo. 7.2 EXPERIMENTOS PARA A ESTIMAÇÃO DA VELOCIDADE Todos os experimentos apresentados nesta seção foram realizados nas bancadas BI e BT, cujas caracterı́sticas foram apresentadas na Subseção 6.5.3 do Capı́tulo 6. A Figura 7.1 mostra o diagrama da montagem utilizada nos experimentos realizados para estimação da velocidade. Controlador Sistema Embutido Fase T Fase S Fase R Sensor Hall MIT Circ. Cond. Disco. Stm32F4 Tacômetro Gerador CC Ajuste de Carga Figura 7.1 Estrutura da montagem experimental para estimação da velocidade. A estrutura utilizada no experimento é semelhante àquelas utilizadas por Silva, Lima e Oliveira (2015a), Silva e Oliveira (2012b), cujo arranjo básico foi apresentado na Figura 2.1 A diferença essencial é que neste caso os dados são coletados e processados pelo protótipo desenvolvido neste trabalho. A sonda de corrente, conectada em uma das fases do MIT, é conectada ao circuito de condicionamento de sinais, que por sua vez, é conectada ao circuito microprocessado. Os sinais gerados são digitalizados e processados para que a velocidade no eixo do motor seja estimada. Em paralelo, um tacômetro óptico digital é utilizado para medir a velocidade de giro no eixo do MIT. Posteriormente os valores medidos e estimados são comparados e o erro entre o valor medido e estimado é 7.2 EXPERIMENTOS PARA A ESTIMAÇÃO DA VELOCIDADE 111 obtido. Para a obtenção do erro percentual foi utilizada a Equação (7.1), onde Vm e Ve são, respectivamente, a velocidade medida e estimada. erro% = 100 Vm − Ve Vm (7.1) A medição de velocidade foi realizada com um tacômetro óptico (modelo DT2236B que é mostrado na Figura 7.2) disponı́vel no laboratório. Ele possui resolução de 0.1 RPM (@1000 9999,9 RPM) e possui exatidão de 0,05% + 1 dı́gito. Entretanto, vale ressaltar que os tacômetros digitais, geralmente fornecem o valor médio da velocidade em um intervalo de tempo, neste caso, 0,5 s por amostra. Além disso, o modelo utilizado não possui um dispositivo de armazenamento das medidas realizadas. Diante dessas restrições foi necessário adaptar o modelo de modo que pudesse ser útil nos procedimentos experimentais. Figura 7.2 Tacômetro utilizado nos experimentos. Na prática ele foi modificado de modo que pudesse fornecer um trem de pulsos com frequência proporcional a velocidade de giro do eixo do MIT. Esse sinal foi devidamente condicionado e aplicado em uma entrada digital do microcontrolador. Um algoritmo simples foi implementando para medir a frequência/perı́odo do sinal e consequentemente calcular a rotação do eixo do MIT. Basicamente, um TIMER de 32 bits, cujo registrador é incrementado a uma frequência de 90 MHz, é utilizado para medir o tempo entre as subidas de bordas consecutivas do sinal. Desta forma, a velocidade medida do MIT pode ser calculada a partir da Equação (7.2), onde CN T é contagem lida no registrador do TIMER entre as consecutivas subidas de bordas do sinal. Vm = 60 90 × 106 CN T (7.2) 112 7.2.1 RESULTADOS E DISCUSSÕES Estimação da velocidade na Bancada BT - Experimento BT01 Nesta subseção será discutido um experimento realizado na Bancada BT e foi denominado de Experimento BT01. O MIT foi alimentado diretamente pela rede elétrica (f0 = 60 Hz) e o ajuste de carga foi realizado, manualmente, de maneira que a velocidade pudesse variar na faixa compreendida entre a velocidade nominal e a velocidade sı́ncrona. Os dados foram coletados e processados durante um intervalo de tempo de aproximadamente 30 segundos. A Figura 7.3 mostra a comparação entre as curvas da velocidade medida (representada pela linha contı́nua) e a velocidade estimada (linha com cı́rculos), conforme indicado na legenda. Bancada BT − Carga variável (f = 60 Hz) 0 1790 Medido Estimado Velocidade (RPM) 1780 1770 1760 1750 1740 1730 1720 0 5 10 15 20 25 30 Tempo (s) Figura 7.3 Curva comparativa entre a velocidade medida e estimada - Experimento BT01. Ao observarmos a figura, podemos constatar que a velocidade inicialmente se mantem constante e próximo do valor nominal. Em seguida a carga é diminuı́da até próximo do valor mı́nimo, conforme pode ser observado, a velocidade aumenta até próximo da velocidade sı́ncrona, por volta do instante de tempo igual a 10 s. Posteriormente a carga é elevada e reduzida sucessivamente, conforme pode ser observado no comportamento da velocidade, pelo gráfico. Ao observar a Figura 7.3 não é possı́vel perceber, visualmente, grandes diferenças entre os valores medidos e estimados. Para quantificar melhor essas diferenças, foi calculado, com base na Equação (7.1), o erro percentual entre os valores da velocidade medida e estimada. A Figura 7.4 mostra o resultado desses cálculos. Os erros percentuais, conforme pode ser observado, variam em uma faixa de ±0,04%. O valor do erro máximo calculado é de aproximadamente 0,033%, conforme indicado na figura. Alguns picos observados nesse tipo de comparação, como por exemplo, o ponto de erro máximo e o ponto indicado como P3, que ocorrem durante a elevação ou redução da velocidade. Isso pode ser justificado, possivelmente, pelo fato das duas curvas serem traçadas com diferente quantidade de pontos, e que são obtidos em taxas diferentes. 113 7.2 EXPERIMENTOS PARA A ESTIMAÇÃO DA VELOCIDADE Os tempos iniciais e finais, em que os dados são processados, são aproximadamente os mesmos, o que permite ajustar e sincronizar a escala temporal dos dois sinais. Entretanto, é muito difı́cil sincronizar os dados de modo que não ocorra, ao menos, uma pequena defasagem. Durante o processo de interpolação, essa defasagem pode resultar em uma diferença maior do que a que realmente ocorre entre os valores reais dos dados. Apesar desse fato, a maioria dos erros observados para o conjunto de medidas está em uma ordem de grandeza menor que 0.02%. Essa noção estatı́stica do erro é melhor compreendida por meio de um histograma. Bancada BT − Carga variável (f = 60 Hz) 0 0.04 0.03 Erro percentual Máx. (0,03311%) (−0,02705%) Máx. (0,03311%) P3 (0,02%) Erro (%) 0.02 0.01 0 −0.01 P1 (−0,02705%) −0.02 −0.03 0 5 10 15 20 25 30 Tempo (s) Figura 7.4 Erro percentual entre a velocidade medida e estimada - Experimento BT01. Ao observar o histograma na Figura 7.5, pode-se notar, claramente, que o valor mais provável para o erro percentual está na faixa de ±0,02%. Especificamente pode-se afirmar que 97% das estimativas apresentam um erro absoluto menor que 0,02%. 7.2.2 Estimação da velocidade na Bancada BI - Experimento BI01 Um segundo experimento, realizado na Bancada BI, foi denominado de Experimento BI01. Nele o MIT foi alimentado pelo inversor de frequência operando a 60 Hz. A Figura 7.6 mostra a comparação entre as curvas da velocidade medida (representada pela linha contı́nua) e a velocidade estimada (linha com cı́rculos), conforme indicado na legenda. Ao observar a figura pode-se constatar, claramente, que o valor da velocidade estimada acompanha as variações de velocidade medidas no eixo no motor. Com um pouco mais de atenção pode-se perceber a existência de um desvio ligeiramente maior do que o observado no Experimento BT01. Contudo, nota-se também que, mesmo para variações mais bruscas de velocidade não é possı́vel identificar desvios perceptı́veis entes os valores estimados e medidos. Isso pode ser observado entre os pontos PA e PB , bem como, entre os pontos PC e PE . 114 RESULTADOS E DISCUSSÕES 40 Erro <0.02% para 97% das ocorrências Número de ocorrências 35 30 25 20 15 10 5 0 −0.03 −0.02 −0.01 0 0.01 0.02 0.03 Valor mais provável do erro (%) Figura 7.5 Histograma do erro associado à estimação da velocidade - Experimento BT01. Bancada BI − Carga Variável (f = 60 Hz) 0 1770 Medido Estimado Velocidade (RPM) 1760 PA 1750 PC PE 1740 PB 1730 1720 PD 1710 0 5 10 15 20 25 30 Tempo (s) Figura 7.6 Curva comparativa entre a velocidade medida e estimada - Experimento BI01. A Figura 7.7 mostra o erro percentual, calculado a partir da Equação (7.1), entre a velocidade medida e estimada. Observe que o erro máximo observado foi da ordem de 0,07%. Assim como no Experimento BT01, os maiores valores para o erro percentual são observados onde ocorrem variações mais acentuadas da velocidade. A Figura 7.8 mostra o histograma do erro calculado para o Experimento BI01. Nota-se que a maioria das ocorrências de erro está na faixa entre -0,04% e 0,02%. É possı́vel constatar, ainda, que 90% das ocorrências indicam erros menores que 0,04%. 115 7.2 EXPERIMENTOS PARA A ESTIMAÇÃO DA VELOCIDADE Bancada BI − Carga Variável (f = 60 Hz) 0 0.08 Erro percentual Máx. (0,07704%) (0,04133%) 0.06 0.04 (0,04133%) Erro (%) 0.02 0 −0.02 −0.04 −0.06 Máx. |−0,07704%| −0.08 0 5 10 15 20 25 30 Tempo (s) Figura 7.7 Erro percentual entre a velocidade medida e estimada - Experimento BI01. Número de ocorrências Bancada BI − Carga Variável (f0 = 60 Hz) Erro<=0,04% para 90% das ocorrências 40 30 20 10 0 −0.08 −0.06 −0.04 −0.02 0 0.02 0.04 0.06 Valor mais provável do erro (%) Figura 7.8 Histograma do erro associado à estimação da velocidade - Experimento BI01. 7.2.3 Estimação da velocidade na Bancada BI - Experimento BI02 O Experimento BI02 foi realizado com intuito de verificar o comportamento do sistema na estimação da velocidade do MIT alimentado com inversor e operando em frequências menores que a nominal. Vale lembrar que quando o MIT é alimentado com baixas frequências, os componentes de ranhura apresentam amplitudes menores. Os circuitos de condicionamento dos sinais, apresentados no Capı́tulo 6, foram projetados, também, com o objetivo de possibilitar que os componentes de ranhura fossem detectados, mesmo em situações mais crı́ticas. Nesse sentido, as coletas de dados foram realizadas como o inversor de frequências operando em 45 Hz e 30 Hz. A figura 7.9 mostra os resultados referentes às medidas realizadas com o inversor operando a 45 Hz. O primeiro gráfico da Figura 7.9 mostra as curvas que descrevem a velocidade medida e velocidade estimada. Conforme indicado, o inversor de frequência foi configurado para operar em 45 Hz. A carga foi controlada de modo que variasse entre valores baixos (próximo de vazio) até valores próximos do nominal. O valor da velocidade sı́ncrona 116 RESULTADOS E DISCUSSÕES Bancada BI − Carga Variável (f = 45 Hz) 0 Velocidade (RPM) 1360 Medido Estimado 1340 1320 1300 1280 0 5 Erro (%) 0.05 10 15 20 25 30 (0,06%) 0 −0.05 Máx. (− 0,09%) −0.1 Número de ocorrências 0 5 10 15 Tempo (s) 20 25 30 40 30 20 10 0 −0.1 −0.08 −0.06 −0.04 −0.02 0 0.02 0.04 0.06 Valor mais provável do erro (%) Figura 7.9 Resultados obtidos com o inversor operando a 45 Hz - Experimento BI02. nesse cenário é de aproximadamente 1350 rpm e como se sabe o valor absoluto do escorregamento não depende da frequência de operação do MIT e, dessa forma, o valor da velocidade para carga nominal é de aproximadamente 1275 rpm. Os valores observados na figura são coerentes com estas informações. No gráfico, assim como nos outros experimentos, é possı́vel notar que os valores estimados para velocidade acompanham as variações da velocidade medida pelo tacômetro, de tal maneira que é muito difı́cil perceber, visualmente, diferenças entre as duas curvas. Já no segundo gráfico, é mostrado o erro percentual entre as curvas. O valor absoluto do erro percentual máximo observado foi de 0,09%, conforme indicado na figura. O terceiro e último gráfico mostra histograma da erro percentual. É possı́vel notar que o valor mais provável para o erro está na faixa compreendida entre -0,06% e 0,02%. A Figura 7.10 mostra os resultados referentes às medidas realizadas com o inversor operando a 30 Hz. Assim como no caso analisado anteriormente, o primeiro gráfico mostra a comparação entre os valores da velocidade medida e estimada. A carga foi controlada de modo que o escorregamento variasse dentro de uma faixa valores entre zero e o escorregamento nominal. No segundo gráfico é possı́vel observar a curva do erro percentual entre os valores estimados e medidos. O valor absoluto erro máximo observado foi de aproximadamente 0,18%. No histograma do terceiro gráfico é possı́vel constatar que os valores mais prováveis para o erro estão na faixa entre -0,08% e 0,12%. Ao comparar os resultados obtidos no Experimento BI02 com os experimentos 117 7.3 EXPERIMENTO PARA A ESTIMAÇÃO DO TORQUE Bancada BI − Carga Variável (f = 30 Hz) 0 Velocidade (RPM) 900 Medido Estimado 890 880 870 860 850 840 0 5 Erro (%) 10 15 20 25 0.1 0 −0.1 Máx. (− 0,179%) −0.2 0 Número de ocorrências 30 (0,159%) 0.2 5 10 15 20 25 30 Tempo (s) 60 40 (-0,08%) (0,12%) 20 0 −0.2 −0.15 −0.1 −0.05 0 0.05 0.1 0.15 0.2 Valor mais provável do erro (%) Figura 7.10 Resultados obtidos com o inversor operando a 30 Hz - Experimento BI02. realizados anteriormente podemos notar uma elevação dos valores nos erros percentuais entre os dados estimados e medidos. Esta situação pode ser justificada pela uso da Equação (7.1). Como a comparação é feita com relação aos valores pontuais medidos pelo tacômetro, naturalmente o valor do erro percentual tende a aumentar a medida que a velocidade do MIT diminui. Se for analisado os valores absolutos da diferença entre a velocidade medida e estimada pode-se constatar que eles se mantêm variáveis dentro de uma faixa entre 0 e 1,5 rpm. 7.3 EXPERIMENTO PARA A ESTIMAÇÃO DO TORQUE Para validar a capacidade do sistema na estimação do valor do torque no eixo do MIT, assim como no caso da velocidade, é necessário a realização de um procedimento experimental. Para isso, no Laboratório de Processamento de Energia do departamento de Engenharia Elétrica da POLI-UFBA, geralmente é utilizada a Bancada BT. As informações referentes aos equipamentos que compõem a bancada foram apresentadas na Subseção 6.5.3. Infelizmente, devido a um problema apresentado na bancada, não foi possı́vel realizar um experimento da mesma maneira como foi realizado para validar o método de estimação da velocidade, isto é, utilizando processamento on-line. Entretanto, foi 118 RESULTADOS E DISCUSSÕES possı́vel utilizar dados que haviam sido coletados previamente em experimentos realizados por (Silva, 2014). A partir dos dados obtidos foi possı́vel executar os algoritmos para efetuar o processamento off-line do sinais de corrente. Os valores estimados foram, então, comparados com os valores medidos. Os resultados da análise (denominada de Experimento BT02) serão apresentados na próxima subseção, antes, porém, é realizada uma breve descrição de como os experimentos para estimação do torque são realizados. A Figura 7.11 mostra o diagrama da montagem experimental necessária para estimação do torque. Os procedimentos são semelhantes aos realizados para a estimação da velocidade. A principal diferença é que a Bancada BT possui um torquı́metro rotativo. O modelo DATAFLEX 22/20 é acoplado ao eixo que liga o MIT a um gerador que funciona como carga do sistema. Conforme mencionado anteriormente, o controle da carga é realizado através de um sistema microprocessado. Esse sistema permite que o controle da carga possa ser realizado de forma manual ou automática. Para controlar automaticamente é necessário uma interface com um dispositivo externo, seja um computador de uso geral ou outro microcontrolador. Controlador Sistema Embutido Sensor Hall Circ. Cond. Fase T Fase S Fase R Velocidade Disco. Stm32F4 Torque Gerador CC MIT Ajuste de Carga Torquímetro/ Encoder Figura 7.11 Estrutura da montagem experimental para estimação do torque. Nesse experimento tanto os dados de torque como os de velocidade podem ser obtidos através do torquı́metro. Uma interface eletrônica externa, embutida em uma hard box permite que os sinais de torque e velocidade sejam lidos por sistemas externos de aquisição de dados. O sinal de velocidade é medido através de um trem de pulsos, cuja frequência é proporcional a velocidade de giro no eixo do MIT. As informações de torque são disponibilizados através de um sinal de tensão ou sinal de corrente (4-20 mA). Conforme indicado na Figura 7.11, os dados de torque e/ou velocidade devem ser obtidos em sincronia com os dados de corrente, que são utilizados para estimar o valor do torque. De acordo com o manual de instruções do equipamento (KTR, 2006), a tensão gerada pelo torquı́metro, caso o mesmo esteja devidamente calibrado, é convertida para o valor do torque de acordo com a Equação (7.3), onde o torque medido (Tm [N.m]) é obtido a partir da tensão (v [Volts]) gerada como saı́da do torquı́metro. Tm (v) = 4v − 20 (7.3) 119 7.3 EXPERIMENTO PARA A ESTIMAÇÃO DO TORQUE Um circuito analógico pode ser utilizado para adequar os nı́veis de tensão à entrada do dispositivo de aquisição. Entretanto, as alterações no sinal de tensão (ganho/off-set) devem ser consideradas ao avaliar a Equação (7.3). 7.3.1 Estimação do torque na Bancada BT - Experimento BT02 A Figura 7.12 mostra os resultados obtidos a partir da análise off-line dos dados de corrente do MIT que foram coletados previamente. O primeiro gráfico mostra a comparação entre o torque medido, representado pela linha contı́nua, e o torque estimado, representado pela curva com cı́rculos. A carga foi variada num intervalo de 10 segundos, de modo que o torque no eixo do MIT pudesse variar entre valores próximos de zero até cerca de 3 N.m. Apesar das duas curvas apresentarem praticamente o mesmo perfil é possı́vel notar que, no intervalo de tempo entre 4 e 5 segundos, existe um desvio mais acentuado que nos demais pontos. Torque (N.m) 3 2 1 0 Torque Estimado Torque Medido 0 1 2 3 4 5 6 7 8 9 10 8 9 10 Erro (%) 2 0 −2 Máx. |−3,514%| Número de ocorrências −4 0 1 2 3 4 5 6 7 Tempo (s) 20 15 Mais de 88% das ocorrências de erro estão entre ± 2% 10 5 0 −4 −3 −2 −1 0 1 2 Valor mais provável do erro (%) Figura 7.12 Resultados obtidos para estimação do torque - Experimento BT02. O segundo gráfico apresenta a curva do erro percentual (erro% ) entre os valores do torque medido (Tm ) e estimado (Te ). O erro foi calculado a partir da Equação (7.4), onde Tn representa o valor do torque nominal do MIT. erro% = 100 Tm − Te Tn (7.4) 120 RESULTADOS E DISCUSSÕES Conforme pode ser notado na Equação (7.4) o erro foi calculado tomando como referência um fundo de escala, que no caso é o torque nominal do MIT. Isso ocorre, dado ao fato de que as medições de torque, diferentemente das de velocidade, são efetuadas em uma faixa de valores muito baixa. Dessa forma, quando o valor da grandeza tende para zero, o erro tende para um valor muito alto. Portanto, a ideia de usar uma referência fixa (fundo de escala) permite uma avaliação mais coerente do erro. Ao observarmos o gráfico do erro percentual é possı́vel notar que o desvio máximo foi da ordem de 3,514%, observado no intervalo de tempo entre 4 e 5 segundos, conforme foi possı́vel perceber no primeiro gráfico. Isso ocorre, justamente, quando o valor do torque diminui, que se justifica pela aplicação da Equação (7.4). O terceiro gráfico apresenta o histograma do erro. É possı́vel observar que quase 90% das ocorrências de erro estão compreendidos no intervalo de ± 2%. Os resultados obtidos na análise off-line dos dados foram similares aos observados por (Silva, 2014). O erro máximo encontrado neste trabalho (3,514%) foi ligeiramente maior do que os obtidos pelo autor (3,263%). Existem algumas possibilidades que podem justificar essa diferença: (i) a primeira hipótese é que arquitetura computacional utilizada pelos autores pode influenciar no resultados das estimações; (ii) a segunda causa pode está relacionada a implementação dos algoritmos de estimação da velocidade e torque. Variações da sobreposição das janelas de observação, por exemplo, podem resultar em valores diferentes dos dados estimados. (iii) outro procedimento que pode resultar em valores diferentes dos resultados é o processo de avaliação e comparação dos dados medidos e estimados. Uma pequena defasagem entre as curvas pode gerar resultados distintos. Embora a maioria dessas questões quase sempre resulta em diferenças desprezı́veis, vale atentar ainda para a Equação (7.4), pequenas variações das grandezas pode gerar variações consideráveis para a medida do erro. A Figura 7.13, ajuda a reforçar essa ideia, nela é apresenta a curva de erro obtida no trabalho de (Silva, 2014). E possı́vel notar que o erro máximo é observado justamente quando o torque diminui. Nota-se, ainda, que o perfil das duas curvas apresentam caracterı́sticas similares. O espelhamento vertical deve-se ao fato de que o autor calculou o desvio considerando a diferença entre o o valor estimado e o valor medido. Figura 7.13 Erro obtido no precedimento de estimação do torque. Fonte: (Silva, 2014) Capı́tulo 8 APLICAÇÕES E TRABALHOS FUTUROS 8.1 CARACTERÍSTICAS GERAIS Os resultados obtidos neste trabalho mostraram que o protótipo desenvolvido é capaz de estimar a velocidade e o torque em motores de indução trifásicos com exatidão similar à obtida com os instrumentos de referência (tacômetro e torquı́metro) utilizados nos experimentos. Os erros observados para as medidas de torque estão em torno de 3,5%. Para a velocidade, os erros observados estão em uma ordem de grandeza muito menor do que o erro observado nas medidas de torque. Nos experimentos realizados, os erros de velocidade variam entre 0,02% até no máximo 0,25%. Na maioria das situações testadas, os erros percentuais para medições de velocidade foram menores que 0,15%. Levando em consideração a janela de observação com duração de aproximadamente 200 ms e sobreposição de 50%, é possı́vel constatar que o dispositivo é capaz de efetuar o cálculo do valor estimado em aproximadamente 10 amostras no intervalo um segundo. Lembremos que o tacômetro utilizado, originalmente, pode efetuar duas medições no intervalo de um segundo. Vale lembrar ainda que os motores elétricos exercem grande importância na indústria moderna e são utilizados em diversos setores, como: agricultura, comércio e, sobretudo, na indústria. Para ter a dimensão do quanto essas máquinas são utilizadas, basta tomar como base a informação sobre estimativas que indicam que cerca de 50% da energia elétrica consumida no mundo é devida a utilização de motores elétricos (Moreno et al., 1997). Desse montante a maior parte são motores de indução, mas especificamente, motores com rotor do tipo gaiola de esquilo (Fitzgerald; Kingsley Jr; Umans, 2006). Diante desses fatos fica evidente que existe uma abrangente gama de situações onde a medição de grandezas referentes à operação de motores elétricos seja necessária. Portanto o protótipo desenvolvido pode ser utilizado como base para o desenvolvimento de produtos com finalidades especı́ficas, como: medição de velocidade; medição de torque ou ambos. Diferentemente do produto desenvolvido por Almeida et al. (2010), que pode ser aplicado apenas em sistemas que operem com carga constante, o protótipo implementado nesse trabalho pode ser aplicado em sistemas que opere em regime de carga não 121 122 APLICAÇÕES E TRABALHOS FUTUROS estacionário. Esta, inclusive, foi uma das especificações principais do projeto. Conforme mencionado no Capı́tulo 2 este trabalho é decorrência dos estudos realizados por Silva (2014) e, como tal, foi desenvolvimento com o intuito de que pudesse ser aplicado no monitoramento de sistemas de bombeio mecânico em poços de petróleo. Embora este trabalho ainda não apresente um produto final, pronto para aplicação direta nesses sistemas, ele apresenta-se como um protótipo que possui caracterı́sticas que nos permite avalia-lo como alternativa viável, que serve como base fundamental para a implementação de um dispositivo com aplicação especı́fica, nesse campo. A próxima seção irá tratar de algumas caracterı́sticas do sistema de bombeio mecânico de petróleo e como os resultados obtidos nesse trabalho podem ser utilizados para estimação de parâmetros referentes à operação de Unidades de Bombeio Mecânico. 8.2 SISTEMAS DE BOMBEIO MECÂNICO DE PETRÓLEO O bombeio mecânico com hastes é o método de elevação artificial mais difundido no mundo e geralmente é utilizado para elevar vazões médias de poços rasos (Thomas, 2004). Entretanto, em poços de grandes profundidades, esse método consegue elevar apenas baixas vazões. Nesse método de bombeio, o movimento de motor é transformado em um movimento alternativo por uma estrutura denominada de Unidade de Bombeio Mecânico (UBM). Os equipamentos que compõem o sistema são classificados em dois grupos: os de superfı́cie e subsuperfı́cie. A Figura 8.1 mostra a representação de um sistema de bombeio mecânico. O principal componente de superfı́cie é a UBM que é responsável por transformar o movimento rotativo do motor em um movimento linear oscilatório da haste polida. A haste polida faz a conexão entre os equipamentos de superfı́cie e subsuperfı́cie. Os principais equipamentos de subsuperfı́cie são a coluna de produção; a coluna de hastes e a bomba de fundo. Este último tem a função de fornecer energia ao fluı́do de modo que o mesmo possa alcançar a superfı́cie. 8.2.1 Unidade de Bombeio Mecânico (UBM) A unidade de bombeio mecânico é o equipamento que converte o movimento de rotação do motor em movimento alternativo das hastes e por consequência, também, movimenta a bomba de subsuperfı́cie. A escolha de uma unidade de bombeio para determinado poço deve levar em consideração o máximo torque, a máxima carga e o máximo curso de haste polida que irão ocorrer no poço (Thomas, 2004). A Figura 8.2 ilustra a estrutura de uma unidade de bombeio mecânico, onde estão indicados os principais componentes: base; tripé, balancim, manivela, contrapeso e cabeça. A base é moldada em uma estrutura de concreto ou formada por perfis de aço, serve para prender, com devido alinhamento, o tripé, a caixa de redução e o motor. O tripé é formado por perfis de aço que devem possuir rigidez suficiente para suportar toda a carga da haste polida. O balancim tem o seu centro apoiado por um mancal, o qual está preso 8.2 SISTEMAS DE BOMBEIO MECÂNICO DE PETRÓLEO 123 Figura 8.1 Estrutura geral de um sistema de bombeio mecânico. Fonte: (Silva, 2014) no topo do tripé e deve ter resistência suficiente para suportar de um lado a carga da haste polida e do outro a força transmitida pela biela. A cabeça da UBM é localizada em uma das extremidades do balancim, suporta a carga da haste polida por meio de dois cabos de aço e uma barra carreadora. A geometria da cabeça da UBM faz com que a haste polida se mova verticalmente no poço reduzindo os esforços da estrutura. A biela e manivela transmitem movimento ao balancim. A distância do eixo da manivela ao mancal da biela define o curso da haste polida. Este curso pode ser modificado alterando-se a posição onde a biela é presa à manivela. Os contrapesos são responsáveis pela diminuição do torque máximo da caixa de redução e pela equalização do funcionamento do motor. A caixa 124 APLICAÇÕES E TRABALHOS FUTUROS Figura 8.2 Ilustração de uma unidade de bombeio mecânico. Fonte: (Silva, 2014) de redução transforma e energia de alta velocidade e baixo torque do motor em energia de alto torque e baixa velocidade. A velocidade de giro do eixo do motor é reduzida para velocidades que, geralmente, variam de 10 a 20 ciclos por minuto. A redução é feita através de polias e de engrenagens. O custo do redutor é de aproximadamente 50% do valor total da unidade (Thomas, 2004). 8.2.2 Monitoramento do poço em funcionamento Segundo Thomas (2004), o acompanhamento de um poço de petróleo que está produzindo é feito por meio de registros de sonolog e por cartas dinamométricas. Devido à dificuldade de efetuar medições de pressão no fundo poço é utilizado o registro de sonolog, que consiste na detonação de um pequena carga explosiva na superfı́cie, gerando um pulso acústico que se propaga pela coluna. A análise do pulso refletido gera informações a respeito das condições de operação no fundo do poço. De acordo com Silva (2014) a carta dinamométrica é a principal ferramenta para obter informações sobre o desempenho do sistema de bombeamento. Ela contém informações sobre as cargas presentes na coluna de hastes em função do deslocamento das hastes para um ciclo de bombeio. De acordo com Silva (2014), a carta dinamométrica pode ser de superfı́cie ou de fundo e pode e ser utilizada para: Determinar as cargas presentes na haste polida e na estrutura da UBM; Estimar as forças de torção que atuam na caixa de redução; 8.3 OBTENÇÃO DA CARTA DINAMOMÉTRICA A PARTIR DO TORQUE NO MOTOR 125 Determinar os requisitos de potência da UBM; Obter dados de contrabalanceio; Detectar defeitos na operação de válvulas; De modo geral pode ser utilizada para detectar anomalias no funcionamento da unidade de bombeio; Para registrar a carta, um dinamômetro (célula de carga) é acoplado na haste polida de modo que possa medir a força sobre a haste. Normalmente é utilizado um sensor para sinalizar o inı́cio de cada ciclo e a posição da haste é determinada a partir da velocidade média do ciclo de bombeio. A Figura 8.3 mostra uma unidade de bombeio com um sistema de monitoramento. Na imagem da direita é possı́vel ver os detalhes da instalação da célula de carga na haste polida e do posicionamento de um sensor magnético para marcação dos ciclos de bombeio. Figura 8.3 Unidade de bombeio com detalhe da célula de carga e sensor magnético. Fonte: (Silva, 2014) 8.3 OBTENÇÃO DA CARTA DINAMOMÉTRICA A PARTIR DO TORQUE NO MOTOR De acordo com Gibbs et al. (1987) é possı́vel utilizar dados da velocidade do motor para obter informações sobre diversas condições de operação de poços produtores de petróleo que utilizam UBM. A Figura 8.4 mostra os parâmetros da geometria de uma unidade de bombeio. Conhecendo-se a velocidade no eixo motor, as relações entre polias e na caixa de redução, bem como, os parâmetros geométricos da UBM, é possı́vel calcular a velocidade de movimentação qualquer parte móvel do sistema, inclusive da haste 126 APLICAÇÕES E TRABALHOS FUTUROS polida. Vale ressaltar que, embora, motores a combustão possam ser utilizados para o acionamento de UBMs, a grande maioria utiliza motores de indução trifásicos (Thomas, 2004). Figura 8.4 Geometria de uma unidade de bombeio mecânico. O trabalho desenvolvido por Silva (2014), conforme já explicitado, teve foco na aplicação em sistemas de elevação artificial de petróleo. O objetivo principal do trabalho foi desenvolver técnicas que pudesse ser utilizada como ferramenta para o levantamento da carta dinamométrica de superfı́cie. Em concordância com o que foi dito no parágrafo anterior, em uma descrição simplificada, pode-se supor que conhecendo o torque no eixo do motor, é possı́vel, a partir do modelo matemático do sistema mecânico da UBM, calcular a carga na haste polida. 8.4 APLICAÇÃO DO PROTÓTIPO DESENVOLVIDO NESTE TRABALHO Os trabalhos desenvolvidos por Silva, Lima e Oliveira (2014, 2015b) apresentaram técnicas com o propósito de serem utilizadas para a obtenção da carta dinamométrica. De maneira bastante simplificada pode-se dizer que a ideia consiste, basicamente, em estimar o torque no eixo do MIT, utilizando os componentes de ranhura presentes na corrente do estator e, a partir do modelo matemático da dinâmica da UBM, estimar a carga na haste polida. A partir do sinal do sensor que indica o inı́cio (ou final) de um ciclo de bombeio é possı́vel determinar a posição instantânea da haste polida. De posse dos dados estimados com informações sobre a carga e a posição da haste polida é possı́vel traçar a carta dinamométrica de superfı́cie. A abordagem utilizada nos trabalhos dos autores contemplou apenas a análise 8.4 APLICAÇÃO DO PROTÓTIPO DESENVOLVIDO NESTE TRABALHO 127 off-line dos dados. Essa análise foi baseada na utilização de computadores de uso geral. A aplicação prática dessas técnicas, em campo, depende do desenvolvimento de um dispositivo projetado especificamente para este fim. Este foi o objetivo desde trabalho, desenvolver um sistema embutido para a estimação do torque em MIT de indução trifásicos considerando o regime não estacionário. A seguir serão apresentados algumas caracterı́sticas do processo de obtenção de uma carta dinamométrica e como o protótipo desenvolvido neste trabalho pode ser utilizado como base para a confecção de um dispositivo que possa, de maneira minimamente invasiva, substituir a célula de carga de uma UBM. 8.4.1 Caraterı́sticas do processo de obtenção da carta dinamométrica Alguns dados sobre o processo de obtenção da carta dinamométrica foram obtidos junto ao corpo de engenheiros da Petrobras. A princı́pio, as questões mais relevantes sobre o processo é saber a periodicidade com que as cartas são geradas e requisitadas, bem como, saber qual a duração tı́pica de um ciclo de bombeio. A partir da obtenção desses parâmetros pode-se confrontá-los com as especificações temporais do sistema desenvolvido. De acordo com as informações obtidas, as cartas são geradas de forma contı́nua, entretanto, para um determinado poço ela é solicitada, pelo sistema supervisório, um vez a cada 5 minutos. A duração de um ciclo de bombeio, que equivale ao tempo de duração da carta, costuma variar entre 6 e 10 segundos, pois depende das caracterı́sticas do poço e da frequência do inversor. Porém, 10 segundos é um valor tı́pico, e será adotado para fim de análise nesse trabalho. A Figura 8.5 mostra o diagrama de tempo que ilustra o processo de obtenção da carta dinamométrica. Além das informações sobre os tempos referentes à carta, são apresentados alguns parâmetros temporais do sistema desenvolvido. A periodicidade de leitura da carta dinamométrica de um poço, na figura, foi designada como Ta. A duração de uma carta foi definida como Tc. 8.4.2 Caraterı́sticas temporais do sistema desenvolvido A Figura 8.5 ilustra, também, a duração (Tj) da janela de tempo considerada na análise do sinal de corrente. Lembremo-nos de que a taxa de amostragem do sistema é de 5000 amostras/segundo e que para cada janela são avaliadas 1024 amostras, o que corresponde a uma duração de 204,8 ms. Vale ressaltar, ainda, que nos experimentos realizados nesse trabalho foi utilizada uma superposição de 50% entre as janelas processadas. Sabe-se que, baseado no modo como o algoritmo foi implementado, ao final de cada janela processada é gerado um resultado, que tende para o valor médio da grandeza avaliada. O instante de tempo aproximado utilizado para indicar o tempo associado a uma amostra especı́fica foi definido como sendo o meio da janela. Com isso, por exemplo, o resultado do processamento da primeira janela equivale, por aproximação, ao valor do instante to+Tj/2, onde to é o instante de tempo que representa o inı́cio de processamento, 128 APLICAÇÕES E TRABALHOS FUTUROS to (Início de aquisição de uma nova carta) to + Ta Ta (Intervalo entre aquisição de duas cartas consecutivas) = 5 min = 300 s Tc to + Tc to + Tc Tc (Duração de uma carta, 10 s em alguns poços) Tj Tj (Janela de tempo com 1024 amostras a uma taxa fs = 5000 Hz, e duração de 204,8 ms) } Janelas seguintes com sobreposição de 50% até um ponto imediatamente depois de to + Tc to + Tj Figura 8.5 Diagrama de tempo do processo de obtenção da carta dinamométrica. que no caso especı́fico, equivale ao inı́cio de aquisição de uma nova carta. Com a sobreposição de 50% a segunda janela processada resulta em uma amostra que corresponde ao instante de tempo to+Tj; a terceira é equivale a to+3Tj/2 e assim sucessivamente. De maneira genérica o instante de tempo associado a cada janela processada pode ser estimado pela Equação (8.1), onde k indica o número da janela avaliada. t (k) = to + k Tj 2 onde k=1,2,. . . (8.1) Conforme discutido nos Capı́tulos 6 e 7, as caracterı́sticas temporais do sistema implementado permite-nos afirmar que o protótipo projetado tem a capacidade de efetuar o processamento em tempo real das informações necessárias para geração da carta dinamométrica. Lembremo-nos de que uma janela de dados com duração de 204,8 ms, conforme discutido na Seção 7.1, é processada em cerca de 40 ms. Dessa forma, ainda que considerando a sobreposição de 50%, uma janela com duração (Tj) pode ser processada em um tempo muito menor do que aquele necessário para que uma nova janela de dados esteja disponı́vel. Vale lembrar que o firmware trata as interrupções geradas pelo controlador DMA, o que ocorre , periodicamente, a cada 1024 amostras digitalizadas pelo ADC. Outra questão importante é saber o número de pontos utilizados para obtenção da carta dinamométrica. Segundo Lima, Guedes e Silva (2009) o número de amostras pode variar de acordo às condições de operação do poço, entretanto, de maneira geral, 100 amostras são suficientes para garantir que assinatura da carta possa ser representada como boa resolução. Tomando como base uma carta com duração Tc de 10 segundos, avaliando a duração Tj de janela e ainda uma sobreposição de 50%, pode-se estimar que o processamento desses dados pode gerar aproximadamente 96 amostras. Tomando como base 8.4 APLICAÇÃO DO PROTÓTIPO DESENVOLVIDO NESTE TRABALHO 129 os dados apresentados por Lima (2014), esse valor possivelmente é suficiente para gerar uma carta com boa resolução. Entretanto, se for considerado uma carta com duração Tc menor que 10 segundos, é possı́vel que a sobreposição 50% não seja suficientes para gerar um número de amostras adequados para geração da carta. Para uma ideia quantitativa do número aproximado de amostras Nc avaliados no intervalo de duração Tc da carta e janelas com duração Tj, considere a Equação (8.2), onde S% indica o percentual de sobreposição das janelas de dados. Nc = Tj ∗ S% − 100 ∗ Tc Tj(S% − 100) (8.2) Considerando, por exemplo, uma carta dinamométrica com duração de 6 segundos (Tc=6); uma sobreposição de janelas de 50% (S% = 50), a partir da Equação 8.2 podese constatar que o número Nc de amostras avaliadas seriam de aproximadamente 57. Tomando como referência o número de 100 amostras que geralmente são utilizadas para gerar uma carta, muito possivelmente essas 57 amostras seriam insuficientes. Contudo, considerando o mesmo caso e utilizando uma sobreposição maior (S% = 75) obtém-se aproximadamente 114 amostras. Considerando, ainda, que o tempo de processamento de cada janela é de aproximadamente 40 ms, o tempo total necessário para processar as informações seria de aproximadamente 4,56 segundos. Portanto, ainda assim seria possı́vel processar um bloco de dados referentes a um intervalo de tempo Tj antes que novos dados estejam prontos para serem processados. Vale ressaltar que nas considerações acima, o valor de Tj foi considerado igual a 204,8 ms, haja vista que este parâmetro depende das caracterı́sticas do MIT. Lembrando que este valor (204,8 ms) mostrou-se adequado em todos experimentos realizados neste trabalho e que está coerente com os resultados obtidos por Silva, Lima e Oliveira (2015b), conforme discutido na Subseção 6.2.4. Além da possibilidade de processamento contı́nuo das informações, existe a alternativa de fazer a aquisição de um bloco de dados referentes a um intervalo de tempo Tc e processá-los posteriormente. Lembrando que o intervalo de tempo (Ta) entre a aquisição de duas cartas dinamométricas consecutivas, conforme indicado na Figura 8.5, é de 5 minutos. Diante disso, fica claro que se os dados de um ciclo de bombeio forem coletados previamente, existe uma lacuna de tempo consideravelmente grande para que os dados sejam processados, satisfazendo, dessa maneira, a periodicidade de requisição da carta. Nesse caso poderia ser utilizado um processador menos potente. Porém, seria necessária uma maior quantidade de memória RAM para o armazenamento de todos os dados. Em alguns testes realizados nesse trabalho foi possı́vel coletar e processar blocos de dados com duração de até 10 segundos. Entretanto, esses testes foram realizados em versões simplificadas do firmware, onde não haviam sido implementadas todas as funções do sistema. Na versão final, utilizando o FreeRTOS, essa possibilidade não foi verificada, haja vista que um dos propósitos da utilização do RTOS, foi justamente facilitar o desenvolvimento de um sistema de tempo real. Para o caso do microcontrolador não possuir quantidade memória RAM suficiente para o armazenamento prévio dos dados, pode ser 130 APLICAÇÕES E TRABALHOS FUTUROS considerada a utilização de memória externa. O próprio kit de desenvolvimento que foi utilizado nesse trabalho (STM32F4-Discovery), possui 64 Mbits de memória SDRAM externa. Algumas outras questões referentes aos procedimentos de requisição e geração das cartas dinamométricas ainda precisam ser averiguadas junto a equipe de engenharia da Petrobras. Entender, por exemplo, como funciona o sistema supervisório utilizado nos poços pode ajudar a definir melhor as caracterı́sticas do sistema embutido. 8.5 LIMITAÇÕES DO MÉTODO E NOVOS TRABALHOS Informações a respeito da velocidade e do torque de motores de indução que equipam uma UBM foram usadas por Gibbs et al. (1987) para propor um método de análise e controle do bombeio mecânico. O autor mostrou que é possı́vel obter a carta dinamométrica de superfı́cie de um poço sem a necessidade do uso de uma célula de carga. Entretanto, é necessário que os modelos fenomenológicos que descrevam a dinâmica do sistema de bombeio mecânico levem em consideração diversas informações da UBM. Segundo Silva, Souza Neto e Barreto (2014), a obtenção desses modelos não é uma tarefa trivial, pois além das dimensões da UBM, deve-se conhecer, ainda, o modelo de contrabalanceio; o desbalanceio estrutural; a relação das polias e da caixa de redução; eficiência da caixa de redução e do sistema de transmissão polias-correias; bem como, é necessário considerar as componentes inerciais das partes girantes e articuladas da unidade de bombeio. A Figura 8.6 mostra o resultado obtido por Silva, Souza Neto e Barreto (2014), onde é realizada a comparação de uma carta dinamométrica estimada, com base no método de análise espectral do sinal de corrente, com um carta recuperada pelo sistema de monitoramento de um poço. É possı́vel notar que, embora a assinatura da carta tenha sido recuperada, exitem diferenças bastante significativas entre os valores recuperados e estimados. Estas diferenças podem ser justificadas pelo fato do modelo que o autor utilizou para descrever a dinâmica do sistema não leva em consideração todas as variáveis necessárias pra estimação adequada das gradezas referente operação da UBM, conforme descrito por (Gibbs et al., 1987). Diante da dificuldade em obter um modelo matemático que contemple, de maneira adequada, todas as variáveis de um sistema de bombeio mecânico, outras técnicas precisam ser desenvolvidas a fim superar essas limitações. Atualmente, dentro do grupo de pesquisa, no qual este trabalho foi desenvolvido, existe outro projeto em andamento. Nele é proposto a aplicação de técnicas de identificação de sistemas dinâmicos não lineares para obtenção de modelos computacionais. Esses, devem relacionar dados de torque e velocidade no MIT com a carga e a posição da haste polida para obtenção da carta dinamométrica de superfı́cie. O trabalho avalia a utilização de Redes Neurais Artificias (RNA) e do modelo NARX (Non-linear autoregressive model with exogenous input) como possı́veis estruturas de identificação para o modelo computacional. Objetiva-se, com isso, superar a dependência de uma vasta gama de informações do sistema de bom- 8.5 LIMITAÇÕES DO MÉTODO E NOVOS TRABALHOS 131 Figura 8.6 Comparação das cartas dinamométricas estimada e recuperada. Fonte: (Silva; Souza Neto; Barreto, 2014) beio mecânico que são necessárias para a utilização do modelo fenomenológico proposto por Gibbs (Gibbs et al., 1987). A partir dessas informações, fica evidente que os resultados obtidos neste trabalho, juntamente com os que estão em desenvolvimento, podem ser utilizados para criar um produto com aplicação voltada para UBM. Mais especificamente, o dispositivo pode ser utilizado como substituto para célula de carga. Sabe-se que um problema frequente da célula de carga é a sua descalibração, que ocorre devido às elevadas cargas a que é submetida em atividades de manutenção. O elevado custo no procedimento de recalibração das células de carga, além da praticidade que esse novo sistema poderá proporcionar, faz com que essa seja uma alternativa atrativa para empresas de petróleo, tanto sob o ponto de vista técnico como econômico. Com relação ao hardware implementado, algumas questões certamente deverão ser melhoradas. A interface de comunicação com o CLP se tornará mais flexı́vel se for utilizado, por exemplo, algum método comunicação digital. É possı́vel utilizar alguma solução baseada no protocolo HART, haja vista, que nesse caso poderá utilizar tanto a comunicação analógica, como digital (Lima et al., 2009). Um laço de corrente continuará sendo utilizado para implementar a comunicação analógica, entretanto, utiliza-se modulação FSK (Frequency Shift-Keying) para implementar comunicação digital. Para a interface de parametrização o mais provável é que seja adotado um padrão industrial, como por exemplo, o Modbus RTU (Modbus, 2004). 132 APLICAÇÕES E TRABALHOS FUTUROS Muitas dessas questões dependem da aplicação para qual o sistema for designado. Com relação a aplicação voltada para bombeio mecânico, ainda é necessário o levantamento de algumas questões sobre o funcionamento dos poços de petróleo. A partir do levantamento dessas informações será possı́vel avaliar as soluções mais adequadas, sob o ponto de vista técnico e econômico, para o desenvolvimento de um produto final. Capı́tulo 9 CONCLUSÕES Este trabalho apresentou o desenvolvimento do protótipo de um sistema embutido para estimação da velocidade e torque em motores de indução trifásicos com rotores do tipo gaiola de esquilo. No desenvolvimento dos algoritmos, foi levada em consideração a operação cargas em regime não estacionário. A técnica implementada baseia-se na análise espectral dos componentes de ranhura do rotor que estão presente na corrente do estator. Os componentes presentes na corrente do estator estão diretamente relacionados com a velocidade de giro do eixo do MIT. O método pode ser considerado minimamente invasivo, haja vista que para o sistema entrar em funcionamento é necessária apenas a utilização de uma sonda de corrente em uma das fases do motor. As principais vantagens em se determinar a velocidade/torque utilizando técnicas não invasivas, são que, além dos custos, é reduzida a complexidade do hardware, o sistema possui maior imunidade a ruı́dos e, consequentemente, menos requisitos de manutenção com a eliminação dos cabos e dos sensores Em face às limitações da Discrete Fourier Transform (DFT), o processamento digital dos sinais de corrente foi realizado com base na Chirp-Z Transform (CZT). A utilização da CZT conferiu uma maior exatidão na determinação dos componentes de frequências do sinal de corrente, consequentemente, resultando em uma maior exatidão na estimação dos valores da velocidade/torque. A plataforma de hardware especificada para o sistema é baseada em um microcontrolador ARM Cortex-M4, onde foram embutidos os algoritmos desenvolvidos. Embora os resultados da análise do desempenho computacional, realizada inicialmente, limitasse a aplicação do sistema, posteriormente, os algoritmos foram melhorados. Com a exploração do conjunto de instruções SIMD presentes no Cortex-M4 foi possı́vel melhorar significativamente o desempenho dos algoritmos de PDS. Os resultados iniciais apontavam que o tempo de execução da CZT (para uma janela de 1024 amostras) seria de aproximadamente 215 ms. Depois que as melhorias foram implementadas, esse tempo foi reduzido para cerca de 18 ms. Esses novos resultados possibilitaram que o processamento contı́nuo, em tempo real, dos sinais de corrente pudesse ser efetuado. 133 134 CONCLUSÕES Também foram implementados os circuitos de condicionamento dos sinais. Além de um filtro passa-baixas (anti-aliasing), foi necessário desenvolver um filtro passa-altas com caracterı́sticas especiais. A resolução de 12 bits do ADC do microcontrolador, incialmente não se mostrou adequada para todas as condições de carga do sistema. Nos testes realizados, foi possı́vel verificar que quando a carga do MIT é diminuı́da, a relação sinal/ruı́do do espectro dos sinais de corrente também diminui. Ao analisar os sinais, foi verificado que as amplitudes dos componentes de ranhura e do sinal de alimentação do MIT, possuı́am uma relação da ordem de 40 dB. Como as amplitudes dos componentes de ranhuras variam proporcionalmente com a carga do MIT, quando a carga é muito baixa as amplitudes dos componentes de ranhura eram suprimidas pelo sinal de alimentação do motor. Para solucionar essa questão, foi desenvolvido um filtro passa-altas com caracterı́sticas especiais. A utilização do circuito possibilitou atenuar a faixa de frequências de alimentação do MIT e amplificar a faixa de frequências onde são encontrados os componentes de ranhura, de modo que suas amplitudes pudessem ser equiparadas. Os resultados se mostraram satisfatório, haja vista que a relação sinal/ruı́do que antes variava entre 1,5 e 5,5 dB, depois da utilização do filtro PA, passou a variar entre 18 e 25 dB. Os resultados referentes à estimação da velocidade foram obtidos por meio de uma série de experimentos. Em todos os casos, os motores funcionaram em regime de carga variável e foram alimentados tanto pela rede elétrica como por inversores em várias frequências. Os valores estimados foram comparados com valores medidos com um tacômetro digital. Os resultados obtidos foram consideramos satisfatórios, tendo em vista que na grande maioria dos experimentos, os erros máximos obtidos foram menores que 0,1%. O valor máximo observado para o erro foi de aproximadamente 0,18%. Entretanto, é importante frisar que isso foi observado quando o MIT operava em baixa rotação. Portanto, considerando que a comparação entre os valores medidos e estimados, para o cálculo do erro, foi realizada pontualmente, é natural que o erro percentual seja maior. Para estimação do torque foi realizada uma abordagem off-line onde foram utilizados dados coletados em experimentos realizados em outros trabalhos. Foram obtidos, tanto os dados de corrente, como os dados do torque medido. Os sinais referentes à corrente foram processados pelo sistema embutido para obter o valor estimado do toque. Posteriormente, foram comparados com os valores do torque medido. As análises dos resultados mostraram que o erro máximo observado foi da ordem de 3,5%. Apesar de ter sido realizada uma abordagem off-line, não há nada que possa indicar um prejuı́zo associado a avaliação do erro por meio desses procedimentos. Basta observar que o valor do torque é obtido a partir do valor da velocidade, basicamente é aplicação direta de fórmula. Dessa maneira é possı́vel afirmar que, além dos parâmetros referentes aos motores de indução, o erro do torque depende basicamente do erro associado à estimação da velocidade. Uma vez que os resultados obtidos nos experimentos realizados para avaliar a velocidade foram considerados satisfatórios, não há motivos para acreditar que o erro associado à estimação do torque, em uma abordagem on-line, será muito diferente do obtido pode meio da análise off-line. Os resultados obtidos na estimação da velocidade e do torque colocam o protótipo CONCLUSÕES 135 como um dispositivo base e que pode ser utilizado como referência para o desenvolvimento de produtos destinados a medição dessas grandezas em motores de indução trifásicos. Neste trabalho foi avaliada, também, a viabilidade da aplicação do protótipo no monitoramento de sistema de bombeio mecânico de petróleo. As caracterı́sticas temporais do protótipo indicam que ele pode ser utilizado como base para o desenvolvimento de um equipamento capaz de estimar a carta dinamométrica de superfı́cie de um poço de petróleo que utilize UBM. Nesse caso é necessário levar em consideração o modelo fenomenológico do sistema de bombeio. Resultados apresentados em trabalhos de outros autores indicam a possibilidade real da utilização do protótipo como um possı́vel substituto para as células de carga presentes nas UBMs. Sabe-se que um dos problemas recorrentes na célula de carga é a sua descalibraçao. Os procedimentos de intervenção, necessários para recalibração são relativamente caros. Diante disso, a utilização de um dispositivo que possa se utilizado para realizar a função da célula de carga, de maneira minimamente invasiva, e com custo de manutenção praticamente desprezı́vel, pode e deve sempre, ser tido como relevante objeto de estudos. Para finalizar, vale frisar que, ter um dispositivo com caracterı́sticas favoráveis ao desenvolvimento de um sistema como esse, faz com que, isso seja apontado como a maior contribuição deste trabalho. Apêndice A LAYOUTS E ESQUEMÁTICOS DE ALGUNS CIRCUITOS A.1 FILTRO PASSA-BAIXAS - CHEBYSHEV DE 8ª ORDEM As placas de circuito impresso desenvolvidas para este trabalho foram projetadas com o auxı́lio da versão 7.1.0 do software CadSoft Eagle. O layout do circuito desenvolvido para o filtro passa-baixas anti-aliasing é mostrado na Figura A.1.a. O esquemático completo do circuito é apresentado na Figura A.2. 45,67 mm 40.07 mm Figura A.1 Layout das PCBs projetadas: (a) Filtro passa-baixas Chebyshev de 8ª Ordem. (b) Estágio de 2ª ordem do filtro passa-altas elı́ptico 55.63 mm 67,61 mm (a) PCB Layout - FPB A.2 (b) PCB Layout - FPA FILTRO PASSA-ALTAS - ELÍPTICO - ESTÁGIO DE 2ª ORDEM O layout do circuito desenvolvido para o filtro passa-altas elı́ptico é mostrado na Figura A.1.b. O esquemático completo do circuito é apresentado na Figura A.3. 137 138 LAYOUTS E ESQUEMÁTICOS DE ALGUNS CIRCUITOS Figura A.2 Circuito do filtro passa-baixas - Chebyshev de 8ª Ordem. A.2 FILTRO PASSA-ALTAS - ELÍPTICO - ESTÁGIO DE 2ª ORDEM Figura A.3 Circuito do filtro passa-altas - Elı́ptico de 2ª Ordem. 139 Apêndice B CÓDIGO FONTE DE ALGUMAS ROTINAS B.1 1 2 3 4 5 6 7 8 9 10 11 12 FIRMWARE - CÓDIGO PARA CONFIGURAÇÃO DO ADC COM DMA /* * * @brief ADC3 channel13 com configuracao do DMA * @Author Ademario Jose de Carvalho Neto * @version 2.0 */ static void A D C 3 _ C H 1 3 _ D M A _ C o n f i g ( void ) { A DC _I ni t Ty pe D ef ADC_InitStructure ; ADC_CommonInitTypeDef ADC_CommonInitStructure ; D MA _I ni t Ty pe D ef DMA_InitStructure ; G P I O _ I n i t T y p eD e f GPIO_InitStructure ; N V I C _ I n i t T y p eD e f N V I C _ I n i t S t r u c t u r e ; 13 14 15 16 /* Enable ADC3 , DMA2 and GPIO clocks */ R C C _ A H B 1 P e r i p h C l o c k C m d ( R C C _ A H B 1 P e r i p h _ D M A 2 | RCC_AHB1Periph_GPIOC , ENABLE ) ; R C C _ A P B 2 P e r i p h C l o c k C m d ( RCC_APB2Periph_ADC3 , ENABLE ) ; 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 /* DMA2 Stream0 channel2 configuration */ D M A _ I n i t S t r u c t u r e . DMA_Channel = DMA_Channel_2 ; // endereco do ADC3 ((( uint32_t ) 0 x4001224C ) ) D M A _ I n i t S t r u c t u r e . D M A _ P e r i p h e r a l B a s e A d d r = ( uint32_t ) A DC 3 _D R_ AD D RE SS ; // ponteiro para endereco inicial do vetor de dados D M A _ I n i t S t r u c t u r e . D M A _ M e m o r y 0 B a s e A d d r =( uint32_t ) & ADC_Buffer ; D M A _ I n i t S t r u c t u r e . DMA_DIR = D M A _ D I R _ P e r i p h e r a l T o M e m o r y ; D M A _ I n i t S t r u c t u r e . DMA_Bu fferSize = _NSAMPLE ; DMA_InitStructure . DMA_PeripheralInc = DMA_PeripheralInc_Disable ; D M A _ I n i t S t r u c t u r e . DMA_MemoryInc = D M A _ M e m o r y I n c _ E n a b l e ; // D M A _ M e m o r y I n c _ D i s a b l e ; DMA_InitStructure . DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord ; DMA_InitStructure . DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord ; D M A _ I n i t S t r u c t u r e . DMA_Mode = D M A _ M o d e _ C i r c u l a r ; // D MA _M od e _N or ma l ; D M A _ I n i t S t r u c t u r e . DMA_Priority = D M A _ P r i o r i t y _ H i g h ; D M A _ I n i t S t r u c t u r e . DMA_FIFOMode = D M A _ F I F O M o d e _ D i s a b l e ; DMA_InitStructure . DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull ; D M A _ I n i t S t r u c t u r e . D MA _M e mo ry Bu r st = D M A _ M e m o r y B u r s t _ S i n g l e ; DMA_InitStructure . DMA_PeripheralBurst = DMA_PeripheralBurst_Single ; DMA_Init ( DMA2_Stream0 , & D M A _ I n i t S t r u c t u r e ) ; 37 38 39 40 41 N V I C _ I n i t S t r u c t u r e . N VI C_ IR Q Ch an ne l = D M A 2 _ S t r e a m 0 _ I R Q n ; N V I C _ I n i t S t r u c t u r e . N V I C _ I R Q C h a n n e l P r e e m p t i o n P r i o r i t y = 0; N V I C _ I n i t S t r u c t u r e . N V I C _ I R Q C h a n n e l S u b P r i o r i t y = 0; N V I C _ I n i t S t r u c t u r e . N V I C _ I R Q C h a n n e l C m d = ENABLE ; 141 142 CÓDIGO FONTE DE ALGUMAS ROTINAS NVIC_Init (& N V I C _ I n i t S t r u c t u r e ) ; 42 43 DMA_ITConfig ( DMA2_Stream0 , DMA_IT_TC | DMA_IT_HT , ENABLE ) ; DMA_Cmd ( DMA2_Stream0 , ENABLE ) ; 44 45 46 /* Configura ADC3 Canal 13 como entrada analogica / pino -> PC .3 */ G P I O _ I n i t S t r u c t u r e . GPIO_Pin = GPIO_Pin_3 ; G P I O _ I n i t S t r u c t u r e . GPIO_Mode = GPIO_Mode_AN ; G P I O _ I n i t S t r u c t u r e . GPIO_PuPd = G P I O_ P u P d _ N O P U L L ; GPIO_Init ( GPIOC , & G P I O _ I n i t S t r u c t u r e ) ; 47 48 49 50 51 52 /* ADC Common Init */ A D C _ C o m m o n I n i t S t r u c t u r e . ADC_Mode = A D C _ M o d e _ I n d e p e n d e n t ; A D C _ C o m m o n I n i t S t r u c t u r e . ADC_Prescaler = A D C _ P r e s c a l e r _ D i v 2 ; ADC_CommonInitStructure . ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled ; ADC_CommonInitStructure . ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles ; ADC_ CommonIn it (& A D C _ C o m m o n I n i t S t r u c t u r e ) ; 53 54 55 56 57 58 59 /* ADC3 Init */ A D C _ I n i t S t r u c t u r e . ADC_Res olution = A D C _ R e s o l u t i o n _ 1 2 b ; A D C _ I n i t S t r u c t u r e . A D C _ S c a n C o n v M o d e = DISABLE ; A D C _ I n i t S t r u c t u r e . A D C _ C o n t i n u o u s C o n v M o d e = DISABLE ; ADC_InitStructure . ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising ; ADC_InitStructure . ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_TRGO ; A D C _ I n i t S t r u c t u r e . ADC_DataAlign = A D C _ D a t a A l i g n _ R i g h t ; A D C _ I n i t S t r u c t u r e . A D C _ N b r O f C o n v e r s i o n = 1; ADC_Init ( ADC3 , & A D C _ I n i t S t r u c t u r e ) ; 60 61 62 63 64 65 66 67 68 69 /* ADC3 regular channel13 configuration */ A D C _ R e g u l a r C h a n n e l C o n f i g ( ADC3 , ADC_Channel_13 , 1 , A D C _ S a m p l e T i m e _ 3 C y c l e s ) ; 70 71 72 /* Enable DMA request after last transfer ( Single - ADC mode ) */ A D C _ D M A R e q u e s t A f t e r L a s t T r a n s f e r C m d ( ADC3 , ENABLE ) ; 73 74 75 /* Enable ADC3 DMA */ ADC_DMACmd ( ADC3 , ENABLE ) ; 76 77 78 /* Enable ADC3 */ ADC_Cmd ( ADC3 , ENABLE ) ; 79 80 81 } B.2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 FIRMWARE - CÓDIGO PARA CONFIGURAÇÃO DO TIMER2 /* * @brief Configuracao do TIMER2 que dispara a conversao do ADC * @Author Ademario Jose de Carvalho Neto * @version 2.0 */ void TIM2_Config ( int _fs ) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure ; // * Habilita o clock do periferico TIM2 */ R C C _ A P B 1 P e r i p h C l o c k C m d ( RCC_APB1Periph_TIM2 , ENABLE ) ; /* Configuracao da base de tempo */ T I M _ T i m e B a s e S t r u c t I n i t (& T I M _ T i m e B a s e S t r u c t u r e ) ; T I M _ T i m e B a s e S t r u c t u r e . TIM_Period = (90000000 / _fs ) - 1; // base_clock :{([ HCLK /2]/ fs ) -1}; T I M _ T i m e B a s e S t r u c t u r e . TIM_Prescaler = 0; T I M _ T i m e B a s e S t r u c t u r e . T I M _ C l o c k D i v i s i o n = 1; T I M _ T i m e B a s e S t r u c t u r e . T IM _C ou n te rM od e = T I M _ C o u n t e r M o d e _ U p ; T I M _ T i m e B a s eI n it ( TIM2 , & T I M _ T i m e B a s e S t r u c t u r e ) ; /* Selecao do TIM2 TRGO */ T I M _ S e l e c t O u t p u t T r i g g e r ( TIM2 , T I M _ T R G O S o u r c e _ U p d a t e ) ; /* habilita contador do TIM2 */ TIM_Cmd ( TIM2 , ENABLE ) ; } 143 B.3 FIRMWARE - CÓDIGO DO ALGORITMO DA CZT B.3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 FIRMWARE - CÓDIGO DO ALGORITMO DA CZT /* * * @brief Codigo fonte da CZT * @Author Ademario Jose de Carvalho Neto * @version 3.0 */ float vFastCZT ( float AngIniHz , int faixaCZT ) { // int a_r , a_i , escala_freq , FFT_Peakfreq , FFT_Peakindex , iback ; float auxr , auxi ; double z_r , z_i ; float ph , alpha , ang , resolucao ; short nfft ,i , NPP ; // float ampli , ampli2 , ampli3 , amplit , saida , ajuste , A_omg0 , ts , f1 , f2 , f3 ; float maxValue ; // u16 color , x1 , y1 , x2 , y2 , k =3 , dx =50 , dy =0; 16 17 /* ===== CALCULA A ^( - N ) * W ^( N ^2/2) ===== */ 18 19 20 21 22 23 24 // fs = _Fsample ; // Inicio do calculo da transformada dos coeficientes . // AngIniHz = 30; // Define o inicio da analise da CZT em ( Hz ) // faixaCZT = 40; // Faixa de frequencia que se desja analisar pela CZT em ( Hz ) resolucao = 1.0* faixaCZT / NP ; // Resolucao da CZT . O erro e metade disso . ph = -2.0* pi * resolucao / _fsample ; 25 26 27 28 29 30 31 32 33 34 NPP = 2* NP ; // O vetor e formado por real e imaginario for ( i =0; i <( NP ) ; i ++) { alpha = - ph * i * i /2.0; coef1 [2* i ] = ( float ) ( arm_cos_f32 ( alpha ) ) ; // Parte real coef1 [2* i + 1] = ( float ) ( arm_sin_f32 ( alpha ) ) ; // Parte imaginaria coef2 [2* i ] = coef1 [2* i ]; // Parte real coef2 [2* i + 1] = coef1 [2* i + 1]; // Parte imaginaria } 35 36 nfft =4* NP ; 37 38 39 40 41 42 for ( i =0; i <( NPP ) ; i = i + 2) { coef1 [ nfft -i -1 ] = coef2 [ i + 1]; // Parte imaginaria coef1 [ nfft -i -2 ] = coef2 [ i ]; // Parte real } 43 44 45 46 47 48 // Calculo da transformada do coeficiente coef1 // fftR4 ( saida , entrada , tamanho ) ; // fftR4 ( FFT_out , coef1 , NPP ) ; // Lembrar que NPP = 2* NP arm_cfft_f32 (& arm_cfft_sR_f32_len2048 , coef1 , _FFT , doBitReverse ) ; // Como nao vou mais usar os valores de coef1 original , guardarei a saida da transformacao nele 49 50 51 52 53 // Para que os valores de fftW1 e do matlab apresentem o mesmo resultado // no matlab deve ser feita uma divisao por (2* NP ) // Testei com 16 ,32 e 64 , 512 pontos e o resultado de coef11 foi o mesmo no matlab . 54 55 // Esta variavel indica o ponto de inicio , em Hz , da transformada . 56 57 ang = -2.0* pi * AngIniHz / _fsample ; 58 59 60 61 62 for ( i =0; i <( NP ) ; i ++) { z_r = 1.0*( coef2 [2* i ]* arm_cos_f32 (1.0* ang * i ) + i)); z_i = 1.0*( coef2 [2* i ]* arm_sin_f32 (1.0* ang * i ) - coef2 [2* i + 1]* arm_sin_f32 (1.0* ang * coef2 [2* i + 1]* arm_cos_f32 (1.0* ang * 144 CÓDIGO FONTE DE ALGUMAS ROTINAS i)); FFT_out [2* i ] = ( float ) ( z_r * CZT_in [2* i ] - z_i * CZT_in [2* i +1]) ; FFT_out [2* i +1] = ( float ) ( z_r * CZT_in [2* i +1] + z_i * CZT_in [2* i ]) ; 63 64 } 65 66 arm_fill_f32 (0 , FFT_out +2* NP ,2* NP ) ; 67 68 // Calculo transformada sinal e coeficientes // fftR4 ( FFT_in , FFT_out , NPP ) ; // Reutilizei o FFT_in para armazenar a saida . arm_cfft_f32 (& arm_cfft_sR_f32_len2048 , FFT_out , _FFT , doBitReverse ) ; 69 70 71 72 arm_copy_f32 ( FFT_out , 73 FFT_in , 4* NP ) ; 74 // Resultados testados com o Dev e estao na mesma ordem de grandeza . 75 76 /* ===== CALCULA g ( n ) * h ( n ) ===== */ // for ( i =0; i <( nfft ) ; i = i + 2) // { // // Obs o calculo deve ser com ponto flutuante . Multipliquei por 1.0 // FFT_out [ i ]= ( float ) ((1.0* FFT_in [ i ]* coef1 [ i ] - 1.0* FFT_in [ i +1]* coef1 [ i + 1]) ); // // com o sinal de entrada com 4096 de pico usei a divisao por xxxxxx , // o maior valor para FFT_out ainda e suportado por um short // FFT_out [ i +1]=( float ) ((1.0* FFT_in [ i ]* coef1 [ i + 1] + 1.0* FFT_in [ i +1]* coef1 [ i ]) ); // // imprime ( FFT_in [ i ] , FFT_out [ i ] , x [ i ]) ; // Testado e conferido com o DEV // } 77 78 79 80 81 82 83 84 85 86 87 a r m _ c m p l x _ m u l t _ c m p l x _ f 3 2 ( FFT_in , 88 coef1 , FFT_out , 2* NP ) ; 89 // Calculo da transformada inversa // ifftR4 ( FFT_in , FFT_out , NPP ) ; arm_cfft_f32 (& arm_cfft_sR_f32_len2048 , FFT_out , _IFFT , doBitReverse ) ; 90 91 92 93 /* ===== MULTIPLICA <... > POR W ^( K ^2/2) ===== */ 94 95 arm_fill_f32 (0 , FFT_in ,4* NP ) ; 96 97 for ( i =0; i <(2* NP ) ; i = i + 2) { // aux [ i ]= coef2 [ i ]; // aux [ i + 1]= coef2 [ i + 1]; auxr = coef2 [ i ]; auxi = - coef2 [ i + 1]; FFT_in [ i ] =( float ) (( FFT_out [ i ]* auxr - FFT_out [ i +1]* auxi ) ) ; FFT_in [ i +1] =( float ) (( FFT_out [ i +1]* auxr + FFT_out [ i ]* auxi ) ) ; } // a r m _ c m p l x _ m u l t _ c m p l x _ f 3 2 ( FFT_out , aux , FFT_in , 2* NP ) ; a r m _ c m p l x _ m a g _ f 3 2 ( FFT_in , FFT_mag , fftSize ) ; arm_max_f32 ( FFT_mag , fftSize , & maxValue , & testIndex ) ; return ( AngIniHz +1* testIndex * resolucao ) ; 98 99 100 101 102 103 104 105 106 107 108 109 110 111 } B.4 1 \ include {./ codigo / a r m _ m u l t _ c o m p l e x a . c } B.5 1 2 3 ALGORITMO PARA MULTIPLICAÇÃO COMPLEXA OTIMIZADO MATLAB - CÓDIGO DO PROGRAMA DE TESTE DA FFT/CZT figure ; clc ; fs =5000/1; 4 5 f01 =25; % frequencia de amostragem B.5 MATLAB - CÓDIGO DO PROGRAMA DE TESTE DA FFT/CZT 6 145 f02 =75; 7 8 9 10 11 12 Z =44; p =2; delta =1; sn =5; % % % % Numero de ranhuras Numero de pares de polos Ordem temporal Esc orregam ento Nominal 13 14 15 16 % [ f1 f2 ]= ffsh ( fpico0 ,6.8 ,1 ,44 ,2) ; % f1 =1000; % f2 =1500; 17 18 19 NP =1*1024; m =1*1024; % Numero de elementos de saida 20 21 22 23 24 dados = o u t u _ c o rr e n t e 2 _ p ; % b u f f e r _ 6 0 H z _ 1 2 5 _ p ; % _145_amp30 ; dados = dados - mean ( dados ) ; h = hanning ( NP ) ; % Cria janela de hanning x = dados (1: NP ) .* h ; % x = co rrente_ fs_5k (1: NP ) .* h ; 25 26 27 28 29 30 31 32 33 34 subplot (3 ,1 ,1) ; y = fft (x , NP ) ; fy = (0: length ( y ) -1) ’* fs / length ( y ) ; resfft = fs / length ( y ) ; plot ( fy , abs ( y ) ) ; axis ([0 (( fs /2) -1) 0 max ( abs ( y ) ) *1.05]) ; % Tamanho do eixo title ([ ’ FFT ( NP = ’ , num2str ( NP ) , ’ , fs = ’ , num2str ( fs ) , ’ Hz ) ’ ]) ; % Label do titulo ylabel ( ’ Amplitude ’) ; % Label dos eixos x e y xlabel ( ’ Frequencia ( Hz ) ’) ; 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 subplot (3 ,1 ,2) ; w = exp ( - j *2* pi *( f02 - f01 ) /( m * fs ) ) ; % Define razao para inc . dos ang . no circ . complexo a = exp ( j *2* pi * f01 / fs ) ; % Define ponto inicial no circ . unitario z = czt (x ,m ,w , a ) ; % Calcula a CZT fz =((0: length ( z ) -1) ’*( f02 - f01 ) / length ( z ) ) + f01 ; % Ajusta eixo de frequencias resczt =( f02 - f01 ) / length ( z ) ; abs_z = abs ( z ) ; [ val , idx ]= max ( abs_z ) ; fpico0 = f01 +( idx -1) *(( f02 - f01 ) / NP ) ; [ f1 f2 ]= ffsh ( fpico0 , sn , delta ,Z , p ) ; % f1 =400; % f2 =800; plot ( fz , abs_z ) ; % Plota os resultados da CZT axis ([ f01 f02 0 max ( abs ( z ) ) *1.05]) ; title ([ ’ CZT ( m = ’ , num2str ( m ) , ’ , fpico = ’ , num2str ( fpico0 ) , ’ Hz ) ’ ]) ; ylabel ( ’ Amplitude ’) ; xlabel ( ’ Frequencia ( Hz ) ’) ; 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 subplot (3 ,1 ,3) ; w = exp ( - j *2* pi *( f2 - f1 ) /( m * fs ) ) ; a = exp ( j *2* pi * f1 / fs ) ; z = czt (x ,m ,w , a ) ; fz =((0: length ( z ) -1) ’*( f2 - f1 ) / length ( z ) ) + f1 ; resczt =( f2 - f1 ) / length ( z ) ; abs_z = abs ( z ) ; [ val idx ]= max ( abs_z ) ; fpico = f1 +( idx -1) *(( f2 - f1 ) / NP ) ; plot ( fz , abs_z ) ; axis ([ f1 f2 0 max ( abs ( z ) ) *1.05]) ; sfsh =100*(1 -(2/44) *( fpico / fpico0 - delta ) ) ; vfsh =(60/44) *( fpico - delta * fpico0 ) ; title ([ ’ CZT ( fpico = ’ , num2str ( fpico ) , ’ Hz , Vfsh = ’ ,... num2str ( vfsh ) , ’ s = ’ , num2str ( sfsh ) , ’ %) ’ ]) ; ylabel ( ’ Amplitude ’) ; xlabel ( ’ Frequencia ( Hz ) ’) ; Apêndice C RESUMO DO ARTIGO PUBLICADO NO CBA 2014 ALGORITMOS PARA ESTIMAÇÃO SENSORLESS DA VELOCIDADE EM MITs EMBUTIDOS EM HARDWARE DE BAIXO CUSTO Resumo – A estimativa de grandezas referentes à operação dos motores de indução trifásicos, especialmente da velocidade, é uma questão que tem despertado o interesse particular de muitos pesquisadores. Estudos mais recentes têm concentrado seus esforços no desenvolvimento de técnicas não invasivas, comumente denominadas sensorless. Neste sentido, este trabalho tem com objetivo verificar a viabilidade de embutir, em uma plataforma de hardware de baixo custo, algoritmos para estimação da velocidade em motores de indução trifásicos operando em regime não estacionário. A implementação destes algoritmos é baseada no método de análise espectral dos componentes relacionados às ranhuras do rotor tipo gaiola de esquilo. Foi adotada uma abordagem metodológica que consiste na análise off-line de dados coletados em experimentos realizados previamente. Foram utilizados dados da corrente do estator de um motor operando em regime não estacionário e para validação da técnica utilizou-se dados referentes às medidas de velocidade realizadas por meio de um tacômetro digital. As técnicas de processamento digital de sinais necessárias ao desenvolvimento do método, tais como a Transformada Rápida de Fourier, Transformada Chirp-Z e demais rotinas foram embutidas em uma plataforma de hardware baseada em um microcontrolador ARM com núcleo Cortex M4. A análise dos resultados permite verificar a eficiência da técnica de estimação da velocidade além de fornecer alguns parâmetros sobre capacidade de processamento do microcontrolador, definindo assim os cenários onde a aplicação do sistema pode ou não se recomendada. Palavras-chave – Sistemas Embutidos, estimação de velocidade, técnicas sensorless, harmônicos de ranhura, transformada Chirp-Z. 147 148 RESUMO DO ARTIGO PUBLICADO NO CBA 2014 Abstract – The estimation of quantities related to the operation of the three phase induction motors especially the speed is an issue, that has aroused particular interest in many researchers. Recent studies have concentrated their efforts on the development of non- intrusive techniques, commonly called sensorless. This paper have the objective to verify the feasibility of embedding in a low-cost hardware platform, algorithms for estimating the speed, of induction motors operating in non-stationary regime. The implementation of these algorithms is based on the method of spectral analysis of the components related to the slots in the squirrel-cage rotor. A methodological approach that consists of off-line analysis of the collected data in experiments previously performed was adopted. The motor stator current data captured when it was operating in a nonstationary regime was analysed and to validate this technique, the results were compared with the data obtained by a digital tachometer. The techniques of digital signal processing necessary for the development of the method, such as the Fast Fourier Transform, Transform Chirp-Z and other routines were embedded in a hardware platform based on an ARM Cortex M4 microcontroller. The analysis allows to check the efficiency of the proposed technique for estimating speed and provide some parameters on processing capability of the microcontroller, defining the scenarios where application of the system can be recommended. Keywords – Embedded Systems, rotational estimation, sensorless techniques, rotor slot harmonics, Chirp-Z Transform. REFERÊNCIAS BIBLIOGRÁFICAS Aamir, K.; Maud, M.; Loan, A. On Cooley-Tukey FFT method for zero padded signals. In: Proceedings of the IEEE Symposium on Emerging Technologies. [S.l.]: IEEE, 2005. p. 41–45. ISBN 0-7803-9247-7. Aiello, M.; Cataliotti, A.; Nuccio, S. An Induction Motor Speed Measurement Method Based on Current Harmonic Analysis With the Chirp-Z Transform. IEEE Transactions on Instrumentation and Measurement, v. 54, n. 5, p. 1811–1819, out. 2005. ISSN 0018-9456. Almasi, G. S.; Gottlieb, A. Highly Parallel Computing. 2. ed. [S.l.]: The Benjamin/Cummings, 1994. 689 p. ISBN 0805304436. Almeida, C. V. R. et al. Equipamento para Estimação do Torque em Motores de Indução Trifásicos pelo Método do Escorregamento auxiliado pela Análise Espectral do Sinal de Corrente do Estator - Desenvolvimento e Implementação. Anais do XVIII Congresso Brasileiro de Automática, v. 3, n. XVIII, 2010. Alonge, F.; D’ippolito, F.; Sferlazza, A. Sensorless control of induction-motor drive based on robust kalman filter and adaptive speed estimation. IEEE Transactions on Industrial Electronics, v. 61, n. 3, p. 1444–1453, 2014. ISSN 02780046. Analog-devices. AD420 - Serial Input 16 Bit 4 mA to 20 mA, 0 mA to 20 mA DAC (Datasheet). Norwood: [s.n.], 1999. ARM. Cortex-M4 Processor: Manual Technical Reference. 2015. 1–108 p. Axelson, J. USB Embedded Hosts: The Developer’s Guide. [S.l.]: Lakeview Research LLC, 2011. 152 p. ISBN 1931448248. Axelson, J. USB Complete: The Developer’s Guide, Fifth Edition. [S.l.]: Lakeview Research LLC, 2015. 524 p. ISBN 1931448280. Ball, S. Embedded Microprocessor Systems: Real World Design. 3. ed. Editora: MCPros, EUA, 2005. Barry, R. FreeRTOS reference manual: API functions and configuration options. [S.l.]: Real Time Engineers Limited, 2009. 113 p. Barry, R. Using the FreeRTOS Real Time Kernel: A Practical Guide. [S.l.]: Real Time Engineers Limited, 2010. 197 p. ISBN 1446169979. 149 150 REFERÊNCIAS BIBLIOGRÁFICAS Bim, E. Máquinas Elétricas e Acionamento. 3. ed. Rio de Janeiro: Elsevier, 2014. 592 p. ISBN 8535259244. Bogdan, M. Virtual instrument, for frequency measurement and spectral analysis. Journal of Electrical and Electronics Engineering, University of Oradea, v. 4, n. 1, p. 19, 2011. Burns, A.; Wellings, A. J. Real-time Systems and Programming Languages: Ada 95, Realtime Java, and Real-time POSIX. [S.l.]: Addison-Wesley, 2001. 738 p. ISBN 0201729881. Câmara, H. T.; Grüdling, H. A. A RMRAC applied to speed control of an induction motor without shaft encoder. In: Proceedings of the IEEE Conference on Decision and Control. [S.l.: s.n.], 2004. v. 4, p. 4429–4434. ISBN 0780386825. ISSN 01912216. Chesnutt, C.; Baker, M. C. Incorporation of ni mydaq exercises in electric circuits. In: ASEE Gulf-Southwest Annual Conference. [S.l.: s.n.], 2011. Cirrincione, M. et al. A new TLS-based MRAS speed estimation with adaptive integration for high-performance induction machine drives. IEEE Transactions on Industry Applications, v. 40, n. 4, p. 1116–1137, 2004. ISSN 00939994. Cirrincione, M. et al. Sensorless control of induction machines by a new neural algorithm: The TLS EXIN neuron. IEEE Transactions on Industrial Electronics, v. 54, n. 1, p. 127– 149, 2007. ISSN 02780046. Cooley, J.; Lewis, P.; Welch, P. Historical notes on the fast Fourier transform. IEEE Transactions on Audio and Electroacoustics, v. 15, n. 2, p. 76–79, jun. 1967. ISSN 00189278. Cooling, J. E. Software Engineering for Real-time Systems. [S.l.]: Addison-Wesley, 2003. 800 p. ISBN 0201596202. Cunha, A. F. Sistemas Embarcados. Revista Saber Eletrônica, Editora: Saber, Brasil, v. 414, 2013. Cuong, N. H.; Lam, N. T.; Minh, N. D. Multiplier-less based architecture for variablelength FFT hardware implementation. In: Fourth International Conference on Communications and Electronics (ICCE). [S.l.]: IEEE, 2012. p. 489–494. ISBN 978-1-4673-2493-9. Curtis, K. E. Embedded Multitasking. 1. ed. [S.l.]: Newnes, 2011. 416 p. ISBN 0080494714. Dobkin, B.; Hamburger, J. Analog Circuit Design Volume Three: Design Note Collection. [S.l.]: Elsevier Science, 2014. 1136 p. ISBN 0128004665. Duncan, R. A survey of parallel computer architectures. Computer, IEEE, v. 23, n. 2, p. 5–16, fev. 1990. ISSN 0018-9162. Ferrah, A.; Bradley, K. J.; Asher, G. M. FFT-based novel approach to noninvasive speed measurement in induction motor drives. IEEE Transactions on Instrumentation and Measurement, v. 41, n. 6, p. 797–802, 1992. ISSN 00189456. REFERÊNCIAS BIBLIOGRÁFICAS 151 Fitzgerald, A. E.; Kingsley Jr, C.; Umans, S. D. Máquinas elétricas: com introdução à eletrônica de potência. 6. ed. [S.l.]: Bookman, 2006. ISBN 8560031049. FLUKE. 80i-110s AC/DC Current Probe - Instruction Sheet. 2005. 2 p. Gibbs, S. et al. Utility of motor-speed measurements in pumping-well analysis and control. SPE Production Engineering, Society of Petroleum Engineers, v. 2, n. 03, p. 199–208, 1987. Goedtel, A. Estimador Neural de Velocidade para Motores de Indução Trifásicos. 159 p. Tese (Doutorado em Engenharia Elétrica) — USP, São Carlos, 2007. Gupta, R. K. Introduction to Embedded Systems. 1. ed. Los Angeles: UCLA, EUA, 2002. He, S.; Torkelson, M. A new approach to pipeline FFT processor. Proceedings of International Conference on Parallel Processing, p. 766–770, 1996. ISSN 10705511. Holtz, J. Sensorless control of induction motor drives. Proceedings of the IEEE, v. 90, n. 8, 2002. ISSN 0018-9219. Hyder, K.; Perrin, B. Embedded Systems Design Using the Rabbit 3000 Microprocessor: Interfacing, Networking, and Application Design, Volume 1. [S.l.]: Newnes, 2005. 458 p. ISBN 0750678720. Ifeachor, E. C.; Jervis, B. W. Digital Signal Processing: A Practical Approach. [S.l.]: Prentice Hall, 2002. 933 p. ISBN 0201596199. Ishida, M.; Iwata, K. A New Slip Frequncy Detector of an Induction Motor Utilizing Rotor Slot Harmonics. IEEE Transactions on Industry Applications, IA-20, n. 3, 1984. ISSN 0093-9994. Ishida, M.; Iwata, K. Steady-State Characteristics of a Torque and Speed Control System of an Induction Motor Utilizing Rotor Slot Harmonics for Slip Frequency Sensing. IEEE Transactions on Power Electronics, PE-2, n. 3, 1987. ISSN 0885-8993. Kamal, R. Embedded Systems 2E. [S.l.]: Tata McGraw-Hill Education, 2008. 681 p. ISBN 0070667640. Keysan, O.; Ertan, H. B. Real-time speed and position estimation using rotor slot harmonics. IEEE Transactions on Industrial Informatics, v. 9, n. 2, p. 899–908, 2013. ISSN 15513203. Kosow, I. Maquinas Elétricas e Transformadores. 9. ed. Porto Alegre: Globo, 1993. 667 p. KTR. Torque measuring shaft DATAFLEX - Assembly/Operating Instructions (Datasheet). 2006. 26 p. Labrosse, J. J. Embedded Systems Building Blocks: Complete and Ready-to-Use Modules in C. 2. ed. San Fransisco: CMP Books, 2002. ISBN 0879306041. 152 REFERÊNCIAS BIBLIOGRÁFICAS Lascu, C.; Boldea, I.; Blaabjerg, F. A modified direct torque control for induction motor sensorless drive. IEEE Transactions on Industry Applications, v. 36, n. 1, p. 122–130, 2000. ISSN 00939994. Li, J.; Xu, L.; Zhang, Z. An adaptive sliding-mode observer for induction motor sensorless speed control. IEEE Transactions on Industry Applications, v. 41, n. 4, p. 1039–1046, 2005. ISSN 00939994. Li, Q.; Hu, J. A high accuracy FFT algorithm for induction motor sensor-less speed estimation. 2008. 851–854 p. Li, Y.; Potkonjal, M.; Wolf, W. Real-time Operating Systems for Embedded Computing. Proceedings of the International Conference on Computer Design, 1997. Lima, F. S. d. Detecção e classificação de modos de operação do bombeio mecânico via cartas dinamométricas. 141 p. Tese (Doutorado em Engenharia Elétrica) — UFRN, Natal, 2014. Lima, F. S. D.; Guedes, L. A. H.; Silva, D. R. Application of fourier descriptors and pearson correlation for fault detection in sucker rod pumping system. In: IEEE. Emerging Technologies & Factory Automation, 2009. ETFA 2009. IEEE Conference on. [S.l.], 2009. p. 1–4. Lima, R. et al. Gestão de ativos aplicado em plataforma de petróleo. In: 13º Congresso Internacional de Automação, Sistemas e Instrumentação. [S.l.: s.n.], 2009. Malvino, A.; Bates, D. J. Eletrônica (v.2), Volume 2. São Paulo: McGraw Hill Brasil, 2009. ISBN 8580550041. Martin, T. The Designer’s Guide to the Cortex-M Processor Family: A Tutorial Approach. [S.l.]: Newnes, 2013. 336 p. ISBN 0080982999. Mathivanan, N. PC-BASED INSTRUMENTATION: CONCEPTS AND PRACTICE. [S.l.]: PHI Learning Pvt. Ltd., 2007. 700 p. ISBN 8120330765. Mathworks. Signal Processing Toolbox User’s Guide R 2015 a. 2015. Microchip. MCP41XXX/42XXX: Single/Dual Digital Potentiometer with SPI Interface (Datasheet). 2003. Modbus, I. Modbus application protocol specification v1. 1a. North Grafton, Massachusetts (www. modbus. org/specs. php), 2004. Moreno, J. et al. Fuzzy logic based improvements in efficiency optimization of induction motor drives. In: IEEE. Fuzzy Systems, 1997., Proceedings of the Sixth IEEE International Conference on. [S.l.], 1997. v. 1, p. 219–224. REFERÊNCIAS BIBLIOGRÁFICAS 153 Nandi, S.; Ahmed, S.; Toliyat, H. A. Detection of rotor slot and other eccentricity related harmonics in a three phase induction motor with different rotor cages. IEEE Transactions on Energy Conversion, v. 16, n. 3, p. 253–260, 2001. ISSN 08858969. Nishibata, K. et al. Speed estimation method utilizing rotor slot harmonics detected from line current for speed sensorless drive of ultra high speed induction machine. Proceedings of the IEEE International Conference on Industrial Technology, p. 1591–1596, 2006. Oppenheim, A. V.; Schafer, R. W.; Buck, J. R. Discrete Time Signal Processing. [S.l.: s.n.], 1999. 870 p. ISBN 0137549202. Oshana, R.; Kraeling, M. Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications. 1. ed. Waltham: Newnes, 2013. 1200 p. ISBN 0124159419. Pallás-areny, R.; Webster, J. G. Sensors and signal conditioning, Volume 1. [S.l.]: J. Wiley, 2001. 587 p. ISBN 0471332321. Proakis, J. G. Digital Signal Processing: Principles, Algorithms, And Applications. 4. ed. [S.l.]: Pearson Education, 2007. 1156 p. ISBN 8131710009. Prolific. PL-2303HX Edition (Chip Rev D) USB to Serial Bridge Controller (Datasheet). Taipei: [s.n.], 2007. 26 p. Rabiner, L.; Schafer, R.; Rader, C. The chirp z-transform algorithm. IEEE Transactions on Audio and Electroacoustics, v. 17, n. 2, p. 86–92, jun. 1969. ISSN 0018-9278. Reboucas, A. S. et al. Metodologia para estimação de torque em motores de indução polifásicos. Anais do XVI Congresso Brasileiro de Automática, n. XVI, 2006. Reis, C. Sistemas Operacionais para Sistemas Embarcados. 1. ed. Salvador: ED-UFBA, 2004. Rodeiro, V. R. V. Detecção automática de parâmetros do motor de indução trifásico para estimação da velocidade por análise espectral. Dissertação (Mestrado) — Universidade Federal da Bahia - UFBA, 2005. Rodeiro, V. R. V.; Oliveira, A.; Cerqueira, J. J. F. Detecção automática de parâmetros do motor de indução trifásico para estimação da velocidade por análise espectral. Anais do XVI Congresso Brasileiro de Automática, v. 1, n. XVI, p. 785–790, 2006. Salvatore, L.; Stasi, S.; Cupertino, F. Improved rotor speed estimation using two Kalman filter-based algorithms. Conference Record of the 2001 IEEE Industry Applications Conference. 36th IAS Annual Meeting (Cat. No.01CH37248), v. 1, 2001. ISSN 0197-2618. Schoukens, J.; Pintelon, R.; Van Hamme, H. The interpolated fast Fourier transform: a comparative study. IEEE Transactions on Instrumentation and Measurement, IEEE, v. 41, n. 2, p. 226–232, abr. 1992. ISSN 00189456. 154 REFERÊNCIAS BIBLIOGRÁFICAS Seyer, M. D. Complete guide to RS232 and parallel connections: a step-by-step approach to connecting computers, printers, terminals, and modems. [S.l.]: Prentice Hall, 1988. 617 p. ISBN 0131602012. Shi, D.; Unsworth, P.; Gao, R. Sensorless Speed Measurement of Induction Motor Using Hilbert Transform and Interpolated Fast Fourier Transform. IEEE Transactions on Instrumentation and Measurement, v. 55, n. 1, p. 290–299, fev. 2006. ISSN 0018-9456. Silva, W. L. Utilização de métodos não invasivos para determinação de velocidade, escorregamento, e torque em motores de induçao trifásico com aplicaçoes em unidade de bombeio mecânico de petróleo. Tese (Doutorado em Engenharia Elétrica) — Universidade Federal da Bahia - UFBA, 2014. Silva, W. L.; Lima, A. M. N.; Oliveira, A. Torque estimation using rotor slots harmonics on a three-phase induction motor. 2014 IEEE International Instrumentation and Measurement Technology Conference (I2MTC) Proceedings, IEEE, p. 1301–1305, maio 2014. Silva, W. L.; Lima, A. M. N.; Oliveira, A. A Method for Measuring Torque of SquirrelCage Induction Motors Without Any Mechanical Sensor. IEEE Transactions on Instrumentation and Measurement, IEEE, v. 64, n. 5, p. 1223–1231, maio 2015. ISSN 0018-9456. Silva, W. L.; Lima, A. M. N.; Oliveira, A. Speed Estimation of an Induction Motor Operating in the Nonstationary Mode by Using Rotor Slot Harmonics. IEEE Transactions on Instrumentation and Measurement, v. 64, n. 4, p. 984–994, abr. 2015. ISSN 0018-9456. Silva, W. L.; Oliveira, A. Análise da formacao dos componentes relacionadosas ranhuras de rotor no motor de induçao trifásico. Anais do XIX Congresso Brasileiro de Automatica, Campina Grande, Brazil, p. 184–191, 2012. Silva, W. L.; Oliveira, A. Influência da duraçao da janela da stft e do uso da czt no método sensorless que utiliza as componentes de frequência relacionadasas ranhuras de rotor para a estimaçao da velocidade no eixo motor de induçao trifásico. Anais do XIX Congresso Brasileiro de Automatica, Campina Grande, Brazil, p. 512–518, 2012. Silva, W. L.; Souza Neto, D. G.; Barreto, M. A. Determining the surface dynamometer card of a pumping system from the torque curve of a three-phase induction motor. Anais do XX Congresso Brasileiro de Automática, Belo Horizonte, Brazil, p. 2021–2027, 2014. Singh, K. Design and Evaluation of an Embedded Real-time Micro-kernel. Tese (Doutorado) — State University, Blacksburg, 2002. Smith, J. O. Mathematics of the Discrete Fourier Transform (DFT): With Audio Applicaitons. [S.l.]: Julius Smith, 2007. 306 p. ISBN 097456074X. Stepner, D.; Rajan, N.; Hui, D. Embedded Application Design Using a Real-time OS. Proceedings of the Design Automation Conference, ACM Press, New Orleans, 1999. REFERÊNCIAS BIBLIOGRÁFICAS 155 STMicroelectronics. AN3969 - EEPROM Emulation in STM32F40x/STM32F41x Microcontrollers - Application Note. 2011. STMicroelectronics. STM32F103xC, STM32F103xD, STM32F103xE - High-density performance line ARM-based 32-bit MCU with 256 to 512KB (Datasheet). 2015. Tennenhouse, D. Proactive computing. Communications of the ACM, ACM, v. 43, n. 5, p. 43–50, 2000. Texas Instruments. Sensorless Control with Kalman Filter on TMS320 Fixed-Point DSP. Control, n. July, 1997. Texas Instruments. MAX3232 3-V to 5.5-V Multichannel RS-232 Line Driver/Receiver (Datasheet). Dallas: [s.n.], 2015. Thomas, J. Fundamentos de engenharia de petróleo. Rio de Janeiro: Interciência : PETROBRAS, 2004. ISBN 9788571930995. Toro, V. D. Fundamentos de Máquinas Elétricas. 1. ed. Rio de Janeiro: LTC, 1999. 550 p. ISBN 8521611846. Tursini, M. Adaptive sliding-mode observer for speed-sensorless control of induction motors. IEEE Transactions on Industry Applications, v. 36, n. 5, p. 1380–1387, 2000. ISSN 00939994. Velez-reyes, M.; Fung, W. L. F. W. L.; Ramos-torres, J. Developing robust algorithms for speed and parameter estimation in induction machines. Proceedings of the 40th IEEE Conference on Decision and Control (Cat. No.01CH37228), v. 3, 2001. ISSN 01912216. Warren, S.; Yao, J. Work in progress—updates to a mobile circuits-and-signals learning kit that incorporates a usb data acquisition unit. In: IEEE. Frontiers in Education Conference (FIE), 2010 IEEE. [S.l.], 2010. p. S2H–1. WEG. Guia de Aplicação de Inversores de Frequência. 2004. WEG. Motores de indução alimentados por inversores de frequência. 2014. Wolf, M. Computers as Components: Principles of Embedded Computing System Design. 3. ed. Waltham: Elsevier, 2012. 500 p. ISBN 0123884365. Yamamoto, G. K.; Azevedo, R. A. M. O que é um sistema operacional de tempo real? Revista Mecatrônica Atual, v. 60, jan. 2013. Yiu, J. The Definitive Guide to ARM CORTEX-M3 and CORTEX-M4 Processors. 3. ed. Cambridge: Elsevier, 2014. ISBN 0123854784. Zhang, S.; Yu, D.; Sheng, S. A discrete STFT processor for real-time spectrum analysis. In: IEEE Asia-Pacific Conference on Circuits and Systems, Proceedings, APCCAS. [S.l.: s.n.], 2006. p. 1943–1946. ISBN 1424403871. 156 REFERÊNCIAS BIBLIOGRÁFICAS Zhao, T. Z. T.; Zinger, D. Induction motor speed detection by applying Goertzel’s algorithm to current harmonics. APEC 2000. Fifteenth Annual IEEE Applied Power Electronics Conference and Exposition (Cat. No.00CH37058), v. 1, 2000.