SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
BAURU
Ano 2006
Ricardo Pereira Ceide
CONTROLADOR PID DIGITAL PARA POSICIONAMENTO
DE SERVOMOTOR CC
Ricardo Pereira Ceide
CONTROLADOR PID DIGITAL PARA POSICIONAMENTO
DE SERVOMOTOR CC
Monografia apresentada à Faculdade de
Engenharia da UNESP – Campus de Bauru, para
a obtenção do título de Especialista em Engenharia
Mecatrônica.
ORIENTADOR: Prof. Dr. Mário Eduardo Bordon
DIVISÃO TÉCNICA DE BIBLIOTECA E DOCUMENTAÇÃO
UNESP – BAURU
Ceide, Ricardo Pereira.
Controlador PID digital para posicionamento
de servomotor CC / Ricardo Pereira Ceide, 2006.
59 f.
Orientador: Mário Eduardo Bordon.
Monografia (Especialização) –
Universidade Estadual Paulista.
Faculdade de Engenharia, Bauru, 2006.
1. Controlador PID. 2. Controle. 3.
Microcontrolador. I – Universidade
Estadual Paulista. Faculdade de
Ficha catalográfica elaborada por Maristela Brichi Cintra – CRB 5046
UNIVERSIDADE ESTADUAL PAULISTA
"JÚLIO DE MESQUITA FILHO"
Campus de Bauru
ATA DA AVALIAÇÃO DA MONOGRAFIA DEFENDIDA PELO ALUNO Ricardo Pereira Ceide DO
CURSO DE ESPECIALIZAÇÃO EM ENGENHARIA MECATRÔNICA DA FACULDADE DE:
ENGENHARIA DO CAMPUS DE BAURU. " 'l ? " J:S*
Aos 03 de novembro de 2006, às 14 horas, na Anfiteatro da Pós-graduação da Faculdade de
Engenharia do Campus de Bauru, em sessão pública reuniu-se a Comissão
Examinadora da defesa da Monografia de Ricardo Pereira Ceide, visando a obtenção do
título de Especialista em Engenharia Mecatrônica, assim constituída: Prof. Dr. Mário
Eduardo Bordon; Prof. Dr. José Alfredo Covolan Ulson e o Prof. Dr. Ivo Reis Fontes,
conforme Processo FE n° 370/47/01/05. Iniciados os trabalhos o aluno submeteu-se na
forma regimental da defesa da monografia intitulada: "CONTROLADOR PID DIGITAL
PARA POSICIONAMENTO DE SERVOMOTOR CC". Terminado o exame, procedeu-se o
julgamento, cujo resultado foi o seguinte, observada a ordem de arguição: Prof. Dr. José
Alfredo Covolan Ulson, nota 7,5; Prof. Dr. Ivo Reis Fontes, nota 7,5 e o Prof. Dr. Mário
Eduardo Bordon, nota 7,5 Apuradas as notas, verificou-se que o aluno foi habilitado
com nota 7,5. Nada mais havendo a registrar, eu José Ricardo Ferreira Pinto -
Supervisor- substituto da Seção da Pós-graduação da Faculdade de Engenharia -
Campus de Bauru lavrei a presente ATA, que após lida e aprovada será assinada por
todos. Bauru, 03 de novembro de
2006. Prof. Dr. Mário Eduardo
Bordon, Prof.Dr. José AlfredoCovolan
Ulson_ Prof. Dr. Ivo Reis Fontes
Supervisor - José Ricardo Ferreira
Pinto_
Faculdade de Engenharia Bauru Seção de Pós-Graduaçao
Av. Eng Luiz Edmundo Carrijo Coube 14-01 CEP 17033-360 Bauru SP Brasil
Tel 14 3103 6108 fax 14 3103 6104 spg@feb.unesp.br
unesp
Agradecimentos
Agradeço ao meu orientador Mário Bordon pelas sugestões que enriqueceram
este trabalho.
À Roseli Maria Zechi Ceide pela compreensão e apoio.
Saliento também que este projeto só foi possível através dos conhecimentos
adquiridos no curso de especialização. Comecei a trabalhar com os
microcontroladores PIC, especificamente o 16F628, após o Prof. Marcelo Franchin
comentar que este seria utilizado em uma atividade do curso. A partir deste instante,
busquei um maior conhecimento sobre o assunto.
Comento positivamente as aulas de Controle de Processos Industriais do
Prof. Paulo Sérgio da Silva, as aulas de Sistemas de Controle de Movimento do Prof.
Edwin Avolio, as aulas de Sistemas de Controle Inteligente do Prof. Mário Eduardo
Bordon e as aulas de Sensores e Instrumentação do Prof. José Alfredo Covolan
Ulson.
Dedico este trabalho à minha
família e a Deus.
CEIDE, R. P. Controlador PID Digital para Posicionamento de Servomotor CC.
Bauru, 2006, 59p. Monografia (Especialização em Engenharia Mecatrônica) –
Faculdade de Engenharia, Campus de Bauru, Universidade Estadual Paulista “Júlio
de Mesquita Filho”.
Resumo
Os controladores do tipo PID desempenham um papel de extrema
importância, permitindo um controle mais preciso do processo ao qual está inserido.
Com o aumento do desempenho e da qualidade dos microprocessadores, os
controladores digitais estão cada vez mais sendo utilizados nos sistemas de
controle. Outras vantagens são o baixo custo e a redução de tamanho físico.
Neste trabalho apresenta-se um controlador PID digital para posicionamento
de um servomotor CC, utilizando um microcontrolador PIC 18F2331 da Microchip.
O microcontrolador 18F2331 apresenta características que fazem dele um
escolha ideal para muitas aplicações em controle de motores.
Com uma interface de comunicação e o software Matlab, foi possível obter a
posição do motor e outras informações, salvar em arquivos texto e apresentar em
forma de gráfico.
A implementação do PID digital foi satisfatória pois obteve-se um
posicionamento preciso do servomotor CC.
PALAVRAS-CHAVE: controlador PID, controle, microcontrolador.
CEIDE, R. P. Digital PID Controller for DC Servomotor Emplacement. Bauru, 2006,
59p. Monograph (Specialization in Mechatronic Engineering) – College of
Engineering, Bauru Campus, Sao Paulo State University “Júlio de Mesquita Filho”.
Abstract
The controllers of type PID play a role of extreme importance, allowing a more
necessary control of the process to which are inserted.
With the increase of the performance and the quality of the microprocessors,
the digital controllers are each time more being used in the control systems. Other
advantages are the low cost and the reduction of physical size.
In this work a digital controller PID for positioning of a servomotor CC presents
itself, using a microcontroller PIC 18F2331 of the Microchip. The microcontroller
18F2331 presents characteristics that make of it an ideal choice for many
applications in control of engines.
With a communication interface and Matlab software, was possible to get the
position of the engine and other information, to save in archives text and to present in
graph form.
The implementation of the digital PID was satisfactory therefore got a
necessary positioning of servomotor CC.
KEY WORDS: PID controller, control, microcontroller.
Lista de siglas
A/D Analógico Digital
CLP Controlador Lógico Programável
CPU Center Processing Unit
D/A Digital Analógico
EEPROM Eletrically Erasable Programmable Read-only Memory
Hz Hertz
LCD Liquid Cristal Dysplay
PID Proportional, Integral e Derivative
PWM Pulse Width Modulation
RISC Reduced Instruction Set Computer
VCC Voltage Current Continua
MIPS Milhões de Instruções por segundo
TL Transformada de Laplace
CI Circuito Integrado
Lista de símbolos
Kp Ganho proporcional
Ki Ganho integral
Kd Ganho derivativo
e(t) Erro do sistema
u(t) sinal de controle
Ea(t) tensão de armadura em função do tempo
Ra Resistência de armadura
La Indutância de armadura
Vfcem Tensão induzida na armadura
Tm Torque do motor
Tj Torque inercial do sistema
Tb Torque viscoso
Tc Torque de carga
Ia Corrente de armadura
Kt Constante de torque do motor
B Atrito viscoso
J Inércia do motor
ωm Velocidade do motor
θ(t) Posição do motor
.
mθ Derivada da posição
..
mθ Derivada segunda da posição
Tm(S) Transformada de Laplace de Tm
θ(S) Transformada de Laplace da posição
Tc(S) Transformada de Laplace de Tc
Lista de Ilustrações
FIGURA 2.1 – REPRESENTAÇÃO DO SISTEMA.....................................................20
FIGURA 2.2 - CIRCUITO ELÉTRICO DO MOTOR CC.............................................22
FIGURA 2.3 – CIRCUITO BÁSICO DE PWM............................................................23
FIGURA 2.4 – FORMA DE ONDA DE TENSÃO DO CIRCUITO...............................24
FIGURA 2.5 – PINAGEM DO MICROCONTROLADOR............................................28
FIGURA 2.6 - DIAGRAMA DE MONTAGEM DO SISTEMA......................................33
FIGURA 2.7 – CONVERSÃO DE 20 BITS EM 14 BITS............................................36
FIGURA 3.1 – SISTEMA DE CONTROLE DO TIPO MALHA FECHADA..................38
FIGURA 3.2 – TRECHO DO PROGRAMA RELACIONADO COM O CONTROLE PID
....................................................................................................................................38
FIGURA 4.1 – GRÁFICO DO SINAL PWM APLICADO AO MOTOR........................44
FIGURA 4.2 – GRÁFICO DO TEMPO DE VARREDURA DO SOFTWARE.............45
FIGURA 4.3 – GRÁFICO DE VC_PWM E DA POSIÇÃO.........................................46
FIGURA 4.4 – RESPOSTA DO SISTEMA EM FUNÇÃO DE KP...............................47
FIGURA 4.5 – RESPOSTA DO SISTEMA EM FUNÇÃO DOS PARÂMETROS DE
CONTROLE................................................................................................................48
FIGURA 4.6 – RESPOSTA DO SISTEMA EM FUNÇÃO DOS PARÂMETROS DE
CONTROLE................................................................................................................49
FIGURA 4.7 – RESPOSTA DO SISTEMA EM FUNÇÃO DOS PARÂMETROS DE
CONTROLE................................................................................................................50
ANEXO 1 – CARACTERISTICAS DO SERVOMOTOR CC.......................................54
Sumário
1 INTRODUÇÃO........................................................................................................15
1.1 Controladores PID.....................................................................................15
1.2 Controladores Analógicos e Digitais..........................................................16
1.3 Microcontroladores PIC.............................................................................17
1.4 Controle de movimento..............................................................................18
1.5 Objetivo......................................................................................................19
2 DESCRIÇÃO DO SISTEMA ...................................................................................20
2.1 Introdução..................................................................................................20
2.2 Servomotor CC..........................................................................................21
2.3 PWM..........................................................................................................23
2.4 Encoder......................................................................................................25
2.5 Microcontrolador 18F2331.........................................................................26
2.5.1 Introdução....................................................................................26
2.5.2 Características de controle de movimento...................................29
2.5.3 Módulo do PWM...........................................................................29
2.4.4 Leitura do encoder.......................................................................30
2.6 Driver de potência......................................................................................31
2.6.1 Introdução....................................................................................31
2.6.2 Tipos de PWM..............................................................................31
2.7 Material e Método......................................................................................32
2.7.1 Introdução....................................................................................32
2.7.2 Material utilizado..........................................................................33
2.7.3 Descrição do sistema..................................................................34
2.7.3.1 Hardware........................................................................34
2.7.3.2 Software.........................................................................35
2.7.3.3 Controle PID...................................................................35
3 SISTEMA DE CONTROLE .....................................................................................38
3.1 Controle.....................................................................................................38
3.2 Controlador...............................................................................................39
3.2.1 Proporcional.................................................................................39
3.2.2 Integral.........................................................................................40
3.2.3 Derivativo.....................................................................................41
3.2.4 Controlador PID............................................................................41
3.2.5 Discretização do Controlador PID................................................42
4 RESULTADOS E DISCUSSÕES............................................................................44
4.1 Freqüência do PWM..................................................................................44
4.2 Tempo de varredura do programa.............................................................45
4.3 Resposta do sistema.................................................................................46
5 CONCLUSÕES.......................................................................................................51
REFERÊNCIAS BIBLIOGRÁFICAS ..........................................................................52
ANEXO 1– CARACTERÍSTICAS DO MOTOR .........................................................53
ANEXO 2 – ALGORITMO DE CONTROLE NO MICROCONTROLADOR................54
ANEXO 3 – SOFTWARE NO MATLAB......................................................................56
ANEXO 4 – EXEMPLO DO ARQUIVO GERADO PELO MATLAB............................58
15
CAPITULO 1
Introdução
1.1– Controladores PID
Os controladores do tipo PID, têm sido largamente utilizados no controle de
processos industriais desde a década de 30, e sua simplicidade e popularidade
levaram aos estudos realizados por Ziegler-Nichols (1942).
Com o grande avanço tecnológico ocorrido nas últimas duas décadas, os
projetos na área de sistemas de controle foram direcionados aos sistemas lineares
com dados amostrados, com a grande vantagem de se trabalhar com controle
digital, surgindo assim a possibilidade de se implementar um controlador digital,
utilizando as novas técnicas e dispositivos eletrônicos disponíveis.
O controle automático tem sido vital para o avanço da ciência e da
engenharia. Suas aplicações são inúmeras, sendo parte fundamental de sistemas
bélicos, aeronaves, robôs e muitos outros. O controle automático é atualmente parte
importante dos atuais processos industriais e de fabricação. Neste contexto, o
controle automático é essencial no controle numérico de máquinas-ferramenta nas
indústrias de fabricação, sendo também fundamental em operações industriais tais
como: controle de pressão, temperatura, umidade, viscosidade e fluxo em processos
industriais.
Recentes desenvolvimentos em teoria de controle moderno estão no campo
do controle ótimo, tanto de sistemas determinísticos quanto de estocásticos, bem
como do controle de aprendizado e adaptativo de sistemas complexos. Com os
16
computadores digitais tornando-se mais baratos e mais compactos, estes são
utilizados como partes integrantes destes sistemas de controle (Ogata, 1993).
Neste contexto, os controladores PID (Proporcional, Integral e Derivativo)
desempenham um papel de extrema importância, permitindo um controle mais
preciso e mais fiel do processo ao qual está relacionado.
1.2- Controladores Analógicos e Digitais
Os sistemas de controle analógicos são normalmente implementados com
componentes analógicos tais como amplificadores operacionais, resistores e
capacitores. Estes componentes analógicos são dispostos de maneira a formar
estruturas do tipo filtro, que modificam a resposta em freqüência do sistema.
Com o aumento do desempenho e da qualidade dos microprocessadores os
controladores digitais estão tomando o lugar dos controladores analógicos.
Vantagens obtidas com a técnica digital, conforme BORDON (1993):
• Aumento de sensibilidade, onde valores de grande potência podem ser
controlados por sinais de baixo nível.
• Uso direto de transdutores digitais, aumentando a imunidade a ruídos e
não linearidades.
• Implementação exata das leis de controle, garantindo a confiabilidade
necessária aos sistemas de controle.
• Controle simultâneo de vários sinais, através da comunicação digital local
e remota.
17
Geralmente um controlador digital é formado basicamente por um controlador,
que processa o sinal de erro. Um conversor digital para analógico (D/A) é necessário
para converter a saída digital do processador em um sinal analógico e acionar o
driver de potência e o atuador. Para possibilitar a realimentação ao processador, é
necessário um conversor analógico para digital (A/D), como interface do sinal do
sensor para o processador.
1.3 - Microcontroladores PIC
Tipicamente os microcontroladores se caracterizam por incorporarem
internamente memórias de programa e dados. Vários periféricos como timers,
watchdog timers, comunicação serial, conversores analógicos digitais, geradores de
PWM, etc. Fazendo com que a aplicação final fique extremamente compactada.
A Microchip é uma precursora no uso da tecnologia RISC em
microprocessadores. O nome RISC é a abreviação de Reduced Instruction Set
Computer (computador com conjunto de instruções reduzido). Diferente da
arquitetura Von Newmann, a estrutura RISC é baseada na arquitetura Harvard que
possui um barramento para dados e outro para o programa, e tem como
características, tamanhos diferenciados entre o barramento de dados e de
programa, permitindo que em uma única palavra tenha a instrução e o operando.
Existem modelos de PIC onde o barramento de dados é de 8 bits e o de
programa é de 12 bits. Com isso consegue-se compactar o código e executá-lo em
alta velocidade.
O alto desempenho da família de microcontroladores PIC pode ser atribuída
às seguintes características da arquitetura RISC, conforme CANZIAN (1998).
18
• Conceito de registrador arquivo
• Todas as instruções com palavras simples
• Palavra de instrução longa (LWI – Long Word Instruction)
• Arquitetura de instruções em “Pipeline”
• Instruções de apenas um ciclo de máquina
• Conjunto de instruções reduzido
1.4- Controle de movimento
A definição exata de controle de movimento é muito complexa, devido ao fato
de expressar diferentes significados para os diversos setores da indústria. Em
muitos casos, as técnicas de controle de movimento estão intimamente ligadas aos
controladores de movimento, à estrutura mecânica do posicionamento e aos
atuadores utilizados na aplicação.
Um controlador de movimento satisfaz quatro características importantes:
leitura do sinal de realimentação de posição, geração de um comando de
posicionamento ou perfil de movimento, fechamento da malha de posição e
compensação da instabilidade.
De todas estas características, os mais importantes são a leitura do sinal de
realimentação de posição e o fechamento da malha de controle. A posição do motor
é geralmente determinada por um encoder incremental. A diferença entre a posição
atual e o comando de posição é o erro de posição.
O controlador minimiza o erro sem fazer oscilar a carga. Geralmente um
algoritmo PID é usado para este serviço.
19
1.5– Objetivo
Este trabalho tem como objetivo observar o desempenho de um sistema de
posicionamento de um servomotor CC, utilizando o algoritmo de controle PID
implementado em um microcontrolador.
20
CAPITULO 2
Descrição do Sistema
2.1 – Introdução
Este capítulo descreve todos os componentes utilizados no sistema e suas
respectivas características e formas de atuação. O objetivo principal do projeto é o
controle de posição e a alteração das variáveis de controle PID que modifiquem o
estado do motor de corrente contínua (motor CC).
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
A
B
C
D
E
F
A
B
C
D
E
F
microcontrolador
encoder
chaves e
botões
led´s e
display
PC
driver e
motor
Figura 2.1 – Representação básica do sistema.
21
A informação de velocidade é transferida para o microcontrolador através de
um dispositivo chamado encoder. Utilizando essas informações, o microcontrolador
atua de forma autônoma controlando o motor. Para o controle foi implementado no
microcontrolador um algoritmo do tipo PID.
O sistema, além do microcontrolador, conta também com um display LCD
16x2, 1 chave pulsante e um driver para o acionamento do motor de corrente
contínua. Através do display são visualizadas informações como a leitura de
posição, os valores dos ganhos e o valor da variável “Vc_pwm”. A chave serve para
habilitar e desabilitar o motor, gerando um degrau de posição.
A variação de velocidade do motor é feita utilizando a saída PWM (Modulação
de Largura de Pulso) do microcontrolador e o driver de potência.
Foi implementada uma interface de comunicação com um microcomputador
utilizando a porta serial RS-232. Foi implementado um script em Matlab para o envio
e recebimento de dados do microcontrolador. O microcomputador faz a leitura da
posição do motor e também pode alterar os ganhos do controle PID.
2.2 – Servomotor CC
O controle dos motores CC pode ser feito através da corrente de campo (If)
ou da corrente da armadura (Ia). O controle por armadura é o método mais comum e
foi utilizado neste projeto.
O controle de velocidade do motor é conseguido por meio de uma tensão
aplicada à armadura (Ea). A polaridade da tensão aplicada determina o sentido do
torque obtido (Tm) e este determina o sentido de giro.
22
Na figura abaixo, Ra e La indicam a resistência de armadura e a indutância de
armadura respectivamente. Ia é a corrente que circula no circuito de armadura
devido à aplicação de Ea (D´ÁZZO-HOUPIS (1981)).
Figura 2.2 – Circuito elétrico do motor CC.
A equação para o circuito de armadura fica:
.
. .Ea La Ia Ra Ia Vfcem= + + (2.1)
Quando a corrente de campo é constante, o fluxo produzido pela bobina de
campo também é constante e nesse caso o conjugado (Tm) desenvolvido pelo motor
é proporcional à corrente de armadura (Ia).
.Tm K t Ia= (2.2)
onde Kt é uma constante que depende do meio magnético e do valor da corrente de
campo.
Podemos relacionar os torques envolvidos no sistema:
23
Tm Tj Tb Tc= + + (2.3)
onde Tj é torque inercial do sistema; Tb é o torque viscoso e Tc é o torque da carga.
Melhorando a apresentação da equação 3.11 temos:
.. .
. .Tm j m B m Tcθ θ= + + (2.4)
2.3 – PWM
PWM é a abreviação de Pulse Width Modulation ou Modulação por largura de
pulso.
Para entender como funciona esta tecnologia no controle de potência, vamos
partir de um circuito imaginário formado por um interruptor de ação muito rápida e
uma carga linear que deve ser controlada, de acordo com a figura 2.3.
cargafonte de alimentação CC
interruptor
Figura 2.3 – circuito básico de PWM.
24
Quando o interruptor está aberto não há corrente na carga e a potência
aplicada é nula. No instante que o interruptor é fechado, a carga recebe a tensão
total da fonte e a potência aplicada é máxima.
Para fazermos que a potência aplicada na carga seja intermediária, digamos
50% da potência total, é necessário que o interruptor seja rapidamente seja
chaveado, isto é, aberto e fechado. O interruptor deve ficar 50% do tempo aberto e
50% do tempo fechado.
0
50
100
tensão de carga (%)
tempo (segundos)
valor médio da tensão
T
t1 t2
t1 = t2
Figura 2.4 – forma de onda de tensão do circuito.
Podemos observar na figura acima, que a soma dos tempos t1 e t2 define o
período ou freqüência de chaveamento.
1 1
1 2
chaveamentoF
T t t
= =
+ (2.5)
25
A relação entre o tempo do pulso (t1) e o tempo total do chaveamento (t1 + t2)
é chamado de duty cycle.
1
_ 100%
1 2
t
duty cycle
t t
=
+ (2.6)
Variando-se a largura do pulso e também o intervalo de modo a termos ciclos
ativos diferentes, podemos controlar a potência média aplicada a uma carga. Assim,
quando a largura do pulso varia de zero até o máximo, a potência também varia na
mesma proporção.
Este princípio é usado no controle PWM, varia-se a largura do pulso de modo
a controlar a potência aplicada a uma carga.
2.4 – Encoder
O encoder gera um pulso para um determinado incremento de rotação do eixo
(encoder rotativo), ou um pulso para uma determinada distância linear percorrida
(encoder linear).
Embora seja mais utilizado no controle de posição, o encoder também é
utilizado para medir velocidade, uma vez que medindo a distância total percorrida
(através da contagem dos pulsos na saída do encoder) e o tempo necessário para
esta distância ser percorrida, consegue-se calcular a velocidade.
Há vários tipos: magnético, contacto, resistivo, e óptico. Porém, o sistema
mais preciso é o encoder óptico. Os encoders ópticos operam por meio de um disco
26
com ranhuras ou aberturas transparentes, que se move entre uma fonte de luz (seja
visível ou infravermelha) e um detector.
Este disco é acoplado mecanicamente em um eixo. À medida que o eixo
começa a girar, o disco passa entre a fonte e o detector, fazendo com que o feixe de
luz seja interrompido quando encontra uma parte fechada e seja novamente liberado
quando passar por uma abertura transparente, gerando assim uma onda pulsante. A
fonte de luz pode ser um diodo Emissor de Luz (LED), um diodo infravermelho ou
uma pequena lâmpada incandescente.
Já o detector normalmente é um fototransistor ou mais comumente um diodo
fotovoltaico. Esse sistema simples composto por apenas um LED provê um único
sinal de saída o que é indesejável, uma vez que o sinal de saída, tem um offset CC
que é dependente da temperatura fazendo com que o sinal fique difícil de ser usado.
Na prática, dois fotodiodos são usados, organizados para produzir sinais com
180° de diferença de fase para cada canal, as duas saídas dos diodos são
subtraídas para cancelar o offset CC.
2.5 – Microcontrolador 18F2331
2.5.1 – Introdução
O PIC 18F2331 é um microcontrolador que tem periféricos muito úteis em
aplicações de controle de motores. Podendo operar de DC até 40MHZ (ciclo de
27
instrução de 100ns) e faz parte da família PIC com instruções de 16 bits, o que
garante alto rendimento computacional com baixo custo.
Características principais são:
• 8K (8192 bytes) de memória flash usada para a memória do programa
• 256 bytes de EEPROM para dados
• 768 bytes de RAM de dados
• Stack com 31 níveis
• 4K (4096 ) palavras de 12 bits
• Multiplicação 8 bits x 8 bits por hardware em apenas 1 ciclo de máquina
• Modulo de PWM de 14 bits
• Modulo de realimentação de movimento
• Conversor A/D de 10 bits de alta velocidade com até 5 entradas
• Até 24 pinos para uso de entrada e saída
• 3 interrupções externas
• Capacidade de drenar /fornecer 25mA / pino
• 4 timers programáveis de 8 e 16 bits
• watchdog programável
• ICSP™ via 2 pinos
• Proteção contra leitura do código
28
Figura 2.5 – Pinagem do microcontrolador.
A memória de programa tem por objetivo armazenar as “instruções” a serem
executadas pelo processador. Esta memória tem como característica não ser volátil,
isto é, não perde as informações na falta de energia.
A memória de dados é onde o processador realiza todas as funções de
cálculo e armazenamento de informações transitórias. Esta memória tem como
característica ser volátil, isto é, perde informações na falta de energia.
A memória eeprom de dados é uma memória especial que temos no
microcontrolador, esta memória pode ser alterada para armazenar valores e de não
perder estes resultados ao se desconectar a energia. Mas a gravação nesta
memória não é feito de forma rápida como na RAM.
Os usos mais indicados para a eeprom são:
• gravação de senhas e parâmetros de configuração
• dados de contadores
29
• outros que não podem ser perdidos nos desligamentos
2.5.2 – Características de controle de movimento
O microcontrolador 18F2331 apresenta características que fazem dele um
escolha ideal para muitas aplicações de alto desempenho em controle de motores,
(data Sheet do PIC18F2331 (2003)).
Podemos especificar os seguintes periféricos e suas características:
• Módulo PWM de controle de potência (PCPWM) com resolução de 14
bits. O PCPWM pode gerar até 8 saídas PWM complementares.
• Desligamento por hardware (shutdown) através de entradas de falha.
• Interface de encoder com canal A, canal B e sinal de índice.
• Conversor analógico digital de alta velocidade.
2.5.3 – Módulo do PWM
O módulo de controle PWM simplifica a tarefa de gerar diversas saídas
sincronizadas PWM para uso no controle de motores e aplicações de conversão de
energia. Particularmente, as seguintes aplicações de controle de movimento e
controle de potência são englobadas:
• Motores de indução monofásicos e trifásicos
• Motores CC sem escova
• Fontes de energia sem interrupção
• Diversos motores CC com escova
30
2.5.4 – Leitura do encoder
O microcontrolador tem um periférico de detecção de posição, sentido e de
velocidade dos sinais de um encoder. Podemos calcular a máxima freqüência de
leitura deste periférico.
Sabendo que o tempo de ciclo é:
1
( / 4)
cy
osc
T
f
= (2.3)
Tcy – Tempo do ciclo de máquina
Fosc – freqüência do oscilador
Neste projeto utilizamos um cristal oscilador de 16MHz, logo o ciclo de
máquina será de 250ns. O Fcy será 4 MIPS.
Os sinais de quadratura QEA e QEB são lidos em 16 ciclos de clock (16Tcy).
Desta forma podemos calcular a máxima freqüência de leitura do canal de encoder:
max
1 1
250
16 16.250
F KHz
tcy ns
= = = (2.4)
Como temos 2 canais, a frequência máxima possível para cada canal de
encoder é de 125KHz.
31
2.6 – Driver de potência
2.6.1 - Introdução
Para controlar o motor foi utilizado o LMD18200. Este componente é uma
ponte H de 3A projetada para ser usada em aplicações de controle de movimento.
Ideal para alimentar motores CC e motores de passo, o LMD18200 suporta
picos de corrente até 6A.
Este CI contém um circuito inovador que facilita a detecção da corrente de
saída do circuito.
Características:
• Fornece até 3A continuamente
• Opera com tensões até 55 volts
• Entradas compatíveis a TTL e CMOS
• Flag de indicação de sobretemperatura de 145 ºC
• Desligamento por sobretemperatura de 170 ºC
• Proteção contra curto-circuito das saídas
• Diodos internos de clamp
2.6.2 – Tipos de PWM
O LMD18200 interfaceia com diferentes tipos de Sinais de PWM. Os dois
mais conhecidos tipos:
32
• PWM anti-fase: o sinal é composto pela informação de direção e de
amplitude. Um duty cycle de 50% no sinal do PWM representa zero drive.
• PWM amplitude / sinal: consiste de sinais separados de direção e de
amplitude. O sinal de magnitude é o duty cycle modulado e a falta do sinal
de pulso é o zero drive.
Neste projeto utiliza-se o método do PWM anti-fase. A montagem pode ser
visto na figura 2.6.
2.7 – Material e método
2.7.1 – Introdução
Este projeto foi idealizado primeiramente como uma implementação de um
sistema de controle OFF-ON de um motor CC. Após o termino desta etapa, viu-se
que o controle funcionava, mas que após o motor atingir a posição desejada, ele
“fugia” da posição devido a sua inércia. Ocorreu um erro de posicionamento muito
alto.
Para diminuir o erro de posição, foi implementado um controle do tipo PID.
No princípio alimentou-se o motor CC através de um transistor TIP137. Mas
com a implementação do controle PID foi necessário o uso de uma ponte H de
transistores. Desta forma optou-se por utilizar o driver de acionamento LMD18200.
Para analisar a resposta do sistema, implementou-se a comunicação serial
com o software Matlab. Desta forma observou-se a resposta em forma de gráfico.
33
1
2
3
4
18F2331
5
6
7
8
9
10
11
12
13
14 15
16
17
18
19
20
21
22
23
24
25
26
27
28
d7 d6 d5 d4 d3 d2 d1 d0 E RWRSV0VDDVSS15 16
1
2
3
4
5
6
7
8
MAX232
9
10
11
12
13
14
15
16
+
-
+
-
5
9
4
8
3
7
2
6
1
+5Vcc
+
+
+
+5Vcc
+
127Vca
1
3
5
9
11
10
6
7
4
2
8
+5Vcc
comunicação serial
rs-232
servo motor DC
fontes de alimentação
+18Vcc
+18Vcc
encoder
+5Vcc
+ A B -
display
LCD 16x2
pwm
brake
habilita
LMD18200
13
14
Figura 2.6 – Diagrama de montagem do sistema
2.7.2 – Material utilizado
Para a realização deste projeto foram utilizados os seguintes componentes:
• Microcontrolador PIC 18F2331 - Microchip
• Motor CC c/ encoder - Canon
• Cristal oscilador de 16MHz
• Display LCD 16X2
• Fonte de 5Vcc
• Fonte de 18Vcc
34
Foram utilizados os seguintes equipamentos:
• ScopeMeter 123 - Fluke
• Multímetro ET-1400 - Minipa
• Gravador PICSTART PLUS - Microchip
Foram utilizados os seguintes softwares:
• Compilador Pascal 5.0.0.3 - Mikroelektronika
• Matlab 7.0 – The Math Works
• Mplab IDE 7.40.00.00 - Microchip
2.7.3 – Descrição do sistema
O sistema é dividido em duas partes: o hardware e o software.
O hardware é composto pelo microcontrolador, driver do motor, motor e um
encoder.
O software é dividido em dois programas: um implementado no
microcontrolador e outro implementado no microcomputador.
2.7.3.1 – Hardware
Basicamente, o microcontrolador 18F2331 é alimentado por uma tensão 5Vcc
através dos pino 7 (VDD). O aterramento está ligado no pino 8 (VSS).
O clock externo está ligado nos pinos 9 e 10 (OSC1 e OSC2). Para gerar o
clock externo, foi utilizado um cristal oscilador de 16MHz.
35
O LCD (display de cristal líquido) está ligado nos pinos 11, 12, 13, 14, 15, 16
e 22 (RD6, RD4, RD7, RD5, E, RS e RW ). A chave está ligada no pino 3 (RA1).
Os pinos 21, 23 e 24 (PWM0, RB2 e RB3) estão ligados no driver
(LMD18200) utilizado para controlar o motor.
Os pinos 17 e 18 (TX e RX) são utilizados para a comunicação serial com o
computador através do CI MAX232.
Os pinos 5 e 6 (QEA e QEB) estão ligados ao encoder para aquisição do sinal
correspondente à posição do motor.O pino 1 (/MCLR) está ligado uma tensão 5Vcc.
O diagrama de montagem do sistema pode ser visualizado na figura 2.6.
2.7.3.2 – Software
A lógica implementada no microcontrolador foi desenvolvida utilizando a
linguagem de programação Pascal, através do compilador Mikropascal. Essa lógica
pode ser visualizada no Anexo 2.
A lógica implementada no microcomputador foi desenvolvida utilizando o
Matlab. Essa lógica pode ser visualizada no Anexo 3.
Convém lembrar que o programa, implementado no Matlab, faz a leitura do
canal de comunicação serial e salva os dados em um arquivo de dados em formato
texto. No final do envio, o software apresenta o resultado em forma de gráfico.
2.7.4 – Controle PID
A principal estratégia do controle PID, é utilizar a variável Vc com um range
de valores bem maior do que a variável que servirá como sinal de controle
36
(Vc_pwm). Com isso a variável de controle fica mais imune às variações muito
rápidas no cálculo de Vc.
O registrador do modulo PWM tem 14 bits e a variável de controle (Vc) tem 20
bits, logo se faz necessário transformar Vc em uma variável de 14 bits.
Uma variável de 20 bits tem um range de -524288 até +524287
( 20
2 1048576= ). Uma variável de 14 bits tem um range de -8192 até +8191
( 14
2 16384= ).
A transformação é feita com a divisão por 64 ( 6
2 64= ), a parte menos
significativa será eliminada.
20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
14 13 12 11 10 9 8 7 6 5 4 3 2 1
dividindo por 64
20 bits (Vc)
14 bits (Vc_pwm)
Figura 2.7 – Conversão de 20 bits em 14 bits.
Abaixo temos o trecho do programa que converte um range de 20 bits para
um range de 14 bits.
if (Vc>+524287) then Vc:=+524287; //limite superior p/ 20 bits
if (Vc<-524288) then Vc:=-524288; // limite inferior p/ 20 bits
Vc_pwm := Vc/64 + 8192; // transf. 20 bits em 14 bits do PWM
37
Como utilizou-se o driver LMD18200 na montagem anti-fase, e o registrador
do microcontrolador trabalha com valores de 0 até 16384, logo é necessário que
para o duty cycle de 50% um valor de 8192 para a variável Vc_pwm e um valor de 0
para Vc.
38
CAPITULO 3
Sistema de Controle
3.1 – Controle
O controle do dispositivo é do tipo malha fechada. Em um sistema de malha
fechada, o sinal erro é a diferença entre o sinal de entrada e o sinal de saída, e
excita o controlador de modo a reduzir o erro e trazer o valor do sinal de saída para
o valor desejado. Uma característica necessária de um sistema de malha fechada é
a realimentação. A Figura 3.1 mostra o sistema de malha fechada.
controlador processo
saída (posição)
realimentação
sinal de referência
sinal de erro e(t) sinal de controle u(t)
Figura 3.1 - Sistema de controle do tipo malha fechada.
A seguir, os elementos de um sistema de malha fechada:
• Elemento de comparação: compara o valor desejado, ou de referência, da
variável controlada com o valor medido e determina o sinal de erro que indica
quanto o valor da saída está desviado do valor desejado;
• Elemento de correção: é usado para provocar uma mudança no processo de
forma a corrigir o erro e é freqüentemente chamado de atuador;
39
• Processo: o processo ou planta é o sistema no qual uma variável está sendo
controlada;
• Elemento de medida: gera um sinal relacionado com a condição da variável
que está sendo controlada e fornece um sinal de realimentação para o
elemento de comparação, para que ele determine se existe um erro.
3.2 – Controlador
O controlador é o elemento no sistema de controle em malha fechada que
tem como entrada o sinal de erro e gera uma saída que se torna à entrada para o
elemento corretivo. A relação entre a saída e a entrada do controlador é chamada de
lei de controle. As formas mais usuais são: proporcional, integral, derivativa e suas
combinações (PI, PD, PID).
Em alguns sistemas é necessário melhorar o desempenho do controlador, o
que é conseguido introduzindo-se elementos adicionais chamados compensadores
nos sistemas de controle.
3.2.1 - Proporcional
Com o controle proporcional, a saída do controlador é diretamente
proporcional a sua entrada, sendo esta o sinal de erro e, que é uma função do
tempo. A saída do controle proporcional é expressa na equação 3.1 (OGATA
(1993)).
( ) . ( )Saída t Kp e t= (3.1)
40
onde kp é uma constante chamada ganho proporcional.
A saída do controlador depende apenas da amplitude do erro no instante de
tempo. O controlador é apenas um amplificador com um ganho constante. Um
grande erro em algum instante de tempo acarreta um valor alto na saída do
controlador nesse instante de tempo. O ganho constante tende a existir somente
para uma certa faixa de erros, chamada de banda proporcional.
3.2.2 - Integral
No controle integral, a saída do controlador é proporcional a integral do sinal
de erro e com o tempo. A saída do controle integral é expressa na equação 3.2.
0
( ) ( ).
t
Saída t Ki e t dt= ∫ (3.2)
onde ki é uma constante chamada de ganho integral.
A integral entre 0 e t é de fato a área sob a curva do erro entre 0 e t. Assim
quando aparece o sinal de erro, a área sob a curva aumenta em uma razão regular e
a saída do controlador deve também aumentar em uma razão regular. A saída em
qualquer instante de tempo é proporcional ao acúmulo de efeitos do erro em
instantes anteriores.
41
3.2.3 - Derivativo
No controle derivativo, a saída do controlador é proporcional a taxa de
variação do erro e com o tempo. A saída do controle derivativo é expressa na
equação 3.3.
( )
( ) .
de t
Saída t Kp
dt
= (3.3)
onde kd é uma constante chamada de ganho derivativo.
Com o controle derivativo, tão logo o sinal de erro apareça, a saída do
controlador pode tornar-se grande, já que a saída é proporcional a taxa de variação
do sinal de erro e não do erro propriamente dito. Isto pode fornecer uma grande
ação corretiva antes que um grande sinal de erro ocorra. Entretanto, se o erro é uma
constante, então não existe ação corretiva, mesmo que o erro seja grande. O
controle derivativo é insensível a sinais de erro constantes ou de variação lenta, e
conseqüentemente não é usado sozinho, mas combinado com outras formas de
controle.
3.2.4 – Controlador PID
Os controladores PID são muito freqüentemente usados em sistemas de
controle industriais, conforme OGATA (1993).
42
O controlador PID combina as vantagens do controlador PI e PD. A ação
integral está diretamente ligada à precisão do sistema sendo responsável pelo erro
nulo em regime permanente. O efeito desestabilizador do controlador PI é
contrabalançado pela ação derivativa que tende a aumentar a estabilidade relativa
do sistema ao mesmo tempo que torna a resposta do sistema mais rápida devido ao
seu efeito antecipatório.
0
( )
( ) . ( ) ( ). .
t
de t
Saída t Kpe t Ki e t dt Kd
dt
= + +∫ (3.4)
3.2.5 – Discretização do Controlador PID
Um controlador proporcional mais integral mais derivativo (PID), ou
controlador de três termos, terá uma saída para uma entrada de um erro e(t). A
saída do controle proporcional mais integral mais derivativo é expressa na equação
3.4.
A seguir é mostrado a discretização da equação 3.4, utilizado no algoritmo do
microcontrolador. A discretização é obtida substituindo a variável tempo (t) por:
.t nT= (3.5)
Obtêm-se assim uma equação discretizada:
43
0
( ) (( 1) )
( ) . ( ) . ( )
n
j
e nT e n T
Saída nT Kpe nT KiT e jT Kd
T=
− −
= + +∑ (3.6)
onde T é o período de amostragem e n é o número da amostra.
Como nT é substituída simplesmente por n, dando origem à primeira equação
do PID digital:
0
( ) ( 1)
( ) . ( ) . . ( ) .
n
j
e n e n
Saída n Kpe n KiT e j Kd
T=
− −
= + +∑ (3.7)
Simplificando,
0
( ) . ( ) . ( ) .( ( ) ( 1))
n
j
Saída n Kpe n Ki e j Kd e n e n
=
= + + − −∑ (3.8)
Esta equação é facilmente implementada em uma linguagem de alto nível:
Eo := Ea; // erro(n-1)
Ea := setpoint - contagem ; // erro(n)
Proporc := Ea * K p; // term o proporcional
som a := (som a + Ea); // som atória
Int := som a * K i; // term o integral
D erivat := (Ea - Eo) * K d ; // term o derivativo
V c := (Proporc + Int + D erivat); // variável de controle
Figura 3.2 – Trecho do programa relacionado com o controle PID.
44
CAPITULO 4
Resultados e Discussões
4.1 – Freqüência do PWM
Foi oscilografada a forma de onda do sinal do PWM gerado pelo
microcontrolador. Este gráfico foi retirado quando o motor estava parado, por isso
observa-se um duty cycle de 50%.
A frequência é o inverso do período do sinal.
3
1
500
2.10
frequência Hz−
= = (4.1)
A frequência de 500Hz é muito baixa, além de gerar um ruído audível,
pode esquentar o motor em demasia. Em futuros trabalhos deverá ser aumentado.
Figura 4.1 – Gráfico do PWM aplicado ao motor.
45
4.2 - Tempo de Varredura do programa (scan time)
Para uma análise da base de tempo, em que os cálculos do controle PID do
algoritmo estão sendo realizados, foi oscilografada a forma de onda do tempo de
varredura.
Isto foi possível setando uma saída digital para que em uma varredura fosse 0
(0Vcc) e na varredura seguinte fosse 1 (5Vcc).
No gráfico 4.2, mostra um tempo de varredura de 35ms.
Este tempo é muito alto, podendo afetar em muito a eficácia do controle PID.
Em futuros trabalhos deverá ser reduzido drasticamente.
Figura 4.2 – Gráfico da varredura do software.
46
4.3 – Resposta do sistema
Com o sistema funcionando, foram aplicados degraus de posição. Os
resultados foram retirados e plotados utilizando o software Matlab.
Estes gráficos mostram o comportamento do motor em função de diversos
valores dos ganhos do PID.
0 2 4 6 8 10 12 14 16 18 20
0
2000
4000
6000
8000
10000
12000
Tempo (s)
Posição(pulsosdeencoder)
RESPOSTA AO DEGRAU APLICADO NO SERVO DC
Posição do motor
Vc pwm (0 - 16383)
Figura 4.3 – Gráfico de Vc_pwm e da posição.
Na figura 4.3 temos a posição do motor e a variável Vc_pwm. É interessante
observar o comportamento de Vc_pwm em função do tempo.
47
0 2 4 6 8 10 12 14 16 18
0
1000
2000
3000
4000
5000
6000
7000
8000
Tempo (s)
Posição(pulsosdeencoder)
RESPOSTA AO DEGRAU APLICADO NO SERVO DC
Kp=10 Ki=0 Kd=0
Kp=100 Ki=0 Kd=0
Kp=200 Ki=0 Kd=0
Figura 4.4 – Resposta do sistema em função de Kp.
A figura 4.4 mostra o efeito sobre a resposta de diversos valores de Kp.
O aumento do ganho proporcional faz com que o tempo de subida fique
menor no sistema. Isto ocorre devido ao valor do coeficiente de amortecimento ser
inversamente proporcional ao valor de Kp.
Conforme Ogata(1993) pág. 207, o coeficiente de amortecimento é a relação
entre o amortecimento real B e o amortecimento crítico 2 JK . Isto indica a
tendência mostrada no gráfico acima.
48
0 2 4 6 8 10 12 14 16 18
0
2000
4000
6000
8000
10000
12000
Tempo (s)
Posição(pulsosdeencoder)
RESPOSTA AO DEGRAU APLICADO NO SERVO DC
Kp=10 Ki=1 Kd=0
Kp=50 Ki=1 Kd=0
Kp=100 Ki=1 Kd=0
Figura 4.5 – Resposta do sistema em função dos parâmetros de controle.
Pegando o sistema conforme os ganhos proporcionais mostrados na figura
4.4 e aplicando o ganho integral de 1, observa-se a resposta na figura 4.5.
O valor do ganho integral é muito alto e o sistema tende a oscilar.
Somente com um valor alto do ganho proporcional é que o sistema oscila
menos.
49
0 2 4 6 8 10 12 14 16 18
0
2000
4000
6000
8000
10000
12000
Tempo (s)
Posição(pulsosdeencoder)
RESPOSTA AO DEGRAU APLICADO NO SERVO DC
Kp=20 Ki=0.1 Kd=0
Kp=20 Ki=0.3 Kd=0
Kp=20 Ki=1 Kd=0
Figura 4.6 – Resposta do sistema em função dos parâmetros de controle.
Aplicando um valor fixo do ganho proporcional e diversos valores do ganho
integral, pode-se observar qual é o melhor valor para Ki
O sistema fica mais instável com um valor alto de Ki.
50
0 2 4 6 8 10 12 14 16 18
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
Tempo (s)
Posição(pulsosdeencoder)
RESPOSTA AO DEGRAU APLICADO NO SERVO DC
Kp=70 Ki=0.1 Kd=1
Kp=70 Ki=0.1 Kd=2
Kp=70 Ki=0.1 Kd=10
Figura 4.7 – Resposta do sistema em função dos parâmetros de controle.
No gráfico 4.7 observa-se que o ganho derivativo pouco influencia na
resposta do sistema. Foram aplicados diversos valores de Kd, mas não houve
alteração significativa na resposta.
51
CAPITULO 5
Conclusões
Ao longo do projeto foram surgindo problemas, tais como a compra do
microcontrolador, a isolação contra ruído, manuseio dos periféricos, etc. Mas o maior
problema enfrentado foi a falta de informações sobre o microcontrolador 18F2331 e
a dificuldade de se implementar um sistema que utiliza-se o PWM, encoder, display
de cristal liquido, etc.
Também houveram dificuldades iniciais em implementar o controle PID,
devido ao fato de utilizar-se uma versão limitada do software Pascal.
Utilizando o controle PID em um sistema de servo posicionamento pode-se
comprovar a eficácia deste controle, entender o comportamento de um sistema de
posicionamento e também observar na prática o funcionamento do PID digital.
A escolha da linguagem para a programação do microcontrolador foi um fator
importante para o êxito, já que possibilitou a criação de um algoritmo complexo de
maneira rápida.
52
REFERÊNCIAS BIBLIOGRÁFICAS
ZIEGLER, J. G. & NICHOLS, N. B. (1942). Optimum Setting for Automatic
Controllers, Transactions of the ASME, Vol. 64, pp.759-768.
D´ÁZZO , J. J. & HOUPIS, C. H. (1981). Linear Control System Analysis and Design.
McGraw-Hill, 2ª edição
BORDON, Mário Eduardo (1993). Controlador PID Microprocessado, Dissertação de
mestrado, UNICAMP.
OGATA, Katsuhiko (1993). Engenharia de Controle Moderno. Prentice Hall, 2ª
edição
CANZIAN, Edmur (1998). Projetos de Hardware e Software utilizando
Microcontroladores, Apostila - CNZ Engenharia e Informática Ltda.
Data Sheet (2003), PIC18F2331/2431/4331/4431 28/40/44 – Pin Enhanced Flash
Microcontrolers. Microchip Technology.
URL: http://www.microchip.com.
Data Sheet (2005), LMD18200 -3A, 55V H-BRIDGE. National Semiconductor.
53
Anexo 1
Características do motor.
54
Anexo 2
Software de controle no microcontrolador.
Program PID;
Uses config_sistema;
Var
Vc_pwm, contagem, setpoint, Eo, Ea : integer;
Enviar : integer;
Kp, Kd, Ki : short;
int, proporc, derivat, Vc, soma : longint;
Procedure Controle_PID;
Begin
Leitura(contagem);
Eo := Ea; // erro(n-1)
Ea := setpoint - contagem; // erro(n)
Proporc := Ea * Kp; // termo proporcional
soma := (soma + Ea); // somatória
Int := soma * Ki; // termo integral
Derivat := (Ea - Eo) * Kd; // termo derivativo
Vc := (Proporc + Int + Derivat); // variável de controle
55
if (Vc>+524287) then Vc:=+524287; //limite superior p/ 20 bits
if (Vc<-524288) then Vc:=-524288; // limite inferior p/ 20 bits
Vc_pwm := Vc/64 + 8192; // transf. 20 bits em 14 bits do PWM
Ajusta_PWM(Vc_pwm); // configuro o sinal do PWM
Mostra_display(Vc_pwm,contagem); // envio dados para o display
If (enviar = 1)
Then Envia_serial(contagem); // envia dados da serial
End;
Begin
Iniciar_geral; // configuração básica do PIC
PWM_iniciar; // configuração do PWM
Encoder_Iniciar; // configuração do leitor de encoder
Serial_iniciar; // configuração da serial
LCD_iniciar; // configuração do LCD
While true do
Controle_PID; // algoritmo do PID
End.
56
Anexo 3
Software no Matlab.
% programa que lê os sinais da porta serial
% 1) primeiro é enviado um sinal de inicio de envio pela plaqueta " %"
% ou 37 em decimal ou 25 em hexa
% 2) após isto, a placa envia até 3000 dados de 2bytes para a serial
s = serial('COM1'); %configura COM1
set(s,'BaudRate', 9600); %baudrate
set(s,'DataBits',8); %databits
set(s,'StopBits',1); %stopbits
fid = fopen('motion.dat','a+'); %relaciono com o arquivo
status = fseek(fid,0, 'bof'); %posiciono no inicio do arquivo
s.terminator = 'CR'; %terminação
fopen(s); %abro serial
fwrite(s,'%','uchar'); %envio o sinal 'pode transmitir'
antigo = 0; %inicializo
zero = clock; %inicializo
n = 0; %inicializo
ref = zero(5)*1000 + zero(6) %referencia para calculo do tempo
while (n < 500) %looping --> limite é (n<= 3000)
atual = clock; %leitura do sistema
57
if ((atual(6)-antigo) > 0) %tenho alteração do tempo (a placa é muito rápida)
fprintf(fid,'%u ',n); %gravo o contador de linhas do arquivo
valor = (atual(5)*1000 + atual(6)) - ref; %valor do tempo em segundos
fprintf(fid,'%6.4f ',valor); %gravo o valor do tempo no arquivo
out = fread(s,2,'uint8'); %leitura dos 2 bytes da posição do motor
a = out(1) + out(2)*256 %correção do valor lido
fprintf(fid,'%u',a); %gravo o valor da posição no arquivo
fprintf(fid,'n'); %pulo uma linha no arquivo
n = n+1; %contador do looping
end;
antigo = atual(6); %guardo o valor antigo do tempo
end;
fclose(fid); %fecho arquivo
fclose(s); %fecho serial
delete(s); %deleto vinculo com a serial
clear s;
[c,x,y] = textread('motion.dat','%u %f %f');%leio os valores do arquivo acima gerado
plot(x,y,'Color','m'); %configurações para a plotagem
xlabel('Tempo (s)');
ylabel('Posição (pulsos de encoder)');
title('RESPOSTA AO DEGRAU APLICADO NO SERVO DC');
grid
58
Anexo 4
Exemplo do arquivo gerado pelo Matlab.
N tempo posição Vc
0 0.0000 1888 13534
1 0.1090 2269 13125
2 0.1400 2627 12740
3 0.1560 2959 12384
4 0.2650 3269 12051
5 0.2810 3556 11743
6 0.3120 3823 11456
7 0.3280 4071 11190
8 0.4220 4300 10944
9 0.4530 4513 10715
10 0.4690 4708 10505
11 0.4840 4892 10308
12 0.5000 5059 10128
13 0.5940 5215 9961
14 0.6250 5358 9807
15 0.7030 5492 9663
16 0.7190 5613 9533
17 0.8280 5727 9410
18 0.8900 5832 9297
19 0.9060 5928 9194
59
20 0.9220 6015 9101
21 0.9840 6098 9011
22 1.0000 6173 8931
23 1.0150 6247 8851
24 1.0310 6308 8786
25 1.0470 6367 8722
26 1.0620 6426 8658
27 1.1870 6474 8607
28 1.2340 6521 8556
29 1.2500 6557 8518
30 1.3750 6602 8469
31 1.3900 6644 8424
32 1.5000 6660 8407
33 1.5150 6694 8370
34 1.5310 6722 8340
35 1.5470 6745 8315
36 1.5620 6765 8294
37 1.5780 6798 8258
38 1.6250 6820 8234
39 1.6720 6826 8228
40 1.7030 6839 8214
41 1.8120 6852 8200
42 1.8280 6867 8184
... apenas os 43 primeiros pontos ...

Mais conteúdo relacionado

Mais procurados

Pdf slides das aulas dispositivos utilizados em comandos elétricos
Pdf slides das aulas dispositivos utilizados em comandos elétricosPdf slides das aulas dispositivos utilizados em comandos elétricos
Pdf slides das aulas dispositivos utilizados em comandos elétricosJadson Caetano
 
Transistores bipolares
Transistores bipolaresTransistores bipolares
Transistores bipolaresTensor
 
Inverter konduksi 120
Inverter konduksi 120Inverter konduksi 120
Inverter konduksi 120Djodi Antono
 
Motor Speed Control System
Motor Speed Control SystemMotor Speed Control System
Motor Speed Control SystemLusiana Diyan
 
Instruksi timer dan counter plc omron
Instruksi timer dan counter plc omronInstruksi timer dan counter plc omron
Instruksi timer dan counter plc omronAdi Hartanto
 
Regulasi Tegangan by Muhammad Kennedy Ginting
Regulasi Tegangan by Muhammad Kennedy GintingRegulasi Tegangan by Muhammad Kennedy Ginting
Regulasi Tegangan by Muhammad Kennedy GintingMuhammad Kennedy Ginting
 
PID Controller
PID ControllerPID Controller
PID Controllersaishah72
 
Pid control
Pid controlPid control
Pid controlAB Rizvi
 
Session 01 - Introduction to Industrial Automation
Session 01 - Introduction to Industrial AutomationSession 01 - Introduction to Industrial Automation
Session 01 - Introduction to Industrial AutomationVidyaIA
 
Kuliah 3 Dasar Sistem Tenaga Listrik ( Sistem Transmisi dan Distribusi )
Kuliah 3 Dasar Sistem Tenaga Listrik ( Sistem Transmisi dan Distribusi )Kuliah 3 Dasar Sistem Tenaga Listrik ( Sistem Transmisi dan Distribusi )
Kuliah 3 Dasar Sistem Tenaga Listrik ( Sistem Transmisi dan Distribusi )Fathan Hakim
 
8 rangkaian-dasar-kontrol-motor-listrik
8 rangkaian-dasar-kontrol-motor-listrik8 rangkaian-dasar-kontrol-motor-listrik
8 rangkaian-dasar-kontrol-motor-listrikpprawira11
 

Mais procurados (20)

Pid (proportional, integral, derivative)
Pid (proportional, integral, derivative)Pid (proportional, integral, derivative)
Pid (proportional, integral, derivative)
 
Pdf slides das aulas dispositivos utilizados em comandos elétricos
Pdf slides das aulas dispositivos utilizados em comandos elétricosPdf slides das aulas dispositivos utilizados em comandos elétricos
Pdf slides das aulas dispositivos utilizados em comandos elétricos
 
Transistores bipolares
Transistores bipolaresTransistores bipolares
Transistores bipolares
 
Rms
RmsRms
Rms
 
2. plc fix
2. plc fix2. plc fix
2. plc fix
 
Ppt transistor
Ppt transistorPpt transistor
Ppt transistor
 
Inverter konduksi 120
Inverter konduksi 120Inverter konduksi 120
Inverter konduksi 120
 
Motor Speed Control System
Motor Speed Control SystemMotor Speed Control System
Motor Speed Control System
 
Instruksi timer dan counter plc omron
Instruksi timer dan counter plc omronInstruksi timer dan counter plc omron
Instruksi timer dan counter plc omron
 
Rotary encoder
Rotary encoderRotary encoder
Rotary encoder
 
Unit iv-inverters-new
Unit iv-inverters-newUnit iv-inverters-new
Unit iv-inverters-new
 
Regulasi Tegangan by Muhammad Kennedy Ginting
Regulasi Tegangan by Muhammad Kennedy GintingRegulasi Tegangan by Muhammad Kennedy Ginting
Regulasi Tegangan by Muhammad Kennedy Ginting
 
PID Controller
PID ControllerPID Controller
PID Controller
 
Pid control
Pid controlPid control
Pid control
 
Transistor bipolar
Transistor bipolarTransistor bipolar
Transistor bipolar
 
Earth tester
Earth testerEarth tester
Earth tester
 
Session 01 - Introduction to Industrial Automation
Session 01 - Introduction to Industrial AutomationSession 01 - Introduction to Industrial Automation
Session 01 - Introduction to Industrial Automation
 
Kuliah 3 Dasar Sistem Tenaga Listrik ( Sistem Transmisi dan Distribusi )
Kuliah 3 Dasar Sistem Tenaga Listrik ( Sistem Transmisi dan Distribusi )Kuliah 3 Dasar Sistem Tenaga Listrik ( Sistem Transmisi dan Distribusi )
Kuliah 3 Dasar Sistem Tenaga Listrik ( Sistem Transmisi dan Distribusi )
 
Transformator
TransformatorTransformator
Transformator
 
8 rangkaian-dasar-kontrol-motor-listrik
8 rangkaian-dasar-kontrol-motor-listrik8 rangkaian-dasar-kontrol-motor-listrik
8 rangkaian-dasar-kontrol-motor-listrik
 

Semelhante a Controlador PID digital para posicionamento de servomotor CC

Braço mecânico controlado pela diferença de potencial ocular
Braço mecânico controlado pela diferença de potencial ocularBraço mecânico controlado pela diferença de potencial ocular
Braço mecânico controlado pela diferença de potencial ocularRafael Lial
 
Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores UmbertoXavierdaSilva
 
The mathematics used by technicians in the automotive electronics industry.
The mathematics used by technicians in the automotive electronics industry.The mathematics used by technicians in the automotive electronics industry.
The mathematics used by technicians in the automotive electronics industry.Erotide Pereira
 
Dispositivo de controle automático
Dispositivo de controle automáticoDispositivo de controle automático
Dispositivo de controle automáticoCamila Mairinques
 
Automação projeto de semáforo
Automação projeto de semáforoAutomação projeto de semáforo
Automação projeto de semáforoantonio sena
 
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...Cristiano Rafael Steffens
 
Controle de motor DC e sensor digital com Arduino em C
Controle de motor DC e sensor digital com Arduino em CControle de motor DC e sensor digital com Arduino em C
Controle de motor DC e sensor digital com Arduino em Cmarcochella
 
Controle de braço mecânico através da diferença de potencial ocular
Controle de braço mecânico através da diferença de potencial ocularControle de braço mecânico através da diferença de potencial ocular
Controle de braço mecânico através da diferença de potencial ocularSaulo Moura
 
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0Rapha Fernandes
 
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWERTCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWERGerson Roberto da Silva
 
Reparos_rapidos_em_modulos_Venda_manutencao_e_programacao_eficiente_Estr._Fra...
Reparos_rapidos_em_modulos_Venda_manutencao_e_programacao_eficiente_Estr._Fra...Reparos_rapidos_em_modulos_Venda_manutencao_e_programacao_eficiente_Estr._Fra...
Reparos_rapidos_em_modulos_Venda_manutencao_e_programacao_eficiente_Estr._Fra...Monografia Inédita
 
Ct136 AuditóRio 2 Francisco Salvador
Ct136   AuditóRio 2   Francisco SalvadorCt136   AuditóRio 2   Francisco Salvador
Ct136 AuditóRio 2 Francisco SalvadorFrancisco Salvador
 

Semelhante a Controlador PID digital para posicionamento de servomotor CC (20)

Braço mecânico controlado pela diferença de potencial ocular
Braço mecânico controlado pela diferença de potencial ocularBraço mecânico controlado pela diferença de potencial ocular
Braço mecânico controlado pela diferença de potencial ocular
 
Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores
 
The mathematics used by technicians in the automotive electronics industry.
The mathematics used by technicians in the automotive electronics industry.The mathematics used by technicians in the automotive electronics industry.
The mathematics used by technicians in the automotive electronics industry.
 
Dispositivo de controle automático
Dispositivo de controle automáticoDispositivo de controle automático
Dispositivo de controle automático
 
Automação projeto de semáforo
Automação projeto de semáforoAutomação projeto de semáforo
Automação projeto de semáforo
 
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
 
Controle de motor DC e sensor digital com Arduino em C
Controle de motor DC e sensor digital com Arduino em CControle de motor DC e sensor digital com Arduino em C
Controle de motor DC e sensor digital com Arduino em C
 
Projeto BUS-BUS
Projeto BUS-BUSProjeto BUS-BUS
Projeto BUS-BUS
 
Controle de braço mecânico através da diferença de potencial ocular
Controle de braço mecânico através da diferença de potencial ocularControle de braço mecânico através da diferença de potencial ocular
Controle de braço mecânico através da diferença de potencial ocular
 
Opc4
Opc4Opc4
Opc4
 
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
Monografia_Raphael.Fernandes.Ribeiro_RA.A17809-0
 
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWERTCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
 
Reparos_rapidos_em_modulos_Venda_manutencao_e_programacao_eficiente_Estr._Fra...
Reparos_rapidos_em_modulos_Venda_manutencao_e_programacao_eficiente_Estr._Fra...Reparos_rapidos_em_modulos_Venda_manutencao_e_programacao_eficiente_Estr._Fra...
Reparos_rapidos_em_modulos_Venda_manutencao_e_programacao_eficiente_Estr._Fra...
 
Clp siemens s7 200
Clp siemens s7 200Clp siemens s7 200
Clp siemens s7 200
 
Automação industrial
Automação industrialAutomação industrial
Automação industrial
 
Clp
ClpClp
Clp
 
Apostila clp curso uerj 1
Apostila clp   curso uerj 1Apostila clp   curso uerj 1
Apostila clp curso uerj 1
 
Apostila curso clp 2
Apostila   curso clp 2Apostila   curso clp 2
Apostila curso clp 2
 
Apostila curso clp
Apostila   curso clpApostila   curso clp
Apostila curso clp
 
Ct136 AuditóRio 2 Francisco Salvador
Ct136   AuditóRio 2   Francisco SalvadorCt136   AuditóRio 2   Francisco Salvador
Ct136 AuditóRio 2 Francisco Salvador
 

Controlador PID digital para posicionamento de servomotor CC

  • 1. BAURU Ano 2006 Ricardo Pereira Ceide CONTROLADOR PID DIGITAL PARA POSICIONAMENTO DE SERVOMOTOR CC
  • 2. Ricardo Pereira Ceide CONTROLADOR PID DIGITAL PARA POSICIONAMENTO DE SERVOMOTOR CC Monografia apresentada à Faculdade de Engenharia da UNESP – Campus de Bauru, para a obtenção do título de Especialista em Engenharia Mecatrônica. ORIENTADOR: Prof. Dr. Mário Eduardo Bordon
  • 3. DIVISÃO TÉCNICA DE BIBLIOTECA E DOCUMENTAÇÃO UNESP – BAURU Ceide, Ricardo Pereira. Controlador PID digital para posicionamento de servomotor CC / Ricardo Pereira Ceide, 2006. 59 f. Orientador: Mário Eduardo Bordon. Monografia (Especialização) – Universidade Estadual Paulista. Faculdade de Engenharia, Bauru, 2006. 1. Controlador PID. 2. Controle. 3. Microcontrolador. I – Universidade Estadual Paulista. Faculdade de Ficha catalográfica elaborada por Maristela Brichi Cintra – CRB 5046
  • 4. UNIVERSIDADE ESTADUAL PAULISTA "JÚLIO DE MESQUITA FILHO" Campus de Bauru ATA DA AVALIAÇÃO DA MONOGRAFIA DEFENDIDA PELO ALUNO Ricardo Pereira Ceide DO CURSO DE ESPECIALIZAÇÃO EM ENGENHARIA MECATRÔNICA DA FACULDADE DE: ENGENHARIA DO CAMPUS DE BAURU. " 'l ? " J:S* Aos 03 de novembro de 2006, às 14 horas, na Anfiteatro da Pós-graduação da Faculdade de Engenharia do Campus de Bauru, em sessão pública reuniu-se a Comissão Examinadora da defesa da Monografia de Ricardo Pereira Ceide, visando a obtenção do título de Especialista em Engenharia Mecatrônica, assim constituída: Prof. Dr. Mário Eduardo Bordon; Prof. Dr. José Alfredo Covolan Ulson e o Prof. Dr. Ivo Reis Fontes, conforme Processo FE n° 370/47/01/05. Iniciados os trabalhos o aluno submeteu-se na forma regimental da defesa da monografia intitulada: "CONTROLADOR PID DIGITAL PARA POSICIONAMENTO DE SERVOMOTOR CC". Terminado o exame, procedeu-se o julgamento, cujo resultado foi o seguinte, observada a ordem de arguição: Prof. Dr. José Alfredo Covolan Ulson, nota 7,5; Prof. Dr. Ivo Reis Fontes, nota 7,5 e o Prof. Dr. Mário Eduardo Bordon, nota 7,5 Apuradas as notas, verificou-se que o aluno foi habilitado com nota 7,5. Nada mais havendo a registrar, eu José Ricardo Ferreira Pinto - Supervisor- substituto da Seção da Pós-graduação da Faculdade de Engenharia - Campus de Bauru lavrei a presente ATA, que após lida e aprovada será assinada por todos. Bauru, 03 de novembro de 2006. Prof. Dr. Mário Eduardo Bordon, Prof.Dr. José AlfredoCovolan Ulson_ Prof. Dr. Ivo Reis Fontes Supervisor - José Ricardo Ferreira Pinto_ Faculdade de Engenharia Bauru Seção de Pós-Graduaçao Av. Eng Luiz Edmundo Carrijo Coube 14-01 CEP 17033-360 Bauru SP Brasil Tel 14 3103 6108 fax 14 3103 6104 spg@feb.unesp.br unesp
  • 5. Agradecimentos Agradeço ao meu orientador Mário Bordon pelas sugestões que enriqueceram este trabalho. À Roseli Maria Zechi Ceide pela compreensão e apoio. Saliento também que este projeto só foi possível através dos conhecimentos adquiridos no curso de especialização. Comecei a trabalhar com os microcontroladores PIC, especificamente o 16F628, após o Prof. Marcelo Franchin comentar que este seria utilizado em uma atividade do curso. A partir deste instante, busquei um maior conhecimento sobre o assunto. Comento positivamente as aulas de Controle de Processos Industriais do Prof. Paulo Sérgio da Silva, as aulas de Sistemas de Controle de Movimento do Prof. Edwin Avolio, as aulas de Sistemas de Controle Inteligente do Prof. Mário Eduardo Bordon e as aulas de Sensores e Instrumentação do Prof. José Alfredo Covolan Ulson.
  • 6. Dedico este trabalho à minha família e a Deus.
  • 7. CEIDE, R. P. Controlador PID Digital para Posicionamento de Servomotor CC. Bauru, 2006, 59p. Monografia (Especialização em Engenharia Mecatrônica) – Faculdade de Engenharia, Campus de Bauru, Universidade Estadual Paulista “Júlio de Mesquita Filho”. Resumo Os controladores do tipo PID desempenham um papel de extrema importância, permitindo um controle mais preciso do processo ao qual está inserido. Com o aumento do desempenho e da qualidade dos microprocessadores, os controladores digitais estão cada vez mais sendo utilizados nos sistemas de controle. Outras vantagens são o baixo custo e a redução de tamanho físico. Neste trabalho apresenta-se um controlador PID digital para posicionamento de um servomotor CC, utilizando um microcontrolador PIC 18F2331 da Microchip. O microcontrolador 18F2331 apresenta características que fazem dele um escolha ideal para muitas aplicações em controle de motores. Com uma interface de comunicação e o software Matlab, foi possível obter a posição do motor e outras informações, salvar em arquivos texto e apresentar em forma de gráfico. A implementação do PID digital foi satisfatória pois obteve-se um posicionamento preciso do servomotor CC. PALAVRAS-CHAVE: controlador PID, controle, microcontrolador.
  • 8. CEIDE, R. P. Digital PID Controller for DC Servomotor Emplacement. Bauru, 2006, 59p. Monograph (Specialization in Mechatronic Engineering) – College of Engineering, Bauru Campus, Sao Paulo State University “Júlio de Mesquita Filho”. Abstract The controllers of type PID play a role of extreme importance, allowing a more necessary control of the process to which are inserted. With the increase of the performance and the quality of the microprocessors, the digital controllers are each time more being used in the control systems. Other advantages are the low cost and the reduction of physical size. In this work a digital controller PID for positioning of a servomotor CC presents itself, using a microcontroller PIC 18F2331 of the Microchip. The microcontroller 18F2331 presents characteristics that make of it an ideal choice for many applications in control of engines. With a communication interface and Matlab software, was possible to get the position of the engine and other information, to save in archives text and to present in graph form. The implementation of the digital PID was satisfactory therefore got a necessary positioning of servomotor CC. KEY WORDS: PID controller, control, microcontroller.
  • 9. Lista de siglas A/D Analógico Digital CLP Controlador Lógico Programável CPU Center Processing Unit D/A Digital Analógico EEPROM Eletrically Erasable Programmable Read-only Memory Hz Hertz LCD Liquid Cristal Dysplay PID Proportional, Integral e Derivative PWM Pulse Width Modulation RISC Reduced Instruction Set Computer VCC Voltage Current Continua MIPS Milhões de Instruções por segundo TL Transformada de Laplace CI Circuito Integrado
  • 10. Lista de símbolos Kp Ganho proporcional Ki Ganho integral Kd Ganho derivativo e(t) Erro do sistema u(t) sinal de controle Ea(t) tensão de armadura em função do tempo Ra Resistência de armadura La Indutância de armadura Vfcem Tensão induzida na armadura Tm Torque do motor Tj Torque inercial do sistema Tb Torque viscoso Tc Torque de carga Ia Corrente de armadura Kt Constante de torque do motor B Atrito viscoso J Inércia do motor ωm Velocidade do motor θ(t) Posição do motor . mθ Derivada da posição .. mθ Derivada segunda da posição
  • 11. Tm(S) Transformada de Laplace de Tm θ(S) Transformada de Laplace da posição Tc(S) Transformada de Laplace de Tc
  • 12. Lista de Ilustrações FIGURA 2.1 – REPRESENTAÇÃO DO SISTEMA.....................................................20 FIGURA 2.2 - CIRCUITO ELÉTRICO DO MOTOR CC.............................................22 FIGURA 2.3 – CIRCUITO BÁSICO DE PWM............................................................23 FIGURA 2.4 – FORMA DE ONDA DE TENSÃO DO CIRCUITO...............................24 FIGURA 2.5 – PINAGEM DO MICROCONTROLADOR............................................28 FIGURA 2.6 - DIAGRAMA DE MONTAGEM DO SISTEMA......................................33 FIGURA 2.7 – CONVERSÃO DE 20 BITS EM 14 BITS............................................36 FIGURA 3.1 – SISTEMA DE CONTROLE DO TIPO MALHA FECHADA..................38 FIGURA 3.2 – TRECHO DO PROGRAMA RELACIONADO COM O CONTROLE PID ....................................................................................................................................38 FIGURA 4.1 – GRÁFICO DO SINAL PWM APLICADO AO MOTOR........................44 FIGURA 4.2 – GRÁFICO DO TEMPO DE VARREDURA DO SOFTWARE.............45 FIGURA 4.3 – GRÁFICO DE VC_PWM E DA POSIÇÃO.........................................46 FIGURA 4.4 – RESPOSTA DO SISTEMA EM FUNÇÃO DE KP...............................47 FIGURA 4.5 – RESPOSTA DO SISTEMA EM FUNÇÃO DOS PARÂMETROS DE CONTROLE................................................................................................................48 FIGURA 4.6 – RESPOSTA DO SISTEMA EM FUNÇÃO DOS PARÂMETROS DE CONTROLE................................................................................................................49 FIGURA 4.7 – RESPOSTA DO SISTEMA EM FUNÇÃO DOS PARÂMETROS DE CONTROLE................................................................................................................50 ANEXO 1 – CARACTERISTICAS DO SERVOMOTOR CC.......................................54
  • 13. Sumário 1 INTRODUÇÃO........................................................................................................15 1.1 Controladores PID.....................................................................................15 1.2 Controladores Analógicos e Digitais..........................................................16 1.3 Microcontroladores PIC.............................................................................17 1.4 Controle de movimento..............................................................................18 1.5 Objetivo......................................................................................................19 2 DESCRIÇÃO DO SISTEMA ...................................................................................20 2.1 Introdução..................................................................................................20 2.2 Servomotor CC..........................................................................................21 2.3 PWM..........................................................................................................23 2.4 Encoder......................................................................................................25 2.5 Microcontrolador 18F2331.........................................................................26 2.5.1 Introdução....................................................................................26 2.5.2 Características de controle de movimento...................................29 2.5.3 Módulo do PWM...........................................................................29 2.4.4 Leitura do encoder.......................................................................30 2.6 Driver de potência......................................................................................31 2.6.1 Introdução....................................................................................31 2.6.2 Tipos de PWM..............................................................................31 2.7 Material e Método......................................................................................32 2.7.1 Introdução....................................................................................32 2.7.2 Material utilizado..........................................................................33 2.7.3 Descrição do sistema..................................................................34
  • 14. 2.7.3.1 Hardware........................................................................34 2.7.3.2 Software.........................................................................35 2.7.3.3 Controle PID...................................................................35 3 SISTEMA DE CONTROLE .....................................................................................38 3.1 Controle.....................................................................................................38 3.2 Controlador...............................................................................................39 3.2.1 Proporcional.................................................................................39 3.2.2 Integral.........................................................................................40 3.2.3 Derivativo.....................................................................................41 3.2.4 Controlador PID............................................................................41 3.2.5 Discretização do Controlador PID................................................42 4 RESULTADOS E DISCUSSÕES............................................................................44 4.1 Freqüência do PWM..................................................................................44 4.2 Tempo de varredura do programa.............................................................45 4.3 Resposta do sistema.................................................................................46 5 CONCLUSÕES.......................................................................................................51 REFERÊNCIAS BIBLIOGRÁFICAS ..........................................................................52 ANEXO 1– CARACTERÍSTICAS DO MOTOR .........................................................53 ANEXO 2 – ALGORITMO DE CONTROLE NO MICROCONTROLADOR................54 ANEXO 3 – SOFTWARE NO MATLAB......................................................................56 ANEXO 4 – EXEMPLO DO ARQUIVO GERADO PELO MATLAB............................58
  • 15. 15 CAPITULO 1 Introdução 1.1– Controladores PID Os controladores do tipo PID, têm sido largamente utilizados no controle de processos industriais desde a década de 30, e sua simplicidade e popularidade levaram aos estudos realizados por Ziegler-Nichols (1942). Com o grande avanço tecnológico ocorrido nas últimas duas décadas, os projetos na área de sistemas de controle foram direcionados aos sistemas lineares com dados amostrados, com a grande vantagem de se trabalhar com controle digital, surgindo assim a possibilidade de se implementar um controlador digital, utilizando as novas técnicas e dispositivos eletrônicos disponíveis. O controle automático tem sido vital para o avanço da ciência e da engenharia. Suas aplicações são inúmeras, sendo parte fundamental de sistemas bélicos, aeronaves, robôs e muitos outros. O controle automático é atualmente parte importante dos atuais processos industriais e de fabricação. Neste contexto, o controle automático é essencial no controle numérico de máquinas-ferramenta nas indústrias de fabricação, sendo também fundamental em operações industriais tais como: controle de pressão, temperatura, umidade, viscosidade e fluxo em processos industriais. Recentes desenvolvimentos em teoria de controle moderno estão no campo do controle ótimo, tanto de sistemas determinísticos quanto de estocásticos, bem como do controle de aprendizado e adaptativo de sistemas complexos. Com os
  • 16. 16 computadores digitais tornando-se mais baratos e mais compactos, estes são utilizados como partes integrantes destes sistemas de controle (Ogata, 1993). Neste contexto, os controladores PID (Proporcional, Integral e Derivativo) desempenham um papel de extrema importância, permitindo um controle mais preciso e mais fiel do processo ao qual está relacionado. 1.2- Controladores Analógicos e Digitais Os sistemas de controle analógicos são normalmente implementados com componentes analógicos tais como amplificadores operacionais, resistores e capacitores. Estes componentes analógicos são dispostos de maneira a formar estruturas do tipo filtro, que modificam a resposta em freqüência do sistema. Com o aumento do desempenho e da qualidade dos microprocessadores os controladores digitais estão tomando o lugar dos controladores analógicos. Vantagens obtidas com a técnica digital, conforme BORDON (1993): • Aumento de sensibilidade, onde valores de grande potência podem ser controlados por sinais de baixo nível. • Uso direto de transdutores digitais, aumentando a imunidade a ruídos e não linearidades. • Implementação exata das leis de controle, garantindo a confiabilidade necessária aos sistemas de controle. • Controle simultâneo de vários sinais, através da comunicação digital local e remota.
  • 17. 17 Geralmente um controlador digital é formado basicamente por um controlador, que processa o sinal de erro. Um conversor digital para analógico (D/A) é necessário para converter a saída digital do processador em um sinal analógico e acionar o driver de potência e o atuador. Para possibilitar a realimentação ao processador, é necessário um conversor analógico para digital (A/D), como interface do sinal do sensor para o processador. 1.3 - Microcontroladores PIC Tipicamente os microcontroladores se caracterizam por incorporarem internamente memórias de programa e dados. Vários periféricos como timers, watchdog timers, comunicação serial, conversores analógicos digitais, geradores de PWM, etc. Fazendo com que a aplicação final fique extremamente compactada. A Microchip é uma precursora no uso da tecnologia RISC em microprocessadores. O nome RISC é a abreviação de Reduced Instruction Set Computer (computador com conjunto de instruções reduzido). Diferente da arquitetura Von Newmann, a estrutura RISC é baseada na arquitetura Harvard que possui um barramento para dados e outro para o programa, e tem como características, tamanhos diferenciados entre o barramento de dados e de programa, permitindo que em uma única palavra tenha a instrução e o operando. Existem modelos de PIC onde o barramento de dados é de 8 bits e o de programa é de 12 bits. Com isso consegue-se compactar o código e executá-lo em alta velocidade. O alto desempenho da família de microcontroladores PIC pode ser atribuída às seguintes características da arquitetura RISC, conforme CANZIAN (1998).
  • 18. 18 • Conceito de registrador arquivo • Todas as instruções com palavras simples • Palavra de instrução longa (LWI – Long Word Instruction) • Arquitetura de instruções em “Pipeline” • Instruções de apenas um ciclo de máquina • Conjunto de instruções reduzido 1.4- Controle de movimento A definição exata de controle de movimento é muito complexa, devido ao fato de expressar diferentes significados para os diversos setores da indústria. Em muitos casos, as técnicas de controle de movimento estão intimamente ligadas aos controladores de movimento, à estrutura mecânica do posicionamento e aos atuadores utilizados na aplicação. Um controlador de movimento satisfaz quatro características importantes: leitura do sinal de realimentação de posição, geração de um comando de posicionamento ou perfil de movimento, fechamento da malha de posição e compensação da instabilidade. De todas estas características, os mais importantes são a leitura do sinal de realimentação de posição e o fechamento da malha de controle. A posição do motor é geralmente determinada por um encoder incremental. A diferença entre a posição atual e o comando de posição é o erro de posição. O controlador minimiza o erro sem fazer oscilar a carga. Geralmente um algoritmo PID é usado para este serviço.
  • 19. 19 1.5– Objetivo Este trabalho tem como objetivo observar o desempenho de um sistema de posicionamento de um servomotor CC, utilizando o algoritmo de controle PID implementado em um microcontrolador.
  • 20. 20 CAPITULO 2 Descrição do Sistema 2.1 – Introdução Este capítulo descreve todos os componentes utilizados no sistema e suas respectivas características e formas de atuação. O objetivo principal do projeto é o controle de posição e a alteração das variáveis de controle PID que modifiquem o estado do motor de corrente contínua (motor CC). 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 A B C D E F A B C D E F microcontrolador encoder chaves e botões led´s e display PC driver e motor Figura 2.1 – Representação básica do sistema.
  • 21. 21 A informação de velocidade é transferida para o microcontrolador através de um dispositivo chamado encoder. Utilizando essas informações, o microcontrolador atua de forma autônoma controlando o motor. Para o controle foi implementado no microcontrolador um algoritmo do tipo PID. O sistema, além do microcontrolador, conta também com um display LCD 16x2, 1 chave pulsante e um driver para o acionamento do motor de corrente contínua. Através do display são visualizadas informações como a leitura de posição, os valores dos ganhos e o valor da variável “Vc_pwm”. A chave serve para habilitar e desabilitar o motor, gerando um degrau de posição. A variação de velocidade do motor é feita utilizando a saída PWM (Modulação de Largura de Pulso) do microcontrolador e o driver de potência. Foi implementada uma interface de comunicação com um microcomputador utilizando a porta serial RS-232. Foi implementado um script em Matlab para o envio e recebimento de dados do microcontrolador. O microcomputador faz a leitura da posição do motor e também pode alterar os ganhos do controle PID. 2.2 – Servomotor CC O controle dos motores CC pode ser feito através da corrente de campo (If) ou da corrente da armadura (Ia). O controle por armadura é o método mais comum e foi utilizado neste projeto. O controle de velocidade do motor é conseguido por meio de uma tensão aplicada à armadura (Ea). A polaridade da tensão aplicada determina o sentido do torque obtido (Tm) e este determina o sentido de giro.
  • 22. 22 Na figura abaixo, Ra e La indicam a resistência de armadura e a indutância de armadura respectivamente. Ia é a corrente que circula no circuito de armadura devido à aplicação de Ea (D´ÁZZO-HOUPIS (1981)). Figura 2.2 – Circuito elétrico do motor CC. A equação para o circuito de armadura fica: . . .Ea La Ia Ra Ia Vfcem= + + (2.1) Quando a corrente de campo é constante, o fluxo produzido pela bobina de campo também é constante e nesse caso o conjugado (Tm) desenvolvido pelo motor é proporcional à corrente de armadura (Ia). .Tm K t Ia= (2.2) onde Kt é uma constante que depende do meio magnético e do valor da corrente de campo. Podemos relacionar os torques envolvidos no sistema:
  • 23. 23 Tm Tj Tb Tc= + + (2.3) onde Tj é torque inercial do sistema; Tb é o torque viscoso e Tc é o torque da carga. Melhorando a apresentação da equação 3.11 temos: .. . . .Tm j m B m Tcθ θ= + + (2.4) 2.3 – PWM PWM é a abreviação de Pulse Width Modulation ou Modulação por largura de pulso. Para entender como funciona esta tecnologia no controle de potência, vamos partir de um circuito imaginário formado por um interruptor de ação muito rápida e uma carga linear que deve ser controlada, de acordo com a figura 2.3. cargafonte de alimentação CC interruptor Figura 2.3 – circuito básico de PWM.
  • 24. 24 Quando o interruptor está aberto não há corrente na carga e a potência aplicada é nula. No instante que o interruptor é fechado, a carga recebe a tensão total da fonte e a potência aplicada é máxima. Para fazermos que a potência aplicada na carga seja intermediária, digamos 50% da potência total, é necessário que o interruptor seja rapidamente seja chaveado, isto é, aberto e fechado. O interruptor deve ficar 50% do tempo aberto e 50% do tempo fechado. 0 50 100 tensão de carga (%) tempo (segundos) valor médio da tensão T t1 t2 t1 = t2 Figura 2.4 – forma de onda de tensão do circuito. Podemos observar na figura acima, que a soma dos tempos t1 e t2 define o período ou freqüência de chaveamento. 1 1 1 2 chaveamentoF T t t = = + (2.5)
  • 25. 25 A relação entre o tempo do pulso (t1) e o tempo total do chaveamento (t1 + t2) é chamado de duty cycle. 1 _ 100% 1 2 t duty cycle t t = + (2.6) Variando-se a largura do pulso e também o intervalo de modo a termos ciclos ativos diferentes, podemos controlar a potência média aplicada a uma carga. Assim, quando a largura do pulso varia de zero até o máximo, a potência também varia na mesma proporção. Este princípio é usado no controle PWM, varia-se a largura do pulso de modo a controlar a potência aplicada a uma carga. 2.4 – Encoder O encoder gera um pulso para um determinado incremento de rotação do eixo (encoder rotativo), ou um pulso para uma determinada distância linear percorrida (encoder linear). Embora seja mais utilizado no controle de posição, o encoder também é utilizado para medir velocidade, uma vez que medindo a distância total percorrida (através da contagem dos pulsos na saída do encoder) e o tempo necessário para esta distância ser percorrida, consegue-se calcular a velocidade. Há vários tipos: magnético, contacto, resistivo, e óptico. Porém, o sistema mais preciso é o encoder óptico. Os encoders ópticos operam por meio de um disco
  • 26. 26 com ranhuras ou aberturas transparentes, que se move entre uma fonte de luz (seja visível ou infravermelha) e um detector. Este disco é acoplado mecanicamente em um eixo. À medida que o eixo começa a girar, o disco passa entre a fonte e o detector, fazendo com que o feixe de luz seja interrompido quando encontra uma parte fechada e seja novamente liberado quando passar por uma abertura transparente, gerando assim uma onda pulsante. A fonte de luz pode ser um diodo Emissor de Luz (LED), um diodo infravermelho ou uma pequena lâmpada incandescente. Já o detector normalmente é um fototransistor ou mais comumente um diodo fotovoltaico. Esse sistema simples composto por apenas um LED provê um único sinal de saída o que é indesejável, uma vez que o sinal de saída, tem um offset CC que é dependente da temperatura fazendo com que o sinal fique difícil de ser usado. Na prática, dois fotodiodos são usados, organizados para produzir sinais com 180° de diferença de fase para cada canal, as duas saídas dos diodos são subtraídas para cancelar o offset CC. 2.5 – Microcontrolador 18F2331 2.5.1 – Introdução O PIC 18F2331 é um microcontrolador que tem periféricos muito úteis em aplicações de controle de motores. Podendo operar de DC até 40MHZ (ciclo de
  • 27. 27 instrução de 100ns) e faz parte da família PIC com instruções de 16 bits, o que garante alto rendimento computacional com baixo custo. Características principais são: • 8K (8192 bytes) de memória flash usada para a memória do programa • 256 bytes de EEPROM para dados • 768 bytes de RAM de dados • Stack com 31 níveis • 4K (4096 ) palavras de 12 bits • Multiplicação 8 bits x 8 bits por hardware em apenas 1 ciclo de máquina • Modulo de PWM de 14 bits • Modulo de realimentação de movimento • Conversor A/D de 10 bits de alta velocidade com até 5 entradas • Até 24 pinos para uso de entrada e saída • 3 interrupções externas • Capacidade de drenar /fornecer 25mA / pino • 4 timers programáveis de 8 e 16 bits • watchdog programável • ICSP™ via 2 pinos • Proteção contra leitura do código
  • 28. 28 Figura 2.5 – Pinagem do microcontrolador. A memória de programa tem por objetivo armazenar as “instruções” a serem executadas pelo processador. Esta memória tem como característica não ser volátil, isto é, não perde as informações na falta de energia. A memória de dados é onde o processador realiza todas as funções de cálculo e armazenamento de informações transitórias. Esta memória tem como característica ser volátil, isto é, perde informações na falta de energia. A memória eeprom de dados é uma memória especial que temos no microcontrolador, esta memória pode ser alterada para armazenar valores e de não perder estes resultados ao se desconectar a energia. Mas a gravação nesta memória não é feito de forma rápida como na RAM. Os usos mais indicados para a eeprom são: • gravação de senhas e parâmetros de configuração • dados de contadores
  • 29. 29 • outros que não podem ser perdidos nos desligamentos 2.5.2 – Características de controle de movimento O microcontrolador 18F2331 apresenta características que fazem dele um escolha ideal para muitas aplicações de alto desempenho em controle de motores, (data Sheet do PIC18F2331 (2003)). Podemos especificar os seguintes periféricos e suas características: • Módulo PWM de controle de potência (PCPWM) com resolução de 14 bits. O PCPWM pode gerar até 8 saídas PWM complementares. • Desligamento por hardware (shutdown) através de entradas de falha. • Interface de encoder com canal A, canal B e sinal de índice. • Conversor analógico digital de alta velocidade. 2.5.3 – Módulo do PWM O módulo de controle PWM simplifica a tarefa de gerar diversas saídas sincronizadas PWM para uso no controle de motores e aplicações de conversão de energia. Particularmente, as seguintes aplicações de controle de movimento e controle de potência são englobadas: • Motores de indução monofásicos e trifásicos • Motores CC sem escova • Fontes de energia sem interrupção • Diversos motores CC com escova
  • 30. 30 2.5.4 – Leitura do encoder O microcontrolador tem um periférico de detecção de posição, sentido e de velocidade dos sinais de um encoder. Podemos calcular a máxima freqüência de leitura deste periférico. Sabendo que o tempo de ciclo é: 1 ( / 4) cy osc T f = (2.3) Tcy – Tempo do ciclo de máquina Fosc – freqüência do oscilador Neste projeto utilizamos um cristal oscilador de 16MHz, logo o ciclo de máquina será de 250ns. O Fcy será 4 MIPS. Os sinais de quadratura QEA e QEB são lidos em 16 ciclos de clock (16Tcy). Desta forma podemos calcular a máxima freqüência de leitura do canal de encoder: max 1 1 250 16 16.250 F KHz tcy ns = = = (2.4) Como temos 2 canais, a frequência máxima possível para cada canal de encoder é de 125KHz.
  • 31. 31 2.6 – Driver de potência 2.6.1 - Introdução Para controlar o motor foi utilizado o LMD18200. Este componente é uma ponte H de 3A projetada para ser usada em aplicações de controle de movimento. Ideal para alimentar motores CC e motores de passo, o LMD18200 suporta picos de corrente até 6A. Este CI contém um circuito inovador que facilita a detecção da corrente de saída do circuito. Características: • Fornece até 3A continuamente • Opera com tensões até 55 volts • Entradas compatíveis a TTL e CMOS • Flag de indicação de sobretemperatura de 145 ºC • Desligamento por sobretemperatura de 170 ºC • Proteção contra curto-circuito das saídas • Diodos internos de clamp 2.6.2 – Tipos de PWM O LMD18200 interfaceia com diferentes tipos de Sinais de PWM. Os dois mais conhecidos tipos:
  • 32. 32 • PWM anti-fase: o sinal é composto pela informação de direção e de amplitude. Um duty cycle de 50% no sinal do PWM representa zero drive. • PWM amplitude / sinal: consiste de sinais separados de direção e de amplitude. O sinal de magnitude é o duty cycle modulado e a falta do sinal de pulso é o zero drive. Neste projeto utiliza-se o método do PWM anti-fase. A montagem pode ser visto na figura 2.6. 2.7 – Material e método 2.7.1 – Introdução Este projeto foi idealizado primeiramente como uma implementação de um sistema de controle OFF-ON de um motor CC. Após o termino desta etapa, viu-se que o controle funcionava, mas que após o motor atingir a posição desejada, ele “fugia” da posição devido a sua inércia. Ocorreu um erro de posicionamento muito alto. Para diminuir o erro de posição, foi implementado um controle do tipo PID. No princípio alimentou-se o motor CC através de um transistor TIP137. Mas com a implementação do controle PID foi necessário o uso de uma ponte H de transistores. Desta forma optou-se por utilizar o driver de acionamento LMD18200. Para analisar a resposta do sistema, implementou-se a comunicação serial com o software Matlab. Desta forma observou-se a resposta em forma de gráfico.
  • 33. 33 1 2 3 4 18F2331 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 d7 d6 d5 d4 d3 d2 d1 d0 E RWRSV0VDDVSS15 16 1 2 3 4 5 6 7 8 MAX232 9 10 11 12 13 14 15 16 + - + - 5 9 4 8 3 7 2 6 1 +5Vcc + + + +5Vcc + 127Vca 1 3 5 9 11 10 6 7 4 2 8 +5Vcc comunicação serial rs-232 servo motor DC fontes de alimentação +18Vcc +18Vcc encoder +5Vcc + A B - display LCD 16x2 pwm brake habilita LMD18200 13 14 Figura 2.6 – Diagrama de montagem do sistema 2.7.2 – Material utilizado Para a realização deste projeto foram utilizados os seguintes componentes: • Microcontrolador PIC 18F2331 - Microchip • Motor CC c/ encoder - Canon • Cristal oscilador de 16MHz • Display LCD 16X2 • Fonte de 5Vcc • Fonte de 18Vcc
  • 34. 34 Foram utilizados os seguintes equipamentos: • ScopeMeter 123 - Fluke • Multímetro ET-1400 - Minipa • Gravador PICSTART PLUS - Microchip Foram utilizados os seguintes softwares: • Compilador Pascal 5.0.0.3 - Mikroelektronika • Matlab 7.0 – The Math Works • Mplab IDE 7.40.00.00 - Microchip 2.7.3 – Descrição do sistema O sistema é dividido em duas partes: o hardware e o software. O hardware é composto pelo microcontrolador, driver do motor, motor e um encoder. O software é dividido em dois programas: um implementado no microcontrolador e outro implementado no microcomputador. 2.7.3.1 – Hardware Basicamente, o microcontrolador 18F2331 é alimentado por uma tensão 5Vcc através dos pino 7 (VDD). O aterramento está ligado no pino 8 (VSS). O clock externo está ligado nos pinos 9 e 10 (OSC1 e OSC2). Para gerar o clock externo, foi utilizado um cristal oscilador de 16MHz.
  • 35. 35 O LCD (display de cristal líquido) está ligado nos pinos 11, 12, 13, 14, 15, 16 e 22 (RD6, RD4, RD7, RD5, E, RS e RW ). A chave está ligada no pino 3 (RA1). Os pinos 21, 23 e 24 (PWM0, RB2 e RB3) estão ligados no driver (LMD18200) utilizado para controlar o motor. Os pinos 17 e 18 (TX e RX) são utilizados para a comunicação serial com o computador através do CI MAX232. Os pinos 5 e 6 (QEA e QEB) estão ligados ao encoder para aquisição do sinal correspondente à posição do motor.O pino 1 (/MCLR) está ligado uma tensão 5Vcc. O diagrama de montagem do sistema pode ser visualizado na figura 2.6. 2.7.3.2 – Software A lógica implementada no microcontrolador foi desenvolvida utilizando a linguagem de programação Pascal, através do compilador Mikropascal. Essa lógica pode ser visualizada no Anexo 2. A lógica implementada no microcomputador foi desenvolvida utilizando o Matlab. Essa lógica pode ser visualizada no Anexo 3. Convém lembrar que o programa, implementado no Matlab, faz a leitura do canal de comunicação serial e salva os dados em um arquivo de dados em formato texto. No final do envio, o software apresenta o resultado em forma de gráfico. 2.7.4 – Controle PID A principal estratégia do controle PID, é utilizar a variável Vc com um range de valores bem maior do que a variável que servirá como sinal de controle
  • 36. 36 (Vc_pwm). Com isso a variável de controle fica mais imune às variações muito rápidas no cálculo de Vc. O registrador do modulo PWM tem 14 bits e a variável de controle (Vc) tem 20 bits, logo se faz necessário transformar Vc em uma variável de 14 bits. Uma variável de 20 bits tem um range de -524288 até +524287 ( 20 2 1048576= ). Uma variável de 14 bits tem um range de -8192 até +8191 ( 14 2 16384= ). A transformação é feita com a divisão por 64 ( 6 2 64= ), a parte menos significativa será eliminada. 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 14 13 12 11 10 9 8 7 6 5 4 3 2 1 dividindo por 64 20 bits (Vc) 14 bits (Vc_pwm) Figura 2.7 – Conversão de 20 bits em 14 bits. Abaixo temos o trecho do programa que converte um range de 20 bits para um range de 14 bits. if (Vc>+524287) then Vc:=+524287; //limite superior p/ 20 bits if (Vc<-524288) then Vc:=-524288; // limite inferior p/ 20 bits Vc_pwm := Vc/64 + 8192; // transf. 20 bits em 14 bits do PWM
  • 37. 37 Como utilizou-se o driver LMD18200 na montagem anti-fase, e o registrador do microcontrolador trabalha com valores de 0 até 16384, logo é necessário que para o duty cycle de 50% um valor de 8192 para a variável Vc_pwm e um valor de 0 para Vc.
  • 38. 38 CAPITULO 3 Sistema de Controle 3.1 – Controle O controle do dispositivo é do tipo malha fechada. Em um sistema de malha fechada, o sinal erro é a diferença entre o sinal de entrada e o sinal de saída, e excita o controlador de modo a reduzir o erro e trazer o valor do sinal de saída para o valor desejado. Uma característica necessária de um sistema de malha fechada é a realimentação. A Figura 3.1 mostra o sistema de malha fechada. controlador processo saída (posição) realimentação sinal de referência sinal de erro e(t) sinal de controle u(t) Figura 3.1 - Sistema de controle do tipo malha fechada. A seguir, os elementos de um sistema de malha fechada: • Elemento de comparação: compara o valor desejado, ou de referência, da variável controlada com o valor medido e determina o sinal de erro que indica quanto o valor da saída está desviado do valor desejado; • Elemento de correção: é usado para provocar uma mudança no processo de forma a corrigir o erro e é freqüentemente chamado de atuador;
  • 39. 39 • Processo: o processo ou planta é o sistema no qual uma variável está sendo controlada; • Elemento de medida: gera um sinal relacionado com a condição da variável que está sendo controlada e fornece um sinal de realimentação para o elemento de comparação, para que ele determine se existe um erro. 3.2 – Controlador O controlador é o elemento no sistema de controle em malha fechada que tem como entrada o sinal de erro e gera uma saída que se torna à entrada para o elemento corretivo. A relação entre a saída e a entrada do controlador é chamada de lei de controle. As formas mais usuais são: proporcional, integral, derivativa e suas combinações (PI, PD, PID). Em alguns sistemas é necessário melhorar o desempenho do controlador, o que é conseguido introduzindo-se elementos adicionais chamados compensadores nos sistemas de controle. 3.2.1 - Proporcional Com o controle proporcional, a saída do controlador é diretamente proporcional a sua entrada, sendo esta o sinal de erro e, que é uma função do tempo. A saída do controle proporcional é expressa na equação 3.1 (OGATA (1993)). ( ) . ( )Saída t Kp e t= (3.1)
  • 40. 40 onde kp é uma constante chamada ganho proporcional. A saída do controlador depende apenas da amplitude do erro no instante de tempo. O controlador é apenas um amplificador com um ganho constante. Um grande erro em algum instante de tempo acarreta um valor alto na saída do controlador nesse instante de tempo. O ganho constante tende a existir somente para uma certa faixa de erros, chamada de banda proporcional. 3.2.2 - Integral No controle integral, a saída do controlador é proporcional a integral do sinal de erro e com o tempo. A saída do controle integral é expressa na equação 3.2. 0 ( ) ( ). t Saída t Ki e t dt= ∫ (3.2) onde ki é uma constante chamada de ganho integral. A integral entre 0 e t é de fato a área sob a curva do erro entre 0 e t. Assim quando aparece o sinal de erro, a área sob a curva aumenta em uma razão regular e a saída do controlador deve também aumentar em uma razão regular. A saída em qualquer instante de tempo é proporcional ao acúmulo de efeitos do erro em instantes anteriores.
  • 41. 41 3.2.3 - Derivativo No controle derivativo, a saída do controlador é proporcional a taxa de variação do erro e com o tempo. A saída do controle derivativo é expressa na equação 3.3. ( ) ( ) . de t Saída t Kp dt = (3.3) onde kd é uma constante chamada de ganho derivativo. Com o controle derivativo, tão logo o sinal de erro apareça, a saída do controlador pode tornar-se grande, já que a saída é proporcional a taxa de variação do sinal de erro e não do erro propriamente dito. Isto pode fornecer uma grande ação corretiva antes que um grande sinal de erro ocorra. Entretanto, se o erro é uma constante, então não existe ação corretiva, mesmo que o erro seja grande. O controle derivativo é insensível a sinais de erro constantes ou de variação lenta, e conseqüentemente não é usado sozinho, mas combinado com outras formas de controle. 3.2.4 – Controlador PID Os controladores PID são muito freqüentemente usados em sistemas de controle industriais, conforme OGATA (1993).
  • 42. 42 O controlador PID combina as vantagens do controlador PI e PD. A ação integral está diretamente ligada à precisão do sistema sendo responsável pelo erro nulo em regime permanente. O efeito desestabilizador do controlador PI é contrabalançado pela ação derivativa que tende a aumentar a estabilidade relativa do sistema ao mesmo tempo que torna a resposta do sistema mais rápida devido ao seu efeito antecipatório. 0 ( ) ( ) . ( ) ( ). . t de t Saída t Kpe t Ki e t dt Kd dt = + +∫ (3.4) 3.2.5 – Discretização do Controlador PID Um controlador proporcional mais integral mais derivativo (PID), ou controlador de três termos, terá uma saída para uma entrada de um erro e(t). A saída do controle proporcional mais integral mais derivativo é expressa na equação 3.4. A seguir é mostrado a discretização da equação 3.4, utilizado no algoritmo do microcontrolador. A discretização é obtida substituindo a variável tempo (t) por: .t nT= (3.5) Obtêm-se assim uma equação discretizada:
  • 43. 43 0 ( ) (( 1) ) ( ) . ( ) . ( ) n j e nT e n T Saída nT Kpe nT KiT e jT Kd T= − − = + +∑ (3.6) onde T é o período de amostragem e n é o número da amostra. Como nT é substituída simplesmente por n, dando origem à primeira equação do PID digital: 0 ( ) ( 1) ( ) . ( ) . . ( ) . n j e n e n Saída n Kpe n KiT e j Kd T= − − = + +∑ (3.7) Simplificando, 0 ( ) . ( ) . ( ) .( ( ) ( 1)) n j Saída n Kpe n Ki e j Kd e n e n = = + + − −∑ (3.8) Esta equação é facilmente implementada em uma linguagem de alto nível: Eo := Ea; // erro(n-1) Ea := setpoint - contagem ; // erro(n) Proporc := Ea * K p; // term o proporcional som a := (som a + Ea); // som atória Int := som a * K i; // term o integral D erivat := (Ea - Eo) * K d ; // term o derivativo V c := (Proporc + Int + D erivat); // variável de controle Figura 3.2 – Trecho do programa relacionado com o controle PID.
  • 44. 44 CAPITULO 4 Resultados e Discussões 4.1 – Freqüência do PWM Foi oscilografada a forma de onda do sinal do PWM gerado pelo microcontrolador. Este gráfico foi retirado quando o motor estava parado, por isso observa-se um duty cycle de 50%. A frequência é o inverso do período do sinal. 3 1 500 2.10 frequência Hz− = = (4.1) A frequência de 500Hz é muito baixa, além de gerar um ruído audível, pode esquentar o motor em demasia. Em futuros trabalhos deverá ser aumentado. Figura 4.1 – Gráfico do PWM aplicado ao motor.
  • 45. 45 4.2 - Tempo de Varredura do programa (scan time) Para uma análise da base de tempo, em que os cálculos do controle PID do algoritmo estão sendo realizados, foi oscilografada a forma de onda do tempo de varredura. Isto foi possível setando uma saída digital para que em uma varredura fosse 0 (0Vcc) e na varredura seguinte fosse 1 (5Vcc). No gráfico 4.2, mostra um tempo de varredura de 35ms. Este tempo é muito alto, podendo afetar em muito a eficácia do controle PID. Em futuros trabalhos deverá ser reduzido drasticamente. Figura 4.2 – Gráfico da varredura do software.
  • 46. 46 4.3 – Resposta do sistema Com o sistema funcionando, foram aplicados degraus de posição. Os resultados foram retirados e plotados utilizando o software Matlab. Estes gráficos mostram o comportamento do motor em função de diversos valores dos ganhos do PID. 0 2 4 6 8 10 12 14 16 18 20 0 2000 4000 6000 8000 10000 12000 Tempo (s) Posição(pulsosdeencoder) RESPOSTA AO DEGRAU APLICADO NO SERVO DC Posição do motor Vc pwm (0 - 16383) Figura 4.3 – Gráfico de Vc_pwm e da posição. Na figura 4.3 temos a posição do motor e a variável Vc_pwm. É interessante observar o comportamento de Vc_pwm em função do tempo.
  • 47. 47 0 2 4 6 8 10 12 14 16 18 0 1000 2000 3000 4000 5000 6000 7000 8000 Tempo (s) Posição(pulsosdeencoder) RESPOSTA AO DEGRAU APLICADO NO SERVO DC Kp=10 Ki=0 Kd=0 Kp=100 Ki=0 Kd=0 Kp=200 Ki=0 Kd=0 Figura 4.4 – Resposta do sistema em função de Kp. A figura 4.4 mostra o efeito sobre a resposta de diversos valores de Kp. O aumento do ganho proporcional faz com que o tempo de subida fique menor no sistema. Isto ocorre devido ao valor do coeficiente de amortecimento ser inversamente proporcional ao valor de Kp. Conforme Ogata(1993) pág. 207, o coeficiente de amortecimento é a relação entre o amortecimento real B e o amortecimento crítico 2 JK . Isto indica a tendência mostrada no gráfico acima.
  • 48. 48 0 2 4 6 8 10 12 14 16 18 0 2000 4000 6000 8000 10000 12000 Tempo (s) Posição(pulsosdeencoder) RESPOSTA AO DEGRAU APLICADO NO SERVO DC Kp=10 Ki=1 Kd=0 Kp=50 Ki=1 Kd=0 Kp=100 Ki=1 Kd=0 Figura 4.5 – Resposta do sistema em função dos parâmetros de controle. Pegando o sistema conforme os ganhos proporcionais mostrados na figura 4.4 e aplicando o ganho integral de 1, observa-se a resposta na figura 4.5. O valor do ganho integral é muito alto e o sistema tende a oscilar. Somente com um valor alto do ganho proporcional é que o sistema oscila menos.
  • 49. 49 0 2 4 6 8 10 12 14 16 18 0 2000 4000 6000 8000 10000 12000 Tempo (s) Posição(pulsosdeencoder) RESPOSTA AO DEGRAU APLICADO NO SERVO DC Kp=20 Ki=0.1 Kd=0 Kp=20 Ki=0.3 Kd=0 Kp=20 Ki=1 Kd=0 Figura 4.6 – Resposta do sistema em função dos parâmetros de controle. Aplicando um valor fixo do ganho proporcional e diversos valores do ganho integral, pode-se observar qual é o melhor valor para Ki O sistema fica mais instável com um valor alto de Ki.
  • 50. 50 0 2 4 6 8 10 12 14 16 18 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Tempo (s) Posição(pulsosdeencoder) RESPOSTA AO DEGRAU APLICADO NO SERVO DC Kp=70 Ki=0.1 Kd=1 Kp=70 Ki=0.1 Kd=2 Kp=70 Ki=0.1 Kd=10 Figura 4.7 – Resposta do sistema em função dos parâmetros de controle. No gráfico 4.7 observa-se que o ganho derivativo pouco influencia na resposta do sistema. Foram aplicados diversos valores de Kd, mas não houve alteração significativa na resposta.
  • 51. 51 CAPITULO 5 Conclusões Ao longo do projeto foram surgindo problemas, tais como a compra do microcontrolador, a isolação contra ruído, manuseio dos periféricos, etc. Mas o maior problema enfrentado foi a falta de informações sobre o microcontrolador 18F2331 e a dificuldade de se implementar um sistema que utiliza-se o PWM, encoder, display de cristal liquido, etc. Também houveram dificuldades iniciais em implementar o controle PID, devido ao fato de utilizar-se uma versão limitada do software Pascal. Utilizando o controle PID em um sistema de servo posicionamento pode-se comprovar a eficácia deste controle, entender o comportamento de um sistema de posicionamento e também observar na prática o funcionamento do PID digital. A escolha da linguagem para a programação do microcontrolador foi um fator importante para o êxito, já que possibilitou a criação de um algoritmo complexo de maneira rápida.
  • 52. 52 REFERÊNCIAS BIBLIOGRÁFICAS ZIEGLER, J. G. & NICHOLS, N. B. (1942). Optimum Setting for Automatic Controllers, Transactions of the ASME, Vol. 64, pp.759-768. D´ÁZZO , J. J. & HOUPIS, C. H. (1981). Linear Control System Analysis and Design. McGraw-Hill, 2ª edição BORDON, Mário Eduardo (1993). Controlador PID Microprocessado, Dissertação de mestrado, UNICAMP. OGATA, Katsuhiko (1993). Engenharia de Controle Moderno. Prentice Hall, 2ª edição CANZIAN, Edmur (1998). Projetos de Hardware e Software utilizando Microcontroladores, Apostila - CNZ Engenharia e Informática Ltda. Data Sheet (2003), PIC18F2331/2431/4331/4431 28/40/44 – Pin Enhanced Flash Microcontrolers. Microchip Technology. URL: http://www.microchip.com. Data Sheet (2005), LMD18200 -3A, 55V H-BRIDGE. National Semiconductor.
  • 54. 54 Anexo 2 Software de controle no microcontrolador. Program PID; Uses config_sistema; Var Vc_pwm, contagem, setpoint, Eo, Ea : integer; Enviar : integer; Kp, Kd, Ki : short; int, proporc, derivat, Vc, soma : longint; Procedure Controle_PID; Begin Leitura(contagem); Eo := Ea; // erro(n-1) Ea := setpoint - contagem; // erro(n) Proporc := Ea * Kp; // termo proporcional soma := (soma + Ea); // somatória Int := soma * Ki; // termo integral Derivat := (Ea - Eo) * Kd; // termo derivativo Vc := (Proporc + Int + Derivat); // variável de controle
  • 55. 55 if (Vc>+524287) then Vc:=+524287; //limite superior p/ 20 bits if (Vc<-524288) then Vc:=-524288; // limite inferior p/ 20 bits Vc_pwm := Vc/64 + 8192; // transf. 20 bits em 14 bits do PWM Ajusta_PWM(Vc_pwm); // configuro o sinal do PWM Mostra_display(Vc_pwm,contagem); // envio dados para o display If (enviar = 1) Then Envia_serial(contagem); // envia dados da serial End; Begin Iniciar_geral; // configuração básica do PIC PWM_iniciar; // configuração do PWM Encoder_Iniciar; // configuração do leitor de encoder Serial_iniciar; // configuração da serial LCD_iniciar; // configuração do LCD While true do Controle_PID; // algoritmo do PID End.
  • 56. 56 Anexo 3 Software no Matlab. % programa que lê os sinais da porta serial % 1) primeiro é enviado um sinal de inicio de envio pela plaqueta " %" % ou 37 em decimal ou 25 em hexa % 2) após isto, a placa envia até 3000 dados de 2bytes para a serial s = serial('COM1'); %configura COM1 set(s,'BaudRate', 9600); %baudrate set(s,'DataBits',8); %databits set(s,'StopBits',1); %stopbits fid = fopen('motion.dat','a+'); %relaciono com o arquivo status = fseek(fid,0, 'bof'); %posiciono no inicio do arquivo s.terminator = 'CR'; %terminação fopen(s); %abro serial fwrite(s,'%','uchar'); %envio o sinal 'pode transmitir' antigo = 0; %inicializo zero = clock; %inicializo n = 0; %inicializo ref = zero(5)*1000 + zero(6) %referencia para calculo do tempo while (n < 500) %looping --> limite é (n<= 3000) atual = clock; %leitura do sistema
  • 57. 57 if ((atual(6)-antigo) > 0) %tenho alteração do tempo (a placa é muito rápida) fprintf(fid,'%u ',n); %gravo o contador de linhas do arquivo valor = (atual(5)*1000 + atual(6)) - ref; %valor do tempo em segundos fprintf(fid,'%6.4f ',valor); %gravo o valor do tempo no arquivo out = fread(s,2,'uint8'); %leitura dos 2 bytes da posição do motor a = out(1) + out(2)*256 %correção do valor lido fprintf(fid,'%u',a); %gravo o valor da posição no arquivo fprintf(fid,'n'); %pulo uma linha no arquivo n = n+1; %contador do looping end; antigo = atual(6); %guardo o valor antigo do tempo end; fclose(fid); %fecho arquivo fclose(s); %fecho serial delete(s); %deleto vinculo com a serial clear s; [c,x,y] = textread('motion.dat','%u %f %f');%leio os valores do arquivo acima gerado plot(x,y,'Color','m'); %configurações para a plotagem xlabel('Tempo (s)'); ylabel('Posição (pulsos de encoder)'); title('RESPOSTA AO DEGRAU APLICADO NO SERVO DC'); grid
  • 58. 58 Anexo 4 Exemplo do arquivo gerado pelo Matlab. N tempo posição Vc 0 0.0000 1888 13534 1 0.1090 2269 13125 2 0.1400 2627 12740 3 0.1560 2959 12384 4 0.2650 3269 12051 5 0.2810 3556 11743 6 0.3120 3823 11456 7 0.3280 4071 11190 8 0.4220 4300 10944 9 0.4530 4513 10715 10 0.4690 4708 10505 11 0.4840 4892 10308 12 0.5000 5059 10128 13 0.5940 5215 9961 14 0.6250 5358 9807 15 0.7030 5492 9663 16 0.7190 5613 9533 17 0.8280 5727 9410 18 0.8900 5832 9297 19 0.9060 5928 9194
  • 59. 59 20 0.9220 6015 9101 21 0.9840 6098 9011 22 1.0000 6173 8931 23 1.0150 6247 8851 24 1.0310 6308 8786 25 1.0470 6367 8722 26 1.0620 6426 8658 27 1.1870 6474 8607 28 1.2340 6521 8556 29 1.2500 6557 8518 30 1.3750 6602 8469 31 1.3900 6644 8424 32 1.5000 6660 8407 33 1.5150 6694 8370 34 1.5310 6722 8340 35 1.5470 6745 8315 36 1.5620 6765 8294 37 1.5780 6798 8258 38 1.6250 6820 8234 39 1.6720 6826 8228 40 1.7030 6839 8214 41 1.8120 6852 8200 42 1.8280 6867 8184 ... apenas os 43 primeiros pontos ...