controldor pid para velocidade angular de um motor de corrente contínua
DESCRIPTION
Trabalho de conclusão de curso em engenharia elétrica sobre um controlador PID para velocidade angular de um motor de corrente contínua.TRANSCRIPT
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 1/38
DEPARTAMENTO DE ENGENHARIA ELÉTRICA
TRABALHO DE CONCLUSÃO DE CURSO
CONTROLADOR PID PARA VELOCIDADE ANGULAR
DE UM MOTOR DE CORRENTE CONTÍNUA
Gustavo Scaldini Schaeffer0609549-6
Orientador: Prof. Samir Angelo Milani Martins
São João del Rei, novembro de 2014
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 2/38
UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL REI
DEPARTAMENTO DE ENGENHARIA ELÉTRICA
TRABALHO DE CONCLUSÃO DE CURSO
CONTROLADOR PID PARA VELOCIDADE ANGULAR
DE UM MOTOR DE CORRENTE CONTÍNUA
São João del Rei, novembro de 2014
Trabalho de Conclusão de Curso apresentado
ao Departamento de Engenharia Elétrica da
Universidade Federal de São João del Rei comoum dos requisitos para obtenção de título de
Bacharel em Engenharia Elétrica.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 3/38
Agradecimentos
À minha família pelo apoio e principalmente aos meus pais pela oportunidade que mederam de poder estudar.
À minha namorada Daniela por estar do meu lado nos bons e maus momentos.
Aos meus amigos e principalmente a minha segunda família, República Bar do Moe.
Ao professor Samir, pela orientação.
Aos técnicos administrativos do laboratório de controle: Alexandre e João.
À UFSJ, pela formação profissional e social.
Ao Rodrigo da Inter Car Sound por ter fornecido o material para a confecção do suporte.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 4/38
Resumo
O trabalho aborda um estudo de controle de velocidade angular de um motor de correntecontínua utilizando microcontrolador, neste caso utilizou-se a plataforma Arduino®. Para isso
foi desenvolvido fisicamente um protótipo composto de uma base, e nela fixados um motor de
corrente contínua e um sensor infravermelho. O sensor infravermelho foi usado para se medir
a saída, que é comparada com a entrada, após isso o controlador atua devido a diferença entre
entrada e saída, sendo que essa diferença é chamada de erro. O controle foi feito usando as
ações proporcional, integral e derivativa, mais conhecido como controlador PID. Para a sintonia
do controlador PID foi usado um modelo de primeira ordem com atraso puro de tempo, sendo
que este modelo foi obtido com a ajuda de ensaios feitos no laboratório. Posteriormente com o
software Matlab® foi calculado os parâmetros do controlador usando este modelo. Para a
construção de um supervisório SCADA, foi utilizado o software Processing 2®. O presente
trabalho também faz uma abordagem da técnica de modulação por largura de pulso ( PWM ).
Palavras Chave: PID, Arduino, Motor CC, sensor infravermelho, PWM.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 5/38
Sumário
1. INTRODUÇÃO ............................................................................................................................. 7
2. OBJETIVO .................................................................................................................................... 8
3. REVISÃO BIBLIOGRÁFICA ..................................................................................................... 8
3.1 Máquinas Elétricas Rotativas .................................................................................................. 8
3.1.1 Motor de corrente contínua ............................................................................................. 9
3.2 Controle ................................................................................................................................. 10
3.3 Instrumentação e Medidas ..................................................................................................... 11
3.4 Microcontroladores ............................................................................................................... 11
3.5 PWM ...................................................................................................................................... 12
4. METODOLOGIA ....................................................................................................................... 13
4.1 Suporte .................................................................................................................................. 14
4.2 Sistema de controle ............................................................................................................... 15
5. RESULTADOS ............................................................................................................................ 25
6. CONCLUSÃO ............................................................................................................................. 27
7. PROPOSTAS DE TRABALHOS FUTUROS .......................................................................... 28
8. REFERÊNCIA BIBLIOGRÁFICA ........................................................................................... 29
9. ANEXO ........................................................................................................................................ 30
9.1 ALGORITMO ....................................................................................................................... 30
9.2 CUSTO DO PROJETO ......................................................................................................... 35
10. ASSINATURAS ....................................................................................................................... 37
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 6/38
Lista de figuras
Figura 1 - Experimento de Michael Faraday ............................................................................................ 9
Figura 2 - Controlador centrífugo de James Watt ................................................................................. 10
Figura 3 - Primeiro microcontrolador, o TMS 1000 ............................................................................... 12
Figura 4 - Modulação por largura de pulso do Arduino® ...................................................................... 13
Figura 5 – Dimensões da base do suporte ............................................................................................ 14
Figura 6 - (a) Dimensões do suporte do motor. (b) Dimensões do suporte do sensor infravermelho. 14
Figura 7 - Suporte já envernizado com os sensores e motor fixados. ................................................... 15
Figura 8 - Simulação de como é feito a contagem das voltas. .............................................................. 16
Figura 9 - Gráfico da resposta ao degrau de 2V, com o algoritmo contando o tempo de 5 voltas para
calcular a velocidade ............................................................................................................................. 18Figura 10 - Comparação entre a curva obtida pela média dos 20 ensaios ao degrau e a curva relativa
ao modelo obtido .................................................................................................................................. 19
Figura 11 - Comparação entre a curva obtida pela média dos 20 ensaios ao degrau e a curva relativa
ao modelo obtido considerando o atraso puro de tempo .................................................................... 20
Figura 12 - Arquitetura de controle usada para o projeto. ................................................................... 21
Figura 13 - Circuito usado no projeto .................................................................................................... 22
Figura 14 - Esquema elétrico do circuito usado no projeto .................................................................. 24
Figura 15 - Parte gráfica do controle feito pelo controlador PID .......................................................... 25
Figura 16 - Parte gráfica do controle feito pelo controlador PI sintonizado pelo Matlab .................... 26
Figura 17 - Parte gráfica do controle feito pelo controlador PI com os parâmetros escolhidosaleatoriamente ...................................................................................................................................... 26
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 7/38
Lista de tabelas
Tabela 1 – Regra de 3 exemplificando como é calculado a velocidade angular do motor................... 17
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 8/38
7
1. INTRODUÇÃO
A Engenharia de Controle é a área da engenharia responsável pela eficiência de um
processo industrial. Apesar do controle moderno ter sido idealizado para processos industriais,
ele está sendo utilizado em vários outros setores na sociedade, como por exemplo nas
residências, na saúde, no transporte, no comércio e nos serviços públicos e privados.
Os controladores que utilizam as ações proporcional, derivativa e integral são chamados
de controladores PID. Segundo a professora Ninoska Bojorge do Departamento de Engenharia
Química e de Petróleo da Universidade Federal Fluminense, os controladores PID são
predominantes nas indústrias. Isso se deve ao seu bom desempenho para diversos tipos de
processos industriais e sua simplicidade de funcionamento. Porém, deve-se haver um cuidado
ao se sintonizar um controlador, se mal sintonizado ele pode prejudicar o processo, gerando
perdas e ineficiência na produção.
Devido ao seu pequeno tamanho e preço, o microcontrolador é bastante usado em
projetos acadêmicos e industriais, com ele é possível criar uma enorme gama de sistemas
embarcados. Um microcontrolador é basicamente um componente eletrônico que é
programável e tem a função de controlar periféricos (led ’s, botões, relês, sensores, etc.). Neste
trabalho será usado o Arduino Uno R3, uma placa de prototipagem eletrônica de código aberto
projetada com um microcontrolador ATmega328.
O Arduino® foi criado em janeiro de 2005 na Itália pelos professores de Computação
Física, David Cuartielles e Massimo Banzi, com o objetivo de criar uma plataforma de
hardware que fosse facilmente programável por não especialistas em computadores. A
estrutura da linguagem de programação do Arduino® é formada por dois blocos de funções:
setup() e loop(). Essas funções carregam outros blocos de funções que são escritas na linguagem
C/C++. O Arduino® ainda possui poderosos acessórios, chamados Shields, placas de circuitos
que são plugadas no próprio Arduino® estendendo sua capacidade.A maioria dos processos industriais utilizam motores, e muitos desses processos
necessitam operar com velocidade variável. Assim, torna-se necessário controlar a velocidade
angular desses motores. Os motores de corrente contínua foram os primeiros motores a serem
utilizados nas indústrias, e um dos principais motivos pelo qual eles ainda são usados, mesmo
após o surgimento de acionamentos baseados na eletrônica de potência para controlar os
motores de corrente alternada, é a facilidade de controle da velocidade angular desses motores.
A velocidade é uma das principais grandezas físicas já medidas pelos seres humanos.Essa grandeza é proveniente da relação entre duas das sete grandezas físicas fundamentais:
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 9/38
8
distância e tempo. A velocidade angular relaciona o deslocamento circular que um objeto faz
em relação à um centro de massa, com a grandeza física tempo. No Sistema Internacional de
Unidades a velocidade angular tem como unidade o rad/s, porém é mais comumente usado o
rpm (rotações por minuto).
2. OBJETIVO
O objetivo deste trabalho é controlar a velocidade angular de um motor de corrente
contínua através de um controlador PID. Para isso será utilizado um motor de corrente contínuacom escovas de tensão nominal igual a 3 Volts, um sensor infravermelho e um
microcontrolador. Para a sintonia do controlador PID será utilizado o software Matlab®.
Acoplado no eixo do motor de corrente contínua estará uma hélice de 4 pás, necessária para o
sensoriamento da velocidade do motor de corrente contínua.
3. REVISÃO BIBLIOGRÁFICA
3.1 Máquinas Elétricas Rotativas
As máquinas elétricas rotativas são os verdadeiros transformadores. Um transformador
não converte a energia, apenas a eleva ou diminui. Já as máquinas elétricas rotativas convertem
a energia. Se a conversão for de mecânica para elétrica, a máquina elétrica rotativa é chamadade gerador. Se a conversão é de elétrica para mecânica, a máquina elétrica rotativa é chamada
de motor. Sendo que a mesma máquina elétrica pode agir tanto como motor quanto gerador.
As máquinas elétricas são classificadas em máquinas de corrente contínua e máquinas
de corrente alternada, sendo que existem dois tipos de máquinas de corrente alternada: as
síncronas e as assíncronas. Embora haja essas divisões, os princípios físicos que fazem as
máquinas elétricas funcionarem são bastante parecidos.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 10/38
9
3.1.1 Motor de corrente contínua
O motor de corrente contínua é uma máquina elétrica rotativa que converte potência
elétrica em mecânica. O primeiro motor de corrente contínua surgiu em 1821 criado pelo físico
e químico inglês Michael Faraday (1791 – 1867). Faraday resolveu fazer experimentos para
confirmar ou refutar os resultados dos estudos de dois grandes cientistas: Oersted e Ampère.
O físico e químico dinamarquês Hans Christian Oersted (1777 – 1851) em 1820,
publicou um trabalho onde defendia a ideia de que uma corrente elétrica passando por um fio
condutor produzia um efeito magnético circular ao redor desse fio.
Após a publicação do trabalho de Oersted, o físico, filósofo e matemático francês André
Marie Ampère (1775 – 1836) resolveu estudar sobre tais descobertas. Assim, em 18 de setembro
de 1820, demonstrou que as correntes elétricas se atraem ou se repelem mutuamente.
Posteriormente, em outubro de 1821, Faraday usou uma base na qual existia um fio,
pelo qual passava uma corrente, que girava ao redor de um imã, criando assim um motor elétrico
na sua forma mais simplificada.
Figura 1 - Experimento de Michael Faraday. Extraído de Elektrotechnisches Institut (ETI). The invention of the electric motor
1800-1854.1
1 Disponível em: < http://www.eti.kit.edu/english/1376.php > Acesso em novembro de 2014.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 11/38
10
3.2 Controle
O controle automático surgiu no século XVIII, quando o matemático, engenheiro e
inventor escocês, James Watt (1736 – 1819) construiu um controlador centrífugo para controlar
a velocidade de uma máquina a vapor, como podemos ver na imagem abaixo:
Figura 2 - Controlador centrífugo de James Watt. Extraído de The centrifugal governor. 2
Segundo a tradução do texto do site “Centrifugal governor ”3, a energia é fornecida para
o controlador a partir do eixo de saída do motor por meio de uma correia ligada à roda da correia
inferior. O controlador está conectado a uma válvula borboleta que regula o fluxo de fluido de
trabalho que abastece o motor principal. À medida que a velocidade do motor principal
aumenta, o eixo central do controlador gira a uma taxa mais rápida e a energia cinética das bolas
aumenta. Isso permite que os dois braços de alavanca se movam para fora e para cima, contra
a gravidade. Se o movimento for suficiente, este movimento faz com que os braços de alavanca
puxem para baixo um rolamento de empuxo, que move um eixo de ligação, que, por sua vez,
reduz a abertura da válvula borboleta. A taxa de fluido de trabalho que entra no cilindro é assim
reduzida e a velocidade do motor principal é controlada, evitando um excesso de velocidade.
2 Disponível em: < http://www.e-den.it/fisica/calizzano/regole.htm > Acesso em novembro de 2014.3
Disponível em: < https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Centrifugal_governor.html >Acesso em novembro de 2014.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 12/38
11
3.3 Instrumentação e Medidas
A área de instrumentação e medidas é fundamental para se controlar processos
industriais. É necessário conhecer a saída de um sistema para que um dispositivo de controle
possa tomar as providencias necessárias, em controle essa ação é chamada de realimentação do
processo. Essa realimentação é feita por sensores, que medem grandezas físicas e retornam
valores analógicos ou digitais que serão tratados e enviados à um comparador que irá comparar
os valores desejados com os valores medidos. Após essa etapa o controlador atua no sistema.
Assim como o controle moderno, a área de instrumentação e medidas está sendo
utilizada em outros setores da sociedade além da indústria. Podemos ver a atuação da
instrumentação na área biomédica, sendo usada no monitoramento dos pacientes nos hospitais,
tanto como em clínicas e laboratórios de análise. E essa parece ser a tendência das inovações
nas áreas de engenharia que aparecem nas industrias, dar mais conforto e melhorar a vida dos
seres humanos.
A instrumentação surgiu com a necessidade de diminuir o número de acidentes com
explosões causadas pelas primeiras máquinas a vapor. Assim os primeiros sensores criados
foram os que mediam a pressão nas caldeiras. [12]
3.4
Microcontroladores
O microprocessador é um circuito integrado que controla as operações como um todo
interpretando e executando as instruções dos programas. Para que isso ocorra, é necessário se
conectar vários componentes ao microprocessador. Já o microcontrolador é um circuito
integrado mais completo, composto por uma unidade de processamento (CPU ), memórias de
programas ( ROM , RAM , FLASH ), diversos módulos para controle de periféricos
(temporizadores, porta serial, conversor digital-analógico, conversor analógico-digital) e umcircuito gerador de clock .
Segundo o Instituto Smithsoniano, o primeiro microcontrolador foi inventado em 1971
por Gary Boone e Michael Cochram, engenheiros da Texas Instruments®. O nome dado para
esse microcontrolador foi TMS 1000, sendo que ele era de 4 bits e possuía memórias ROM e
RAM . Inicialmente utilizado apenas internamente pela empresa nas suas calculadoras, foi
colocado à venda em 1974, sendo que em 1983 já tinham sido vendidos 100 milhões de TMS
1000. [8]
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 13/38
12
Hoje em dia há uma infinidade de modelos de microcontroladores no mercado.
Deixando assim na mão do projetista a escolha do microcontrolador a ser utilizado. Dois dos
principais fatores que pesam nessa decisão do projetista são: consumo de energia e velocidade
de processamento. Um exemplo seria a escolha de microcontroladores para um celular da nova
geração e para um abridor de garrafas musical, o celular necessita de um microcontrolador bem
mais rápido do que o abridor de garrafas.
Figura 3 - Primeiro microcontrolador, o TMS 1000. Extraído de Computer Museum. Chip – TI TMS 1000 Microcontroller
(1972).4
3.5
PWM
Modulação por largura de pulsos, ou PWM ( Pulse-Width Modulation) na língua inglesa,
é uma técnica usada para gerar tensões analógicas a partir de uma sequência de pulsos digitais.
Graças ao PWM podemos controlar a velocidade dos motores, mantendo o torque ainda que em
baixas velocidades o que garante partidas suaves mesmo quando há uma carga maior sobre os
motores.
A forma de onda de um sinal PWM é quadrada, com frequência fixa e com a largura de
seus pulsos variável. Esta variação é feita mudando o tempo em que o sinal fica em nível logico
alto. Com isso podemos controlar a tensão média gerada. Para calcular essa tensão média
primeiro tem-se que calcular a porcentagem de ciclo de trabalho de acordo com a seguinte
fórmula:
% ℎ 100 (1)
Onde t1 representa a duração do pulso, e t representa a duração de um ciclo.
4 Disponível em: < http://www.computermuseum.li/Testpage/Chip-TexasInstrumentsTMS1000.htm > Acessoem novembro de 2014.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 14/38
13
A seguir é multiplicado o valor da % do ciclo de trabalho pela tensão de nível logico
alto da porta PWM , que no Arduino® é de 5V. Então, a tensão média gerada por uma porta do
Arduino® que use PWM varia de 0V até 5V, dependendo da % do ciclo de trabalho. Essa tensão
média é representada por um valor analógico, que varia de 0 a 255 no Arduino®, como podemos
ver na figura abaixo:
Figura 4 - Modulação por largura de pulso do Arduino®. Extraído de Arduino. Tutorial sobre PWM.5
4. METODOLOGIA
Neste trabalho foi desenvolvido fisicamente um protótipo de um sistema de controle de
velocidade angular de um motor de corrente contínua. Sendo assim o primeiro passo foi fazer
uma lista dos componentes necessários. Após a lista feita foi comprado via internet todos os
componentes. Com a chegada e inspeção dos componentes se viu necessário fabricar um
suporte para que os sensores e o motor ficassem na mesma altura, esperando assim que a leitura
do sensor fosse a melhor possível. Assim, o projeto foi separado em 2 partes: construção do
suporte e elaboração do sistema de controle.
5 Disponível em: < http://arduino.cc/en/Tutorial/PWM > Acesso em novembro de 2014
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 15/38
14
4.1 Suporte
Muitos fatores foram contemplados para a fabricação do suporte, e uma delas foi o
tamanho de uma pá da hélice. O motor teria que estar a uma altura mínima para que a hélice
não batesse ou raspasse na superfície, e essa altura foi um pouco maior que o comprimento de
uma pá da hélice.
O suporte foi feito de aglomerado de madeira com as dimensões a seguir:
Figura 5 – Dimensões da base do suporte.
Figura 6 - (a) Dimensões do suporte do motor. (b) Dimensões do suporte do sensor infravermelho.
Posteriormente ele foi envernizado e pode ser visto já com os sensores e o motor fixado
na figura a seguir.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 16/38
15
Figura 7 - Suporte já envernizado com os sensores e motor fixados.
4.2
Sistema de controle
O sistema de controle é composto por: Arduino®, hélice, sensor infravermelho,
transistor, resistor e fonte de alimentação. Tentou-se usar um sensor ultrassônico porém o
resultado não foi satisfatório.
A hélice foi o elemento que mais apresentou problemas durante este trabalho.
Inicialmente seria composta apenas por duas pás, porém se viu a necessidade de aumentar o
número de pás da hélice para aumentar a precisão da velocidade angular medida. Assim surgiua ideia de fazer uma hélice com quatro pás. Então foi feita uma hélice de quatro pás usando
uma tampa de pote de sorvete. Foi verificado com alguns testes, que a hélice estava se movendo
no seu próprio eixo, assim foi usado cola super bonder para se fixar a hélice ao eixo do motor
de corrente contínua. Mesmo assim o resultado obtido não era o esperado, pois o material que
constituía a tampa de pote de sorvete era muito maleável, com isso não se podia garantir que as
pás estavam na mesma distância do sensor, e que todas eram captadas pelo mesmo.
Portanto, se viu a necessidade de se usar um outro tipo de hélice, feita de um material
mais rígido e onde suas pás ficassem retas e na mesma distância do sensor. Então foi testado
uma hélice de duas pás usada em aeromodelismo, porém os sensores não conseguiam detectar
esta hélice por ela ser curva, construída assim para dar maior propulsão para os aeromodelos.
Assim se teve a necessidade de procurar uma hélice que contemplava todas as necessidades e
que não apresenta-se nenhum aspecto negativo para o sensoriamento da velocidade angular,
portanto a hélice deveria ser de material rígido, suas pás deveriam estar no mesmo plano para
que ficassem na mesma distância do sensor, e essa hélice não poderia girar no seu próprio eixo.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 17/38
16
Finalmente foi construída uma hélice usando dois palitos de picolé, sendo que um palito
foi usado como base e o outro foi cortado em dois pedações e colado no meio do outro palito
respeitando as distâncias para que as pás tivessem o mesmo tamanho. Para que essa hélice não
gira-se no seu próprio eixo foi usado um objeto usado em aeromodelismo chamado salva-hélice.
O sensor infravermelho usado foi o E18-D50NK, ele é um sensor digital simples,
apresentando apenas dois estados de saída: baixo ou alto. Quando esse sensor detecta o objeto
o nível da sua saída é baixo e acende um led atrás do sensor, quando não detecta o objeto o
nível da sua saída é alto. Sua sensibilidade e distância máxima medida são calibrados por um
parafuso atrás do sensor, sendo este parafuso um potenciômetro. Ele consegue detectar objetos
a uma distância de 3 até 50 cm. Por se tratar de um sensor infravermelho ativo, ele possui um
emissor e um receptor. O emissor emite uma luz que é refletida ou não dependendo da cor e
constituição do objeto, e assim é ou não captada pelo receptor. Este sensor serve tanto como
detector de presença como medidor de distância.
Para o cálculo da velocidade angular do motor, a hélice foi tratada como um tipo de
encoder, sendo necessário usar a técnica de interrupções para detectar as mudanças de estado
na entrada digital da porta escolhida do Arduino®. A função interrupção é muita em
microcontroladores, ele nada mais é que um aviso ao microcontrolador que um evento pré-
programado ocorreu e que o controlador deve suspender temporariamente suas tarefas de rotina
e saltar para uma rotina de tratamento dessa interrupção. No caso desse projeto o evento seria
a mudança de estado na entrada digital 2 do Arduino® e a rotina de tratamento dessa interrupção
seria um acumulador que somaria em uma variável o número de vezes que a função interrupção
foi executada. Assim, o programa enxerga que o motor deu uma volta quando a variável que
conta o número de interrupções é igual a 9, como podemos ver na imagem abaixo:
Figura 8 - Simulação de como é feito a contagem das voltas.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 18/38
17
Supondo que quando o sensor detecta o objeto a saída dele seja 0, e quando não detecta
seja 1.Supondo também que o sensor está lendo na faixa da risca preta, para se garantir que a
hélice deu 1 volta, é preciso que a saída do sensor seja alterada 9 vezes, sendo a sequência 1-0-
1-0-1-0-1-0-1-0.
Na primeira versão do algoritmo, era contando o número de vezes que houve variação
na saída do sensor durante 1 segundo. Depois o resultado era dividido por 9 e multiplicado por
60, obtendo assim a velocidade angular em rpm. Porém, percebeu-se a necessidade de mudar o
algoritmo para que fosse possível fazer o modelo do processo, assim na versão final do
algoritmo, era contado o tempo em milissegundos que demorava para o sensor ler “n” voltas e
então era feita uma regra de 3 simples, sendo que as grandezas são diretamente proporcionais,
para o cálculo da velocidade angular. Supondo que o sensor demora-se 100 milissegundos para
ler 5 voltas, a velocidade angular do motor em rpm no momento na medição seria calculada da
seguinte forma, lembrando que 1 minuto tem 60000 milissegundos:
5 voltas 100 milissegundos
Rpm 60000 milissegundos
Tabela 1 – Regra de 3 exemplificando como é calculado a velocidade angular do motor
Obtendo assim, o seguinte valor de Rpm:
3000 [] (2)
Após o sistema de sensoriamento estar funcionando, o próximo passo era sintonizar o
controlador PID. O método escolhido para a sintonia do controlador PID é baseado no modelo
do processo. Como o modelo matemático de um motor de corrente contínua envolve variáveismuitas vezes não fornecidas pelos fabricantes dos micromotores, e mesmo assim são
extremamente complicadas de se obter por ensaios, a saída foi fazer uma aproximação para um
modelo de primeira ordem.
Um sistema de primeira ordem pode ser descrito pela seguinte função de transferência:
() ()()
+
(3)
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 19/38
18
Os termos K e τ são obtidos através do gráfico da resposta ao degrau do processo. Sendo
K o ganho estático do processo e τ sua constante de tempo.
Para encontrar o modelo, foram feitos vinte ensaios, utilizando um degrau de 2V, sendo
que o algoritmo contava 5 voltas antes de calcular a velocidade angular do motor. Com esses
dados foi feito uma média, e através dessa média foi plotado o gráfico a seguir:
Figura 9 - Gráfico da resposta ao degrau de 2V, com o algoritmo contando o tempo de 5 voltas para calcular a velocidade.
Gráfico plotado pelo software Matlab®.
Com esse gráfico, foram obtidos os termos K e τ. O valor de K é obtido da divisão do
valor em regime permanente do processo pelo valor do degrau aplicado. Já o valor de τ é obtido
através da medição do tempo que demorou para que o processo alcançasse 63,2% do seu valor
em regime permanente, que foi medido pela inspeção do gráfico resultando no valor de 1,792
segundos. Abaixo o cálculo feito para a obtenção de K:
576,5 [1] (4)
Assim, o modelo obtido foi:
() ,,+ (5)
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 20/38
19
Foi aplicado um degrau de 2V a esse modelo e comparado com o gráfico da média dos
20 ensaios da resposta ao degrau de 2V onde o sensor espera 5 voltas para calcular a velocidade
angular, o gráfico da comparação é mostrado a seguir:
Figura 10 - Comparação entre a curva obtida pela média dos 20 ensaios ao degrau e a curva relativa ao modelo obtido.
Gráfico plotado pelo software Matlab®.
Feita a comparação notou-se que o sistema é descrito por uma dinâmica de segunda
ordem e que pode ser aproximada por um modelo de primeira ordem com atraso puro de tempo.
O atraso puro de tempo é quando a saída do instrumento não é afetada assim que há uma
variação na entrada do mesmo.O atraso puro de tempo além de causar o atraso da entrada, têm efeito desestabilizador
em aplicações com malha fechada. Por isso muitas vezes é necessário usar um modelo de
primeira ordem com atraso puro de tempo para se modelar uma dinâmica de segunda ordem
sobreamortecida. Para isso são usadas as aproximações de Padé, como se segue:
− ≈ () (− ) ( ) (6)
em que:
() ∑ (+)!!(−)!= ( )− (7)
Como que para a perfeita aproximação do atraso puro de tempo é necessário aumentar
a ordem da função de transferência ao infinito, os instrumentos de primeira e segunda ordemcom atraso puro de tempo podem produzir oscilações em malhas de controle.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 21/38
20
Porém, neste trabalho não foram usadas as aproximações de Padé, assim foi utilizado o
modelo de primeira ordem com atraso puro de tempo. Considerando o atraso puro de tempo, a
função de transferência de um sistema de primeira ordem é descrita pela função abaixo:
() ()()
+ (8)
O atraso puro de tempo Td, medido em segundos, foi obtido por inspeção visual, e
representa o tempo em que o sistema demora para começar a responder após a aplicação da
entrada degrau, na figura 10 podemos notar que esse tempo é de aproximadamente 2 segundos,
porém para que as curvas entre o modelo e a média ficassem mais próximas o valor adotado foi
de 1 segundo. Pelo mesmo motivo, o valor de τ também foi alterado. Com isso, a função de
transferência do modelo final ficou assim:
() , ,+ (9)
A seguir podemos ver o gráfico que compara a curva que representa a média dasentradas ao degrau com o modelo contemplando o atraso puro de tempo.
Figura 11 - Comparação entre a curva obtida pela média dos 20 ensaios ao degrau e a curva relativa ao modelo obtido
considerando o atraso puro de tempo. Gráfico plotado pelo software Matlab®.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 22/38
21
Com o modelo obtido, foi usado a ferramenta Sisotool do Matlab® para a sintonia do
PID. Nessa ferramenta, o primeiro passo é escolher a arquitetura, em formato de diagrama de
blocos, que o controle do processo se encaixa. A arquitetura escolhida é mostrada abaixo:
Figura 12 - Arquitetura de controle usada para o projeto.
Escolhido a estrutura de controle, o próximo passo foi escolher o método a ser utilizado
para sintonizar o controlador. O método escolhido foi o de tempo de resposta robusto, que é
baseado no modelo. Este método é baseado em um algoritmo que modifica a largura de banda
e a margem de fase do sistema, sendo que há duas opções de sintonia: automática e interativa.
Na sintonia automática, o algoritmo promove um balanço entre desempenho e robustez. Já na
sintonia interativa, o usuário é quem decide como será a resposta do sistema.
Para efeito de comparação em relação ao desempenho, foram sintonizados dois tipos de
controladores, um PI e um PID. A função de transferência do controlador PI é mostrada abaixo:
() 0,00090783 (+, ) (10)
Para se encontrar os parâmetros Kp e Ki, necessários para que o Arduino® controle a
velocidade angular do motor, tem-se que igualar essa função de transferência com a função de
transferência característica de um controlador PI que é mostrada a seguir:
() 1 (11)
Onde Ti = Kp / Ki
Igualando as funções transferências temos:
1 0,00090783 +,
(12)
1 0,00090783 (+,) (13)
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 23/38
22
1 0,00090783
0,5 (14)
1 ,
1 (15)
1 0,000453915 1 (16)
Dessa igualdade obtemos Kp = 0,000453915 e Ti = 0,5 segundos. Como Ki = Kp/Ti,
Ki= 0,00090783. Para conferir esse resultado, foi usada a função [Kp,Ki,Kd,Tf] = piddata(sys)
do Matlab®, onde sys é a função de transferência do controlador. O resultado obtido foi o
mesmo encontrado analiticamente apresentando acima.
Após feita a sintonia do controlador PI, foi a vez de realizar a sintonia do controlador
PID, encontrando a função transferência mostrada a seguir:
() 0,00068538 (+,)(+,) (17)
Como a função [Kp,Ki,Kd,Tf] = piddata(sys) do Matlab®, apresentou o valor correto
dos parâmetros do controlador PI, somente ela foi usada para a obtenção dos parâmetros do
controlador PID. Retornando os seguintes valores: Kp=1,0007 . 10-4
, Ki=6,8538 . 10-4
eKd=3,6524 . 10-6.
Circuito
O circuito usado para o projeto é mostrado a seguir:
Figura 13 - Circuito usado no projeto. Criado no software Fritzing®.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 24/38
23
Nele está representado o motor de corrente contínua, um sensor infravermelho, a
alimentação dc, um transistor, um resistor ligado na base do transistor e o Arduino®.
O transistor usado no projeto é o TIP 122, ele foi necessário pois para controlar um motor
de corrente contínua é necessário uma corrente maior do que o Arduino® pode oferecer, ou
seja, a função do transistor é amplificar a corrente. A vantagem do TIP 122 para outros
transistores NPN que poderiam ser utilizados, é que o TIP 122 tem um diodo interno, necessário
para proteção do Arduino® quando o motor para de ser alimentado e continua girando, se
tornando assim um gerador nesse pequeno intervalo de tempo, podendo enviar uma corrente
maior do que as portas do Arduino® suportam. A equação que representa o ganho de um
transistor é mostrada a seguir:
hFE [A] (18)
Onde Ic é a corrente de coletor, Ib é a corrente de base e hFE é o fator de ganho do
transistor.
Para descobrir o valor máximo da corrente de coletor necessária para controlar esse
motor, foi necessário aplicar o maior valor de tensão suportado pelo motor, e bloquear o seu
rotor. Assim o Ic obtido foi de 0,234 A. O fator de ganho do transistor é informado no datasheet
do TIP 122, e seu valor é 1000. Assim, obtemos Ib, como mostrado abaixo:
,
0,000234 [] (19)
Com o valor da maior corrente de base necessária para controlar esse motor obtida, o
próximo passo é calcular o resistor que será ligado entre a porta de saída do Arduino® e a base
do transistor. Esse resistor é usado para limitar a corrente de base. A corrente de base é a
responsável pela condução entre o coletor e emissor. Então esse resistor é fundamental para o
bom controle do processo. Se o valor desse resistor ficar muito abaixo do correto, a corrente de
base será muito maior que a necessária, fazendo assim com que a corrente do coletor seja maior
do que a necessária podendo danificar o motor. Se o valor desse resistor ficar muito acima do
correto, a corrente de base será muito menor que a necessária, assim a corrente do coletor não
será suficiente para controlar de forma adequada o motor. A equação usada para o cálculo do
resistor é a seguinte:
[Ω] (20)
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 25/38
24
Onde R é o valor do resistor, V é a tensão entre os terminais da porta do Arduino® e da
base do transistor, e Ib é a corrente de base.
A tensão entre os terminais da porta do Arduino® e da base do transistor é calcula como
mostrado a seguir:
1 2 [ V ] (21)
Onde V1 é a tensão máxima que a porta do Arduino® transmite e V2 é a queda de tensãoentre a base e o emissor do transistor. Assim temos:
5 1 , 4 3 , 6 [ V ] (22)
Com os valores de Ib e V calculados, foi encontrado o valor de R:
,, 15385 [Ω] (23)
O resistor com valor comercial próximo desse valor é o de 15 k Ω, sendo assim o resistor
usado neste trabalho.
O esquema elétrico pode ser visto com mais detalhes abaixo:
Figura 14 - Esquema elétrico do circuito usado no projeto. Criado no software Fritzing®.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 26/38
25
5. RESULTADOS
Foram feitos três ensaios no LACOI, um usando os parâmetros obtidos através do
Matlab® para o controlador PI, outro usando os parâmetros obtidos através do Matlab® para o
controlador PID, e um último usando parâmetros aleatórios de um controlador PI. Em todos os
ensaios, a velocidade a ser controlada era alterada após 2 minutos, começando em 1700 rpm,
passando para 1200 rpm, e depois indo a 2200 rpm.
Para analisar os resultados com mais facilidade, foi utilizando o software Processing
2®, que é uma ferramenta de desenvolvimento de uma linguagem de programação de código
aberto, usado para mostrar ou salvar dados coletados pelo Arduino®. Sendo assim o Processing
2® foi utilizado para construir um supervisório SCADA. A interface do Processing 2® é
extremamente parecida com a do Arduino®, o que facilita o seu uso.
Nos gráficos obtidos pelo supervisório SCADA que serão apresentados a seguir, a curva
em vermelho é a velocidade angular medida, a reta verde representa o setpoint e a curva azul
representa a saída do controlador. As escalas dos gráficos são ajustadas por comandos no
próprio algoritmo usado, no caso o “PID_FrontEnd_v03”. Pode-se ver no lado esquerdo todos
os valores tanto dos parâmetros do controlador, como os valores de entrada, saída e setpoint do
sistema, podendo-se mudar o setpoint por ali mesmo e mandar a informação direto para o
Arduino® sem precisar modificar o algoritmo no Arduino®.
Figura 15 - Parte gráfica do controle feito pelo controlador PID. Obtido pelo supervisório SCADA.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 27/38
26
Figura 16 - Parte gráfica do controle feito pelo controlador PI sintonizado pelo Matlab®. Obtido pelo supervisório SCADA.
Figura 17 - Parte gráfica do controle feito pelo controlador PI com os parâmetros escolhidos aleatoriamente. Obtido pelo
supervisório SCADA.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 28/38
27
O resultado esperado era conseguir variar a faixa de trabalho do PWM, através do
controlador PI e PID, a fim de controlar a velocidade angular do motor de corrente contínua.
Como se pode ver nas figuras 15 e 16, o objetivo foi alcançado, sendo que o controlador PID
se saiu um pouco melhor considerando o esforço de controle.
O controlador PI mal sintonizado, foi feito para mostrar como a má sintonia de um
controlador pode ser prejudicial para o sistema, como se pode ver na figura 17, o controlador
foi submetido à um esforço de controle muito grande, variando a sua saída bruscamente para
tentar manter a velocidade angular perto do valor do setpoint . Foi observado também que o
controlador PI mal sintonizado teve um ruído muito maior que os controladores sintonizados
pelo Matlab®.
6. CONCLUSÃO
Com os resultados apresentados na seção anterior pode-se concluir a importância de
uma boa sintonia dos controladores PID. Um controlador PID mal sintonizado gera perdas e
ineficiência na produção. Isso pode ser visto na figura 17, onde o controle foi feito por um
controlador PI com os termos Kp, Ki escolhidos aleatoriamente, o controle da velocidade
angular foi pior havendo maior variação dos valores obtidos se comparados com a figura 16,
onde os valores dos termos Kp, Ki foram encontrados por meio de sintonia utilizando como
método o modelo matemático do processo. Fora a clara diferença entre a variação dos valores
obtidos, do valor setado, o controlador mal sintonizado correspondente da figura 17 está
sofrendo grande variação na sua saída, o que pode causar dano físico tanto no controlador,
quanto no atuador. Podemos ver também a pequena melhora da saída do controlador PID em
relação a saída do controlador PI corretamente sintonizado, a saída do controlador PID varia
um pouco menos que a saída do controlador PI corretamente sintonizado.
Os controladores funcionaram bem. Tanto no controlador PID quanto no controlador
PI, o tempo de atraso e o tempo de subida são pequenos. O pequeno ruído que se pode ver foi
causado pela construção da hélice, que não é totalmente uniforme, e pela limitação do sensor
infravermelho usado.
Sendo assim este trabalho atingiu seu objetivo.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 29/38
28
7. PROPOSTAS DE TRABALHOS FUTUROS
Como proposta para um trabalho futuro fica a ideia de melhorar o sistema de mediçãousando uma hélice mais uniforme e um sensor melhor. Para o sistema de controle a ideia seria
melhorar o controle, usando um controle mais avançado como por exemplo fuzzy ou redes
neurais.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 30/38
29
8. REFERÊNCIA BIBLIOGRÁFICA
[1] OGATA, K. Engenharia de Controle Moderno. Prentice Hall do Brasil, 1982.
ISBN: 85-7054-019-1.
[2] BOLTON, W. Engenharia de Controle. MAKRON Books do Brasil, 1995. ISBN:
85-346-0343-X.
[3] FITZGERALD, A. E; KINGSLEY, Charles; UMANS, Stephen
D. Máquinas elétricas. Bookman, 6ª Edição, 2008.
[4] BALBINOT, Alexandre; BRUSAMARELLO, Valner João. Instrumentação e
fundamentos de medidas. LTC, 2ª Edição, 2011. Volume 1. ISBN: 9788521617549.
[5] SILVEIRA, J A. Experimentos com o Arduino. Edição 2.0, 2013.[6] AGUIRRE, Luis Antonio. Fundamentos da Instrumentação. Pearson, 1ª Edição,
2013. ISBN: 9788581431833.
[7] Sala de Física. Biografias. Disponível em:
<http://www.geocities.ws/saladefisica9/index-2.html>. Acesso em 07 de novembro de 2014.
[8] AYCOCK, S. A história dos microcontroladores. Disponível em:
<http://www.ehow.com.br/historia-microcontroladores-info_42970/>. Acesso em 07 de
novembro de 2014.[9] BOJORGE, N. Sintonia de malhas de controle. Disponível em:
<http://www.professores.uff.br/controledeprocessos-eq/images/stories/Control_Aula17_Sintonia.pdf >.
Acesso em 07 de novembro de 2014.
[10] AUGARTEN, S. State of the art. A photographic History of the integrated
circuit. Disponível em: <http://smithsonianchips.si.edu/augarten/p38.htm>. Acesso em 07 de
novembro de 2014.
[11] Electrónica. Transístor. Disponível em: <http://www.electronica-
pt.com/componentes-eletronicos/transistor-tipos>. Acesso em 07 de novembro de 2014.
[12] Instrumentação e Controle. Histórico Instrumentação. Disponível em:
<http://www.instrumentacao.com/historico.html>. Acesso em 07 de novembro de 2014.
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 31/38
30
9. ANEXO
9.1 ALGORITMO
//
// Algoritmo usado no Trabalho de Conclusão de Curso
// de Gustavo Scaldini Schaeffer no curso de Engenharia
// Elétrica pela Universidade Federal de São João del Rei
// com orientação do professor Samir Angelo Milani Martins
//
#include <PID_v1.h>
double Setpoint, Input, Output, rpm; // Declaração das variáveis usadas pela biblioteca PID_v1
PID myPID(&Input, &Output, &Setpoint,0.006,0.041,0.00022, DIRECT); // Comando usado
pela biblioteca PID_v1 usado para executar o controle
unsigned long serialTime; // Declaração da variável usada pelo programa Processing para obter
dados do Arduino
int contagem = 0; // Declaração da variável mais importante do programa, que faz a contagem
das vezes que o nível da saída do sensor mudou
unsigned long inicio = millis(); // Declaração da variável que começa a contar o tempo, tempo
esse que é usado para calcular a velocidade angular
void setup()
Serial.begin(9600);
attachInterrupt(0, contador, CHANGE); // Função do Arduino que executa a função 'contador'
quando há mudança de nível na porta digital 2 do Arduino
Input = rpm;
Setpoint = 1700; // Escolha do setpoint em RPM
myPID.SetMode(AUTOMATIC);
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 32/38
31
void loop()
if(contagem >= 44) // Quando 'contagem' é igual a 45 , ou seja, são lidas 5
voltas pelo sensor,
unsigned long tempo = millis() - inicio; // é feito o calculo da velocidade angular em RPM
através da regra de 3:
rpm = 300000/tempo; //
Serial.println(rpm); // 5 voltas - tempo (ms)
contagem = 0; //
inicio += tempo; // Velocidade - 60 000 (ms)
Input = rpm; //
myPID.Compute(); // Após a velocidade ser calculada, o resultado é enviado
para a variável
analogWrite(3,Output); // Input, umas das variáveis responsáveis pelo controle.
Após isso a
// função 'myPID.Compute()' calcula o valor que a saída do
Arduino terá
if(millis()>serialTime) // que fornecer para que seja feito o controle. Após isso a
função
// 'analogWrite(3,Output)' manda esse valor a ser fornecido através
de
SerialReceive(); // PWM na porta digital 3.
SerialSend(); //
serialTime+=500; // O Último if é usado pelo programa Processing paraobter os dados
// do Arduino e converte-los em curvas
//
///////////////////////////////////////////////////////////////////////////////////////////////
//union //
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 33/38
32
byte asBytes[24]; // Essa parte do algoritmo é
usada pelo programa Processing
float asFloat[6]; // para obter os dados do
Arduino e converte-los em curvas
//
foo; //
//
void SerialReceive() //
//
//
//
int index=0; //
byte Auto_Man = -1; //
byte Direct_Reverse = -1; //
while(Serial.available()&&index<26) //
//
if(index==0) Auto_Man = Serial.read(); //
else if(index==1) Direct_Reverse = Serial.read(); //
else foo.asBytes[index-2] = Serial.read(); //
index++; //
//
//
if(index==26 && (Auto_Man==0 || Auto_Man==1)&& (Direct_Reverse==0 ||
Direct_Reverse==1)) //
//
Setpoint=double(foo.asFloat[0]); ////
//
//
if(Auto_Man==0) //
//
Output=double(foo.asFloat[2]); //
////
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 34/38
33
double p, i, d; //
p = double(foo.asFloat[3]); //
i = double(foo.asFloat[4]); //
d = double(foo.asFloat[5]); //
myPID.SetTunings(p, i, d); //
//
if(Auto_Man==0) myPID.SetMode(MANUAL); //
else myPID.SetMode(AUTOMATIC); //
//
if(Direct_Reverse==0) myPID.SetControllerDirection(DIRECT); //
else myPID.SetControllerDirection(REVERSE); //
//
Serial.flush(); //
//
//
void SerialSend() //
//
Serial.print("PID "); //
Serial.print(Setpoint); //
Serial.print(" "); //
Serial.print(Input); //
Serial.print(" "); //
Serial.print(Output); //
Serial.print(" "); //
Serial.print(myPID.GetKp()); //
Serial.print(" "); //Serial.print(myPID.GetKi()); //
Serial.print(" "); //
Serial.print(myPID.GetKd()); //
Serial.print(" "); //
if(myPID.GetMode()==AUTOMATIC) Serial.print("Automatic"); //
else Serial.print("Manual"); //
Serial.print(" "); //if(myPID.GetDirection()==DIRECT) Serial.println("Direct"); //
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 35/38
34
else Serial.println("Reverse"); //
//
//
///////////////////////////////////////////////////////////////////////////////////////////////
void contador() //
// Comando executado quando há variação no nível da saída da porta do sensor,
contagem++; // este comando soma 1 ao valor atual da variável 'contagem'.
//
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 36/38
35
9.2 CUSTO DO PROJETO
---------------------------------------------------------------------------------------------------
*Salva hélice com 2 borrachinhas 2mm - R$5,50
Hélice Gws 4530-114x76 (2) - R$3,70 cada - R$7,40
Frete - R$19,40
Total - R$32,30
--------------------------------------------------------------------------------------------
Suporte para 2 pilhas AA com chave liga/desliga - R$8,90
*Suporte para 4 pilhas AA com chave liga/desliga - R$10,90
Frete - R$16,50
Total - R$36,30
--------------------------------------------------------------------------------------------
Tacômetro Turnigy Digital - R$40,00
Frete - R$14,80
Total - R$54,80
--------------------------------------------------------------------------------------------
*Protoboard Matriz De Contatos 840 Pontos Transparente Sanusb - R$25,50
Cabo Flat Macho-fêmea 20 Vias Coloridas Sanusb Pic Arduino - R$13,50
Cabo Flat Fêmea-fêmea 20 Vias Coloridas Sanusb Pic Arduino - R$11,50
Motor Cc Dc 5v Sanusb Microcontroladores Pic Arduino (2) - R$5,99 cada - R$11,98
Frete - R$14,35
Total - R$76,83
--------------------------------------------------------------------------------------------
65 Jumpers Protoboard Macho-macho Arduino - R$12,90
4x Sensor Reflexivo Ótico Ir Tcrt5000 Pic Arduino Raspberry - R$5,90
*Sensor Reflexivo Infravermelho Distância Ajustável Arduino - R$28,90
Frete - R$14,80
Total - R$62,50--------------------------------------------------------------------------------------------
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 37/38
36
--------------------------------------------------------------------------------------------
*Arduino Uno R3 Rv3 Atmega328 + Cabo Usb + Ebook Id907 - R$58,50
Suporte Para Sensor De Ultrasom Hc-sr04 E Outros- Id923 - R$15,50
Sensor De Ultrasom Us-020 2cm A 7m (hc-sr04*) + Exemplos - R$15,50
Frete - R$9,40
Total - R$98,90
--------------------------------------------------------------------------------------------
*Motor DC 5,9V RF-300 CA Eixo 8mm (5) - R$2,76 cada - R$13,80
Suporte Para 4 Pilhas AA Paralelas Canoa Preto (2) - R$1,40 cada - R$2,80
*Transistor NPN TIP122 (2) - R$0,81 cada - R$1,62
Resistor PR01 (5% Tolerância 1W) 330 Ohms (2) - R$0,12 cada - R$0,24Resistor PR01 (5% Tolerância 1W) 1 KOhms (2) - R$0,18 cada - R$0,36
Resistor PR01 (5% Tolerância 1W) 2,2 KOhms (2) - R$0,14 cada - R$0,28
Diodo Retificado de uso geral 1A 1N4007 (5) - R$0,06 cada - R$0,30
Total - R$19,40
-------------------------------------------------------------------------------------------
Total gasto aproximadamente - R$381,03
Total gasto só com os componentes usados na versão final (marcados com *) e desconsiderando as 4 pilhas AA, resistor de 15kΩ, jumpers para conexão do circuito e o frete – R$132,87
7/17/2019 Controldor PID para velocidade angular de um motor de corrente contínua
http://slidepdf.com/reader/full/controldor-pid-para-velocidade-angular-de-um-motor-de-corrente-continua 38/38
10. ASSINATURAS
__________________________________________________________________
Gustavo Scaldini Schaeffer
(Aluno)
__________________________________________________________________
Prof. Samir Angelo Milani Martins
(Professor Orientador)