Вы находитесь на странице: 1из 84

UNIVERSIDADE FEDERAL FLUMINENSE

ESCOLA DE ENGENHARIA
DEPARTAMENTO DE ENGENHARIA ELÉTRICA

CRISTIANO DE MORAIS MOTA

PROJETO E IMPLEMENTAÇÃO DE UM SISTEMA DE CONTROLE DE


VELOCIDADE DE UM MOTOR DE CORRENTE CONTÍNUA SEM ESCOVAS.

Niterói, RJ
2014
CRISTIANO DE MORAIS MOTA

PROJETO E IMPLEMENTAÇÃO DE UM SISTEMA DE CONTROLE DE


VELOCIDADE DE UM MOTOR DE CORRENTE CONTÍNUA SEM ESCOVAS.

Trabalho de Conclusão de Curso aprovado pela


Banca Examinadora para obtenção do Grau de
Engenheiro Eletricista, no Curso de Engenharia
Elétrica da Universidade Federal Fluminense.

Orientador:
Prof. José Andrés Santisteban Larrea, D. Sc.

Niterói, RJ
2014
!" # $ % &' (
)* +

, - . / 0 1 2 3 .
24 5 6 6 &' (
7 #" 48 4 9 - :

4 & *
8 4 ; ,

11 <& (<
CRISTIANO DE MORAIS MOTA

PROJETO E IMPLEMENTAÇÃO DE UM SISTEMA DE CONTROLE DE


VELOCIDADE DE UM MOTOR DE CORRENTE CONTÍNUA SEM ESCOVAS.

Trabalho de Conclusão de Curso aprovado pela


Banca Examinadora para obtenção do Grau de
Engenheiro Eletricista, no Curso de Engenharia
Elétrica da Universidade Federal Fluminense.

Aprovada em 7 de Janeiro de 2014.

BANCA EXAMINADORA

Prof. José Andrés Santisteban Larrea, D. Sc. – UFF


Orientador.

Prof. André Luiz da Rosa Plaisant, Ph.D. - UFF

Prof. Bruno Campos Pedroza, D. Sc.- UFF

Niterói, RJ
2014
i

DEDICATÓRIA

Dedico este trabalho a toda a minha família, em


especial, aos meus pais e aos meus amigos que me
deram incentivo durante toda a realização deste
trabalho.
ii

AGRADECIMENTOS

Agradeço, primeiramente, a Deus por tudo que fez em minha vida e por estar ao
meu lado em todos os momentos da minha vida.
A minha família, que me deu suporte e por acreditar em mim, sempre dando apoio
nos momentos mais difíceis.
Aos professores que me ajudaram e transmitiram todo o conhecimento necessário, e
auxiliaram para o meu desenvolvimento profissional e pessoal, em especial, o
professor José Santisteban, que foi meu orientador neste projeto.
Aos meus amigos companheiros de curso, pelas alegrias, pelas tristezas, pelos
estudos, pelos congressos, pois o curso não teria sido o mesmo.
Ao Daniel Ferrer e Marcelo Ribeiro pela ajuda em vários pontos do desenvolvimento
desse projeto.
iii

EPÍGRAFE

“Deus me fez crescer na terra da minha infelicidade”


(Gêneses 41:52 – Bíblia Sagrada)

“O único lugar onde o sucesso vem antes do trabalho é o dicionário.”


(Albert Eisntein)

“O sucesso é ir de fracasso em fracasso sem perder o entusiasmo.”


(Winston Churchill)
iv

RESUMO

Com o avanço da eletrônica, e, em particular, dos microcontroladores, muitas tarefas


da vida cotidiana encontram-se governadas por dispositivos dessa natureza. Por
outro lado, com a necessidade de fontes alternativas de energia, muitas pesquisas
têm se direcionado à fabricação de motores elétricos eficientes, e com densidade de
potência cada vez maior. Isto tem sido conseguido graças à utilização de materiais
magnéticos de alta coercividade e magnetismo residual. Entre estes materiais se
destaca o denominado motor de corrente contínua sem escovas. Neste trabalho, é
apresentado o desenvolvimento de um sistema de controle para este tipo de motor,
utilizando a plataforma de desenvolvimento Arduino, que utiliza o microcontrolador
Atmelmega2560. São mostrados detalhes da sua implementação experimental e
alguns resultados, com e sem carga.

Palavras Chaves: Arduino. Motor de corrente contínua sem escovas. Acionamento


eletrônico.
v

ABSTRACT

With the advancement of electronics, in particular of microcontrollers, many tasks of


daily life are governed by these devices. Moreover, with the growing need for
alternative sources of energy, many researches have been directed to the
manufacture of efficient electric motors with higher power density. This has been
achieved through the use of magnetic materials with high coercivity and residual
magnetism. Among these, stands the so called brushless dc Motor. This work
presents the development of a control system for this type of machine, using the
Arduino development platform, which is based on the microcontroller Atmega2560. It
also shows the details of the experimental implementation and some results, with
and without load.

Keywords: Arduino. Brushless DC motor. Drives.


vi

LISTA DE ILUSTRAÇÔES

Figura 2-1 Motor cc sem escovas usado em aeromodelismo (6). ............................... 5


Figura 2-2 Forma da fem para motor sem escovas ca (8). ......................................... 6
Figura 2-3 Forma da fem para motor sem escovas cc (8). .......................................... 7
Figura 2-4 Circuito de acionamento do motor sem escovas........................................ 8
Figura 2-5 Sinais de controle para condução por 120° (3). ......................................... 9
Figura 2-6 Sinais de controle para condução por 180°(3). .......................................... 9
Figura 2-7 Representação do circuito do motor BLDC. ............................................. 10
Figura 2-8 Resposta transitória de corrente (Escala 1,5A/V). ................................... 12
Figura 3-1 Tipos de Arduino (11)............................................................................... 15
Figura 3-2 Arduino Mega2560 (12). .......................................................................... 16
Figura 3-3 Diagrama de blocos do microcontrolador Atmel2560(16). ....................... 20
Figura 3-4 Diagrama de blocos da arquitetura Von-Neumann. ................................. 21
Figura 3-5 Diagrama de blocos da arquitetura Harvard. ........................................... 21
Figura 3-6 Diagrama de blocos da arquitetura Harvard no Atmega2560(16). ........... 22
Figura 3-7 Esquema das portas do microcontrolador (16). ....................................... 23
Figura 3-8 Processo de funcionamento do Arduino. ................................................. 24
Figura 4-1 Diagrama de blocos de controle do motor sem escovas cc. .................... 25
Figura 4-2 Malha de controle do sistema. ................................................................. 26
Figura 4-3 Malha de controle com o microcontrolador. ............................................. 27
Figura 4-4 Diagrama do lugar das raízes do sistema de controle de corrente. ......... 30
Figura 4-5 Fluxograma do programa principal........................................................... 31
Figura 5-1 Esquema de montagem do sensor de Posição. ....................................... 33
Figura 5-2 Gráfico de relação de tensão x ângulo de rotação (20). .......................... 33
Figura 5-3 Montagem do sensor de posição. ............................................................ 34
Figura 5-4 Diagrama interno do sensor de corrente por efeito Hall SC-50(19). ........ 35
Figura 5-5 Sensor de corrente por efeito hall SC-50. ................................................ 35
Figura 5-6 Sensor óptico TCRT5000 (21). ................................................................ 36
Figura 5-7 Diagrama de montagem do sistema de velocidade. ................................ 36
Figura 5-8 Montagem do sensor óptico ..................................................................... 37
Figura 5-9 Esquema do circuito de potência. ............................................................ 38
Figura 5-10 Esquema de conexão da interface de disparo IR2110 (23). .................. 38
vii

Figura 5-11 Interface de disparo do circuito de potência. .......................................... 39


Figura 5-12 MOSFET IRF3205(24) ........................................................................... 40
Figura 5-13 Chaves MOSFET IRF3205 .................................................................... 40
Figura 6-1 Tensão de saída do sensor em malha aberta, para o caso 1. ................. 42
Figura 6-2 Tensão de saída do sensor em malha aberta, para o caso 2. ................. 43
Figura 6-3 Tensão de saída do sensor em malha fechada, para o caso 3. ............... 44
Figura 6-4 Tensão de saída do sensor de corrente em malha aberta, para o caso 1.
.................................................................................................................................. 45
Figura 6-5 Tensão de saída do sensor de corrente em malha aberta, para o caso 2.
.................................................................................................................................. 45
Figura 6-6 Tensão de saída do sensor de corrente em malha fechada, caso 3. ....... 46
Figura 6-7 Tensão de saída do sensor de velocidade (em vermelho), em relação ao
sensor de posição (em azul) (480RPM). ................................................................... 47
Figura 6-8 Tensão de saída do sensor de velocidade (em vermelho), em relação ao
sensor de posição (em azul) (706RPM). ................................................................... 47
Figura 6-9 Tensão de saída da fase a (Escala 500mV/Div) ...................................... 48
Figura 6-10 Tensão de saída da fase b (Escala 500mV/Div) .................................... 48
Figura 6-11 Tensão de saída da fase c (Escala 500mV/Div) .................................... 48
Figura 6-12 Tensão de saída da fase a (Escala 1V/Div) ........................................... 50
Figura 6-13 Tensão de saída da fase b (Escala 1V/Div) ........................................... 50
Figura 6-14 Tensão de saída da Fase c (Escala 1V/Div) .......................................... 50
Figura 6-15 Tensões de saída da fase a (Escala 1V/Div) ......................................... 51
Figura 6-16 Tensões de saída da fase b (Escala 1V/Div) ......................................... 51
Figura 6-17 Tensões de saída da fase c (Escala 1V/Div) ......................................... 51
Figura 6-18 Aumento da velocidade no sistema (160 RPM/Div) ............................... 52
Figura 6-19 Redução da velocidade no sistema (160 RPM/Div). .............................. 52
Figura 6-20 Análise da interrupção do movimento do rotor (160 RPM/Div). ............. 53
Figura 6-21 Corrente e velocidade com e sem carga. ............................................... 54

Tabela 3-1 Características do Arduino Mega2560 (12) ............................................. 16


viii

LISTA DE ABREVIATURAS E SIGLAS

BLDC Brushless DC Motor


CA Corrente Alternada
CC Corrente Contínua
CISC Complex Instructions Set Computer
CPU Central Processing Unit
ESC Electronic Speed Controller
EEPROM Electrically Erasable Programmable Read Only Memory
FEM Força Eletromotriz
FDTI Future Technology Devices International
IDE Integrated Development Environment
IGBT Insulated-gate Bipolar Transistor
MOSFET Metal Oxide Semiconductor Field Effect Transistor
PWM Pulse Width Modulation
RISC Reduced Instruction Set Computer
ROM Read Only Memory
RPM Rotações por minuto
SRAM Static Random Access Memory
USB Universal Serial Bus
Universal Synchronous and Asynchronous serial Receiver and
USART
Transmitter
ix

SUMÁRIO

DEDICATÓRIA ......................................................................................................... i

AGRADECIMENTOS ............................................................................................... ii

EPÍGRAFE .............................................................................................................. iii

RESUMO................................................................................................................. iv

ABSTRACT .............................................................................................................. v

LISTA DE ILUSTRAÇÔES ..................................................................................... vi

LISTA DE ABREVIATURAS E SIGLAS ............................................................... viii

1. INTRODUÇÃO ..................................................................................................... 1

1.1. Considerações gerais ....................................................................................... 1

1.2. Motivação .......................................................................................................... 2

1.3. Objetivo ............................................................................................................. 2

1.4. Estrutura do trabalho ....................................................................................... 2

2. O MOTOR CC SEM ESCOVAS (BLDC) ............................................................. 4

2.1. Introdução ......................................................................................................... 4

2.2. Classificação dos motores sem escovas ....................................................... 6

2.3. Circuito de acionamento .................................................................................. 7


2.3.1. Condução por 120° ......................................................................................... 8
2.3.2. Condução por 180° ......................................................................................... 9

2.4. Modelo matemático do circuito equivalente das máquinas BLDC ............. 10

2.5. Determinação da indutância equivalente do motor BLDC .......................... 11


x

3. PLATAFORMA DE DESENVOLVIMENTO ARDUINO...................................... 14

3.1. Introdução ....................................................................................................... 14

3.2. Arduino MEGA2560 ........................................................................................ 15


3.2.1. Alimentação do Arduino Mega2560 .............................................................. 16
3.2.2. Memória interna ............................................................................................ 17
3.2.3. Portas de entrada e saída do Arduino Mega2560 ........................................ 17

3.3. Microcontrolador Atmega2560 ...................................................................... 18


3.3.1. Componentes do microcontrolador ............................................................... 19
3.3.2. Portas do microcontrolador ........................................................................... 22
3.3.3. Conversor analógico digital .......................................................................... 23
3.3.4. Temporizadores e interruptores .................................................................... 23

3.4. Implementação do sistema de controle com o Arduino ........................ 24

4. CONTROLE DE VELOCIDADE ......................................................................... 25

4.1. Introdução ....................................................................................................... 25

4.2. Sistema de controle ........................................................................................ 26


4.2.1. Controle em malha fechada .......................................................................... 26
4.2.2. Controle digital .............................................................................................. 27

4.3. Sistema de controle ........................................................................................ 30

5. BANCADA EXPERIMENTAL ............................................................................ 32

5.1. Introdução ....................................................................................................... 32

5.2. Sensor de posição .......................................................................................... 32

5.3. Sensor de corrente ......................................................................................... 34

5.4. Sensor óptico .................................................................................................. 35

5.5. Circuito de potência ....................................................................................... 37

5.6. Descrição da interface de disparo (IR2110) .................................................. 38

5.7. Chaves semicondutoras ................................................................................ 39


xi

6. RESULTADOS EXPERIMENTAIS .................................................................... 41

6.1. Introdução ....................................................................................................... 41

6.2. Metodologia dos testes .................................................................................. 41

6.3. Tensão de saída do sensor de posição ........................................................ 42

6.4. Tensão de saída do sensor de corrente ....................................................... 44

6.5. Tensão de saída do sensor de velocidade ................................................... 46

6.6. Tensão de saída das fases ............................................................................. 47

6.6.1. Com sistema de controle de velocidade em malha aberta, caso 1 ............... 47

6.6.2. Com sistema de controle de velocidade em malha aberta, caso 2 ............... 49

6.6.3. Com sistema de controle em malha de fechada, caso 3 .............................. 49

6.7. Mudança da referência de velocidade .......................................................... 51

6.8. Mudança da carga........................................................................................... 53

7. CONSIDERAÇÕES FINAIS E CONCLUSÕES ................................................. 55

7.1. Considerações finais ...................................................................................... 55

7.2. Conclusões...................................................................................................... 56

7.3. Trabalhos futuros ........................................................................................... 57

8. OBRAS CITADAS ............................................................................................. 58

APÊNDICE A ............................................................................................................ 61

Código – Malha de controle com sensor de posição ........................................... 61

APÊNDICE B ............................................................................................................ 68

Esquemático ............................................................................................................ 68
1. INTRODUÇÃO

1.1. Considerações gerais

Os motores síncronos de ímãs permanentes, também conhecidos como


motor cc sem escovas (BLDC), são máquinas que tem uma infinidade de aplicações,
como motor em aeromodelos, em carros, em barcos, em brinquedos, etc. Devido ao
desenvolvimento da eletrônica de potência, foi possível o desenvolvimento de
controladores de velocidade para este tipo de máquina cc, cada vez melhores e com
maior capacidade de potência. Estes possuem capacidade de variação de tensão,
corrente e frequência, possibilitando um desempenho parecido ao de uma máquina
corrente alternada (CA) (1)(2).
Essas máquinas, por possuírem ímãs, não possuem enrolamento de campo,
e, como consequência, a sua construção é simples. Como não possuem escovas,
sua manutenção é mais simples do que a de máquinas convencionais (1). Neste
caso a sua alimentação acontece unicamente pela armadura, utilizando um inversor.
Entre as várias técnicas de controle de um BLDC, se destaca aquela que se
baseia na orientação da posição do rotor, que é realizada através de sensores de
posição, localizados no estator. O sistema de controle, em malha fechada, processa
esta informação através de um controlador e envia sinais de comando para as chave
semicondutoras do inversor. Este último, é constituído por três braços com duas
chaves semicondutoras conectadas em série. Também, pode ser inserido no
sistema um sensor de corrente, para garantir que não se ultrapasse a corrente
máxima de referência (3).
2

No caso deste projeto, utilizou-se como controlador a placa de


desenvolvimento Arduino, que é uma plataforma eletrônica simples de usar, com
linguagem própria, baseada em C/C++(4). Com a sua utilização é possível medir a
posição do rotor, a corrente e velocidade do eixo do motor.e ainda implementar os
controladores necessários.

1.2. Motivação

A principal motivação para realização deste projeto foi a implementação de


um Controlador de Velocidade (Eletronic Speed Controller - ESC) para um motor
BLDC que pudesse acionar um motor de barco, aeromodelos, carros, etc. Um fator
importante está relacionado à aquisição de conhecimento, à experiência no
desenvolvimento de hardware e software de um sistema de controle.

1.3. Objetivo

Este trabalho tem como objetivo projetar e implementar um sistema de


controle para um motor BLDC utilizando a plataforma de desenvolvimento Arduino.
Este projeto consiste na aquisição de sinais transmitidos por sensores de posição
angular, de corrente e de velocidade, de tal modo que, com essas informações, o
Arduino gere um padrão de disparo de um inversor trifásico, conforme a
necessidade da carga acoplada ao eixo de motor.

1.4. Estrutura do trabalho

Este trabalho possui a seguinte estrutura:


O capítulo 2 refere-se a motores, priorizando o motor BLDC, abordando
aspectos construtivos e alguns métodos de controle utilizados.
No capítulo 3 é apresentado o microcontrolador utilizando a plataforma
Arduino, que é a base do sistema de controle do motor BLDC.
3

No capítulo 4 é mostrado o controle de velocidade, detalhando as etapas e o


fluxograma do algoritmo de sistema de controle.
No capítulo 5 é mostrada a bancada experimental para verificar o
desempenho do sistema de controle.
No capítulo 6 é apresentado os resultados experimentais obtidos nos
ensaios.
Finalmente, no capítulo 7, são apresentadas as conclusões, considerações
finais e sugestões para trabalhos futuros.
2. O MOTOR CC SEM ESCOVAS (BLDC)

2.1. Introdução

Este capítulo apresenta as características e alguns conceitos de controle do


motor de corrente contínua sem escovas (BLDC). Como todo motor, trata-se de uma
máquina que transforma energia elétrica em energia mecânica. Neste caso, a
corrente elétrica alternada que circula nos enrolamentos do estator induz um fluxo
magnético que gira numa velocidade síncrona, o conjugado eletromecânico é gerado
a partir da tendência de alinhamento dos pólos magnéticos dos ímãs permanentes
no seu rotor com fluxo girante.
De acordo com Hanselman (5), os motores elétricos são divididos em:
· Motores de Corrente Contínua
· Motores de Corrente Alternada
o Assíncronos ou de indução
o Síncronos
Devido a sua natureza construtiva, o motor BLDC pode ser classificado
como um motor síncrono, tendo em vista que são semelhantes aos motores
síncronos convencionais, com a simples diferença de, ao invés de usarem
enrolamentos de campo, possuem ímãs permanentes no rotor. Assim, pode se dizer
que este tipo de motor possui um campo magnético constante no rotor, contanto que
os ímãs não percam suas propriedades magnéticas. Na figura 2-1, mostra-se uma
fotografia de um motor BLDC cujo rotor, diferentemente do convencional, fica
externo ao estator.
5

Figura 2-1 Motor cc sem escovas usado em aeromodelismo (6).

O acionamento do motor BLDC é feito através da comutação das chaves


semicondutoras do inversor em que se regulam a frequência ou o valor eficaz da
tensão de saída, que alimenta o motor. Essas chaves devem possuir a capacidade
de interrupção de corrente em altas frequências, em um curto período de tempo (3).
Comparando com outros motores, os motores BLDC possuem a maior
relação de densidade de potência e de conjugado por inércia ou por volume,
tornando-se uma ótima opção para aplicações de servomecanismos (7).
Tecnicamente, aumentar o número de pólos magnéticos aumentaria o conjugado
para o mesmo nível de corrente, entretanto, existe um limite devido ao espaçamento
entre os ímãs (5).
6

2.2. Classificação dos motores sem escovas

A classificação do motor sem escovas se baseia na forma de onda da sua


força eletromotriz, ou seja, pela distribuição do fluxo magnético no entreferro. Esses
motores são classificados como: motor CA ou motor CC.
Os motores sem escovas de corrente alternada são alimentados com
corrente alternada e sua fem gerada no enrolamento de cada fase é uma função
senoidal do ângulo do rotor no tempo, como ilustrado na figura 2-2. O principio de
funcionamento é o mesmo das máquinas síncronas convencionais, e para o controle
da velocidade do rotor não há a necessidade de utilizar técnicas especiais de
posição quando se tem tensão e frequência constantes (8).

Figura 2-2 Forma da fem para motor sem escovas ca (8).

Já para o motor sem escovas cc, a força eletromotriz induzida tem a forma
de onda praticamente quadrada, como ilustrada na figura 2-3. Na realidade, trata-se
de um motor CA, acionado por um inversor de tensão (CC-CA), e um controlador
eletrônico, para realizar a comutação das chaves semicondutoras.
A comutação deve acontecer em sincronismo com a posição do rotor e, por
isso, é necessário um sensor de posição. Esta comutação é denominada de
comutação eletrônica, ou sincronização auto-controlada (8). Existem outros métodos
de controle da comutação do inversor, mas não são abordados neste trabalho.
7

Figura 2-3 Forma da fem para motor sem escovas cc (8).

2.3. Circuito de acionamento

Como mencionado, é necessária a utilização de um inversor (5). Estes


podem variar a tensão eficaz alternando a amplitude da tensão de entrada através
da técnica de modulação por largura de pulsos (pulse width modulation PWM).
Para o acionamento, o inversor trifásico é composto por três braços de duas
chaves semicondutoras em série, conectados em paralelo. Essas chaves podem ser
transistores bipolares, MOSFETs, IGBTs, etc.. Além disso, cada chave conta com
um diodo em antiparalelo (ou diodo de roda livre), como mostrado na figura 2-4. A
seguir, serão descritas duas formas simples de disparo das chaves semicondutoras.
Primeiramente, a condução por 120° e, depois, a condução por 180° elétricos (3).
O sistema de controle envia sinais de comando de condução, que devem
estar sincronizados com a posição do rotor. Para fornecer tensões fundamentais
trifásicas equilibradas, os sinais de comando de cada par de chaves devem estar
atrasados ou em adiantados de 120° em relação aos outros pares.
8

VS

Figura 2-4 Circuito de acionamento do motor sem escovas.

2.3.1. Condução por 120°

Neste tipo de estratégia, cada chave conduz por 120° elétricos e, para cada
60° elétricos, somente duas chaves do inversor estarão conduzindo. Contudo, as
chaves da mesma fase não podem conduzir ao mesmo tempo, evitando um curto-
circuito (3). Na figura 2-5 mostra-se o padrão de disparos, agindo entre o gate e o
dreno de cada uma das seis chaves do inversor mostrado na figura 2-4 (g1, g2, g3,
g4, g5, g6) e, também, as tensões fase-neutro de uma carga trifásica conectada em
estrela (Van, Vbn, Vcn).
9

Figura 2-5 Sinais de controle para condução por 120° (3).

2.3.2. Condução por 180°

Neste caso, cada chave conduzirá por 180° elétricos e, para cada 60°
elétricos, três chaves sempre se encontram no estado de condução. Para ambos os
métodos, em geral é necessário criar um tempo morto entre o disparos das chaves
da mesma fase, para não criar um curto-circuito (3). Na figura 2-6 mostram-se os
sinais associados a esta estratégia e as tensões de linha na carga (V ab, Vbc, Vca).
Neste projeto, foi adotada a estratégia de condução por 180°.

Figura 2-6 Sinais de controle para condução por 180°(3).


10

2.4. Modelo matemático do circuito equivalente das máquinas BLDC

O modelo do circuito do Motor BLDC pode ser representado como na figura


2-7, em que se assume uma conexão em estrela. Nessa figura, se mostram as
resistências e indutâncias equivalentes por fase, em série com uma tensão induzida,
proporcional à velocidade do rotor.

eind eind

eind

Figura 2-7 Representação do circuito do motor BLDC.

De acordo com (8) e (9), pela lei de Kirchhoff, a tensão nos terminais das
fases va, vb, vc seguem a equação:
éva ù é Rs 0 0 ù éia ù é Laa Lab Lac ù éia ù éea ù
êv ú = ê 0 Rs ú ê ú d ê
0 ú êib ú + ê Lca Lbb Lbc úú êêib úú + êê eb úú
ê bú ê dt
êë vc úû êë 0 0 Rs úû êë ic úû êë Lca Lcb Lcc úû êë ic úû êë ec úû
(2.1).
Considerando as seguintes simplificações:
Laa = Lbb = Lcc = L
Lab = Lba = Lac = Lca = Lbc = Lcb = M
ia + ib + ic = 0
tem-se:
11

éva ù é1 0 0ù éia ù éL - M 0 0 ù éia ù éea ù


ê v ú = R ê0 1 0 ú êi ú + d ê 0 L-M 0 ú êi ú + ê e ú
ê bú S ê ú ê b ú dt ê úê bú ê bú
êë vc úû êë0 0 1 úû êë ic úû êë 0 0 L - M úû êëic úû êë ec úû
(2.2).
Onde:
ea , eb , ec = o valor da tensão induzida na fase do enrolamento do motor BLDC;

ia , ib , ic = valor da corrente instantânea;

Rs = resistência da armadura por fase;

L = indutância própria;

Laa
= indutância própria na fase a;
Lab , Lba = indutância mútua entre as fases ab;

Lac , Lca
= Indutância mútua entre as fases ac;
Lbb = indutância própria na fase b;

Lbc , Lcb indutância mútua entre as fases bc;


=
Lcc = indutância própria na fase c.

Considerando que no motor, a conversão de energia elétrica para mecânica


é ideal, a potência entregue à fonte de tensão induzida é igual à potência mecânica
no eixo do motor. Assim, o conjugado eletromecânico resultante( Te) causado pelas
três fases pode ser expresso como:
1
Te = [e i + e i + e i ] (2.3),
w aa bb cc
onde ߱ é a velocidade angular do eixo.

2.5. Determinação da indutância equivalente do motor BLDC

Da equação 2.2, a partir da primeira linha, obtém-se:


dia
va = Ria + ( L - M ) + eind (2.4).
dt
Para encontrar um modelo que permita escolher a lei de controle, se realizou
o seguinte experimento: o rotor foi travado, e, consequentemente, a tensão induzida
12

se anulou. Logo, aplicando a transformada de Laplace, a função de transferência


entre a corrente de fase e a tensão terminal, resulta sendo de primeira ordem, cujo
R
pólo é igual a - .
(L - M )

Assim, resolvendo a equação diferencial ordinária, a corrente por fase é


dada por:
-R
V t
i(t ) = (1 - e ( L - M ) ) (2.5),
R
onde V é a tensão constante aplicada na fase.
Com o rotor travado, aplicou-se uma tensão de valor pequeno entre duas de
suas fases, e foi mensurado o tempo transcorrido até que a corrente atingisse o
(L - M )
regime permanente. A constante de tempo t = foi estimada usando o critério
R
de que a chegada ao regime permanente acontece após quatro constantes de
tempo, com um erro de aproximadamente 2%.
Devido à limitação em corrente da fonte de tensão, a resposta observada na
figura 2-8 apresenta uma forma de rampa ao invés de exponencial. Contudo, foi
mantido o critério de estimação.
Nessa figura, nota-se que o tempo de acomodação da corrente foi de 5ms.

Figura 2-8 Resposta transitória de corrente (Escala 1,5A/V).

Logo, o valor de t é de 1,25 ms. Então, é possível calcular a indutância


( L - M ) através dos seguintes cálculos:
13

2( L - M )
t=
2R
( L - M ) = t R. .

Como, de acordo com o manual do motor GT2826/04 (10), a resistência por


fase vale 24 mΩ, tem-se:
L - M = 1, 25 ´10-3 ´ 24 ´10-3

( L - M ) = 30m H .

Desta forma, o valor do pólo da função de transferência é de:


R
- = -800s -1.
(L - M )
3. PLATAFORMA DE DESENVOLVIMENTO ARDUINO

3.1. Introdução

O Arduino é uma plataforma de código aberto (open-source) em placa de


circuito impresso, ou seja, o software e o hardware estão disponíveis ao público,
podendo ser reproduzido, sem a necessidade de pagamentos de direitos autorais.
Esta plataforma foi desenvolvida com o objetivo de permitir que o usuário
desenvolva projetos com a possibilidade de controlar sistemas que interajam com o
ambiente externo, através de sensores, interruptores, motores, lâmpadas, relés, etc.
(4).
O hardware está baseado no microcontrolador da Atmel AVR, que contém a
programação inserida e executada no seu interior. A placa de desenvolvimento
também possui regulador de tensão, oscilador de cristal e porta de comunicação
serial que, através do chip da Future Technology Devices International (FDTI), é
usado para a comunicação via USB (11).
Existem diversos tipos de modelos de Arduino, os quais se diferenciam pela
capacidade de comunicação e pelo número de portas analógicas e digitais. Alguns
modelos de Arduino são apresentados na figura 3-1.
15

Arduino Leonardo Arduino UNO Arduino Due

Arduino Mini Arduino Nano Arduino LilyPad

Arduino Pro Arduino Micro Arduino Robot

Figura 3-1 Tipos de Arduino (11).

A seguir, são apresentados alguns detalhes da plataforma Arduino Mega,


que é baseada no microcontrolador Atmega2560.

3.2. Arduino MEGA2560

De acordo com o sítio oficial do Arduino, o Arduino Mega2560 é uma placa


que possui 54 pinos, que correspondem às entradas ou saídas digitais, além disto,
contém 16 entradas analógicas, 4 UARTs (portas seriais), um cristal oscilador de
16MHz, uma conexão USB, um conector de alimentação, um cabeçalho ICSP e um
botão de reset. Esse tipo de Arduino foi escolhido para este projeto por possuir um
16

maior número de portas digitais. Outros modelos muito utilizados, como o UNO, não
apresentam a quantidade suficiente de portas e de recursos necessários para o
desenvolvimento do projeto. Sendo assim, foi descartada a utilização de outros
modelos. Na figura 3-2, se mostra uma fotografia do Arduino Mega2560.

Figura 3-2 Arduino Mega2560 (12).

Tabela 3-1 Características do Arduino Mega2560 (12)


Microcontrolador ATmega2560
Tensão de funcionamento 5V
Tensão de entrada (recomendada) 7-12V
Tensão de entrada (limites) 6-20V
Portas digitais de entrada /saída 54
Entradas analógicas 16
Corrente cc por pino de entrada / saída 40 mA
Corrente cc para pino 3.3V 50 mA
Memória Flash 128 KB
SRAM 8 KB
EEPROM 4 KB
Frequência do relógio 16 MHz

3.2.1. Alimentação do Arduino Mega2560

Esta pode ser feita com tensões de 6 a 20V. Caso a alimentação seja
menor, as saídas do Arduino de 3,3 e 5 Volts são prejudicadas, fornecendo um valor
mais baixo. Para o caso de se ter uma alimentação acima de 12 Volts, a tensão
poderá gerar um sobreaquecimento no regulador de tensão.
17

3.2.2. Memória interna

O Arduino Mega2560 possui 128kBytes de memória flash, sendo utilizados


4kBytes para o programa de inicialização, 8kBytes de memória SRAM e 4kBytes de
EEPROM.

3.2.3. Portas de entrada e saída do Arduino Mega2560

Como já dito, o Arduino Mega2560 apresenta 54 pinos digitais, que podem


ser programados para se comportar como saídas ou entradas. A máxima corrente
que essas portas suportam é de 40mA, e possuem um resistor interno de 20 a 50
kΩ, denominado de pull-up, que assegura que os níveis lógicos ¨1” sejam iguais a
5V. É necessário habilitá-lo na programação.
Alguns pinos do Arduino possuem outras funções especificas, apresentadas
a seguir:
· Serial: 0 (RX) e 1 (TX); Serial 1:19 (RX) e 18 (TX); Serial 2: 17 (RX) e
16 (TX); serial 3:15 (RX) e 14 (TX). Esses pinos são responsáveis por
enviarem e receberem dados em modo serial.
· Para interrupção externa, cinco pinos podem realizar esta função.
Estes são: 18, 19, 20 e 21. Esses pinos podem ser programados para
ser ativados pela mudança no nível lógico. Na ocorrência de uma
variação do sinal, a rotina em execução é interrompida e outra é
executada. Ao final da execução desta rotina, o microcontrolador volta
a executar a rotina interrompida.
· Possui 15 saídas PWM (portas 2 a 13 e 44 a 46), sendo acionadas
através de funções de PWM de biblioteca externas ou pela utilização
da função padrão da IDE do Arduino, função analogWrite().
· SPI: 50 (MISO), 51 (MOSI), 52(SCK) e 53(SS), pinos que podem ser
programados a partir da biblioteca SPI.
· I2C: 20 (SDA) e 21 (SCL) utilizam a comunicação I2C (TWI), através
da biblioteca Wire.
18

· 16 entradas analógicas que são convertidas em palavras de 10 bits de


resolução, ou seja, o conversor recebe uma tensão, e a converte numa
palavra menor ou igual a 1023.
· AREF, alternativa à referência de tensão para as entradas analógicas.
· Botão reset para interromper ou reiniciar uma execução.

Na memória do microcontrolador do Arduino Mega2560 existe um conjunto


de instruções pré-gravado, que dispensa a utilização de um programador externo.
Isso é feito através do protocolo original STK500 do microcontrolador da Atmel, que
realiza a comunicação do Arduino com o computador.

3.3. Microcontrolador Atmega2560

Os microcontroladores da família AVR, fabricados pela Atmel, possuem uma


arquitetura desenvolvida por dois estudantes de doutorado noruegueses e depois
postos para comercialização (14).
Os microcontroladores da Atmel apresentam em sua estrutura a arquitetura
RISC (Reduced Instruction Set Computer), que tem uma frequência de relógio mais
rápida, e requer menos instruções do que os microcontroladores de arquitetura CISC
(Complex Instructions Set Computer), aumentando o desempenho do
microcontrolador (15).
As principais características dos microcontroladores AVR são (15):
· As instruções são executadas em um simples ciclo de relógio e, quando
é alimentado com tensões entre 1,8 e 5,5V, pode operar com frequências
de até 16MHz;
· Alta integração e grande número de periféricos, sendo compatível com
toda a família AVR;
· Possuem 32 registradores de propósito geral, memória de acesso auxiliar
load-store e a maioria das instruções é de 16 bits;
· Memória de programação FLASH, SRAM e EEPROM;
19

· Facilmente programáveis e com depuração interna (in-system) via


interface simples, ou com interfaces JTAG, compatível com 6 ou 10
pinos;
· Apresenta baixíssimo consumo de energia.

3.3.1. Componentes do microcontrolador

De acordo com a folha de dados do microcontrolador da Atmel, os principais


componentes são:
· Processador, ou CPU (Central Processing Unit, ou Unidade Central de
Processamento);
· Memórias (SRAM, EEPROM, FLASH);
· Portas de Entrada/Saída digitais (I/O) e Portas de Comunicação;
· Diversos módulos para o controle de periféricos (Temporizadores,
Portas Seriais e Paralelas, Conversores Analógico/Digital, etc.).
A figura 3.3 ilustra os blocos de funcionamento do microcontrolador Arduino
Mega2560, exibindo as portas digitais e analógicas, e como os blocos interagem
entre si.
20

Figura 3-3 Diagrama de blocos do microcontrolador Atmel2560(16).

Os microcontroladores possuem duas arquiteturas de memória de dados:


Von-Neumann e Harvard (17), as quais são descritas a seguir:
· A arquitetura Von-Neumann, mostrada na figura 3-4, possui as seguintes
características:
Ø Apresenta apenas um barramento interno, por onde circulam
instruções e dados;
Ø Permite produzir um conjunto complexo de código de instruções
para o processador;
Ø Tempo de execução das instruções compreendem vários ciclos de
relógio;
Ø Mais simples, em comparação com a arquitetura Harvard;
Ø Menor número de portas;
Ø Velocidade menor, em comparação com a arquitetura Harvard.
21

Figura 3-4 Diagrama de blocos da arquitetura Von-Neumann.

· A arquitetura Harvard ou Arquitetura Paralela, mostrada na figura 3-5, possui


as seguintes características:
Ø Apresenta dois barramentos internos, um destinado às instruções e
outro destinado aos dados;
Ø Conjunto simples de códigos e instruções;
Ø Capaz de executar uma instrução por ciclo;
Ø Necessita de mais linhas de código para executar a mesma tarefa
executada pela arquitetura Von-Neumann.

Figura 3-5 Diagrama de blocos da arquitetura Harvard.

No caso do Atmega2560, a arquitetura de memória utilizada é a Harvard,


com uma estrutura RISC avançada. A figura 3-6 ilustra o diagrama de blocos da
Arquitetura Harvard no Atmega2560 (16).
22

Figura 3-6 Diagrama de blocos da arquitetura Harvard no Atmega2560(16).

3.3.2. Portas do microcontrolador

O acesso às portas do microcontrolador pode ser feito programando-o em


assembly ou utilizando a linguagem de alto nível da interface de programação do
Arduino. Neste ultimo caso, a velocidade de acesso é baixa. A linguagem de
programação é equivalente ao C, mas com certas particularidades.
Assim, o controle das portas é feito através de três registradores que
designam a porta como entrada ou saída, ligada ou desligada.
O primeiro registrador, DDRx, deve selecionar a direção de cada um dos bits
da porta. Para configurá-los como saídas se utiliza o “1” lógico, e para configurá-los
como entradas utiliza-se o “0” lógico. Exemplo: DDRB |= 0b00110011 especifica que
os bits 0, 1, 4 e 5 são saídas e os bits 2, 3, 6 e 7 são entradas.
O segundo registrador, PORTx, impõe o estado dos pinos configurados
como saídas . Quando utilizado numa instrução de leitura, recebe os estados lógicos
dos pinos configurados como entradas.
O terceiro registrador, PINx, é usado para a leitura de um único pino.
23

Barramento de Dados
Resistor
de
“pull-up”

Figura 3-7 Esquema das portas do microcontrolador (16).

3.3.3. Conversor analógico digital

Em muitos sistemas de controle, o conversor analógico-digital permite a


aquisição de grandezas físicas tais como tensão, corrente, posição, etc.. Neste
microcontrolador, existe uma entrada analógica-digital que permite a conversão de
um sinal de entrada analógico, de até 5V, e o converte em um sinal digital de 10 bits.
O conversor é do tipo de aproximações sucessivas e o seu tempo de aquisição é de
13 a 260µs. Na prática, este microcontrolador admite 16 entradas analógicas
multiplexadas.

3.3.4. Temporizadores e interruptores

Em geral, cada microcontrolador possui temporizadores que podem ser


incrementados periodicamente. No caso do Atmel mega2560 existem 2 contadores
de 8 bits e 4 contadores de 16 bits. Estes são responsáveis pela geração de sinais
de frequência variável, sinais de PWM, etc..
Outro recurso do microcontrolador para melhorar o desempenho de um
programa é a interrupção, que consiste na suspensão da sequência de instruções do
programa principal, para executar uma sub-rotina dedicada àquela interrupção, e,
24

depois de finalizada, o microcontrolador retorna as instruções do programa principal.


A interrupção pode ocorrer quando um evento externo se ativar (interrupção externa
ou Hardware) ou quando um temporizador chega a um determinado valor
(interrupção interna ou software). Cada microcontrolador possui bits que controlam o
funcionamento das instruções.

3.4. Implementação do sistema de controle com o Arduino

Figura 3-8 Processo de funcionamento do Arduino.

Neste capítulo, mostram-se vários pontos do funcionamento do Arduino que


são importantes para a execução deste projeto de controle. Estes são:
· Aquisição de dados dos sensores, utilizando as entradas analógicas de
forma periódica, determinada pela interrupção interna;
· Geração de sinais de comando do tipo PWM, utilizando as funções dos
temporizadores;
· Geração de sinais sincronizados com a posição do eixo do motor,
utilizando 6 bits de uma porta do microcontrolador.
4. CONTROLE DE VELOCIDADE

4.1. Introdução

Neste capítulo, será apresentada a técnica de controle de velocidade do


motor BLDC utilizado no projeto. Para isto, foram utilizados alguns sensores, como
um óptico, para detectar a posição do rotor e sincronizar o disparo das chaves
semicondutoras. Para alcançar um melhor desempenho, foi utilizado um sensor de
corrente de efeito Hall, para monitorar a corrente fornecida pelo inversor ao motor
(8).
Embora existam outros métodos de controle de velocidade, com ou sem
sensores, neste trabalho, optou-se pela utilização de um sensor de posição, como
ilustrado na figura 4-1.

Figura 4-1 Diagrama de blocos de controle do motor sem escovas cc.


26

4.2. Sistema de controle

4.2.1. Controle em malha fechada

Um sistema de controle com realimentação possui várias vantagens, como


por exemplo, possibilidade de ajuste da resposta transitória, redução da
sensibilidade à variação de parâmetros do sistema e do efeito de perturbações (17).
Neste trabalho, o sistema de controle de velocidade possui duas malhas,
uma externa, de velocidade, e uma interna, de controle de corrente, como ilustrado
na figura 4-2.
Para o controle de velocidade, é necessária a aquisição periódica das
tensões fornecidas pelo sensor de posição, e com esses dados, para cada posição
do rotor, o controlador irá gerar um padrão novo de disparo para as chaves
semicondutoras. Ademais, a informação do sensor é processada pelo Arduino para
estimativa da velocidade angular do rotor.

Figura 4-2 Malha de controle do sistema.

Quando o motor é submetido a um aumento na carga, há uma tendência à


redução de velocidade, o controlador processa essa alteração e aumenta a corrente
de referência, o que deriva num aumento da tensão de armadura da máquina. Como
consequência, o torque aumenta, tentando restabelecer a condição inicial do
sistema.
27

4.2.2. Controle digital

Uma vez que o controlador é implementado através do Arduino, o sistema é


discreto, não contínuo. Assim, o algoritmo de controle foi deduzido a partir da teoria
de controle digital (19).
Um sistema de controle, em geral, dispõe de um Amostrador e um
Conversor Analógico/Digital para traduzir a informação contínua de sensores em
palavras digitais.
A seguir, cada um dos componentes que compõem o Arduino para efetuar
um sistema de controle digital, serão descritos:
· Conversor Analógico/Digital, que admite sinais analógicos de até 5V, de
aproximações sucessivas e tempo de conversão de 13 a 260µs.
· Algoritmo de controle, responsável pela interpretação, processamentos
dos dados de entrada e geração dos sinais de saída para o controle do
processo.
· A frequência de interrupção principal, responsável pela sincronização das
tarefas de controle.
Na figura 4-3, se mostra o diagrama de blocos do sistema de controle do
motor BLDC realizado com o microcontrolador Atmel do Arduino Mega2560.

Figura 4-3 Malha de controle com o microcontrolador.

Como se ilustra, o microcontrolador é responsável pela geração de sinais do


tipo PWM, que regulam a tensão média de alimentação do motor, pela conversão
28

dos dados analógicos em digitais, e pela geração do padrão de disparos do inversor.


As entradas do microcontrolador são: o sinal do sensor de posição angular , o sinal
do sensor de corrente e o sinal de um conversor frequência-tensão proporcional à
velocidade do rotor.
A conversão de um controlador projetado no domínio do tempo contínuo
para o domínio do tempo discreto pode ser feita utilizando o método de Tustin (19).
Neste método, a obtenção da função de transferência no domínio discreto utiliza
uma aproximação dada pela seguinte equivalência:
2 ( z - 1)
s= (4.1).
Ts ( z + 1)
Onde z é a variável discreta, análoga à variável “s” da transformada de
Laplace e Ts é o tempo de amostragem, que neste projeto foi igual a 500µs.

O controlador de corrente foi do tipo PI (proporcional-integral), definido


como:
kI k p s + kI
Gc ( s) = k p + = (4.2),
s s
Onde Kp e KI são os ganhos proporcional e integral respectivamente.
Substituindo a equação (4.1) em (4.2), esta se desenvolve:
2 ( z - 1)
kp + kI
Ts ( z + 1)
Gc ( Z ) =
2 ( z - 1)
Ts ( z + 1)

2k p ( z - 1) + k I Ts ( z + 1)
Gc ( Z ) =
2( z - 1)

(2k p + k I Ts ) z + (k I Ts - 2k p )
Gc ( Z ) =
2( z - 1)

é ( k T - 2k p ) ù
(2k p + kI Ts ) ê z + I s ú
êë (2k p + k I T s ) úû
Gc ( z ) = (4.3)
2( z - 1)
Dividindo o denominador e numerador por z, chega-se à seguinte função de
transferência.
29

(2k p + k I Ts )[1 +
( k T - 2k ) z
I s p -1
]
u( z)
=
( 2k + k T )
p I s
(4.4)
e( z ) 2(1 - z -1 )
Definindo
kI TS - 2k p
a= , (4.5)
2k p + k I TS
e
b = 2k p + kI TS , (4.6)

obtém-se a expressão
u ( z ) b [1 + a z -1 ]
= (4.7)
e( z ) 2(1 - z -1 )
Logo,
u( z ) = u( z) z -1 + {b [e( z) + a e( z) z -1 ]} / 2

mas u( z ) z -1 = Z {u(k - 1)} e e( z ) z -1 = Z {e(k - 1)} são as transformadas discretas (Z)

de u(k - 1) e e(k - 1) respectivamente.


Então, no domínio do tempo discreto, tem-se:
b
u (k ) = u (k - 1) + [e(k ) + a e(k - 1)] (4.8).
2 .
A equação 4.8 é implementada no microcontrolador, de acordo com o
algoritmo mostrado no item 4.3.
Em relação à escolha dos parâmetros do controlador PI, estes foram
escolhidos para impor um pólo à esquerda do pólo do motor (-800 s-1). Este zero é
igual a - KI/Kp= - 6000. Com o auxílio dos comandos “rlocus” (MatLab) ou “evans”
(Scilab), foi traçado o lugar das raízes do sistema de controle de corrente, mostrado
na figura 4-4, e determinados os valores de Kp e KI como 0,1 e 600
respectivamente.
Em relação ao controlador de velocidade, se pode demonstrar que um
simples ganho proporcional poderia ser utilizado, mas a resposta do sistema seria
lenta, como conferido experimentalmente.
Analiticamente, e confirmado por simulações, se mostra mais adequada a
utilização de um controlador PD (proporcional derivativo), com essa escolha os
30

ganhos proporcional e derivativo utilizados foram Kp= 0.005 e KD=0.001


respectivamente.

Figura 4-4 Diagrama do lugar das raízes do sistema de controle de corrente.

4.3. Sistema de controle

Para a implementação do algoritmo de controle, foram realizadas as


seguintes tarefas:
1. Definição do tempo de amostragem dos dados;
2. Comparação da velocidade do rotor com a velocidade desejada Vref;
3. Colher a informação sobre a posição do rotor e preparar o padrão de
sinal referente à próxima posição;
4. Cálculo da corrente de referência que altera o valor da largura do PWM,
de acordo a com o desejado;
5. O chaveamento do inversor;
6. Por fim, se Vref for nula, o controlador suspende os sinais de disparo do
inversor.
31

A figura 4.5 mostra o fluxograma do programa principal.

Inicio

Definição do tempo
de Amostragem (Ts)

NÃO
Vref>0

SIM

Sub-rotina de
Comparação dos Interrupção
dados de posição Calculo de velocidade
Calculo de Corrente

NÃO Sequencia de PWM


Posição correta?

Padrão de posição SIM


correto
Retorno

Chaveamento

NÃO
Wref=0?

SIM

FIM

Figura 4-5 Fluxograma do programa principal.


5. BANCADA EXPERIMENTAL

5.1. Introdução

Neste capítulo, são apresentados detalhes dos componentes e da


montagem do sistema de controle do motor BDLC. Como já mencionado, para
efetuar o controle de velocidade do motor, é necessário dispor das informações de
posição e de corrente a todo momento. Para isso, foram utilizados um sensor de
posição magnético e um sensor de corrente de efeito Hall. Também foi utilizado um
optoacoplador, para a estimação da velocidade de rotação. O Arduino foi conectado
a uma interface de disparo das chaves semicondutoras do inversor trifásico, que
consiste numa ponte trifásica.

5.2. Sensor de posição

O sensor de posição utilizado é de característica magnética. Trata-se do


AN920032, da Cherrycorp. O esquema de montagem do sensor é apresentado na
figura 5-1, e, na figura 5-2, são apresentadas as saídas de tensão do sensor em
função da posição angular. Neste projeto foi utilizada a saída B. A figura 5-3
apresenta a montagem do sensor de posição, onde se observa que este se encontra
fixo na parte superior e, acoplado ao eixo do motor um suporte de nylon que contém
um imã de neodímio (NdFeB) de seção retangular.
33

Eixo Motor Eixo

Arduino

Ímã Sensor

Figura 5-1 Esquema de montagem do sensor de Posição.

Figura 5-2 Gráfico de relação de tensão x ângulo de rotação (20).


34

Sensor de Posição

Imã

Suporte para o imã

Figura 5-3 Montagem do sensor de posição.

5.3. Sensor de corrente

O sensor de corrente utilizado é o SC-50, da MSA-Control. O princípio de


funcionamento do mesmo é baseado no efeito Hall, sendo que a sua saída é um
sinal de tensão proporcional à corrente passante pelo seu núcleo toroidal. Sua
escolha determinou-se por possuir características importantes para a implementação
do sistema digital, como a disponibilização de sinal de tensão em uma faixa de
valores de amplitude adequada ao Arduino, e o fato de o sensor também poder
medir sinais de corrente com componentes harmônicos na faixa dos kHz.
Como a maior corrente de medição deste sensor é de 50 A, foi necessário
enrolar 7 espiras no seu núcleo para aumentar sua sensibilidade. Contudo se
verificou que para a máxima corrente de alimentação do inversor, a saída de tensão
do sensor era 8 V, reduzida com um divisor de tensão antes de ser lida pelo Arduino.
A tensão usada para a alimentação do sensor é +12V/-12V. Apesar de o
fabricante prever alimentação de +9V/-9V, não houve dano ou ruído causado ao
sinal de saída, devido à capacidade do amplificador operacional interno TL081, que
é de +18V/-18V.
A figura 5-4 apresenta o diagrama interno do sensor SC-50 e, na figura 5-5,
se apresenta a montagem do sensor, incluindo um conector para as fontes de
alimentação e a saída do sensor Vout .
35

Figura 5-4 Diagrama interno do sensor de corrente por efeito Hall SC-50(19).

Figura 5-5 Sensor de corrente por efeito hall SC-50.

5.4. Sensor óptico

Este tipo de sensor é utilizado para gerar um sinal que acompanhe a rotação
do motor. Depois foi convertida a uma tensão proporcional através do circuito
LM2907.
O sensor funciona da seguinte maneira: quando há presença de luz o seu
fototransistor funciona como uma chave fechada. E, quando não há luz incidente,
esse fototransistor funciona como uma chave aberta. Na figura 5-6, mostram-se os
36

detalhes deste sensor, e, na figura 5-7, pode ser visualizado o diagrama de


montagem deste dispositivo. Note-se que no eixo do motor foi colocada uma faixa
refletora da luz gerada pelo led infravermelho do sensor. A figura 5-8 mostra a
montagem do sensor óptico.

Figura 5-6 Sensor óptico TCRT5000 (21).

Figura 5-7 Diagrama de montagem do sistema de velocidade.


37

Sensor Óptico

Figura 5-8 Montagem do sensor óptico

5.5. Circuito de potência

O circuito de potência do sistema é formado por duas interfaces de disparos


(drivers) e seis chaves semicondutoras, do tipo MOSFET, como ilustrado na figura 5-
9. A seguir, estes dispositivos são descritos.
38

Figura 5-9 Esquema do circuito de potência.

5.6. Descrição da interface de disparo (IR2110)

De acordo com a International Rectifier, fabricante do circuito IR2110, este


possui duas saídas, sendo que a saída 1 é utilizada para acionar chaves flutuantes,
e, a saída 2 é utilizada para acionar chaves com o mesmo potencial de referência do
circuito, como ilustrado na figura 5-10.

Figura 5-10 Esquema de conexão da interface de disparo IR2110 (23).


39

A escolha do IR2110 deve-se à facilidade de ser encontrado no mercado


nacional, ao seu baixo custo e as características de funcionamento.
Entre os terminais VB e VS, do IR2110, é necessária a presença de um
capacitor (bootstrap) C1 que funciona como fonte de tensão auxiliar. Pode ser vista
na figura 5.10 a ligação dos terminais, em que VS está conectado ao terminal source
do MOSFET superior. Note-se a presença do diodo D1, que transfere energia para o
capacitor C1. A figura 5-11 mostra a interface de disparo utilizado no projeto.

Figura 5-11 Interface de disparo do circuito de potência.

5.7. Chaves semicondutoras

Esses componentes são agrupados em pares para alimentar cada fase do


motor, formando um inversor. O IRF3205 foi escolhido por sua capacidade de
condução de corrente, pelo baixo custo e pela facilidade de ser encontrado no
mercado nacional. A figura 5-12 ilustra o modelo de MOSFET utilizado, e a figura 5-
13 mostra a montagem desses componentes no projeto.
40

Figura 5-12 MOSFET IRF3205(24)

Figura 5-13 Chaves MOSFET IRF3205


6. RESULTADOS EXPERIMENTAIS

6.1. Introdução

Neste capítulo, são apresentados alguns resultados experimentais com o


motor BLDC, verificando o funcionamento do sistema de controle de velocidade. As
experiências foram feitas monitorando a velocidade, em operação sem carga e com
carga. Para cada caso, são obtidos gráficos do osciloscópio, que possibilitam a
comparação dos resultados.

6.2. Metodologia dos testes

Os testes foram divididos em três casos:


1. Em malha de controle aberta, sem a utilização do sensor de posição e
nem o sensor de corrente;
2. Em malha de controle aberta, com a utilização do sensor de posição e
sem a utilização do sensor de corrente;
3. Com malha de controle fechada, com a utilização do sensor de posição e
do sensor de corrente;

Para realizar os testes, determinou-se uma velocidade tal que esta pudesse
ser aumentada gradativamente, para verificar a resposta do sistema na presença de
uma carga no eixo do motor, e, com o auxilio do osciloscópio, foram obtidos os
gráficos de saída dos sensores, das chaves e do Arduino. Esta seção trata dos
seguintes resultados obtidos através das saídas dos sensores:
· Gráfico de posição do rotor;
42

· Gráfico de Velocidade;
· Gráfico da Amplitude da Corrente;
· Tensão das fases;
· Resposta à mudança da velocidade de referência.

6.3. Tensão de saída do sensor de posição

O primeiro teste realizado foi o de observar a saída do sensor de posição


enquanto o eixo girava a uma velocidade determinada, com carga. Assim,
obtiveram-se os seguintes resultados:
a) A figura 6-1 mostra a tensão de saída do sensor de posição com o sistema
de controle de velocidade em malha aberta, sem utilizar o sensor de posição e nem
o sensor de corrente. A velocidade estabelecida foi de, aproximadamente, 400 RPM.
Pode se observar que a trajetória de posição não é linear.

0V

Escala 1V/Div
Figura 6-1 Tensão de saída do sensor em malha aberta, para o caso 1.

b) A figura 6-2 mostra a tensão de saída do sensor de posição com o


sistema de controle de velocidade em malha aberta, monitorando o sensor de
posição e sem a utilização do sensor de corrente. A velocidade estabelecida foi de,
43

aproximadamente, 800 RPM. Neste caso, também pode se observar que a trajetória
de posição não é linear, mas apresenta menos oscilações.

0V

Escala 1V/Div
Figura 6-2 Tensão de saída do sensor em malha aberta, para o caso 2.

c) A figura 6-3 mostra a tensão de saída do sensor de posição com o


sistema de controle de velocidade em malha fechada, monitorando o sensor de
posição e o sensor de corrente. A velocidade de referência foi de, aproximadamente,
600 RPM. Como se observa, a evolução da posição é mais próxima de uma reta.
Por outro lado, quando o sistema sofre uma parada inesperada devido a uma
perturbação, este retorna à posição devida, quando acaba esta perturbação, como
verificado no item 6.7.
44

0V

Escala 1V/Div
Figura 6-3 Tensão de saída do sensor em malha fechada, para o caso 3.

6.4. Tensão de saída do sensor de corrente

Nesta parte do experimento, foi observado o comportamento da corrente


considerando a aplicação de uma carga no eixo do motor. Para isto, ao eixo do
motor, foi acoplada uma hélice que permaneceu imersa em um recipiente com água,
enquanto girava.
a) A figura 6-4 mostra a tensão de saída do sensor de corrente com o
sistema de controle de velocidade em malha aberta, sem utilizar o sensor de posição
e nem o sensor de corrente.
Como pode ser observado, a corrente não apresenta variação, pois mesmo
alterando a velocidade do motor, a corrente fornecida, pela fonte permaneceu
praticamente constante, em torno de 11 A. Neste caso, como não é levada em conta
a posição, se o motor perder o sincronismo, devido ao aumento da carga, por
exemplo, o motor não recupera a velocidade.
45

0V

Escala 2V/Div e para o sensor de corrente Escala 1,5A/V.


Figura 6-4 Tensão de saída do sensor de corrente em malha aberta, para o caso 1.

b) A figura 6-5 mostra a tensão de saída do sensor de corrente com o


sistema de controle de velocidade em malha aberta, monitorando o sensor de
posição e sem utilizar o sensor de corrente.
Neste caso, a corrente também permanece praticamente constante, mas
diferente do caso anterior, quando há um aumento de carga, a velocidade
diminui, mas não se perde o sincronismo.

0V

Escala 2V/Div e para o sensor de corrente Escala 1,5A/V.


Figura 6-5 Tensão de saída do sensor de corrente em malha aberta, para o caso 2.
46

c) A figura 6-6 mostra a tensão de saída do sensor de corrente com o


sistema de controle de velocidade em malha fechada, monitorando o sensor de
posição e o sensor de corrente.
Neste caso, pode ser visto o efeito da utilização da estratégia PWM para a
regulação da corrente. Os pulsos produzidos pelo PWM tem frequência de 6kHz e
suas larguras são calculadas continuamente. Quando o motor estiver na carga
máxima, a corrente assume o valor máximo disponível, semelhante ao observado na
figura 6-5. Com carga menor o valor médio da corrente diminui e fica como mostrado
na figura 6-6.

0V

Escala 2V/Div e para o sensor de corrente Escala 1,5A/V.


Figura 6-6 Tensão de saída do sensor de corrente em malha fechada, caso 3.

6.5. Tensão de saída do sensor de velocidade

A figura 6-7 exibe, em vermelho, a tensão de saída do sensor de velocidade


composto pelo sensor optico TRCT5000 e pelo circuito conversor frequência tensão
LM290, em relação à frequência do sinal de saída do sensor de posição angular, em
azul. A velocidade do motor é, de aproximadamente, 480 RPM. Já na figura 6-8, a
velocidade está próxima de 800 RPM.
47

Velocidade

Posição
Angular

0V

Escala 2V/Div (Azul) e 1V/Div (vermelho)


Figura 6-7 Tensão de saída do sensor de velocidade (em vermelho), em relação ao sensor de posição (em
azul) (480RPM).

Velocidade

Posição
Angular

0V

Escala 2V/Div (azul) e 1V/Div (vermelho)


Figura 6-8 Tensão de saída do sensor de velocidade (em vermelho), em relação ao sensor de posição (em
azul) (706RPM).

6.6. Tensão de saída das fases

6.6.1. Com sistema de controle de velocidade em malha aberta, caso 1


48

Neste tópico, são apresentadas as tensões de saída das fases. Neste caso,
o sistema apresenta sempre o mesmo padrão de disparos das chaves do inversor,
mesmo quando o motor estiver parado. As figuras 6-9, 6-10 e 6-11 mostram as
saídas das fases a, b e c respectivamente.

0V

Figura 6-9 Tensão de saída da fase a (Escala 500mV/Div)

0V

Figura 6-10 Tensão de saída da fase b (Escala 500mV/Div)

0V

Figura 6-11 Tensão de saída da fase c (Escala 500mV/Div)


49

Nota se que diferente de uma carga resistiva, as tensões não chegam a 0V,
pois a resistência “ON” do MOSFET é comparável com a resistência por fase do
motor. Por outro lado a tensão máxima é da ordem de 2V devido a limitação em
corrente da fonte de tensão que alimenta o circuito de potência.

6.6.2. Com sistema de controle de velocidade em malha aberta, caso 2

Neste caso, o padrão de disparos das chaves do inversor dependem da


informação fornecida pelo sensor de posição angular. Assim, mesmo que haja uma
interrupção forçada do movimento do rotor, o sistema volta a movimentar-se a partir
do ponto em que parou. As figuras 6-12, 6-13 e 6-14 mostram as saídas das fases a,
b e c respectivamente. Como no caso anterior as tensões máximas são da ordem de
2V devido à fonte de tensão de alimentação.

6.6.3. Com sistema de controle em malha de fechada, caso 3

Neste caso, as formas de onda de tensão dependem tanto da velocidade


como da corrente de referência estabelecida pelo sistema de controle. Diferente do
caso 2, os pulsos de disparo do inversor são subdivididos em outros com frequência
de 6kHz, cuja largura é modulada (PWM) pelo sistema de controle de corrente. As
figuras 6-12, 6-13 e 6-14 mostram as tensões de saídas das fases a, b e c
respectivamente.
50

0V

Figura 6-12 Tensão de saída da fase a (Escala 1V/Div)

0V

Figura 6-13 Tensão de saída da fase b (Escala 1V/Div)

0V

Figura 6-14 Tensão de saída da Fase c (Escala 1V/Div)


51

0V

Figura 6-15 Tensões de saída da fase a (Escala 1V/Div)

0V

Figura 6-16 Tensões de saída da fase b (Escala 1V/Div)

0V

Figura 6-17 Tensões de saída da fase c (Escala 1V/Div)

6.7. Mudança da referência de velocidade

Neste teste, foi observada a resposta da velocidade real do sistema em


relação ao aumento e diminuição da velocidade de referência, considerando o caso
3. A figura 6-18 mostra a resposta do sistema quando há um aumento na velocidade
de referência, e na figura 6-19 se mostra a resposta do sistema quando a velocidade
52

de referência é diminuída. O erro observado se deve a que neste caso o controlador


de velocidade se limitou a um ganho proporcional.

Velocidade
de
referência

Velocidade
de real

0V

Escala 1V/Div (azul) e 500mV/Div (vermelho)


Figura 6-18 Aumento da velocidade no sistema (160 RPM/Div)

Velocidade
de
referência

Velocidade
de real

0V

Escala 1V/Div (azul) e 500mV/Div (vermelho)


Figura 6-19 Redução da velocidade no sistema (160 RPM/Div).

Para que o sistema de controle de velocidade seja robusto, é necessário que


o motor não perca o sincronismo no caso de uma parada forçada. Para verificar isso,
foi imposta uma perturbação forçada. O resultado é mostrado na figura 6-20. Como
observado, utilizando a estratégia de controle, caso 3, que considera a posição do
rotor e a corrente de alimentação, mesmo após uma parada do rotor por um instante
(aos 5 segundos), o motor volta a girar à mesma velocidade anterior e sem perda do
sincronismo.
53

Velocidade
de
referência

Velocidade
de real

0V

Escala 1V/Div (azul) e 500mV/Div (vermelho)


Figura 6-20 Análise da interrupção do movimento do rotor (160 RPM/Div).

6.8. Mudança da carga

A figura 6-21 mostra o comportamento da corrente (em azul) quando é


colocada uma borracha no eixo, freiando o motor. No momento em que a borracha é
colocada, as larguras dos pulsos de disparo do inversor são incrementadas,
resultando em um maior valor médio da corrente, como pode se observar no lado
esquerdo da figura. Logo após a retirada da borracha (aos 2,5 segundos), o valor da
corrente média se reduz, como se pode observar no lado direito da figura. Enquanto
isso, a velocidade permanece práticamente constante.
54
Corrente Corrente
com Carga sem Carga

0V
Velocidade
Real

0V

Escala 2V/Div
Figura 6-21 Corrente e velocidade com e sem carga.
7. CONSIDERAÇÕES FINAIS E CONCLUSÕES

7.1. Considerações finais

Este trabalho apresentou um sistema de acionamento para controlar a


velocidade de um motor BLDC, utilizando sensor de posição, de velocidade e de
corrente. O sistema é composto por duas malhas de controle. Na malha de controle
de corrente, interna, adotou-se um controlador PI, e, na malha de controle de
velocidade, externa, um controlador proporcional.
O sensor de velocidade rastreia o movimento angular do rotor e, após seu
sinal ser comparado com a referência, o erro gerado é processado por um
controlador PI, que fornece uma referência de corrente no elo CC. Em seguida, com
auxílio do sensor de corrente, um controle de tipo proporcional gera os sinais de
disparo, com largura modulada (PWM), de tal modo que a velocidade do motor
alcance sua referência.
O hardware utilizado neste trabalho pode ser aproveitado para motores de
outras potências, com o emprego de chaves semicondutoras com capacidade
suficiente de corrente solicitada pelo motor.
Embora a frequência de chaveamento tenha sido de 6kHz, se verificou um
ruído acústico perceptível. Outra observação importante foi o aquecimento dos
MOSFETs, devido à frequência de chaveamento, e também pela ausência de um
sistema de dissipação de calor. Seria conveniente testar chaves semicondutoras
com maior capacidade de corrente, inclusive IGBTs.
Foi constatado o potencial da plataforma Arduino tanto como sistema de
aquisição de dados e como de sistema de controle.
56

7.2. Conclusões

O hardware desenvolvido é funcional, porém, necessita de aprimoramentos,


na confecção de uma única placa de circuito impresso, de forma a viabilizar a sua
inserção no mercado.
Neste trabalho, foram verificados os aspectos teóricos dos sistemas de
controle, neste caso, de velocidade, tais como a resposta a uma perturbação e à
mudança da referência de velocidade.
O sistema também mostrou-se capaz de recuperar a velocidade, mesmo
após uma interrupção no giro do rotor.
A partir dos resultados do capítulo 6, pode-se notar um comportamento
linear da trajetória do movimento angular do rotor quando o sistema de controle
levou em conta a informação vinda do sensor de posição angular.
Uma vez, que ao longo dos experimentos foram danificadas algumas chaves
semicondutoras, se constatou a importância de um sistema de dissipação de calor,
ainda mais tratando-se de motores de maior demanda de corrente, e inversores com
maior frequência de chaveamento.
Pode ser concluído que, para o acionamento desenvolvido neste trabalho, a
plataforma de desenvolvimento Arduino foi adequada para implementar o sistema de
controle de velocidade. A sua versatilidade permitiu gerar sinais simultâneos de
saídas, com frequências da ordem de kHz, e a aquisição de múltiplos dados em um
pequeno período de tempo, através das funções de interrupção.
Em comparação com o que existe no mercado, o sistema implementado
utiliza somente um sensor de corrente, em série com a fonte de tensão contínua,
enquanto que outros sistemas comerciais utilizam dois sensores de corrente, em
duas fases.
Outro ponto a ressaltar é a utilização de um sensor externo de posição. Já
em alguns modelos comerciais de motores BLDC, os sensores para esta tarefa vêm
incluídos no motor, o que incrementa o seu preço e nem sempre estão disponíveis
no mercado nacional. Portanto, o sistema implantado possibilita o sensoriamento de
posição de vários modelos de motores BLDC.
57

Por fim, se espera que este trabalho motive o desenvolvimento de novos


projetos com a utilização de plataforma Arduino, nas diversas áreas da engenharia
elétrica.

7.3. Trabalhos futuros

Como sugestões de desenvolvimento de novas pesquisas na área de


acionamentos de motores BLDC e suas aplicações, podem ser mencionadas as
seguintes: cadeiras de rodas motorizadas, controle de quadricóptero, controle de
velocidade de aeromodelos, carros, etc.
Recomenda-se um estudo mais profundo no acionamento do motor BLDC
como:
a) Implantar técnicas de controle de velocidade sem o sensor de posição;
b) Diminuição dos harmônicos do torque;
c) Desenvolvimento de uma placa compacta de circuito impresso;
d) Teste de outras plataformas de desenvolvimento, semelhantes à do
Arduino.
8. OBRAS CITADAS

1
FITZGERALD, A. E.; KINGSLEY, C., JR.; UMANS, S. D.. Máquinas Elétricas: Com
Introdução à Eletrônica de potência, 6. ed. São Paulo: McGraw-Hill do Brasil, 2003.
648 p.
2
MONTEIRO, J. R. B. A.. Estratégias de Acionamento e Controle em Máquinas de
Ímã Permanente com Fluxo não Senoidal. São Paulo, 1997. 120 f. Dissertação
(Mestrado em Engenharia Elétrica) – Escola de Engenharia de São Carlos,
Universidade de São Paulo, 2006.
3
RASHID, H. M.. Eletrônica de Potência: Circuitos Dispositivos e Aplicações. 2 ed.
São Paulo: Makron Books, 1999. 828 p.
4
Arduino.cc. Arduino Disponível em: http://www.arduino.cc, Acesso em 24 de julho
de 2013.
5
HANSELMAN, D. C.. Brushless permanent-magnet motor design. New York:
Mcgraw-hill, 1994.195 p.
6
Asas Elétricas, Aeromodelos elétricos, aeromodelismo --- E-Max CF2822
Outrunner Brushless Motors [Mt-EMAX-CF2822 ] --- helimodelismo – helicópteros
elétricos – bateria Li-Po – Motores elétricos Brushless – servos – receptores –
aeromodelo controle remoto – radio controle – warbirds – jatos – aviões – speed
control, Disponível em: <http://www.asaseletricas.com.br/loja/product_info.php?
products_id=1574>, Acesso em: 07 de dezembro de 2013.
7
CARICCHI, F. AND HONORATI, O.. Low-Cost Compact Permanent Magnet
Machine for Adjustable Speed Pump Application, IEEE Trans on Ind Appl., v. 34, no
1, pp 109-116, Jan/Feb. 1998.
59
8
GIERAS, J. F.; WING, M.. Permanent Magnet Motor Technology. 1 ed. New York:
Marcel Dekker, Inc, 2002. 589 p.
9
BARATIERI, Cássio Luciano. Controle de velocidade sensorless DC submetidos a
variações periódicas de carga. Santa Maria, 2011. 151 f. Dissertação (Mestrado em
Engenharia Elétrica) – Centro de Tecnologia, Universidade de Santa Maria, Rio
Grande do Sul, 2011.
10
Asas Elétricas, emax brushless motor techbical data.pdf. Disponível em:
<http://www.asaseletricas.com.br/loja/images/EMAX%20%20brushless%20motor%2
0technical%20data.pdf>. Acesso em: 08 de agosto de 2013.
11
Arduino.cc. Arduino – Introduction <http://arduino.cc/en/Guide/Introduction>,
Acesso em 24 de julho de 2013.
12
Arduino.cc. ArduinoBoardMega2560. Disponível em: <http://arduino.cc/en/Main
/ArduinoBoardMega2560>, Acesso em: 07 julho de 2013.
13
Arduino.cc. Arduino – arduinoBoardMega, Disponível em:
<http://arduino.cc/en/Main/arduinoBoardMega>, Acesso em: 07 julho de 2013.
14
Wikipédia. Atmega AVR. Disponível em: <http://pt.wikipedia.org/wiki/Atmel_AVR>,
Acesso em: 13 de agosto de 2013.
15
Universidade de Brasília-UnB. Engenharia Mecatrônica. Tutorial –
Microcontrolador AVR – Atmega8: Instrumentação – UnBall. Engenharia
Mecatrônica. Disponível em: <http://lara.unb.br/~adolfo/CDig/Tutorial_AVR_Unball
.pdf> Acesso em: 07 jul. 2013.
16
Folha de dados Atmel 8bit MIcrocontroller with 64/128/256 kBytes
InSystemProgrammable Fash/Atmega640/V; ATmega1280/V; AtmegaA1281/V;
Atmega88PA; ATmega2560; ATmega2561/V; Manual do fabricante (doc2549)
17
STALLINGS, W.. Arquitetura e Organização de Computadores, Edição 5°. Editora
Pearson Addison Wesley. 2005. 786 p.
18
OGATA, K.. Engenharia de Controle Moderno, 3 ed. São Paulo: editora Livros
Técnicos e Científicos , 2003. 813 p.
19
BARCZAK, C. L.. Controle Digital de Sistemas Dinâmicos. São Paulo:Editora
Edgar Bluchar Ltda. 1995. 295 p.
20
Cherrycorp. (s.d). Microsoft Word – AN9 Series 020111.doc – AN9_Series.pdf.,
Disponível em: <http://www.cherrycorp.com/english/sensors/pdf/AN9_Series.pdf>,
Acesso em 8 de dezembro de 2013.
60
21
MSA Control Comercio e Serviços Ltda. Sensores de corrente Efeito Hall.
Disponível em: <http://www.msacontrol.com.br/Sensores_Hall_28-02-12.pdf>>,
Acesso em 8 de dezembro de 2013.
22
robopoly.epfl.ch. TCRT5000.pdf. Disponível em:<http://robopoly.epfl.ch/files
/content/sites/robopoly/files/web/prisme/TCRT5000.pdf>, Acesso em 8 de dezembro
de 2013.
23
IRF. IR2110(-1-2)(S)PbF-IR2113(-1-2)(S)PbF revU.p65 – ir2110. Disponível em:
<http://www.irf.com/product-info/datasheets/data/ir2110.pdf> Acesso em: 08 de
agosto de 2013.
24
IRF. IRF3205.pdf. Disponível em:<http://www.irf.com/product-info/datasheets
/data/irf3205.pdf> Acesso em: 08 de agosto de 2013.
APÊNDICE A

Código – Malha de controle com sensor de posição

//bibliotecas
#include <TimerOne.h>
#include <TimerThree.h>
//--------------constantes
int comuta = 0, aux = 0, i=0;
int contador=0,contador2=0;
float temp=0, valoranterior=0;
int count=0;
int freq=400;
//--------------frequencia do timer
int periodo1 = 10; // timer1
int periodo3 = 700; //timer 3
//----------------comutação
int chave=1;
//--------------Posição
int sensorposi = 0;
int posicaoaux = 0;
float valorsensorposi = 0;
//--------------tempo morto, para que não haja curto nas chaves do mesmo ramo
int tempomorto = 20;
//--------------
void comutacao(int chave);
//--------------controle de velocidade
float rpm=0;//
62

int VARIA_TENSAO = 4;
//-------------- variaveis para controle utilizando metodo de Tustin na saída de velocidade
int u_z_1 = 0;//saidaanterior=0;// utilizada no calculo do erro
int u_z = 0;//saidaatual=0;//saida em função da saida anterior e do erro
float ki = 600;
float kp = 0.1;
int e_z_1=0;//erroanterior;
int e_z=0;//erroatual;
float Ts = 0.0005;//periodoS;//periodo de amostragem, igual a 430 microsegundos
float beta = 0, alfa=0;
int wref = 0;// valor vindo do potenciometro
int sensorfreq = 7;
//--------------Controle da Corrente
float Iref;//valor conevertido para comparar com valor lido pelo sensor
int valor_corrente = 0;//valor real da corrente
int sensorcorrente = 1;//porta analogica de entrada
//--------------------------------------------------------------------------------------
//configuração das portas , dos timer e das interrupções
//--------------------------------------------------------------------------------------
void setup()
{
DDRA |= 0b00111111; //Registro de configuração da Porta A
Timer1.initialize(periodo1); // set a timer of length 100000 microseconds (or 0.1 sec - or
10Hz => the led will blink 5 times, 5 cycles of on-and-off, per second)
//função callback habilitada para overflow do timer1
Timer1.attachInterrupt(callback);
Timer3.initialize(periodo3); // initialize timer1, and set a 8 microsecond period (125kHz)
//---------constante da função de controle
beta=(2*kp + ki*Ts)/2;
alfa = (-2*kp + ki*Ts)/(2*kp+ki*Ts);}
//----------------------------------
//----------Função para o calculo do pwm a ser utilizado
//----------------------------------
void callback()
{
//---------------- Esta função pausa a interrupção
63

Timer1.detachInterrupt();
//--------------------------
//Monitoramento da posição, corrente e da velocidade de referencia e velocidade real
//---------------------------------------------------
temp = valorsensorposi;
sensorposi = analogRead(posicaoaux);//leitura do sensor
valor_corrente = analogRead(sensorcorrente);//valor da corrente real fornecida pelo
sensor ,sentido do sensor->
wref = analogRead(VARIA_TENSAO);//essa saida entra no pino 3, que vai para
interrupção externa
rpm = analogRead(sensorfreq);
valorsensorposi = sensorposi * (4.605 / 1023.0);
//-------------------------------------------------
//----------calculo de u(z)
//-------------------------------------------------
Iref = (wref - rpm)*k;// ganho da malha de controle
if(Iref>1024)Iref=1024;//pq so sensor de corrente so mede até 820
e_z= (Iref - valor_corrente);
u_z = u_z_1 + beta*(e_z + alfa * e_z_1);
if(u_z<0)u_z=0;
if(u_z>1024) u_z=1024;
e_z_1=e_z;
u_z_1=u_z;
}
//loop infinito
void loop()
{
Timer1.attachInterrupt(callback);
//--------------------------
//algoritmo para controle de velocidade
//--------------------------
if(wref>0)
{
analogWrite(4,u_z);
Timer3.pwm(3,u_z,400);
}
64

if(wref==0)
{
Timer3.pwm(3,0,200);
Timer3.disablePwm(3);
}
if(u_z==0)
{
Timer3.pwm(3,0,200);
Timer3.disablePwm(3); }
//--------------------------
// variação da tensão do sensor de posição
// --------------------------
if(valorsensorposi<0.552) comutacao(aux=1); //1
if(valorsensorposi>0.552 && valorsensorposi<=0.659) comutacao(aux=2); //2
if(valorsensorposi>0.659 && valorsensorposi<=0.756) comutacao(aux=3); //3
if(valorsensorposi>0.756 && valorsensorposi<=0.803) comutacao(aux=4); //4
if(valorsensorposi>0.803 && valorsensorposi<=0.9) comutacao(aux=5); //5
if(valorsensorposi>0.9 && valorsensorposi<=0.997) comutacao(aux=6); //6
if(valorsensorposi>0.997 && valorsensorposi<=1.094) comutacao(aux=1); //7
if(valorsensorposi>1.094 && valorsensorposi<=1.191) comutacao(aux=2); //8
if(valorsensorposi>1.191 && valorsensorposi<=1.288) comutacao(aux=3); //9
if(valorsensorposi>1.288 && valorsensorposi<=1.385) comutacao(aux=4); //10
if(valorsensorposi>1.385 && valorsensorposi<=1.482) comutacao(aux=5); //11
if(valorsensorposi>1.482 && valorsensorposi<=1.579) comutacao(aux=6); //12
if(valorsensorposi>1.579 && valorsensorposi<=1.676) comutacao(aux=1); //13
if(valorsensorposi>1.676 && valorsensorposi<=1.773) comutacao(aux=2); //14
if(valorsensorposi>1.773 && valorsensorposi<=1.87) comutacao(aux=3); //15
if(valorsensorposi>1.87 && valorsensorposi<=1.967) comutacao(aux=4); //16
if(valorsensorposi>1.967 && valorsensorposi<=2.064) comutacao(aux=5); //17
if(valorsensorposi>2.064 && valorsensorposi<=2.161) comutacao(aux=6); //18
if(valorsensorposi>2.161 && valorsensorposi<=2.258) comutacao(aux=1); //19
if(valorsensorposi>2.258 && valorsensorposi<=2.355) comutacao(aux=2); //20
if(valorsensorposi>2.355 &&valorsensorposi<=2.452) comutacao(aux=3); //21
if(valorsensorposi>2.452 &&valorsensorposi<=2.549) comutacao(aux=4); //22
if(valorsensorposi>2.549 &&valorsensorposi<=2.646) comutacao(aux=5); //23
if(valorsensorposi>2.646 &&valorsensorposi<=2.743) comutacao(aux=6); //24
65

if(valorsensorposi>2.743 &&valorsensorposi<=2.84) comutacao(aux=1); //25


if(valorsensorposi>2.84 &&valorsensorposi<=2.937) comutacao(aux=2); //26
if(valorsensorposi>2.937 &&valorsensorposi<=3.034) comutacao(aux=3); //27
if(valorsensorposi>3.034 && valorsensorposi<=3.131) comutacao(aux=4); //28
if(valorsensorposi>3.131 && valorsensorposi<=3.228) comutacao(aux=5); //29
if(valorsensorposi>3.228 && valorsensorposi<=3.325) comutacao(aux=6); //30
if(valorsensorposi>3.325 && valorsensorposi<=3.422) comutacao(aux=1); //31
if(valorsensorposi>3.422 && valorsensorposi<=3.519) comutacao(aux=2); //32
if(valorsensorposi>3.519 && valorsensorposi<=3.616) comutacao(aux=3); //33
if(valorsensorposi>3.616 && valorsensorposi<=3.713) comutacao(aux=4); //34
if(valorsensorposi>3.713 && valorsensorposi<=3.810) comutacao(aux=5); //35
if(valorsensorposi>3.810 && valorsensorposi<=3.907) comutacao(aux=6); //36
if(valorsensorposi>3.907 && valorsensorposi<=4.004) comutacao(aux=1); //37
if(valorsensorposi>4.004 && valorsensorposi<=4.101) comutacao(aux=2); //38
if(valorsensorposi>4.101 && valorsensorposi<=4.198) comutacao(aux=3); //39
if(valorsensorposi>4.198 && valorsensorposi<=4.295) comutacao(aux=4); //40
if(valorsensorposi>4.295 && valorsensorposi<=4.4) comutacao(aux=5); //41
if(valorsensorposi>4.4 && valorsensorposi<=4.5) comutacao(aux=6); //42
if(valorsensorposi>4.5) comutacao(aux=1);
}
//----------------------------------
void comutacao(int chave)
{
chave=chave;
if(chave <=0)chave=6;
if(temp-valorsensorposi>0)chave=chave-1;
do
{
switch(chave)
{
case 2://1:
PORTA=0b00110001;
PORTA &= ~(1<<PORTA4);
PORTA &= ~(1<<PORTA1);
delayMicroseconds(tempomorto);
PORTA |= (1<<PORTA4);
66

delayMicroseconds(freq);
break;
case 3://2:
PORTA=0b00100011;
PORTA &= ~(1<<PORTA3);
PORTA &= ~(1<<PORTA0);
delayMicroseconds(tempomorto);
PORTA |= (1<<PORTA0);
delayMicroseconds(freq);
break;
case 4://3:
PORTA=0b00101010;
PORTA &= ~(1<<PORTA5);
PORTA &= ~(1<<PORTA2);
delayMicroseconds(tempomorto);
PORTA |= (1<<PORTA5);
delayMicroseconds(freq);
break;
case 5://4:
PORTA=0b00001110;
PORTA &= ~(1<<PORTA4);
PORTA &= ~(1<<PORTA1);
delayMicroseconds(tempomorto);
PORTA |= (1<<PORTA1);
delayMicroseconds(freq);
break;
case 6://5
PORTA=0b00011100;
PORTA &= ~(1<<PORTA3);
PORTA &= ~(1<<PORTA0);
delayMicroseconds(tempomorto);
PORTA |= (1<<PORTA3);
delayMicroseconds(freq);
break;
case 1://6:
PORTA &= ~(1<<PORTA2);
67

PORTA=0b00010101;
PORTA &= ~(1<<PORTA5);
delayMicroseconds(tempomorto);
PORTA |= (1<<PORTA2);
delayMicroseconds(freq);
break;
}
count=count+1;
}while(count<2);
count=1;
}
APÊNDICE B

Esquemático
05/02/2014 11:54:11 f=0.71 C:\SPB_Data\eagle\TCC\tcc.sch (Sheet: 1/1)

Вам также может понравиться