TCC - Juliano Kreuzberg-1
TCC - Juliano Kreuzberg-1
TCC - Juliano Kreuzberg-1
JULIANO KREUZBERG
SANTO ÂNGELO – RS
2019
JULIANO KREUZBERG
SANTO ÂNGELO – RS
2019
JULIANO KREUZBERG
BANCA EXAMINADORA
__________________________________________
Me. Eng. Douglas de Castro Karnikowski
URI – Campus Santo Ângelo
__________________________________________
Me. Eng. Leonardo Nogueira Fontoura da Silva
UFSM
__________________________________________
Eng. Diango de Oliveira
URI – Campus Santo Ângelo
Dedico este trabalho à Deus e à minha família.
AGRADECIMENTOS
Chega o momento em que devemos agradecer a todos aqueles que ajudaram a trilhar
esta caminhada, as pessoas que foram capazes de transformas esta fase, de muito estudo e
dedicação, uma tarefa menos árdua. A todos que que tornaram mais este sonho possível,
expresso minha profunda gratidão.
Agradeço primeiramente a Deus por ser a luz que guia meus passos e ilumina meu
caminho.
A minha querida mãe, pela sua simplicidade, rigidez em seus ensinamentos, mas
principalmente pelo seu amor incondicional. Aos meus irmãos Maiara e Guilherme por todo o
carinho que recebo todos os dias.
A todos os professores do curso que sempre se mostraram comprometidos com o ensino
e dispostos a auxiliar nas dificuldades. Agradeço em especial ao professor Douglas pelo seu
empenho na realização deste trabalho.
A todos os colegas de graduação que nunca mediram esforços para auxiliar nos
momentos de dificuldades, em especial ao meu grupo de estudos: Matheus Fernandes, Rodrigo
Möller e Frantiesco Fruet que além de colegas, são grandes amigos.
A grandeza não consiste em receber honras,
mas merecê-las.
(Aristóteles)
RESUMO
In the study of Electrical Engineering, the use of tools that facilitate learning is substantially
important in the task of bringing undergraduates closer to the reality found in the job market.
Both the use of simulation software and the practical classes developed in the laboratories
contribute positively to the process of assimilation of theories approached in the classroom or
found in bibliographies. When practices involve the study of electric machines, more
specifically three-phase induction motors, there are certain limitations generally associated with
the physical space available for installing the machines that sometimes restricts the activities to
be performed with unpowered or idle motors constant charge. Given these limitations, this work
brings the development of a mechanical test bench in three-phase induction motors with
potential to use in practical classes, using a Foucault brake existing in the laboratory of electrical
machines.
1 INTRODUÇÃO ..................................................................................................................... 13
1.1 Caracterização e justificativa .............................................................................................. 14
1.2 Objetivos............................................................................................................................. 14
1.2.1 Objetivo geral .................................................................................................................. 14
1.2.2 Objetivos específicos ....................................................................................................... 15
1.3 Contribuições do trabalho................................................................................................... 15
1.4 Organização do trabalho ..................................................................................................... 15
2 REFERENCIAL TEÓRICO .................................................................................................. 17
2.1 Motores de indução trifásicos ............................................................................................. 17
2.1.1 Categorias de conjugado .................................................................................................. 18
2.1.2 Acionamento de máquinas de indução trifásicas ............................................................. 20
2.1.2.1 Partida direta ................................................................................................................. 20
2.1.2.2 Partida estrela-triângulo ................................................................................................ 20
2.1.2.3 Partida compensada ...................................................................................................... 21
2.1.2.4 Partida com soft-starter ................................................................................................ 21
2.1.2.5 Partida com inversor de frequência .............................................................................. 22
2.2 Tipos de cargas mecânicas ................................................................................................. 23
2.2.1 Cargas de conjugado constante ....................................................................................... 23
2.2.2 Cargas de conjugado linear ............................................................................................. 24
2.2.3 Cargas de conjugado quadrático ...................................................................................... 25
2.2.4 Cargas de conjugado hiperbólico .................................................................................... 26
2.3 Sistemas de emulação de carga .......................................................................................... 27
2.3.1 Emulação de carga mecânica utilizando freio de Foucault ............................................. 27
2.3.2 Emulação de carga utilizando geradores elétricos ........................................................... 28
2.4 Conversores chopper .......................................................................................................... 29
2.5 Extensômetros de resistência elétrica ................................................................................. 30
2.6 Encoder ............................................................................................................................... 32
2.7 Arduino ............................................................................................................................... 32
2.8 Controle proporcional-integral-derivativo .......................................................................... 34
2.8.1 Ação proporcional ........................................................................................................... 34
2.8.2 Ação Integral ................................................................................................................... 34
2.8.3 Ação derivativa ................................................................................................................ 35
3 METODOLOGIA.................................................................................................................. 36
3.1 Desenvolvimento do conversor CC-CC ............................................................................. 36
3.1.1 Curva de corrente versus tensão aplicada ........................................................................ 37
3.1.2 Confecção do circuito do conversor ................................................................................ 38
3.2 Sistema de medição de velocidade angular ........................................................................ 39
3.2.1 Desenvolvimento do encoder e do circuito de aquisição ................................................ 40
3.2.1 Cálculo da velocidade ...................................................................................................... 41
3.3 Medição de torque .............................................................................................................. 42
3.3.1 Módulo amplificador HX711 .......................................................................................... 43
3.3.2 Cálculo do torque e calibração do sensor ........................................................................ 43
3.4 Configuração e programação do microcontrolador ............................................................ 44
3.4.1 Rotina de interrupção por estouro de timer ..................................................................... 46
3.4.2 Utilização da interrupção externa .................................................................................... 46
3.4.3 Sinal PWM ...................................................................................................................... 47
3.4.4 Controle do torque aplicado ao motor ............................................................................. 48
4. ENSAIOS E RESULTADOS ............................................................................................... 49
4.1 Desempenho da medição de velocidade ............................................................................. 51
4.2 Comportamento do controle sob perturbações de velocidade ............................................ 52
4.3 Comportamento do controle sob perturbações de tensão na alimentação do freio ............ 55
4.4 Referência de torque em função da velocidade. ................................................................. 57
CONCLUSÃO ........................................................................... Erro! Indicador não definido.
REFERÊNCIAS ....................................................................................................................... 60
APÊNDICE A – Medidas do encoder confeccionado para o projeto....................................... 63
APÊNDICE B – Suporte de fixação da placa do encoder ........................................................ 64
APÊNDICE C – Linguagem de programação implementada .................................................. 65
ANEXO A – Dados de placa do motor utilizado na bancada de testes .................................... 71
13
1 INTRODUÇÃO
1.2 Objetivos
2 REFERENCIAL TEÓRICO
O rotor de gaiola de esquilo por outro lado não possui bobinas com terminais acessíveis
como os de rotor bobinado, mas sim barras encaixadas nas ranhuras existentes do ferro próprio
rotor, as quais são curto-circuitadas nas duas extremidades, como mostrado na figura 2. Os
MITs com este tipo de rotor, devido sua construção simples e robusta, são os mais utilizados
(UMANS, 2014).
Os motores de indução trifásicos construídos com rotor do tipo gaiola de esquilo são
classificados e agrupados em cinco categorias conforme a norma NBR 17094 de 2018 que
estabelece os requisitos mínimos para os MIT, sendo estas a categorias N, NY, H, HY e D
(ABNT, 2018). Esta divisão dos motores é feita de acordo com as características de partida,
escorregamento e as características de conjugado em função da velocidade de rotação de cada
motor.
Apesar da norma brasileira definir cinco categorias padronizadas de conjugado,
comercialmente têm-se ofertado somente as categorias N, H e D (MUNIZ, 2006). Um
comparativo entre curvas de conjugado em função da velocidade destes três padrões pode ser
visto na figura 3.
19
Categoria HY: Esta categoria engloba os motores com características semelhantes aos
da categoria H, com a diferença de que estes preveem seu uso para partidas estrela-triângulo.
Para a ligação em estrela, estes motores apresentam valores mínimos de conjugado de partida
e de conjugado mínimo iguais a 25% dos valores indicados para os motores de categoria H
(ABNT, 2018).
A forma mais simples utilizada para partir um MIT é a partida direta, na qual os
enrolamentos do motor são alimentados diretamente com a tensão nominal. No momento da
partida a corrente solicitada pelo motor pode chegar à oito vezes o valor nominal especificado
para seu regime permanente. Devido ao pico de corrente ocasionado por esta manobra, este tipo
de partida é limitado à motores potência nominal de até 5 CV com intuito de evitar perturbações
que comprometam a instalação elétrica ou o funcionamento das demais cargas a ela conectadas
(ABNT, 2004).
A partida estrela-triangulo como seu próprio nome sugere é uma partida que possibilita
reduzir a corrente de partida utilizando-se de diferentes ligações entre as bobinas do motor. No
primeiro instante da partida as bobinas são ligadas em estrela reduzindo a tensão aplicada em
21
A utilização das soft-starters torna-se conveniente quando, assim como nas partidas
estrela-triangulo e compensadora, é necessário limitar a corrente de pico e que não é requisitada
a variação de velocidade de rotação do motor estando este em pleno funcionamento. O grande
diferencial deste tipo de acionamento se comparado com os métodos descritos anteriormente é
a possibilidade de realizar a aceleração e parada do motor de forma suave.
As soft-starters são chaves de partida eletrônicas compostas por pontes de tiristores
acionadas por um circuito microcontrolado e destinadas a aceleração, desaceleração e proteção
de MITs. O circuito de controle é capaz de alterar o ângulo de disparo dos tiristores de forma
22
progressiva, seguindo uma parametrização prévia, deste modo é possível controlar a tensão
fornecida ao motor, aumentando-a ou reduzindo-a gradativamente e, por conseguinte é possível
limitar a corrente demandada. Este método é comumente utilizado no acionamento de
centrífugas e ventiladores de alta potência (SEGUNDO; RODRIGUES, 2015).
As principais vantagens em relação as convencionais partidas estrela-triângulo e
compensadora são a sua facilidade de operação pois permite que sejam alterados seus
parâmetros de partida por meio da interface homem-máquina (IHM) sem a necessidade de
refazer as conexões elétricas, a diminuição do desgaste nas partes mecânicas do motor devido
a aceleração mais suave, redução do espaço de montagem, além claro de reduzir de forma mais
efetiva os picos de corrente.
𝐶 = 𝑘1 ∙ 𝛷𝑚 ∙ 𝐼2 (1)
𝐸1
𝛷𝑚 = (2)
𝑁1 ∙ 𝐹1 ∙ 4,44
Considerando que o número de espiras (N1) e a constante 4,44 são elementos invariáveis
no circuito, pode-se manter o conjugado de um motor constante variando a tensão de
23
alimentação (E1) na mesma proporção que se altera a frequência (F1) do circuito. Desta forma
um inversor permite que o motor seja controlado de modo a fornecer um ajuste contínuo de
velocidade e conjugado em relação a carga mecânica (FRANCHI, 2008).
Os motores de indução trifásicos são utilizados suprir a demanda por produção de força
motriz, seja, para atender fins domésticos, comercias, integrar o processo fabril de uma indústria
ou para quaisquer outras finalidades. Em cada uma dessas aplicações, as peculiaridades do
processo e as características das máquinas as quais os motores estão acoplados influenciam no
conjugado requerido dessa máquina motriz. Em alguns desses casos as cargas mecânicas são
influenciadas também pela velocidade angular, alterando as curvas de conjugado resistente, as
quais podem ter seu comportamento definidos utilizando-se da equação 3, onde Cc é o
conjugado resistente em 𝑁 ∙ 𝑚 (Newton-metro), o conjugado inicial é representado por Co dada
também em 𝑁 ∙ 𝑚, kc é a constante que depende da potência da carga e x é parâmetro que
depende da natureza da carga (MORI, 2018).
𝐶𝑐 = 𝐶𝑜 + 𝑘𝑐 ∙ 𝑛 𝑥 (3)
Pode-se definir como uma carga de conjugado constante aquela que não sofre influência
da velocidade angular do motor, ou seja, o valor do parâmetro x é nulo (x = 0). Tem-se então a
equação 4:
𝐶𝑐 = 𝐶𝑜 + 𝑘𝑐 (4)
São exemplos deste tipo de carga mecânica os compressores de pistão, talhas, britadores,
guindastes, e transportadores como esteiras e elevadores. Na figura 4 é possível visualizar
graficamente a curva do conjugado em função da velocidade de rotação (WEG, 2008a).
24
𝑃𝑐 = (𝐶𝑜 + 𝑘𝑐 ) ∙ 𝑛 (5)
O conjugado resistente de cargas lineares como seu próprio nome indica varia de forma
diretamente proporcional ao aumento de velocidade de rotação do eixo do motor a qual estas
cargas estão acopladas, tendo neste caso o parâmetro x unitário positivo (x = 1). São exemplos
de cargas deste tipo a calandra com atrito viscoso, geradores de excitação independente,
misturadores de líquidos, os quais podem ter seu comportamento exemplificado por meio da
figura 5 (WEG, 2008a).
25
𝐶𝑐 = 𝐶𝑜 + 𝑘𝑐 ∙ 𝑛 (6)
Neste caso a potência solicitada pela carga varia em uma proporção quadrática da
variação da velocidade, ou seja:
𝐶𝑐 = 𝐶𝑜 + 𝑘𝑐 ∙ 𝑛2 (8)
𝑘𝑐
𝐶𝑐 = (10)
𝑛
Este comportamento característico de uma carga hiperbólica, pode ser visto na figura 7.
27
O freio de Foucault mostrado na figura 8, também conhecido como freio por correntes
parasitas ou freio por correntes induzidas, tem seu funcionamento baseado na indução de
correntes elétricas em uma massa metálica, geralmente em forma de disco, submetida a um
campo magnético variável. O campo magnético é geralmente fixo e oriundo de uma bobina
28
alimentada com corrente contínua e as correntes são induzidas pelo movimento mecânico do
disco acoplado ao eixo do motor a ser frenado (SILVA, 2015).
A frenagem pode ser realizada utilizando tanto geradores de corrente contínua como
geradores de corrente alternada. A diferença entre a utilização dos dois tipos está associada
principalmente ao método de controle. Preferencialmente utiliza-se o sistema com uma gerador
de corrente alternada pois se comparado ao de corrente contínua, é mais compacto e ter um
menor custo de aquisição e manutenção (HAICAL, 2009).
resultante será proporcional ao período que a chave permanece ligada em relação a duração do
ciclo. Existem algumas maneiras de realizar este controle do chaveamento do circuito, sendo
que a mais comum é feita por meio da modulação por largura de pulso ou Pulse Width
Modulation (PWM) no qual a frequência de chaveamento permanece constante, alterando-se
apenas o ciclo de trabalho (Duty Cycle) que corresponde a proporção entre a largura do pulso e
o período do sinal (AHMED, 2000).
Os strain gauges (figura 11), como são mais conhecidos os extensômetros de resistência
elétrica (figura), são sensores transdutores de força. Seu princípio de funcionamento é baseado
na propriedade piezo resistiva de alguns materiais, ou seja, na mudança de resistência elétrica
que ocorre quando o sensor é submetido a algum tipo de deformação mecânica em sua área
ativa e na direção de sensibilidade. Estes sensores são amplamente utilizados devido a sua boa
linearidade, fácil instalação e baixo custo.
Para que se possa obter uma medição precisa da resistência dos extensômetros é
necessário realizar uma compensação do efeito da temperatura sobre o material condutor do
sensor, feita geralmente com a montagem em forma de ponte de Wheatstone utilizando dois ou
quatro strain gauge. Nesta configuração em ponte os extensômetros variam todos juntos não
afetando a medida realizada.
31
2.6 Encoder
2.7 Arduino
33
se tornar muito grande devido a permanência do erro. Para que o controlador volte a trabalhar
na região não saturada é necessário integral seja descarregado, o que pode ser feito com técnica
de anti-windup (FIRMINO, 2014).
3 METODOLOGIA
A bancada utilizada para o teste de motores de indução trifásicos sob condição de carga,
disponível no laboratório o curso de Engenharia Elétrica do curso, é equipada com um motor
WEG da linha W22 IR2 de 1,5 CV ,cujos parâmetros constam no anexo A, e acoplado a este
motor tem-se um freio de Foucault fornecido pela mesma empresa que também será utilizado.
Ambos os equipamentos são fixos a uma bancada móvel e alimentados pelas bancadas didáticas
principais.
O aprimoramento desta bancada prevê a implementação de um sistema para medição de
velocidade angular do motor, um sistema de medição por meio eletrônico do conjugado
resistente da carga, um modulo conversor CC-CC para controle de tensão do freio de Foucault
(figura 15). A descrição detalhada das etapas da construção deste sistema será vista nos tópicos
seguintes, explanando separadamente cada um dos seus elementos.
Fonte: Autor.
Conforme observado por Malange, Seixas e Oliveira, (2013) o conjugado exercido pelo
freio de Foucault diminui à medida que se aumenta o entreferro (distância entre as bobinas e o
disco metálico). Também foi observado pelo autor que quanto maior o número de espiras e a
37
Para estipular uma relação entre a corrente que percorre as bobinas e a tensão aplicada
as mesmas, foram feitas algumas medições, variando-se a tensão gradualmente entre zero e o
seu valor nominal. As leituras das grandezas se decorreram em duas etapas, na primeira as
bobinas estavam em temperatura ambiente e posteriormente foram feitas leituras com as
bobinas à quente, ou seja, após permanecer em funcionamento por algum tempo e ambas os
ensaios executados com o motor em sua velocidade angular nominal. Os valores obtidos podem
ser vistos no gráfico da figura 16.
Fonte: Autor.
sobre a bobina. Outro fato que pode ser observado é a diminuição da corrente após o freio
permanecer ligado por um longo período, se comparada com as medições à frio, o que já era
esperado devido ao aumento da resistência dos condutores que compõe a bobina e o também
do material metálico do disco devido ao aquecimento dos mesmos. Os dados coletados neste
ensaio serão utilizados no dimensionamento dos componentes do conversor.
Fonte: Autor.
Nota-se que além da bobina e do diodo de roda livre foi incrementado um resistor na
saída do conversor. Como a conexão entre a bobina e o conversor é feita por meio de conectores,
existe a possibilidade de ser desconectada do circuito em pleno funcionamento causando uma
sobre tensão em seus terminais, o que não é desejado pois pode levar a queima dos componentes
do conversor. Com a utilização deste resistor em paralelo a descarga ocorre no resistor RS
limitando a tensão a cerca de 145 volts evitando a queima do diodo e do MOSFET que possuem
tensões reversas superiores. Foi utilizado também um opto acoplador para isolar o
microcontrolador do circuito de potência para evitar possíveis danos ao mesmo causados por
surtos de tensão.
giro do eixo, taco geradores que produzem um sinal com amplitude proporcional à velocidade
imposta a este sensor e ainda os encoders, método adotado neste trabalho, que produzem um
sinal pulsante período proporcional rotação do eixo.
Fonte: Autor.
Fonte: Autor.
Para a construção do circuito foi necessário definir a tensão de histerese (𝑉ℎ ) do circuito,
que é ajustada pelos valores dos resistores R1 e R2 na realimentação do amplificador e pode
ser calculada pela equação 13, onde 𝑉𝑐𝑐 é a tensão de alimentação do circuito. Outro parâmetro
importante para o circuito é a tensão de referência na entrada inversora do amplificador que
pode ajustada por uma referência externa ou fixada por meio de um divisor resistivo. Para
permitir ajustes durante o teste e calibrar a sensibilidade do sensor foi utilizado como referência
para o amplificador operacional um divisor resistivo usando um resistor ajustável que permite
ajustar a referência entre 0 e 5 V.
𝑅1
𝑉ℎ = ∙𝑉 (13)
𝑅1 + 𝑅2 𝑐𝑐
Segundo Carvalho et al., (2010), a partir de um sinal obtido por um encoder, existem
algumas metodologias clássicas para o cálculo da velocidade, independentes do modelo de
motor, sendo as mais comuns o método M e o método T. O método M tem como princípio a
existência de um base de tempo fixa (𝑡) na qual é feita a contagem do número de pulsos (𝑃).
No método T ocorre o inverso, ou seja, têm-se estipulado um número fixo de pulsos e o tempo
necessário para que ocorram é registrado, e em seguida obtida a velocidade. Para a medição de
baixas velocidades o método T apresenta-se mais adequado pois sincroniza o cálculo com a
velocidade do eixo. Já para as velocidades mais altas a escolha pelo método M proporciona
maior precisão devido ao pequeno intervalo em que os pulsos ocorrem ser muito pequeno. Em
42
ambos os métodos a velocidade angular média (𝑛) pode ser obtida pela divisão do número de
pulsos pelo tempo transcorrido, levando em consideração a resolução do encoder (𝑅) como
mostra a equação 12.
𝑃
𝑛= (12)
𝑡∙𝑅
Fonte: Autor.
A célula de carga utilizada foi fixada na estrutura que anteriormente sustentava uma
balança mecânica de mola, utilizando o mesmo suporte. A outra extremidade da célula de carga
43
fica em contato com a estrutura de sustentação das bobinas tendo entre si um elemento de
material emborrachado para suavizar o atrito entre as os componentes metálicos.
A medição da força em uma célula de carga ocorre por meio da medição da tensão de
produzida em seus terminais de saída. Como esta tensão está na ordem de milivolts ou
microvolts não é possível realizar a leitura conectando o sensor diretamente ao
microcontrolador, primeiramente é necessário amplificar este sinal. Para amplificar o sinal de
uma célula de carga usualmente são empregados amplificadores operacionais ou alguns
circuitos integrados dedicados a esta função.
O método utilizado para a aquisição do sinal da célula de carga foi o emprego do
conversor analógico-digital (ADC) HX711 da Avia Semiconductor com precisão de 24 bits
especialmente projetado para aplicações de pesagem e controle industrial (figura 21). Este
módulo possui ganho selecionável de 32, 64 ou 128 e comunicação serial padrão RS 232
acionada pelos pinos. Apesar de neste projeto ser utilizado apenas um, o módulo utilizado
permite a conexão de até 4 células de carga simultaneamente. A preferência por este método e
não a utilização de amplificadores operacionais comuns é a baixa resolução das entradas
analógicas do Arduino que são de apenas 8 bits, fornecendo pouca precisão de leitura.
ajustada para quilogramas ou newtons. Para realizar este ajuste de calibração, primeiramente
deve ser feito o ajuste de offset que define o valor do conversor equivalente, para a célula sem
carga. Em seguida deve ser aplicada uma força conhecida ao sensor, geralmente são utilizados
pesos de prova de massa conhecida aferidos em uma balança de precisão.
Para estabelecer o valor de offset o sensor foi primeiramente fixado a estrutura onde
realizará as medições de torque na carga. O valor obtido na leitura do sensor sem carga é
registrado e definido como ponto de referência para as demais medições, repetindo este
procedimento por meio da programação, sempre que o sistema é acionado ou reiniciado para
garantir que não haja influência da temperatura ambiente no valor obtido. Após realizada a
medida do valor sem carga foi realizado o ajuste do ganho do sensor para obter os valores em
quilogramas. Para isso foram utilizados 3 corpos de prova com massas de 101, 151 e 200
gramas, aferidos por uma balança de precisão. O cálculo do fator de calibração (𝑔) do sensor
então é realizado subtraindo-se o valor de offset (𝐴𝐷𝐶𝑜𝑓𝑓𝑠𝑒𝑡 ) do valor medido (𝐴𝐷𝐶) e o
resultado desta operação é dividido pela massa (m) do objeto posicionado na célula de carga
como tem-se na equação 13.
(𝐴𝐷𝐶 − 𝐴𝐷𝐶𝑜𝑓𝑓𝑠𝑒𝑡 )
𝑔= (13)
𝑚
Tendo encontrado o valor do ganho é possível realizar o cálculo do torque exercido pelo
freio de Foucault considerando o valor da aceleração da gravidade para a conversão do valor
em quilogramas para newtons e também a medida de distância (𝑑) do centro do eixo do motor
até a extremidade onde é realizada a força na célula de carga obtendo assim o troque em 𝑁 ∙ 𝑚.
O cálculo é realizado pela seguinte equação:
Fonte: Autor.
46
Para obter medições confiáveis e precisas é desejado que as leituras sejam realizadas de
forma periódica. É possível obter tal precisão de tempo utilizando-se da base tempo utilizada
no processamento dos microcontroladores para realizar rotinas de interrupção nas quais são
realizadas as medições. Desta forma, uma rotina de interrupção é executada toda vez que
ocorrer o estouro do timer (overflow), ou seja, quando a contagem do respectivo timer chegar
ao seu valor máximo e retornar para zero. O tempo necessário para que este incremento ocorra
pode ser configurado por meio dos valores atribuídos aos registradores do microcontrolador e
tem relação direta com o clock do mesmo.
Na plataforma Arduino o microcontrolador Atmega é interligado a um cristal oscilador
de quartzo de 16 MHz, o que significa um período base de 62,5 microssegundos. Sabendo disso,
o Timer 2 do microcontrolador atmega 328P foi configurado para o modo de contagem
crescente, conforme exposto na tabela 1, para que a contagem completa de 8 bits ocorra a cada
1 milissegundo, fornecendo a base de tempo precisa para a execução das rotinas de interrupção.
Este tempo ainda pode ser multiplicado incrementando ao código uma variável auxiliar de
contagem, permitindo tempos maiores entre as medições.
Para obter as informações do sinal de onda quadrada gerado pelo encoder é necessário
que o microcontrolador identifique sempre que houver a mudança de estado lógico na porta
designada para a leitura, de modo a incrementar a variável que armazena o número de pulsos.
Para tal é necessário que este registro se dê por meio de uma interrupção externa, pois caso
contrário a contagem dos pulsos fica presa a execução dos demais blocos da programação.
O microcontrolador da placa Arduino possui duas entradas disponíveis para a função de
interrupção externa, os pinos 2 e 3, nos quais é possível operar de 4 formas distintas. Quando
47
configurado em LOW passa-se a acionar a interrupção sempre que o pino esteja em estado
lógico baixo. No modo CHANGE a execução a interrupção ocorre em qualquer transição de
estado lógico. Já os modos RISING e FALLING requisitam a interrupção respectivamente
quando o pino mudar de nível lógico baixo para alto e quando mudar o estado lógico alto para
nível baixo (ARDUINO, 2019b). Para que o valor atribuído à variável que armazena a contagem
de pulsos coincida com o número real de pulsos produzidos pelo encoder durante o período de
tempo estabelecido, podemos utilizar apenas os dois últimos modos acima citados.
A interrupção externa utilizada foi configurada para o pino monitor o pino 3 no modo
RISING. A variável de contagem é incrementada continuamente até que ocorra o cálculo da
velocidade (requisitado pela interrupção interna), neste momento a função calcula a velocidade
angular e zera novamente a variável.
𝑇𝑚𝑒𝑑
𝐸 = 𝑟𝑒𝑓 − ( ) (15)
𝑇𝑛𝑜𝑚
Com base no erro obtido, na taxa de amostragem (𝑇𝑠) e nos ganhos proporcional (𝐾𝑝)
e integral (𝐾𝑖) arbitrados pelo operador são calculadas as ações proporcional (𝑃) e integral (𝐼)
por meio das equações 16 e 17 respectivamente.
𝑃 = 𝐾𝑝 ∙ 𝐸 (16)
𝐼 = 𝐾𝑖 ∙ 𝐸 ∙ 𝑇𝑠 + 𝐼𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟 (17)
A saída de controle é então dada pela soma das duas ações corretivas e limitada entre 0
e 1 por meio do software. Caso o ganho exceda o limite superior o ganho integral é descarregado
por meio da técnica de anti-windup evitando a saturação do mesmo.
49
4. ENSAIOS E RESULTADOS
Fonte: Autor.
Fonte: Autor.
Por fim foram adicionados o módulo HX711 e a célula de carga, ambos responsáveis
pela medição de torque (figura 25). Para fixar a célula de carga foi necessário perfurar o suporte
existente de modo que a mesma ficasse em contato com a estrutura de sustentação das bobinas.
Fonte: Autor.
Fonte: Autor.
52
Como esperado a medição realizada pelo tacômetro apresentou ótimos resultados com
erro máximo inferior a 1,2 %. Já para as medidas realizadas com o encoder foram encontradas
altas taxas de erro em medições em baixas velocidade, sendo pior no caso do código que
abrange todas as funções do projeto. As possíveis causas deste erro na medição podem estar
associadas ao método de coleta de dados e cálculo da velocidade empregados, que se baseiam
em uma base de tempo de tempo fixa. Mesmo com a utilização de interrupções o processador
apresenta certo atraso na execução das tarefas que contribuem com o aumento do erro à medida
que a velocidade de rotação diminui.
Após uma análise mais detalhada na execução de cada uma das funções executadas pelo
microcontrolador, foi descoberto que o grande percentual de erro registrado na medição de
velocidade com a utilização do código final é causado pela falha na execução das interrupções
externas. Observou-se que o processador deixa de registrar as interrupções externas enquanto
realiza a comunicação com o módulo responsável pela conversão do valor medido pela célula
de carga. Para minimizar este erro foi utilizado um tempo de amostragem maior passando de
10 para 100 milissegundos.
Fonte: Autor.
O mesmo fato observado no teste da partida com inversor foi observado na partida direta
(figura 28), com uma pequena diferença no tempo necessário para atingir o valor de referência
que neste caso foi um pouco maior, cerca de 40 segundos. A principal causa deste tempo mais
elevado para a resposta do sistema está associada a diferença do nível de tensão na entrada do
conversor chopper, enquanto realizou-se o teste anterior alimentando-o com uma tensão de 120
V, neste ensaio foi disponibilizado apenas 100 V. Percebe-se que esta diferença é compensada
pelo sistema aumentando-se a saída PI.
Fonte: Autor.
54
Por fim foi utilizado o inversor novamente para gerar uma variação de velocidade no
sistema. Neste ensaio o motor foi acionado e ficou em funcionamento por cerca de 100
segundos com velocidade de 1650 RPM, após este tempo a velocidade do inversor foi alterada
subitamente para 900 RPM permanecendo nesta condição até ocorrer o encontro do torque
medido com a referência imposta. Logo em seguida a velocidade foi alterada novamente
passando para 1800 RPM (figura 29).
Fonte: Autor.
A tensão de alimentação das bobinas do freio de Foucault tem relação direta com o
conjugado resistente imposto pelo motor. Como o objetivo do controle utilizado é manter o
torque próximo da referência estabelecida o sistema foi ainda analisado sob a condição de
variação da tensão de entrada do conversor chopper.
O primeiro ensaio realizado foi em à aplicação de dois distúrbios, após estar o sistema
em regime permanente. O primeiro distúrbio imposto foi negativo, decrescendo a tensão de 120
para 90 volts em um intervalo de 5 segundos, neste período ocorreu a diminuição do torque e
logo em seguida o controle atua para corrigindo o erro. Após o sistema atingir a referência de
torque aplicou-se o segundo distúrbio, elevando a tensão aplicada instantaneamente até a tensão
inicial. A variação repentina de tensão causo uma certa oscilação na saída do controle, mas não
a ponta de torna-lo instável. Em ambos a resposta foi consideravelmente lenta com um tempo
de reestabelecimento de 40 segundos aproximadamente com é possível ver na figura 31.
56
Fonte: Autor.
Para a realização do segundo ensaio o ganho integral foi aumentado de Ki foi aumentado
de 1,2 para 3 com a expectativa de diminuir o tempo de resposta do controle. Logo após a
partida do motor a tensão de entrada do conversor chopper foi gradualmente reduzida de 120
para 80 volts. Como era esperado houve uma significativa melhora no tempo de resposta do
sistema, e por se tratar de um distúrbio em forma de rampa a saída do controle foi corrigida
quase instantaneamente com um pequeno desvio quando a variação se torna mais acentuada
como é visto na figura 32.
Fonte: Autor.
57
Para o último ensaio, ao invés de uma referência fixa, adotou-se uma referência
proporcional a velocidade de rotação do eixo do motor, assim como uma carga linear. Como o
inversor de frequência apresentou grande interferência na medição de velocidade e poderia
gerar instabilidade no sistema, este teste foi realizado apenas com uma partida direta. A
referência foi fixada em 50 % em relação ao percentual de rotação do motor como é visto na
figura 33.
Fonte: Autor.
5 CONSIDERAÇÕES FINAIS
REFERÊNCIAS
AHMED, A. Eletrônica de Potência. 1. ed. São Paulo: Pearson Prentice Hall, 2000.
ALMEIDA, F. O que é Encoder? Para que serve? Como escolher? Como interfacear?
Disponível em: <https://www.hitecnologia.com.br/blog/o-que-é-encoder-para-que-serve-
como-escolher-como-interfacear/>. Acesso em: 15 jun. 2018.
HBM. Então... Como uma célula de carga realmente trabalha? Disponível em:
<https://www.hbm.com/pt/6768/como-uma-celula-de-carga-trabalha/>. Acesso em: 10 jun.
2019.
//==================================================================
#define n_furos 20 // Número de furos no encoder
#define Pin_VEL 3 // Pino de entrada do sinal do encoder
#define Pin_DT 8 // Configuração dos pinos para o modulo HX711
#define Pin_SCK 9 //
#define fator_calibracao 395107 // Ganho do sensor para medição em kg
#define Pin_REF A5 // Pino de referência de torque
#define Pin_LED 13 // Pino de monitoração do estouro do timer
#define OverflowTime 4000 // Tempo de estouro do timer em us
#define tempo 25 // Multiplicador do estouro do timer
#define Pin_PWM 6 // Definição dos pinos de saída do PWM
#define frequency 3 // 1 = 62.5 kHz 4 = 976.56 Hz 7 = 61.03 Hz
// 2 = 7.81 kHz 5 = 488.28 Hz
// 3 = 1.95 kHz 6 = 244.14 Hz
#define Ts 0.1 // Ts - taxa de amostragem
#define Kp 1.2 // Ganho proporcional
#define Ki 3 // Ganho integral
#define torque_nominal 6.14 // Torque nominal
//==================================================================
#include <HX711.h> // Adiciona as bibliotecas ao codigo
#include <Wire.h> //
#include <LiquidCrystal_I2C.h> //
//==================================================================
HX711 escala; // Declaração do objeto escala na classe HX711 da biblioteca
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Declaração do display
float saida_PI , //
saida_P , //
saida_I , //
66
erro , //
I_anterior = 0 ; //
//==================================================================
unsigned long int TimeAuxInt = 255 - ((OverflowTime)>>4);
//Variavel Auxiliar calcula o valor do registrador do timer para criar a base de tempo da
interrupção
//==================================================================
void contador() ; // Incremento do contador
void velocidade() ; // Cálculo de velocidade
void strain_gauge () ; // Leitura do Sensor de Peso
void controle () ; // Função de controle
//==================================================================
67
void setup ()
{
//==================================================================
pinMode ( Pin_REF , INPUT ); // Configuração das I/Os
pinMode ( Pin_PWM , OUTPUT );
pinMode ( Pin_LED , OUTPUT );
pinMode ( Pin_VEL , INPUT );
digitalWrite( Pin_LED , LOW);
pinMode ( 11 , OUTPUT );
pinMode ( 12 , OUTPUT );
digitalWrite ( 11 , LOW );
digitalWrite ( 12 , HIGH );
//==================================================================
Serial.begin(9600); // Inicializa a comunicação serial
Serial.println ("a, b, c, d");
lcd.begin (16, 2); // Inicializa o display LCD 16x2
lcd.setBacklight(HIGH); // Liga a luz de fundo do LCD
//==================================================================
==============================================
escala.begin (Pin_DT, Pin_SCK); // Inicialização e definição dos pinos DT e
SCK dentro do objeto ESCALA
escala.tare(); // Zera a escala
escala.set_scale(fator_calibracao); // Ajusta a escala para o fator de calibração
//==================================================================
attachInterrupt(digitalPinToInterrupt(Pin_VEL), contador, RISING);
//==================================================================
SREG &= ~(0x80); // Desabilita interrupção global (Fabricante
recomenda desabilitar durante a configuração)
TCCR2A = 0x00; // Habilita o modo de contagem crescente
(Encontrado no Datasheet do 328P como Normal Mode)
68
//==================================================================
TCCR0A = 0xA3; // Configura operação em fast PWM,
utilizando registradores OCR0x para comparação -> 1010 0011 = 0xA3
TCCR0B = frequency; // Define a frequência do PWM -> Ver
menu acima
OCR0A = 0x00; // inicializa os comparadores OCR0A e
OCR0B em 0x00
OCR0B = 0x00; //
}
//==================================================================
void loop()
{
Serial.print (" ");
Serial.print (torque_ref*100); //
Serial.print (" "); //
Serial.print (torque_med*100); //
Serial.print (" "); //
Serial.print (saida_PI * 100); //
Serial.print (" "); //
Serial.println ((rpm/1800)* 100); //
lcd.setCursor(1, 0);
lcd.print("Ref: ");
lcd.setCursor(5, 0);
lcd.print (torque_ref*100);
lcd.setCursor(7, 0);
lcd.print("T: ");
lcd.setCursor(12, 0);
69
lcd.print (torque_med*100);
lcd.setCursor(1, 1);
lcd.print("Vel: ");
lcd.setCursor(5, 1);
lcd.print (rpm);
delay(50); //
}
//==================================================================
ISR(TIMER2_OVF_vect) // Interrupção do Timer2
{
cont++ ;
if(cont == (tempo)) // Multiplicador do estouro do Timer2
{
velocidade (); //
strain_gauge(); //
controle(); //
// PWM (); //
cont = 0; // Reset do contador de Velocidade
}
//==================================================================
void velocidade() { // Cálculo de velocidade
rpm_old2 = rpm_old ;
rpm_old = rpm_now ;
70
rpm_now = (pulsos*60*1000)/(n_furos*tempo*4); //
rpm = (rpm_old + rpm_now + rpm_old2 )/3 ;
pulsos = 0; //
}
//==================================================================
void strain_gauge () {
if (escala.is_ready()) // Verifica se o modulo está pronto para
realizar leituras
{
ad2 = (escala.get_units(5)) ; // Retorna a média de 5 leituras da
variável escala com a unidade kg
}}
//==================================================================
void controle () {
//ad1 = analogRead(Pin_REF); //
//torque_ref = (ad1+1)/1024; // Torque de referência gerado por um
potênciometro e converte pra pu
torque_ref = 0.5 * (rpm/1800); // Torque de referência
torque_med = ad2/(torque_nominal) ; // Recebe a medição torque e
converte pra pu
erro = torque_ref - torque_med ; // Cálculo do erro
saida_I = (Ki*Ts*erro) + I_anterior ; // Cálculo da saída integral
saida_P = Kp*erro ; // Cálculo da saída proporcional
saida_PI = saida_P + saida_I ; // Saída PI
if( saida_PI > 1.0 ) I_anterior = ((Ki*Ts*erro)+ 1 - saida_PI);
else I_anterior = saida_I ; // Acumulador do integrador