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.

Documentos relacionados