View
15
Download
1
Category
Preview:
DESCRIPTION
Monografia - Servomotor CC
Citation preview
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ÇÃOUNESP – BAURU
Ceide, Ricardo Pereira.
Controlador PID digital para posicionamentode 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 – UniversidadeEstadual 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é Alfredo Covolan 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 edisplay
PC
driver emotor
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).
.T m 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
T m Tj T b T c= + + (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 11 2chaveamentoF
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
tduty cyclet 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
Tf
= (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:
max1 1 250
16 16.250F 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
23
4 18F2331
5
67
89
1011
1213
14 15
1617
1819
2021
2223
2425
2627
28
d7 d6 d5 d4 d3 d2 d1 d0 E RWRSV0VDDVSS15 16
1
23
45
67
8
MA
X 232
9
1011
1213
1415
16
+
-
+
-
594837261
+5Vcc
+
+
+
+5Vcc
+
127Vca1
3
59
1110
67
42
8
+5Vcc
comunicação serialrs-232
servo motor DCfontes de alimentação
+18Vcc
+18Vcc
encoder
+5Vcc
+ A B -
displayLCD 16x2
pwmbrakehabilita
LM
D18200
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
( 202 1048576= ). Uma variável de 14 bits tem um range de -8192 até +8191
( 142 16384= ).
A transformação é feita com a divisão por 64 ( 62 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 processosaí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 tSaída t Kpdt
= (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 tSaí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 TSaída nT Kpe nT KiT e jT KdT=
− −= + +∑ (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 nSaída n Kpe n KiT e j KdT=
− −= + +∑ (3.7)
Simplificando,
0
( ) . ( ) . ( ) .( ( ) ( 1))n
jSaí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:
E o := E a; // erro (n -1 ) E a := setpo in t - con tagem ; // erro (n ) P roporc := E a * K p; // term o p roporcional som a := (som a + E a); // som ató ria In t := som a * K i; // term o in teg ral D erivat := (E a - E o) * K d ; // term o derivativo V c := (P roporc + In t + D erivat); // variável de con tro le
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 5002.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 200
2000
4000
6000
8000
10000
12000
Tempo (s)
Pos
ição
(pul
sos
de e
ncod
er)
RESPOSTA AO DEGRAU APLICADO NO SERVO DC
Posição do motorVc 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 180
1000
2000
3000
4000
5000
6000
7000
8000
Tempo (s)
Pos
ição
(pul
sos
de e
ncod
er)
RESPOSTA AO DEGRAU APLICADO NO SERVO DC
Kp=10 Ki=0 Kd=0Kp=100 Ki=0 Kd=0Kp=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 180
2000
4000
6000
8000
10000
12000
Tempo (s)
Pos
ição
(pul
sos
de e
ncod
er)
RESPOSTA AO DEGRAU APLICADO NO SERVO DC
Kp=10 Ki=1 Kd=0Kp=50 Ki=1 Kd=0Kp=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 180
2000
4000
6000
8000
10000
12000
Tempo (s)
Pos
ição
(pul
sos
de e
ncod
er)
RESPOSTA AO DEGRAU APLICADO NO SERVO DC
Kp=20 Ki=0.1 Kd=0Kp=20 Ki=0.3 Kd=0Kp=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 180
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
Tempo (s)
Pos
ição
(pul
sos
de e
ncod
er)
RESPOSTA AO DEGRAU APLICADO NO SERVO DC
Kp=70 Ki=0.1 Kd=1Kp=70 Ki=0.1 Kd=2Kp=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 ...
Recommended