controldor pid para velocidade angular de um motor de corrente contínua

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 Schaeffer 0609549-6 Orientador: Prof. Samir Angelo Milani Martins São João del Rei, novembro de 2014

Upload: gustavo-scaldini-schaeffer

Post on 06-Jan-2016

54 views

Category:

Documents


1 download

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

Page 1: Controldor PID para velocidade angular de um motor de corrente contínua

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

Page 2: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 3: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 4: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 5: Controldor PID para velocidade angular de um motor de corrente contínua

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

Page 6: Controldor PID para velocidade angular de um motor de corrente contínua

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

Page 7: Controldor PID para velocidade angular de um motor de corrente contínua

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

Page 8: Controldor PID para velocidade angular de um motor de corrente contínua

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:

Page 9: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 10: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 11: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 12: Controldor PID para velocidade angular de um motor de corrente contínua

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]

Page 13: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 14: Controldor PID para velocidade angular de um motor de corrente contínua

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

Page 15: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 16: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 17: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 18: Controldor PID para velocidade angular de um motor de corrente contínua

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)

Page 19: Controldor PID para velocidade angular de um motor de corrente contínua

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)

Page 20: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 21: Controldor PID para velocidade angular de um motor de corrente contínua

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®.

Page 22: Controldor PID para velocidade angular de um motor de corrente contínua

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)

Page 23: Controldor PID para velocidade angular de um motor de corrente contínua

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®.

Page 24: Controldor PID para velocidade angular de um motor de corrente contínua

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)

Page 25: Controldor PID para velocidade angular de um motor de corrente contínua

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®.

Page 26: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 27: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 28: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 29: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 30: Controldor PID para velocidade angular de um motor de corrente contínua

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.

Page 31: Controldor PID para velocidade angular de um motor de corrente contínua

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);

Page 32: Controldor PID para velocidade angular de um motor de corrente contínua

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 //

Page 33: Controldor PID para velocidade angular de um motor de corrente contínua

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]); //

////

Page 34: Controldor PID para velocidade angular de um motor de corrente contínua

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"); //

Page 35: Controldor PID para velocidade angular de um motor de corrente contínua

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'.

//

Page 36: Controldor PID para velocidade angular de um motor de corrente contínua

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--------------------------------------------------------------------------------------------

Page 37: Controldor PID para velocidade angular de um motor de corrente contínua

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

Page 38: Controldor PID para velocidade angular de um motor de corrente contínua

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)