associaÇÃo beneficente da indÚstria carbonifera de …
TRANSCRIPT
ASSOCIAÇÃO BENEFICENTE DA INDÚSTRIA CARBONIFERA DE SANTA CATARINA – SATC
EVANDRO BENEDET LEONARDO PADOIN
MATHEUS MAZZUCHELLO RENAN SILVEIRA ABREU
VICTOR POSSAMAI
PROJETO INTERDISCIPLINAR
ETAPA II CRICIÚMA, 07 DE NOVEMBRO DE 2016
ASSOCIAÇÃO BENEFICENTE DA INDÚSTRIA CARBONIFERA DE SANTA CATARINA – SATC
EVANDRO BENEDET LEONARDO PADOIN
MATHEUS MAZZUCHELLO RENAN SILVEIRA ABREU
VICTOR POSSAMAI
PROJETO INTERDISCIPLINAR
Projeto interdisciplinar de Conversão Eletromecânica I, Eletrônica II, Sistemas de Controle, Microprocessadores e Modelagem e Laboratório de Controle.
ETAPA II CRICIÚMA, 07 DE NOVEMBRO DE 2016
SUMÁRIO
1 INTRODUÇÃO ......................................................................................................... 3
2 FABRICAÇÃO DO MOTOR ..................................................................................... 4
2.1 Dimensionamento das bobinas ............................................................................. 5
2.2 Processo de bobinagem ........................................................................................ 7
3 DADOS ADICIONAIS E MEDIÇÕES REALIZADAS ............................................. 13
4 TESTE DO ROTOR TRAVADO ............................................................................. 13
5 TESTE DO MOTOR A VAZIO ................................................................................ 14
6 MODELAGEM ........................................................................................................ 16
6.1 Circuito equivalente do motor .............................................................................. 17
6.2 Equações parte elétrica por malhas .................................................................... 17
6.3 Equações parte mecânica ................................................................................... 18
6.4 Modelagem pelo método de Lagrange ................................................................ 19
7 ESTUDO DO CONTROLE DE VELOCIDADE DO MOTOR .................................. 21
7.1 Controle PID ........................................................................................................ 21
7.2 Ação do controle proporcional ............................................................................. 23
7.3 Ação do controle integral ..................................................................................... 24
7.4 Ação do controle derivativo ................................................................................. 24
8 DADOS DO TACÔMETRO .................................................................................... 25
8.1 Função de transferência da resposta do tacogerador ......................................... 26
8.1.1 Constante de tempo ......................................................................................... 27
8.1.2 Tempo de subida (Tr) ....................................................................................... 27
8.1.3 Tempo de assentamento (Ts) .......................................................................... 28
8.2 APLICAÇÃO DOS CONCEITOS NO MOTOR TRIFÁSICO ................................ 28
8.2.1 Valor da constante de tempo (T) ...................................................................... 28
8.2.2 Valor do tempo de assentamento (Ts) ............................................................. 28
8.2.3 Valor do tempo de subida (Tr) .......................................................................... 29
8.2.4 Função de transferência ................................................................................... 29
8.3 Obtendo a função de transferência no Matlab™ ................................................. 29
9 PROJETO DO CONTROLADOR ........................................................................... 31
9.1 Aplicação do método de sintonização para sistemas de primeira ordem sem
zeros ......................................................................................................................... 31
10 SIMULAÇÃO DO CONTROLADOR .................................................................... 35
10.1 Amplificador Subtrator (1) .................................................................................. 35
10.2 Amplificador Proporcional (2) ............................................................................ 36
10.3 Amplificador Integrador (3) ................................................................................ 36
10.4 Amplificador Derivativo (4) ................................................................................ 36
10.5 Amplificador buffer (somador) (5) ...................................................................... 36
11 CONSTRUÇÃO DO CONTROLADOR ................................................................ 37
11.1 Projeto da placa da fonte simétrica ................................................................... 37
11.1.1 Construção da fonte simétrica ........................................................................ 38
11.2 Projeto da placa do controlador PID .................................................................. 39
11.2.1 Construção da placa do circuito PID .............................................................. 40
11.3 Resultados finais PID analógico ........................................................................ 41
13 PID DIGITAL ........................................................................................................ 41
13.1 Programação Arduino........................................................................................ 42
13.2 Resultados finais PID digital .............................................................................. 59
14 CONCLUSÃO ...................................................................................................... 61
15 REFERÊNCIAS .................................................................................................... 62
3
1 INTRODUÇÃO
As forças mecânicas de rotação inerente aos motores elétricos de indução
são utilizadas em equipamentos dos mais diversos tamanhos: desde pequenos
eletrodomésticos até gigantescas máquinas com potências de vários quilowatts.
Motores elétricos de indução são encontrados nas mais diversas formas e
tamanhos, cada qual apropriado à sua finalidade de utilização. Não importa quanto
torque ou potência um motor deva oferecer, com certeza, o usuário encontrará no
mercado o modelo ideal para sua utilização.
A primeira etapa da elaboração do projeto consiste no dimensionamento e
construção de um motor de indução trifásico. Equipamento que tem finalidade de
converter energia elétrica em energia mecânica através de bobinas de cobre
alimentadas por uma corrente, que geram uma força eletromagnética que por fim
movimenta de forma giratória o rotor do motor. Nesta mesma etapa, também será
apresentada a modelagem do motor, realizada através de pesquisas realizadas e
conhecimento adquirido em sala de aula.
Nas etapas posteriores, o motor servirá de planta para os sistemas de
controle analógico e digital que serão desenvolvidos, afim de se controlar sua
velocidade e trabalhar com um set point pré-estabelecido.
4
2 FABRICAÇÃO DO MOTOR
Um motor elétrico é um dispositivo eletromecânico que converte energia
elétrica em energia mecânica. Alguns motores, atuam com corrente contínua (CC /
DC) e podem ser alimentados tanto por baterias/pilhas quanto por outras fontes de
alimentação, outros operam com corrente alternada (CA / AC) e podem ser
alimentados de forma direta pela rede elétrica do sistema interligado do Brasil.
Existem até mesmo motores que realizam seu trabalho, indiferentemente, com esses
dois tipos de correntes distintas.
Os motores de corrente alternada (modelo proposto para o projeto) são
classificados em síncronos, monofásicos, indução trifásico e motores para fins
especiais. O motor mais utilizado é o motor de indução trifásico, devido à sua
construção simples, robusta e de baixo custo. Ainda conta com boas características
de funcionamento, ausência de comutador e boa regulação de velocidade. Com este
tipo de motor não necessita de qualquer dispositivo auxiliar de arranque. O motor de
indução também é chamado de motor síncrono, uma vez que corre a uma
velocidade diferente da velocidade síncrona. Como qualquer outro motor elétrico de
indução, também têm duas partes construtivas principais, o rotor e o estator.
Estator, como o próprio nome indica, é a parte fixa do motor de indução. São
onde as bobinas são dispostas, no caso do projeto em questão foram utilizadas três
bobinas compensadas por um ângulo elétrico de 120°. A estrutura do motor de
indução trifásico deve ser muito forte e rígida, caso contrário rotor não permanecerá
concêntrico com estator, o que dará origem a atração magnética ocorrendo um
desequilíbrio e desbalanceamento do rotor.
Quando o enrolamento do estator está ligado a um fornecimento de corrente
alternada trifásica, estabelece-se um campo magnético rotativo que roda a uma
velocidade síncrona.
O sentido de rotação do motor depende da sequência de fases de linhas de
alimentação, e a ordem em que estas linhas são ligadas ao estator. Assim trocando
a ligação de quaisquer dois terminais de fornecimento, irá inverter o sentido de
rotação.
Rotor é a parte rotativa do motor de indução que está ligado à carga
mecânica através do eixo. O rotor da gaiola de esquilo no motor de indução trifásico
5
é de forma cilíndrica e tem ranhuras na sua periferia. As ranhuras não são paralelas
umas às outras, mas estão pouco inclinadas o que torna a operação de motores
mais suave e mais silencioso.
Consiste em alumínio, latão ou barras cobre. Estas barras são chamadas
condutores do rotor e estão colocados nas ranhuras na periferia do rotor. Os
condutores do rotor estão permanentemente em curto pelas linhas de cobre ou
alumínio, anéis que são chamados de anéis finais.
À medida que as barras estão permanentemente em curto-circuito por anéis
de extremidade, a resistência do rotor é muito pequena e não é possível adicionar
resistência externa como as barras estão permanentemente em curto-circuito. Estes
motores têm a vantagem de adaptar a qualquer número de pares de pólos.
Partindo da necessidade de enrolar as três bobinas idênticas em algum
meio, escolheu-se o suporte que auxiliaria para tal, assim partiu para a parte da
construção do entreferro, estator e início dos os cálculos de projeto do protótipo de
motor. Os carretéis selecionados, vindos de carcaças de esparadrapos, têm
diâmetro interno de 25mm e 54mm de comprimento.
O rotor gaiola de esquilo foi conseguido por meio de um cooler Adda
220V/110V que não era mais utilizado na empresa Prince Automação. Desmontado
o mesmo e retirado as hélices do cooler e lubrificando os enrolamentos existentes,
este já estava pronto para fazer seu trabalho no projeto.
Figura 1 - Rotor cooler Adda utilizado.
2.1 Dimensionamento das bobinas
Como o carretel que foi enrolado o fio possui um diâmetro interno de
ø25mm, solicitou-se para que o entreferro fosse usinado com ø20mm. O entreferro
foi cortesia de uma empresa de tornearia, Tornearia Costa, localizada no bairro
6
Quarta Linha em Criciúma. Que conforme dados passados pelo proprietário, foi
utilizado uma liga metálica 3e7, no qual tem permeabilidade magnética relativa (µr)
aproximadamente 15000 e é geralmente utilizada nas matrizes de prensas
hidráulicas para cerâmica.
Para obter o diâmetro do fio que utilizado para enrolar as bobinas,
utilizou-se a equação a seguir: 𝐼
𝐽 ∗ √3
Onde:
𝐼 – Corrente do motor;
𝐽 – Densidade de corrente do motor.
Utilizou-se a corrente de projeto de 1 A, e para motores até 10 HP
(horsepower) utiliza-se a densidade de corrente ( 𝐽 ) de 7 e multiplica-se por raiz de
3 por ser um sistema trifásico, portanto:
𝐼
𝐽 ∗ √3=
17 ∗ √3
= 0,08𝑚𝑚
O fio de diâmetro ø0,08mm é equivalente ao AWG 28, que foi o
utilizado para o enrolamento das bobinas.
Com a especificação do fio a utilizar e as dimensões da bobina, os
dados foram inseridos no software de simulação Calcbob no qual foi obtido o
número de espiras para bobinas com núcleo de ar, utilizada apenas como
referência. Logo abaixo segue a simulação realizada:
7
Figura 2 - Software Calcbob utilizado para dimensionamento do número de espiras.
Utilizando o número de espiras fornecidas pelo simulador e os dados
descritos acima pode-se calcular a impedância das bobinas através da equação
abaixo:
𝐿 =1,27 ∗ 𝑁2 ∗ µ ∗ 𝐴
𝑙 ∗ 10^7
Onde:
𝐿 – Indutância da bobina;
𝑁– Número de espiras;
µ - Permeabilidade magnética do entreferro;
𝐴 – Área da seção;
𝑙–Comprimento da bobina.
Substituindo os valores tem-se:
𝐿 =1,27 ∗ (3192)2 ∗ 15000 ∗ 4𝜋10−7 ∗ 908
54 ∗ 10^7= 406,9 𝑚𝐻
2.2 Processo de bobinagem
A partir dos cálculos realizados para o dimensionamento do número de
espiras, deu-se início à confecção das bobinas. Como carretel, decidiu-se utilizar
8
rolos de esparadrapo, levando em conta sua resistência mecânica e na boa
performance do experimento feito pelos colegas do semestre anterior, que estava
disponível como modelo a seguir.
Para que o processo de bobinagem se tornasse mais eficiente e mais ágil, foi
utilizado um motor de máquina de costura, que em conjunto a um sistema de polias,
transferia a rotação para um eixo onde fixava os carretéis. Neste mesmo eixo,
acoplou-se um contador mecânico que mostraria o número de voltas.
Porém, como a rotação do motor era muito alta, isso foi um empecilho para
este processo. Para isso, foi utilizado um dimmer de chuveiro na fase do motor, que
nos possibilitou alterar a velocidade do mesmo conforme as espiras eram enroladas
nos carretéis.
Figura 3 - Conjunto utilizado para enrolamento das bobinas
Figura 4- Controle de velocidade por dimmer de chuveiro
9
Com as bobinas confeccionadas, foi passado uma volta de fita, a fim de
deixar a mesma bem firme. Com os entreferros em mãos, foi feito uma pré-
disposição de como iria ficar postos no estator e aí sim mediu-se para que haja 120°
entre furos. Realizados os furos iniciou-se a parte da montagem.
Figura 5 - Disposição das bobinas no estator
Com todas as peças no lugar, iniciou-se o primeiro teste. Este ocorreu com
um inversor de frequência WEG CFW08, emprestado pela empresa Prince
Automação de Criciúma para nos auxiliar no projeto. Nos terminais de entrada do
equipamento, alimentado com tensão 380V, foram feitas algumas configurações
básicas para dar a partida, uma vez que não sabia-se qual seria o resultado real a
ser apresentado pelo protótipo.
Uma rampa suave de aceleração entorno de 7 segundos, e uma frequência
limitada a 15Hz, e foi assim que se viu em funcionamento pela primeira vez. Ficou
ligado aproximadamente uns quinze minutos e como não houve aquecimento e a
corrente estava de comportando admissível, elevando a frequência de trabalho em
dez em dez hertz.
10
Figura 6 - Primeiros testes com CFW08.
Tabela abaixo apresenta alguns valores de corrente encontrados nos
primeiros testes com inversor 380V e ligação em estrela.
Corrente (A)
Frequência Fase U Fase V Fase W
20 0,5 0,4 0,4
30 0,7 0,6 0,6
40 0,7 0,7 0,7
50 0,8 0,8 0,7
60 0,9 0,8 0,8
Tabela 1- Dados de corrente obtidos por fase
Partindo para segunda meta estipulada, utilizou-se um motor cc acoplado
momentaneamente ao rotor para medir qual a tensão que teria a fim de trabalhar no
controle posteriormente. Trabalhando com 40Hz o taco gerador estava produzindo
cerca de 4,3V, porem perdendo muita rotação devido ao modelo do motor cc ser
pesado, então optou-se em trocá-lo por um modelo menor, apresentado
posteriormente.
11
Figura 7 - Primeiro modelo de taco-gerador proposto.
Com a convicção que o protótipo estava funcionando como planejado,
desmontou-se o mesmo por inteiro para dar início a fase de acabamentos e
melhorias.
O projeto foi colocado sobre uma base de mdf na qual as conexões elétricas
ficaram na parte de baixo da mesma. Em cima ficaram as seis pontas das bobinas
interligadas a peças de ligação rápida.
Foi criado um suporte de tecnil para dar altura ao rotor, para que este ficasse
com seu meio perpendicular aos entreferros. Com o novo taco gerador, foi
construído através de impressora 3D na empresa onde um dos integrantes trabalha,
um suporte para o mesmo a fim de não fazer esforço sobre o rotor.
Figura 8: Suporte e novo taco-gerador escolhido
No laboratório da SATC, através do aparelho que mede indutância foram
confirmados os valores com pequena margem de erro. Da esquerda para a direita
aparecem os valores de indutância das bobinas U, V e W respectivamente.
12
Figura 9 - Indicadores de indutância em aparelho digital
Através do tacômetro digital disponibilizado no laboratório, mediu-se a
rotação do experimento. Trabalhando com o inversor agora monofásico em 60Hz
com ligação em estrela obtiveu-se 2200RPM, quando passou para ligação em
triangulo houve um acréscimo de 300RPM, totalizando assim os 2500RPM
encontrados.
Figura 10 - Rotações encontradas nos dois tipos de ligação
13
3 DADOS ADICIONAIS E MEDIÇÕES REALIZADAS
Com o motor montado foi possível obter algumas características, são
elas:
Peso rotor: 152g
Peso bobina confeccionada: 220g
Uso de fio de cobre por bobina: 306m
Resistência média das bobinas: 62Ω
Indutância média das bobinas: 420mH
Corrente média das bobinas: 0,4A (220V) e 0,8A (380V)
Rotação quando alimentação 220V e frequência 60Hz: 2200 rpm (1) Tensão de saída do tacogerador sob as condições (1): 7V
4 TESTE DO ROTOR TRAVADO
Para avaliar os parâmetros do motor de indução trifásico, foi realizado
teste do rotor bloqueado (ou travado) e o teste à vazio do mesmo.
Para o teste do rotor bloqueado, coloca-se o reostato de partida do
motor em curto circuito, e logo em seguida bloqueia-se o rotor da máquina. Após,
uma tensão Vt é aplicada na alimentação até obter a corrente nominal do motor
(Inom = Irt).
Utilizando um analisador de energia, conecta-se o terminal na fase
desejada, a referência no neutro e o cabo com o amperímetro também na fase
desejada a medir.
Os dados do ensaio na fase S (referência) foram:
Tensão: 157V (fase S)
Corrente: 0,43V
Potência Ativa: 0,04kW
As figura 11 e 12 mostram a imagem capturada do aparelho:
14
Figura 11 – Leitura do analisador
Figura 12 – Leitura do analisador
Em relação ao teste descrito acima, não foram registradas alterações
significativas nos parâmetros originais do motor. Isso pode ser atribuído à falta de
torque do motor, tendo em vista a forma construtiva do mesmo.
5 TESTE DO MOTOR A VAZIO
Para realização do teste do motor à vazio, libera-se totalmente o rotor do
motor e aplicando a tensão nominal, mede-se os dados de corrente (A), Fator de
15
Potência, e potências ativa, reativa e aparente. Os dados são relacionados na tabela
abaixo:
Dados do teste à vazio do motor de indução
Tensão (V) Fase Corrente
(A) Fator
Potência P. Ativa
(kW)
P. Aparente
(kVA)
P. Aparente
(kVAR)
100 R 0,12 0,67 0,01 0,01 0,01 S 0,15 0,66 0,02 0,02 0,01 T 0,09 0,64 0,01 0,02 0,01
140 R 0,22 0,57 0,05 0,04 0,03 S 0,23 0,59 0,06 0,05 0,04 T 0,18 0,56 0,06 0,05 0,03
180 R 0,26 0,53 0,08 0,08 0,06 S 0,3 0,57 0,09 0,07 0,08 T 0,21 0,54 0,08 0,07 0,07
220 R 0,3 0,55 0,10 0,11 0,08 S 0,42 0,59 0,10 0,12 0,09 T 0,26 0,54 0,09 0,11 0,08
240 R 0,41 0,6 0,11 0,14 0,010 S 0,43 0,62 0,11 0,14 0,10 T 0,4 0,59 0,10 0,15 0,09
Tabela 2 - Dados do teste a vazio
Também pode-se obter as curvas de corrente e potência em função da
tensão de alimentação, conforme apresentado abaixo:
Gráfico 1 – Corrente x Tensão
Com o teste mostrado acima, percebe-se um aumento nas grandezas de
corrente e potências à medida que a tensão da alimentação é aumentada.
0,15
0,23
0,3
0,42 0,43
100 140 180 220 240
Corrente x Tensão (fase S)
Corrente (A)
16
Para obter os valores referentes ao modelo do motor, iremos analisar a
fase S. Analisando a diferença de potências entre a tensão de refência 220V e a
suporior aplicada, 240V, esse valor é de cerca de 20W. Com base nesse valor
estima-se as perdas no ferro.
𝑃𝑓 = 110𝑊 − 0,4𝑅𝑠² − 20𝑊 = 21,3𝑊
𝐸 = 240 − (𝑅𝑠 + 𝑗𝑋1)𝐼𝑜 = 81,2
𝐼𝑓 =𝑃𝑓𝐸
=21,381,2
= 0,26𝑚𝐴
𝐼𝑚 = 𝐼𝑜 − 𝐼𝑓 = 0,43𝑚𝐴 − 0,26𝑚𝐴 = 0,17𝑚𝐴
𝑋𝑚 =𝐸𝐼𝑚
= 0,88𝐻
𝑍 = 1
(𝐿𝑠 + 𝐿𝑚)(𝐿𝑟 + 𝐿𝑚)
𝑍 = 1
(0,4 + 0,88)(0,4 + 0,88)= 0,61
Assim temos:
𝐺(𝑠) = 𝑍(𝑆𝐿𝑚 (𝐿𝑠 + 𝐿𝑟) + 𝑅𝑠𝑅𝑟
𝑆² + �𝑆 (𝑅𝑟𝐿𝑠 + 𝑅𝑠𝐿𝑚 + 𝑅𝑟𝐿𝑟 + 𝑅𝑟𝐿𝑚)� + 𝑅𝑟𝑅𝑠
𝐺(𝑠)
= 0,61(𝑆0,88 (0,4 + 0,4) + 𝑅𝑠𝑅𝑟
𝑆² + �𝑆 (301,22 ∗ 0,4 + 301,22 ∗ 0,88 + 301,22 ∗ 0,4 + 301,22 ∗ 0,88)� + 301,22 ∗ 301,22
6 MODELAGEM
O motor de indução é uma máquina elétrica constituída de duas partes,
o estator e o rotor, que são divididos pelos entreferros.
A alimentação por corrente alternada é feita pelos terminais trifásicos
do estator, sendo que o rotor recebe a corrente alternada por indução, de forma
semelhante a um transformador. A excitação do estator pela fonte trifásica gera um
campo magnético girante no entreferro, que gira em uma velocidade dependente da
freqüência da tensão alimentada.
17
O rotor utilizado é do tipo gaiola de esquilo, que é constituído por
barras condutoras curto circuitadas em seus terminais e encaixadas no ferro do
rotor.
6.1 Circuito equivalente do motor
Figura 13 - Circuito elétrico equivalente do motor por fase
Para o circuito, admite-se que Ls e Lr respectivamente são as
reatâncias do estator e do rotor por fase, Lm a reatância de magnetização por fase e
Rm a resistência de magnetização, tal qual Rs e Rr são as resistências do estator e
do rotor por fase, e s o escorregamento. Para efeito de modelagem se considera o
motor como travado. Para a parte mecânica, considerado J como o rotor e B o atrito
do mesmo.
6.2 Equações parte elétrica por malhas
𝑀𝑎𝑙ℎ𝑎 𝐼1
−𝑉𝑖 + 𝑉𝑏 + 𝑉𝑅𝑠 + 𝑉𝐿𝑠 + 𝑉𝑅𝑚 = 0
𝐿1 𝐼1̇ = 𝑉𝑖 − 𝑉𝑏 − 𝑉𝑅𝑠 − 𝑉𝑅𝑚 ( ʃ )
𝐼1 = 1𝐿1
∗ ʃ(𝑉𝑖 − 𝑉𝑏 − 𝑉𝑅𝑠 − 𝑉𝑅𝑚)( ʆ )
𝑰𝟏 = 𝟏𝑳𝟏𝑺
∗ (𝑽𝒊 − 𝑽𝒃 − 𝑽𝑹𝒔 − 𝑽𝑹𝒎)
𝑽𝑹𝒎 = 𝑹𝒎 ∗ (𝑰𝟏 − 𝑰𝟐)
𝑽𝑹𝒔 = 𝑹𝒔 ∗ 𝑰𝟏
𝑽𝒃 = 𝑲𝒗 ∗ 𝒘
𝑀𝑎𝑙ℎ𝑎 𝐼2
𝑉𝑅𝑚 + 𝑉𝐿𝑚 = 0
𝐿𝑚(𝐼2 −̇ 𝐼1̇) = -VRm
18
𝐿𝑚𝐼2̇ = −𝑉𝑅𝑚 + 𝐿𝑚𝐼1̇ ( ʃ )
𝐼2 = − ʃ 𝑉𝑟𝑚𝐿𝑚
+ 𝐼1 ( ʆ )
𝑰𝟐 = −𝟏
𝑳𝒎𝑺∗ (𝑽𝑹𝒎) + 𝑰𝟏
𝑀𝑎𝑙ℎ𝑎 𝐼3
𝐴𝑑𝑚𝑖𝑡𝑒 − 𝑠𝑒 𝑞𝑢𝑒 𝑅𝑟𝑠
(1 − 𝑆) = 𝑉𝑅𝑥
𝑉𝑅𝑟 + 𝑉𝐿𝑟 + 𝑉𝑅𝑥 + 𝑉𝐿𝑚 = 0
𝐿𝑚�𝐼3̇ − 𝐼2̇� = −𝑉𝑅𝑟 − 𝑉𝐿𝑟 − 𝑉𝑅𝑥
𝐼3̇ = 𝐼2̇ − 𝑉𝑅𝑟𝐿𝑚
− 𝑉𝐿𝑟𝐿𝑚
−𝑉𝑅𝑥𝐿𝑚
( ʃ )
𝐼3 = 𝐼2 − 1𝐿𝑚
∗ ʃ(𝑉𝑅𝑟 + 𝑉𝐿𝑟 + 𝑉𝑅𝑥) ( ʆ )
𝑰𝟑 = 𝑰𝟐 − 𝟏
𝑳𝒎𝑺∗ (𝑽𝑹𝒓 + 𝑽𝑳𝒓 + 𝑽𝑹𝒙)
𝑽𝑹𝒓 = 𝑰𝟑 ∗ 𝑹𝒓
𝑽𝑳𝒓 = 𝑰𝟑 ∗ 𝑳𝒓𝑺
𝑽𝑹𝒙 = 𝑰𝟑 ∗ 𝑹𝒓𝒔
(𝟏 − 𝑺)
6.3 Equações parte mecânica
τ𝐽 + τ𝐵 = τ
𝐽�̇� = −τB + τ ( ʃ )
𝑤 = 1𝐽
ʃ ( τ − τB) ( ʆ )
𝒘 = 𝟏𝑱𝑺
( 𝛕 − 𝛕𝐁)
𝛕𝐁 = 𝐁 ∗ 𝐰
𝑲𝛕 = 𝛕 ∗ 𝐈𝟑
19
A partir das equações, é possível elaborar o diagrama de blocos, com
integradores e ganhos, referentes a este sistema:
Figura 14 - Diagrama de blocos do sistema
6.4 Modelagem pelo método de Lagrange
Modelo aproximado do motor pelo método de Lagrange aprendido em
sala de aula:
Figura 15 - Circuito elétrico equivalente do motor por fase
𝐿 = 𝑇 − 𝑈
𝑇:12
𝐿𝑠 𝑞²̇ +12
𝐿𝑟 𝑞² +12
𝐿𝑚 𝑞²̇ +12
𝐽 𝜃²̇̇
𝑈: 0
𝐹𝑜𝑛𝑡𝑒𝑠:𝑉1
𝑃𝑒𝑟𝑑𝑎𝑠:𝐵 ∗ �̇�;𝑅𝑠 ∗ �̇� + 𝑅𝑟 ∗ 𝑞 + 𝑅𝑚 ∗ �̇�̇
20
Coordenada θ: 𝜕𝐿𝜕�̇�
= 𝜕𝐿𝜕�̇�
�12𝐽�̇�� = 𝐽�̇�
𝑑𝑑𝑡�𝜕𝐿𝜕�̇�� = 𝐽�̈�
𝜕𝐿𝜕𝜃
= 0
𝑑𝑑𝑡�𝜕𝐿𝜕�̇�� −
𝜕𝐿𝜕𝜃
→ 𝐽�̈� = −𝐵 ∗ �̇� (𝟏)
Coordenada q: 𝜕𝐿𝜕�̇�
= 𝜕𝐿𝜕�̇�
�12
𝐿𝑠 𝑞²̇ +12
𝐿𝑟 𝑞²̇ +12
𝐿𝑚 𝑞²̇ � = 𝐿𝑠 𝑞²̇ + 𝐿𝑟 𝑞²̇ + 𝐿𝑚 𝑞²̇
𝑑𝑑𝑡�𝐿𝑠 𝑞²̇ + 𝐿𝑟 𝑞²̇ + 𝐿𝑚 𝑞²̇� = 𝐿𝑠 𝑞² +̈ 𝐿𝑟 𝑞²̈ + 𝐿𝑚 𝑞²̈
𝜕𝐿𝜕𝑞
= 0
𝑑𝑑𝑡�𝜕𝐿𝜕�̇�� − 𝜕𝐿
𝜕𝑞→ 𝐿𝑠 𝑞² +̈ 𝐿𝑟 𝑞²̈ + 𝐿𝑚 𝑞²̈ = 𝑉1 − 𝑅𝑠�̇� + 𝑅𝑟𝑞 + 𝑅𝑚�̇�̇ (2)
(1) e (2) representam as equações do sistema
(2)
Através das equações obtidas pelo modelo do motor, com rearranjo das
mesmas é possível obter a função de transferência característica.
Para melhor visualização de valores, isola-se uma variável Z que
representa:
𝑍 = 1
(𝐿𝑠 + 𝐿𝑚)(𝐿𝑟 + 𝐿𝑚)
Assim tem-se:
𝐺(𝑠) = 𝑍(𝑆𝐿𝑚 (𝐿𝑠 + 𝐿𝑟) + 𝑅𝑠𝑅𝑟
𝑆² + �𝑆 (𝑅𝑟𝐿𝑠 + 𝑅𝑠𝐿𝑚 + 𝑅𝑟𝐿𝑟 + 𝑅𝑟𝐿𝑚)� + 𝑅𝑠𝑅𝑠
21
7 ESTUDO DO CONTROLE DE VELOCIDADE DO MOTOR
Em muitos processos, seja ele para uso industrial, comercial ou
doméstico, há necessidade de se manter um ou mais parâmetros estáveis ou dentro
de uma faixa mínima de variação.
Os itens abordados a seguir serão relacionados ao controle de velocidade de
um motor de indução trifásico, construído artesanalmente, mas também pode ser
aplicado a controles de temperatura de fornos, controle de fluído em um recipiente,
entre outros tipos de controles.
7.1 Controle PID
É comum encontrar em alguns equipamentos o tipo de controle com
termostato (liga-desliga), por exemplo, nos eletrodomésticos, tais como: ferros de
passar roupa e geladeiras. Quando há necessidade de maiores exigências de
precisão e estabilidade o mais indicado é utilizar o controle PID (proporcional,
integral e derivativo).
Durante a operação do motor, a velocidade pode variar devido à vários
tipos de distúrbios, como variações em cargas aplicadas ao seu eixo ou até mesmo
alterações na tensão de alimentação. Neste caso o controlador deve agir para
manter os parâmetros desejados.
O controlador tem a função de manter a variável controlada o mais
aproximado possível do valor previamente definido.
Para realizar o controle da velocidade, deve ser feita uma comparação
entre o valor desejado e o valor medido pelo taco gerador, que no caso do projeto é
um motor CC de driver de CD comum.
O controle PID é uma forma refinada e mais robusta de controle, aliados à
sua simplicidade de arquitetura.
A utilidade dos controles PID permanece na maioria do seu campo de
aplicabilidade. No campo dos sistemas de controle de processos contínuos, é fato
conhecido que as estruturas de controle PID provaram sua utilidade ao propiciar
controle satisfatório, embora não possam fornecer o controle excelente em algumas
situações específicas (OGATA, 2000).
22
Controladores PID apresentam características que permitem atingir a
maioria dos objetivos de controle (baixo overshoot, erro nulo em regime permanente
e desempenho transitório adequado, figura 16)
Figura 16 – Resposta desejada de um controlador PID
Apesar de uma vasta gama de aplicação, ainda não há consenso na
definição do algoritmo de controlador PID. De acordo com Astrom e Hagglund
(1995), a versão acadêmica do controlador PID tem a seguinte forma, como vemos
na equação 1:
𝑢(𝑡) = 𝐾𝑝 �𝑒(𝑡) + 1𝑇𝑖
∫ 𝑒(𝑡)𝑑𝑡 + 𝑇𝑑 𝜕𝑒𝜕𝑡
𝑡0 � (1)
Onde:
- 𝑢 representa a varável de controle;
- 𝐾𝑝 é conhecido como o ganho do controlador ou proporcional;
- 𝑒 é o erro definido por 𝑒 = 𝑈 − 𝑌 onde 𝑈 é o valor de referência ou
setpoint e 𝑌 o valor da saída do processo;
- 𝑇𝑖 é o ganho integral e influencia as partes presente e passado do
processo;
- 𝑇𝑑 é o ganho derivativo, que antecipa a ação do proporcional e
influencia a parte futura do processo.
Na figura 17, observa-se um modelo de controlador simples com
retroalimentação.
23
Figura 17 – Controlador PID simples com retroalimentação
7.2 Ação do controle proporcional
Na ação do controle proporcional, a relação entrada/saída do controlador
e o sinal de erro é apenas um ganho, que é representada pela equação 2 e sua
função de transferência pode ser verificada na equação 3.
𝑢(𝑡) = 𝐾𝑝𝑒(𝑡) (2) 𝑈(𝑠) 𝐸𝑟𝑟(𝑠)
= 𝐾𝑝 (3)
Onde:
- 𝑈 é a amplitude do sinal de controle;
- 𝐸𝑟𝑟 é o sinal de erro (variável desejada);
- 𝐾𝑝 é ganho proporcional.
O controlador do tipo proporcional possui uma característica específica,
que faz com que a variável de controle se afaste do valor estipulado quando existir
variação de carga de demanda, pois esta leva a saída do controlador para uma nova
posição. Esse desvio em relação ao valor desejado é chamado de desvio
permanente ou offset, e só pode ser removido se ajustado manualmente.
A figura 18 mostra uma relação entre o sinal de erro e a ação do controle
proporcional. Excluída a faixa de saturação da variável que é manipulada, cada valor
de erro tem um único valor correspondente de ação de controle e vice versa.
Figura 18 – Ação do controle gerada por um controlador do tipo proporcional
24
O ganho do controlador é dado pela inclinação da reta sobre a banda
proporcional percentual (BP), a relação entre ambos é dada pela equação 4. Esta
representação é genérica e somente para o caso onde a saída do controlador varia
entre 0 e 100%. 100 𝐾𝑝
= 𝐵𝑝 (4)
7.3 Ação do controle integral
A ação do integral vai atuar ao longo do tempo enquanto ocorrer diferença
entre o valor estipulado e o valor medido. Assim, o sinal a ser corrigido é integrado
no tempo, conforme a equação 5. 𝑑𝑒(𝑡)𝑑𝑡
= 𝐾𝑖𝑢(𝑡) (5)
Para que a correção fique sob a forma de amplitude, a integração e feita
da equação 6.
𝑒(𝑡) = 𝐾𝑖 ∫ 𝑢 (𝑡) (6)
E a função de transferência é:
𝑈(𝑠) 𝐸𝑟𝑟(𝑠)
= 𝐾𝑖𝑠
Onde 𝐾𝑖 é o ganho integral.
A ação integral apresenta como principal vantagem, a eliminação do
desvio permanente.
O modo integral apresenta um fenômeno indesejado, que consiste na
saturação do sinal produzido pela integração quando existir um desvio positivo ou
negativo durante um tempo determinado. Nesse caso a saída do controlador é
saturada a um valor limite, seja ela no limite máximo ou mínimo de tensão
produzida, por exemplo, por uma placa de aquisição.
7.4 Ação do controle derivativo
Na ação derivativa, a amplitude de correção é proporcional à amplitude do
desvio e uma grande taxa de variação provoca um grande sinal de correção mesmo
que o erro seja pequeno, entretanto se o erro variar o sinal de correção é nulo.
𝑒(𝑡) = 𝑇𝐷𝑑𝑢(𝑡)𝑑𝑡
A função de transferência é:
25
𝑈(𝑠) 𝐸(𝑠)
= 𝑆 𝑇𝐷
O tempo derivativo 𝑇𝐷, é conhecido também como ganho derivativo, que
corresponde ao tempo gasto para se obter a mesma quantidade operacional da
ação proporcional somente pela ação derivativa, quando o desvio é variado numa
velocidade constante.
O modo derivativo não é indicado para processos com muito ruído, pois o
mesmo poderá atingir valores de amplitudes prejudiciais ao processo. Recomenda-
se então o emprego desse modo em processo que possuem várias capacitâncias e
tempos mortos.
8 DADOS DO TACÔMETRO
Para realizar a medição de velocidade do motor trifásico foi utilizado um
motor cc de driver de cd convencional como tacogerador de sinal, conforme a figura
19.
Figura 19 – Motor utilizado como tacogerador
Com o motor em máxima rotação (1850 RPM) foi gerado
aproximadamente 1V na saída do tacogerador. Para fins de projeto, o sinal foi
amplificado para 5V conforme figura 20.
26
Figura 20 – Saída do tacogerador após amplificação para 5V
8.1 Função de transferência da resposta do tacogerador
Como a curva obtida na saída do tacogerador tem um aspecto de primeira
ordem foi aplicado o conceito de equação diferencial de primeira ordem.
A figura 21 apresenta o comportamento da saída adimensional contra o
tempo adimensional:
27
Figura 21 – Resposta ao degrau de um sistema de primeira ordem
Quando t = 1/a, a resposta c(t) alcança 63,2 % de sua variação total (ver
figura). Com estas constatações, definimos a seguir três especificações da resposta
transitória.
8.1.1 Constante de tempo
Denomina-se o fator 1/a constante de tempo. Da equação (3), trata-se do
tempo para e-at decair 37 % do seu valor inicial, ou o tempo para a resposta ao
degrau alcançar 63 % do seu valor final. Como o pólo da função de transferência
está em –a, podemos dizer que o pólo está localizado na recíproca da constante de
tempo, e quanto mais afastado o pólo estiver do eixo imaginário, mais rápida será a
resposta transiente.
8.1.2 Tempo de subida (Tr)
É o tempo necessário para a resposta passar de 10 % a 90 % do seu
valor final. O tempo de subida é obtido da equação.
28
8.1.3 Tempo de assentamento (Ts)
É o tempo necessário para a curva de alcançar e permanecer dentro de
uma faixa em torno de 2 % do seu valor final.
8.2 APLICAÇÃO DOS CONCEITOS NO MOTOR TRIFÁSICO
Aplicando os conceitos estudados, foram obtidos os valores de constante
de tempo (T), tempo de assentamento (Ts), tempo de subida (Tr) e a função de
transferência aproximada da curva apresentada na figura 22.
Figura 22 - Imagem capturada na saída do tacogerador
8.2.1 Valor da constante de tempo (T)
Manipulando a imagem e traçando uma linha em 63,2% da amplitude, ou
seja, 3,16V, chegou-se à uma constante de tempo (T) de 6,5 segundos.
8.2.2 Valor do tempo de assentamento (Ts)
Para encontrar o valor de Ts foi utilizado a fórmula abaixo:
29
Ts = 4 x T
Ts = 4 x 6,5
Ts = 26 segundos
8.2.3 Valor do tempo de subida (Tr)
Para encontrar o valor de Tr foi utilizado a fórmula abaixo:
Tr = 2,2 x T
Tr = 2,2x 6,5
Tr= 14,3 segundos
8.2.4 Função de transferência
Com os valores obtidos acima pôde-se calcular a função de transferência
conforme a seguir:
G(s) = 𝑘/𝑎 𝑠− 𝑘/𝑎
𝑠+𝑎
G(s) = 𝑘 𝑎− 𝑘 𝑒−𝑎𝑡
𝑎
𝑘 𝑎
= 5
k = 5 x a
k = 5 x 0,1538
k = 0,769
G(s) = 𝑘 𝑠+𝑎
G(s) = 𝟎,𝟕𝟔𝟗 𝒔+𝟎,𝟏𝟓𝟑𝟖
8.3 Obtendo a função de transferência no Matlab™
Para verificar se a função de transferência está correta, utilizou-se o
MATLAB com o seguinte código:
30
Utilizando o código acima, chegou-se à função de transferência da figura
23:
Figura 23 – Função de transferência obtida pelo MATLABTM
Como pode-se oberservar, a curva obtida pelo MATLABTM possui o
mesmo comportamento da resposta do tacogerador, comprovando assim que o
calculo está correto.
31
9 PROJETO DO CONTROLADOR
Existem muitas maneiras de sintonização de um controlador PID, a única
questão que se coloca é como selecionar os parâmetros dos controladores de modo
a ter uma resposta satisfatória, quando se controla um determinado sistema.
Algumas vezes torna-se necessário recorrer a métodos empíricos para resolver este
problema.
Dentre todos os métodos existentes, optou-se em aplicar o método de
sintonização para sistemas de primeira ordem sem zeros, que é o mais apropriado
para o tipo de resposta obtida no tacogerador.
9.1 Aplicação do método de sintonização para sistemas de primeira ordem sem zeros
Para os seguintes parâmetros:
• MP < 16,3%
• Ts < 1 segundo
Deve-se encontrar o valor do fator de amortecimento (𝜁):
𝑙𝑛 0,163 = 𝑙𝑛 𝑒−𝜋𝜁�1−𝜁2
−1,814 = 𝑒−𝜋𝜁�1−𝜁2
−1,8142 𝑋 �1 − 𝜁2 2
= −(𝜋𝜁)2
3,29 𝑋 �1 − 𝜁2 2
= −(𝜋𝜁)2
3,29 − 3,29𝜁2 = −(𝜋𝜁)2
3,29 = 𝜁2 + (𝜋2 + 3,29)
𝜻 = 𝟎,𝟓
E o valor da frequência natural (ωn):
𝑇𝑠 =4𝜁𝜔𝑛
1 =4
0,5𝜔𝑛
𝝎𝒏 = 𝟖
Encontrado os valores do fator de amortecimento (𝜁) e frequência natural
(𝜔𝑛) inicia-se o cálculo dos ganhos Kp, Ki e Kd.
32
Ganho Kd
𝐾𝑑 =𝑘
100
𝐾𝑑 =0,769100
𝑲𝒅 = 𝟎,𝟎𝟎𝟕𝟔𝟗
Ganho Kp
𝐾𝑝 = [2𝜁𝜔𝑛 (1 + 𝑘 ∗ 𝐾𝑑)]− 𝑃𝑜𝑙𝑜
𝑘
𝐾𝑝 = [2 ∗ 0,5 ∗ 8 (1 + 0,769 ∗ 0,00769)] − 0,1538
0,769
𝑲𝒑 = 𝟏𝟎,𝟐𝟔
Ganho Ki
𝐾𝑖 = ([𝜔𝑛2 (1 + 𝑘 ∗ 𝐾𝑑)]
𝑘
𝐾𝑖 = ([82 (1 + 0,769 ∗ 0,00769)]
0,769
𝑲𝒊 = 𝟖𝟕,𝟕𝟏
Com os valores dos ganhos calculados, chegou-se a seguinte função de
transferência:
𝐶(𝑠) = 10,26 +83,71𝑠
+ 0,00769𝑠
𝑪(𝒔) = 𝟎,𝟎𝟎𝟕𝟔𝟗𝒔𝟐 + 𝟏𝟎,𝟐𝟔𝒔 + 𝟖𝟑,𝟕𝟏
𝒔
Aplicando malha fechada na função G(s):
𝐺(𝑠)𝑚𝑓 =
0,769𝑠 + 0,1538
1 + 0,769𝑠 + 0,1538
𝑮(𝒔)𝒎𝒇 = 𝟎,𝟕𝟔𝟗
𝒔 + 𝟎,𝟗𝟐𝟐𝟖
Na figura 24 abaixo pode-se verificar a resposta ao degrau da função
𝐺(𝑠)𝑚𝑓:
33
Figura 24 - Resposta ao degrau obtida no MATLABTM
Aplicando resposta ao degrau do controlador em série com a planta:
Na figura 25, pode-se observar o comportamento do controlador com a
resposta ao degrau:
34
Figura 25 – Controlador em série com a planta
Para as especificações destacadas anteriormente, observa-se que o
controlador apresentou um overshoot superior à 20% (circulado em vermelho),
deixando a resposta inadequada para o esperado.
Para diminuir o valor do overshoot mudou-se a especificação de Ts para
menor que 2s:
𝑇𝑠 =4𝜁𝜔𝑛
2 =4
0,5𝜔𝑛
𝝎𝒏 = 𝟒
Calculando novos valores de Kp, Ki e Kd:
Novo ganho Kd
𝐾𝑑 =𝑘
100
𝐾𝑑 =0,769100
𝑲𝒅 = 𝟎,𝟎𝟎𝟕𝟔𝟗
Novo ganho Kp
𝐾𝑝 = [2𝜁𝜔𝑛 (1 + 𝑘 ∗ 𝐾𝑑)]− 𝑃𝑜𝑙𝑜
𝑘
𝐾𝑝 = [2 ∗ 0,5 ∗ 4 (1 + 0,769 ∗ 0,00769)] − 0,1538
0,769
𝑲𝒑 = 𝟓,𝟎𝟑𝟐
35
Novo ganho Ki
𝐾𝑖 = ([𝜔𝑛2 (1 + 𝑘 ∗ 𝐾𝑑)]
𝑘
𝐾𝑖 = ([42 (1 + 0,769 ∗ 0,00769)]
0,769
𝑲𝒊 = 𝟐𝟎,𝟗𝟐
A figura 26 mostra a nova resposta do controlador com as novas
especificações:
Figura 26 – Resposta ao degrau para o controlador com Ts < 2s
Observa-se uma melhora significativa no valor de overshoot tornando o
controlador viável para aplicação.
10 SIMULAÇÃO DO CONTROLADOR
A implementação do controlador PID foi realizada no ambiente do
ProteusTM , conforme ilustrado na figura 12. É possível observar o uso de 5
amplificadores operacionais LM741.
10.1 Amplificador Subtrator (1)
É o responsável por fazer a subtração entre o valor de set point e saída
do tacogerador.
36
10.2 Amplificador Proporcional (2)
O ganho do controlador Proporcional é dado pela relação entre os valores
dos resistores, neste caso entre o potenciômetro de 50k e o resistor de 100k, ou
seja, ganho de 5 vezes da saída em relação à entrada. 𝑽𝒐𝒖𝒕 𝑽𝒊𝒏
= −𝑹𝒑𝒐𝒕𝒆𝒏𝒄𝒊ô𝒎𝒆𝒕𝒓𝒐
𝑹𝒓𝒆𝒔𝒊𝒔𝒕𝒐𝒓
10.3 Amplificador Integrador (3)
Parcela de controle responsável por manter o erro de regime nulo, caso
tenha valor muito alto acarreta no aumento do sobressinal da resposta. 𝑽𝒐𝒖𝒕 𝑽𝒊𝒏
= −𝟏
𝑹𝒓𝒆𝒔𝒊𝒔𝒕𝒐𝒓 ∗ 𝑪𝒄𝒂𝒑𝒂𝒄𝒊𝒕𝒐𝒓
10.4 Amplificador Derivativo (4)
Parcela de controle responsável por acrescentar amortecimento,
fundamental em processos onde grandes sobressinais são perigosos como
controles de temperatura. 𝑽𝒐𝒖𝒕 𝑽𝒊𝒏
= −𝑹𝒓𝒆𝒔𝒊𝒔𝒕𝒐𝒓 ∗ 𝑪𝒄𝒂𝒑𝒂𝒄𝒊𝒕𝒐𝒓
10.5 Amplificador buffer (somador) (5)
Amplificador que apenas isola os terminais de entrada e saída sem adição
de ganho qualquer.
37
Figura 27 – Simulação do circuito PID no ProteusTM
11 CONSTRUÇÃO DO CONTROLADOR
Depois de realizada toda a parte de simulação iniciou-se o processo de
construção do controlador.
As placas foram projetadas com o auxílio do software EagleTM , dedicado
para esse tipo de trabalho.
11.1 Projeto da placa da fonte simétrica
Primeiro foi projetada uma fonte simétrica para a alimentação dos
amplificadores operacionais e entrada de set point do controlador. A figura 28 mostra
o esquemático da fonte e a figura 29 o resultado final da placa.
Figura 28 – Esquemático da fonte simétrica
38
Figura 29 – Projeto da placa finalizado
11.1.1 Construção da fonte simétrica
Para confeccionar a placa da fonte simétrica, foram utilizados os
seguintes materiais:
• Placa de fenolite virgem
• Percloreto de ferro anidro
• Papel tranfer
• Ferro de passar
• Transformador 0 – 127V – 220V / +9V, -9V
• Resistores
• Capacitores
• Diodo 1N4007
• Diodo Zener
• Conectores
Pode-se observar o resultado final na figura 30.
39
Figura 30 – Frente e verso da fonte CC finalizada
11.2 Projeto da placa do controlador PID
Depois de projetada a fonte simétrica, iniciou-se o projeto da placa para o
circuito do controlador PID, preparada para a entrada do Arduino, sendo essa a
próxima etapa do projeto.
Tendo o mesmo procedimento da placa da fonte simétrica, pode-se
observar na figura 31 o esquemático do circuito e na figura 32 o resultado final da
placa.
Figura 31 – Esquemático do circuito do controlador PID
40
Figura 32 – Projeto da placa finalizado
11.2.1 Construção da placa do circuito PID
Para confeccionar a placa do circuito PID, foram utilizados os seguintes
materiais:
• Placa de fenolite virgem
• Percloreto de ferro anidro
• Papel tranfer
• Ferro de passar
• Amplificador operacional LM741
• Resistores
• Capacitores
• Conectores
Pode-se observar o resultado final na figura 33.
Figura 33 – Frente e verso da placa do circuito PID
41
11.3 Resultados finais PID analógico
Após a finalização de toda parte de confecção de placas, o circuito foi
adaptado ao motor trifásico e aferido os dados mais relevantes.
A tabela 3 demonstra um comparativo entre o motor com e sem
controlador.
MEDIÇÃO SEM CONTROLADOR COM CONTROLADOR T 6,5s 4s
TS 19s 7s Ess - 16%
Tabela 3 – Comparativo do motor com e sem controlador
Pode-se observar uma diminuição do tempo T e TS em 2,5 e 12
segundos, respectivamente.
O controlador apresentou um de aproximadamente 16%, que poderá ser
melhorado futuramente.
13 PID DIGITAL
A saída PWM do Arduino possui 8 bits, assim, ela varia em valores
numéricos de 0 a 255, ou seja, de 0 a 5V. Desta forma, com o algoritmo
desenvolvido foi possível alterar esses valores, o que proporciona uma variação
também da tensão de alimentação da entrada analógica do inversor de frequência.
Porém há uma incompatibilidade referente a ligação do Arduino com o inversor de
frequência, que é exatamente o fato da saída do Arduino ser digital e a entrada do
inversor de frequência ser analógica e que ainda varia de 0 a 10V, assim foi
necessário a elaboração de uma interface que deve tornar compatível o recebimento
do sinal do Arduino para o inversor de frequência.
A transformação do sinal digital em analógico consiste, simplesmente, na
montagem de um circuito RC que vai variar a tensão de 0 a 5V, porém, ainda é
necessário fazer com que a tensão varie de 0 a 10V, com isso, foi necessário
projetar um amplificador operacional com ganho 2, conforme figura 32.
42
Figura 31 – Interface para transformação do sinal digital em analógico
13.1 Programação Arduino
A programação foi feita no ambiente do Arduino, e o código está
descrito abaixo:
#include <TimerOne.h>
#include <MsTimer2.h>
unsigned char contBotao = 0, i = 0, j = 0, dig1 = 0, dig2 = 0, dig3 = 0, dig4
= 0, mode = 0, contSet = 15, pon = 0, modeAnt = 0;
unsigned int valorBotao = 0, setPoint = 0, scanTime = 200, k = 0,
valorTaco = 0, contTela = 0, kp = 5032, ki = 2092, kd = 8, displayValue = 0,
valorSetPoint = 0, valorSetPointAnt = 0;
unsigned int contPot = 0, valorControle = 0;
int erroSomado = 0, erroAnt = 0, erro = 0;
const char disp1 = 11, disp2 = 10, disp3 = 13, disp4 = 12, dispDot = 7,
pinoBotao = A0, tacogerador = A1, ref = 25, pinoControle = A3, pinoSetPoint = A2,
saidaControle = 8;
/*
* pino 0 = f
* pino 1 = c
* pino 2 = e
* pino 3 = d
* pino 4 = g
* pino 5 = b
* pino 6 = a
43
* pino 10 = display 2
* pino 11 = display 1
* pino 12 = display 4
* pino 13 = display 3
*
* tempo = 1ms
*
* PORTD = B0abgdecf;
* digito 0 = B01101111;
* digito 1 = B00100010;
* digito 2 = B01111100;
* digito 3 = B01111010;
* digito 4 = B00110011;
* digito 5 = B01011011;
* digito 6 = B01011111;
* digito 7 = B01100010;
* digito 8 = B01111111;
* digito 9 = B01111011;
* digito A = B01110111;
* digito b = B00011111;
* digito C = B01001101;
* digito d = B00111110;
* digito E = B01011101;
* digito F = B01010101;
* digito P = B01110101;
* digito i = B00000010;
*/
void display(unsigned char dig, unsigned char car) {
switch (car) {
case 0:
PORTD = B01101111;
break;
case 1:
44
PORTD = B00100010;
break;
case 2:
PORTD = B01111100;
break;
case 3:
PORTD = B01111010;
break;
case 4:
PORTD = B00110011;
break;
case 5:
PORTD = B01011011;
break;
case 6:
PORTD = B01011111;
break;
case 7:
PORTD = B01100010;
break;
case 8:
PORTD = B01111111;
break;
case 9:
PORTD = B01111011;
break;
case 10:
PORTD = B01110111;
break;
case 11:
PORTD = B00011111;
break;
case 12:
PORTD = B01001101;
45
break;
case 13:
PORTD = B00111110;
break;
case 14:
PORTD = B01011101;
break;
case 15:
PORTD = B01010101;
break;
case 16:
PORTD = B01110101;
break;
case 17:
PORTD = B00000010;
break;
}
switch (dig) {
case 0:
digitalWrite(disp1, LOW);
digitalWrite(disp2, LOW);
digitalWrite(disp3, LOW);
digitalWrite(disp4, LOW);
digitalWrite(dispDot, LOW);
break;
case 1:
digitalWrite(disp1, HIGH);
digitalWrite(disp2, LOW);
digitalWrite(disp3, LOW);
digitalWrite(disp4, LOW);
if(pon == 1) digitalWrite(dispDot, HIGH);
else digitalWrite(dispDot, LOW);
break;
case 2:
46
digitalWrite(disp2, HIGH);
digitalWrite(disp1, LOW);
digitalWrite(disp3, LOW);
digitalWrite(disp4, LOW);
if(pon == 2) digitalWrite(dispDot, HIGH);
else digitalWrite(dispDot, LOW);
break;
case 3:
digitalWrite(disp3, HIGH);
digitalWrite(disp1, LOW);
digitalWrite(disp2, LOW);
digitalWrite(disp4, LOW);
if(pon == 3) digitalWrite(dispDot, HIGH);
else digitalWrite(dispDot, LOW);
break;
case 4:
digitalWrite(disp4, HIGH);
digitalWrite(disp1, LOW);
digitalWrite(disp2, LOW);
digitalWrite(disp3, LOW);
if(pon == 4) digitalWrite(dispDot, HIGH);
else digitalWrite(dispDot, LOW);
break;
}
}
void refreshDisplay() {
if (mode == 0) {
i++;
if (i == ref) {
j++;
switch(j) {
case 1:
display(j, dig1);
47
break;
case 2:
display(j, dig2);
break;
case 3:
display(j, dig3);
break;
case 4:
display(j, dig4);
j = 0;
break;
}
i = 0;
}
} else if(mode == 1) {
k++;
if (k <= 2000) {
i++;
if (i == ref) {
j++;
switch(j) {
case 1:
display(j, dig1);
break;
case 2:
display(j, dig2);
break;
case 3:
display(j, dig3);
break;
case 4:
display(j, dig4);
j = 0;
break;
48
}
i = 0;
}
} else if (k <= 2500) {
display (0, 0);
} else k = 0;
} else if(mode == 2) {
k++;
if (k <= 2000) {
i++;
if (i == ref) {
j++;
switch(j) {
case 1:
display(j, dig1);
break;
case 2:
display(j, dig2);
break;
case 3:
display(j, dig3);
break;
case 4:
display(j, dig4);
j = 0;
break;
}
i = 0;
}
} else if (k <= 2500) {
i++;
if (i == ref) {
j++;
switch(j) {
49
case 1:
display(j, dig1);
break;
case 2:
digitalWrite(disp2, LOW);
break;
case 3:
display(j, dig3);
break;
case 4:
display(j, dig4);
j = 0;
break;
}
i = 0;
}
} else k = 0;
} else if(mode == 3) {
k++;
if (k <= 2000) {
i++;
if (i == ref) {
j++;
switch(j) {
case 1:
display(j, dig1);
break;
case 2:
display(j, dig2);
break;
case 3:
display(j, dig3);
break;
case 4:
50
display(j, dig4);
j = 0;
break;
}
i = 0;
}
} else if (k <= 2500) {
i++;
if (i == ref) {
j++;
switch(j) {
case 1:
display(j, dig1);
break;
case 2:
display(j, dig2);
break;
case 3:
digitalWrite(disp3, LOW);
break;
case 4:
display(j, dig4);
j = 0;
break;
}
i = 0;
}
} else k = 0;
} else if(mode == 4) {
k++;
if (k <= 2000) {
i++;
if (i == ref) {
j++;
51
switch(j) {
case 1:
display(j, dig1);
break;
case 2:
display(j, dig2);
break;
case 3:
display(j, dig3);
break;
case 4:
display(j, dig4);
j = 0;
break;
}
i = 0;
}
} else if (k <= 2500) {
i++;
if (i == ref) {
j++;
switch(j) {
case 1:
display(j, dig1);
break;
case 2:
display(j, dig2);
break;
case 3:
display(j, dig3);
break;
case 4:
digitalWrite(disp4, LOW);
j = 0;
52
break;
}
i = 0;
}
} else k = 0;
} else if(mode == 5) {
k++;
if (k <= 2000) {
i++;
if (i == ref) {
j++;
switch(j) {
case 1:
display(j, dig1);
break;
case 2:
display(j, dig2);
break;
case 3:
display(j, dig3);
break;
case 4:
display(j, dig4);
j = 0;
break;
}
i = 0;
}
} else if (k <= 2500) {
i++;
if (i == ref) {
j++;
switch(j) {
case 1:
53
digitalWrite(disp1, LOW);
break;
case 2:
display(j, dig2);
break;
case 3:
display(j, dig3);
break;
case 4:
display(j, dig4);
j = 0;
break;
}
i = 0;
}
} else k = 0;
}
}
void pid() {
valorTaco = map (analogRead(tacogerador), 0, 1023, 0, 1650);
erro = setPoint - valorTaco;
erroSomado += erro / 100;
int p = (float) (kp / 1000) * erro;
int it = (float) (ki / 100) * (erroSomado);
if (it > 500) it = 500;
else if (it < -500) it = -500;
int d = (float) (kd / 1000) * (erroAnt);
erroAnt = erro;
int saida = p + it + d;
if (saida > 1600) saida = 1600;
else if (saida < 0) saida = 0;
Timer1.pwm(9, map(saida, 0, 1600, 0, 1023));
}
54
void telas() {
unsigned int erroMostrado = 0;
unsigned char flagDisplay = 0, contMostrado = 0;
mode = 5;
dig1 = 14;
dig2 = 16;
dig3 = 17;
dig4 = 13;
while(contTela <= 24) {
valorBotao = analogRead(pinoBotao);
if(valorBotao <= 12) {
mode++;
if(mode == 6) mode = 2;
contTela = 0;
}
if (valorBotao >= 500 && valorBotao <= 524) {
contTela = 100;
}
contTela++;
delay(scanTime);
}
if (contTela >= 100) {
contTela = 0;
modeAnt = mode;
mode = 0;
if (modeAnt == 2) {
displayValue = kp;
pon = 1;
} else if (modeAnt == 3) {
displayValue = ki;
pon = 2;
} else if (modeAnt == 4) {
displayValue = kd;
55
pon = 1;
} else if (modeAnt == 5) {
while (valorBotao >= 100) {
valorBotao = analogRead(pinoBotao);
if (valorBotao >= 500 && valorBotao <= 524) {
flagDisplay++;
if (flagDisplay == 2) flagDisplay = 0;
}
if (erro < 0) erroMostrado = (-1) * erro;
else erroMostrado = erro;
if (flagDisplay == 0) {
erroMostrado = map(erroMostrado, 0, 1600, 0, 5000);
pon = 1;
} else pon = 0;
if (contMostrado == 5) {
dig1 = erroMostrado / 1000;
dig2 = erroMostrado / 100 % 10;
dig3 = erroMostrado / 10 % 10;
dig4 = erroMostrado % 10;
}
delay(200);
contTela = 25;
contMostrado++;
if (contMostrado == 6) contMostrado = 0;
}
}
while (contTela <= 24) {
valorBotao = analogRead(pinoBotao);
if (valorBotao >= 500 && valorBotao <= 524) {
if (modeAnt == 2) {
if (kp < 9999) kp++;
displayValue = kp;
pon = 1;
}
56
else if (modeAnt == 3) {
if (ki < 9999) ki++;
displayValue = ki;
pon = 2;
}
else if (modeAnt == 4) {
if (kd < 9999) kd++;
displayValue = kd;
pon = 1;
}
if (contBotao < 250) contBotao++;
contTela = 0;
} else if (valorBotao >= 670 && valorBotao <= 694) {
if (modeAnt == 2) {
if (kp > 0) kp--;
displayValue = kp;
pon = 1;
}
else if (modeAnt == 3) {
if (ki > 0) ki--;
displayValue = ki;
pon = 2;
}
else if (modeAnt == 4) {
if (kd > 0) kd--;
displayValue = kd;
pon = 1;
}
if (contBotao < 250) contBotao++;
contTela = 0;
} else if (valorBotao <= 12) {
contTela = 25;
} else {
contBotao = 0;
57
contTela++;
}
dig1 = displayValue / 1000;
dig2 = displayValue / 100 % 10;
dig3 = displayValue / 10 % 10;
dig4 = displayValue % 10;
if (contBotao == 0) scanTime = 200;
else if (contBotao == 10) scanTime = 100;
else if (contBotao == 30) scanTime = 50;
else if (contBotao == 70) scanTime = 5;
else if (contBotao == 250) scanTime = 3;
delay(scanTime);
}
}
contTela = 0;
pon = 0;
scanTime = 200;
}
void setup() {
DDRD = B11111111;
pinMode(disp1, OUTPUT);
pinMode(disp2, OUTPUT);
pinMode(disp3, OUTPUT);
pinMode(disp4, OUTPUT);
pinMode(dispDot, OUTPUT);
pinMode(saidaControle, OUTPUT);
PORTD = B00000000;
digitalWrite(disp1, LOW);
digitalWrite(disp2, LOW);
digitalWrite(disp3, LOW);
digitalWrite(disp4, LOW);
digitalWrite(dispDot, LOW);
digitalWrite(saidaControle, LOW);
58
Timer1.initialize(200); //200us period
Timer1.attachInterrupt(refreshDisplay);
Timer1.pwm(9, 0);
MsTimer2::set(10, pid); // 10ms period
MsTimer2::start();
}
void loop() {
pon = 0;
valorBotao = analogRead(pinoBotao);
valorSetPoint = analogRead(pinoSetPoint);
valorControle = analogRead(pinoControle);
if (valorControle >= 1010) {
digitalWrite(saidaControle, HIGH);
mode = 0;
dig1 = valorTaco / 1000;
dig2 = valorTaco / 100 % 10;
dig3 = valorTaco / 10 % 10;
dig4 = valorTaco % 10;
} else if (valorControle <= 2) {
contPot = 0;
digitalWrite(saidaControle, LOW);
if (valorSetPoint >= valorSetPointAnt + 400 || valorSetPoint <=
valorSetPointAnt - 400) {
while (contPot <= 10 && valorControle <= 1010) {
contPot++;
valorSetPoint = analogRead(pinoSetPoint);
valorControle = analogRead(pinoControle);
setPoint = map(valorSetPoint, 0, 1023, 0, 1600);
setPoint /= 100;
setPoint *= 100;
mode = 1;
dig1 = setPoint / 1000;
dig2 = setPoint / 100 % 10;
59
dig3 = setPoint / 10 % 10;
dig4 = setPoint % 10;
delay(scanTime);
valorSetPointAnt = valorSetPoint;
}
}
if (valorBotao <= 12) {
scanTime = 250;
telas();
}
mode = 0;
dig1 = valorTaco / 1000;
dig2 = valorTaco / 100 % 10;
dig3 = valorTaco / 10 % 10;
dig4 = valorTaco % 10;
}
delay(scanTime);
}
13.2 Resultados finais PID digital
Após a finalização de toda parte de montagem das placas, o circuito foi
adaptado ao motor trifásico juntamente com o PID analógico e aferido os dados mais
relevantes.
A tabela 4 demonstra um comparativo entre o motor com e sem
controlador.
MEDIÇÃO SEM CONTROLADOR COM CONTROLADOR T 6,5s 5s
TS 19s 9s Ess - 18%
Tabela 4 – Comparativo do motor com e sem controlador
Pode-se observar uma diminuição do tempo T e TS em 1,5 e 10
segundos, respectivamente.
61
14 CONCLUSÃO
Ao fim do experimento como um todo, chegamos aos resultados
esperados em relação aos requisitos solicitados no anteprojeto, e também, em
relação às vivências e aprendizagem de todo o grupo sobre o tema abordado e seus
assuntos correlacionados.
O projeto solicitado através do roteiro, teve como objetivo a construção de um
motor de indução trifásico de corrente alternada. Ainda, solicitado um sistema de
controle de variação de velocidade de rotação do rotor de duas maneiras: analógico
e digital.
O cálculo dos dados de projeto do motor bem como a sua construção
evoluíram como o esperado e dentro do cronograma estipulado pelo roteiro. O ponto
chave desse primeiro avanço do projeto foi a “transformação” da teoria em prática.
Conseguimos tirar os cálculos do papel e traduzi-los em um projeto completo e
funcional (funcional para a finalidade didática).
O segundo avanço tratou de modelar representar o motor de indução, criando
subsídios para o desenvolvimento dos sistemas de controle do motor tanto o
analógico quanto o digital. Esta etapa foi de grande valia para o aprendizado do
grupo que conseguiu imprimir os dados da modelagem no terceiro e último avanço
do trabalho.
Partindo para o terceiro avanço, projetou-se e construiu-se as placas e
programas para o controle analógico/digital do motor, bem como sua análise de
desempenho e confiabilidade. Ao final desse último avanço, foi possível entregar o
projeto com todos os dados solicitados no roteiro e obter o aprendizado completo de
como construir e projetar um sistema de controle proporcional / integrativo /
derivativo (PID), com a inserção e programação de um microcontrolador ao sistema.
62
15 REFERÊNCIAS
[1] NISE, B. W. Engenharia de sistemas de controle.[S.I]: Norman S, 2012 [2] CAMARGO,V. L. A. Controladores lógicos programáveis. Sistemas discretos. Lambert Erica, 2008. [3] GEROMEL, J. C. Controle linear de sistemas dinámicos. Teoria, ensaios práticos e exercícios. Edgard Blucher, 2011. [4] OGATA ,Katsuhiko. Engenharia de controle moderno. Prentice hall Brasil, 2010. [5] MALVINO. Eletrônica. Person, 1996.