Monografia - Servomotor CC

59
BAURU Ano 2006 Ricardo Pereira Ceide CONTROLADOR PID DIGITAL PARA POSICIONAMENTO DE SERVOMOTOR CC

description

Monografia - Servomotor CC

Transcript of Monografia - Servomotor CC

Page 1: Monografia - Servomotor CC

BAURU Ano 2006

Ricardo Pereira Ceide

CONTROLADOR PID DIGITAL PARA POSICIONAMENTO

DE SERVOMOTOR CC

Page 2: Monografia - 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

Page 3: Monografia - Servomotor CC

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

Page 4: Monografia - Servomotor CC

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 [email protected]

unesp

Page 5: Monografia - Servomotor CC

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.

Page 6: Monografia - Servomotor CC

Dedico este trabalho à minha

família e a Deus.

Page 7: Monografia - Servomotor CC

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.

Page 8: Monografia - Servomotor CC

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.

Page 9: Monografia - Servomotor CC

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

Page 10: Monografia - Servomotor CC

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

Page 11: Monografia - Servomotor CC

Tm(S) Transformada de Laplace de Tm

θ(S) Transformada de Laplace da posição

Tc(S) Transformada de Laplace de Tc

Page 12: Monografia - Servomotor CC

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

Page 13: Monografia - Servomotor CC

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

Page 14: Monografia - Servomotor CC

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

Page 15: Monografia - Servomotor CC

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

Page 16: Monografia - Servomotor CC

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.

Page 17: Monografia - Servomotor CC

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

Page 18: Monografia - Servomotor CC

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.

Page 19: Monografia - Servomotor CC

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.

Page 20: Monografia - Servomotor CC

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.

Page 21: Monografia - Servomotor CC

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.

Page 22: Monografia - Servomotor CC

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:

Page 23: Monografia - Servomotor CC

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.

Page 24: Monografia - Servomotor CC

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)

Page 25: Monografia - Servomotor CC

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

Page 26: Monografia - Servomotor CC

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

Page 27: Monografia - Servomotor CC

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

Page 28: Monografia - Servomotor CC

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

Page 29: Monografia - Servomotor CC

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

Page 30: Monografia - Servomotor CC

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.

Page 31: Monografia - Servomotor CC

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:

Page 32: Monografia - Servomotor CC

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.

Page 33: Monografia - Servomotor CC

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

Page 34: Monografia - Servomotor CC

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.

Page 35: Monografia - Servomotor CC

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

Page 36: Monografia - Servomotor CC

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

Page 37: Monografia - Servomotor CC

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.

Page 38: Monografia - Servomotor CC

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;

Page 39: Monografia - Servomotor CC

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)

Page 40: Monografia - Servomotor CC

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.

Page 41: Monografia - Servomotor CC

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

Page 42: Monografia - Servomotor CC

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:

Page 43: Monografia - Servomotor CC

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.

Page 44: Monografia - Servomotor CC

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.

Page 45: Monografia - Servomotor CC

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.

Page 46: Monografia - Servomotor CC

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.

Page 47: Monografia - Servomotor CC

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.

Page 48: Monografia - Servomotor CC

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.

Page 49: Monografia - Servomotor CC

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.

Page 50: Monografia - Servomotor CC

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.

Page 51: Monografia - Servomotor CC

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.

Page 52: Monografia - Servomotor CC

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.

Page 53: Monografia - Servomotor CC

53

Anexo 1

Características do motor.

Page 54: Monografia - Servomotor CC

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

Page 55: Monografia - Servomotor CC

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.

Page 56: Monografia - Servomotor CC

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

Page 57: Monografia - Servomotor CC

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

Page 58: Monografia - Servomotor CC

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

Page 59: Monografia - Servomotor CC

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