Dissertao
apresentada
Sorocaba
2006
1
Dissertao
apresentada
Sorocaba
2006
2
Sumrio:
Resumo
1. Introduo
2. Objetivos
3. Reviso da Literatura
3.1 Controle Automtico
3.2 Algoritmo PID
3.2.1 Modelo do sistema de controle
3.2.2 Implementao do controlador PID
3.2.3 Converso do PID para um sistema digital
3.3 Conversores Analgicos/Digitais e Digitais/Analgicos
3.3.1 Conceitos Bsicos
3.3.1.1 Representaes Numricas
3.3.1.2 Sistemas Digitais e Analgicos
3.3.1.3 Representao das Quantidades Binrias
3.3.1.4 Circuitos Digitais
3.3.2 Sistemas de Numerao
3.3.2.1 Introduo
3.4. Linguagem C
3.5. Tolerncias a Falhas
4. Especificao Bsica do Projeto
4.1. Descrio das Partes do Sistema
4.1.1. Dispositivos Mecnicos
4.1.2. Dispositivos Eletrnicos
4.1.2.1 Motor
4.1.2.2 Placa de Controle
4.1.2.3 Potencimetro da Haste
4.1.2.4 Potencimetro do Filtro
3
Resumo
Captulo 1
Introduo
O controle de sistemas automticos um assunto de grande interesse. Tcnicas de
controle proporcional, proporcional e derivativo e proporcional integral derivativo
conhecidos como P, PD e PID, so baseados em sistemas fsico/matemticos. Estes
algoritmos esto cada vez mais dependentes de recursos computacionais com grandes
aplicaes nos setores industriais e de pesquisa. So aplicados em sistemas como controle
da melhor mistura de combustvel e comburente em automveis, inclusive em sistemas de
freios e estabilidade alm de outros ramos da indstria. O contedo deste relatrio tem
como resultado a apresentao de um projeto de controle de um pndulo de somente um
eixo em posio invertida, que apesar de simples tambm totalmente instvel, o que gera
certa complexidade no seu desenvolvimento. O mecanismo consistido de um carro com
deslocamento linear e conectado a uma correia acionada por motor eltrico. Est instalada
no elemento deslizante uma haste com eixo de giro posicionado transversalmente ao senti
dos trilhos deste elemento. Pretende-se manter a haste na posio vertical, diminuindo o
tempo das oscilaes do carro a menor possvel via correo do erro com o controlador
PID. No trabalho ser necessrio a unio de conhecimentos eltricos, eletrnicos e
mecnicos, alm de programao de softwares. Este trabalho est organizado da seguinte
forma: O Captulo 4 descreve o modelo do sistema utilizado. No Captulo 5 apresenta-se a
modelagem em linguagem C e as Simulaes em software SIMULINK do MATLAB 7. No
Captulo 6 so relatadas brevemente as etapas do Desenvolvimento do Sistema
descrevendo mdulos e apresentando diagramas de como o processo de controle
implementado. O Captulo 7 mostra o aparato experimental utilizado para os ensaios e os
resultados obtidos. Uma concluso fecha o trabalho.
Captulo 2
Objetivos
O objetivo deste trabalho implementar um controle Proporcional-IntegralDerivativo (PID) em um sistema conhecidamente instvel. Um pndulo invertido ser
usado para demonstrar este tipo de controle. Colocando, assim, em prtica a apresentao
de todo o conhecimento terico de sistemas de controle, multiprocessamento e processo e
controle de hardware.
Como segundo e principal objetivo, a construo efetiva do mecanismo, onde ser
possvel se localizar as falhas de projeto e avaliar parmetros para evit-las na evoluo de
outros projetos.
Captulo 3
Reviso da Literatura
3.1 CONTROLE AUTOMTICO
A simulao de um pendulo invertido introduzida certamente traz ganho
significativo na interatividade da simulao de controles envolvendo pendulo invertido,
cuja utilizao ocorre em grande parte dos ambientes industriais, comerciais e residenciais,
e cuja interessante lgica bsica de funcionamento pode, com alguma reflexo, ser
compreendida por todos, originando controles intelectualmente relevantes, de alto poder
didtico e grande importncia prtica para o enriquecimento do aprendizado dos programas
baseados em CLPs.
O pendulo invertido que iremos simular conta com quase todos os comandos mais
comuns presentes e possibilita ampla gama de simulaes de processos envolvendo tais
mquinas como as que vamos utilizar e afins.
Muito embora conte com movimentos que sero controlados com certa restrio o
mesmo pode ser expandido para uma variedade de condies de movimentos modificando
somente os seus parmetros de controle.
Simulao de um carrinho sobre um cabeote que se mover com informaes que
sero programadas em um controle central com parmetros de linguagem de programao
que ser capas atravs de informaes de cdigos de se mover conforme a programao
desejada pelo programador.
Seus movimentos sero previstos e calculados para que os mesmos no passem de certo
campo de alcance.
Controle liga desliga.
Acionamento liga desliga ser manual permitindo assim ligar e desligar o sistema
por acionamento de uma tecla.
Erro
Controlador
Sada para
o Motor
Varivel de
Sada
(3.01)
(3.02)
E(n)
(3.03)
(3.04)
(3.05)
Ou
C(n) = K(E(n) + (Ts/TI)
10
12
14
15
16
3.4. LINGUAGEM C
A Linguagem C tem sido amplamente utilizada em conjunto com a teoria de
controle, j que ela uma linguagem de alto nvel, ou seja, possibilita uma compreenso
mais imediata das instrues de um controlador, ao contrrio do Assembly, que utiliza
mnemnicos que atuam diretamente como instrues para o controlador e requer maior
compreenso do funcionamento da mquina, como endereos de memria RAM e ROM e
valores de bits e palavras.
Com a utilizao do microcontrolador Microchip PIC16F684, faremos o controle de
nosso sistema de pndulo invertido, que , naturalmente, um sistema instvel, porm pode
ser levado estabilidade atravs da implementao de um controle com realimentao
negativa e um controle Proporcional-Integral-Derivativo (PID).
Implementaremos a rotina de controle do sistema, inclusive o PID, utilizando a
Linguagem C e seus paradigmas. Todo cdigo-fonte da rotina de programao utilizado foi
fornecido pelo prprio fabricante do controlador PIC16F684 e est disponvel em sua
pgina na Internet.
Optamos por utilizar o microcontrolador PIC16F684 pela sua praticidade e
simplicidade sobre a utilizao de um PC, principalmente sobre captura de dados atravs
das portas serial ou paralela e converso A/D e D/A, j que o PIC16F684 j possui um
conversor A/D integrado sua arquitetura.
PID
Um Sistema de Controle Posicional PID modelado da seguinte forma:
Onde:
R(t) = Sinal de Referncia
Y(t) = Sinal de Resposta
17
E(t) = Erro
C(t) = Controle
O ponto de referncia para o sistema quando o ngulo do pndulo com a vertical
for igual zero, ou seja, o pndulo est equilibrado, estvel. A partir do momento que a
resposta do sistema for 0 , qualquer ngulo diferente de 0 ser o erro, ou seja: Y(t) = E(t).
Na implementao de um controle PID, existem trs termos baseados na medio
do erro:
Termo Proporcional: KPE(t) onde Kp a constante proporcional.
Termo Integral: KI
Termo Derivativo:
Quando E(n) for o erro atual, E(n-1) ser o erro anterior e Ts a nossa constante de
tempo.
Termo Integral:
18
Para termos uma idia bsica da freqncia da velocidade de que o lao PID deve
ser atualizado, basta fazermos uma experincia com o pndulo invertido tentando equilibrlo na palma da mo. Existe tanto a possibilidade de o objeto ser equilibrado ou no.
Quanto mais curto for esse objeto usado como pndulo, mais difcil ser de equilibr-lo.
Para equilibrarmos um objeto dessa maneira, estamos baseados em nossa prpria
observao. Como a viso humana pode processar informaes a aproximadamente 30 Hz,
essa freqncia ser a nossa referncia para a velocidade mnima que o lao de controle
precisa rodar.
A freqncia do lao de controle PID tambm ser selecionada para simplificar as
rotinas matemticas. O Termo Integrativo, por exemplo, mostra que cada termo do Erro
necessita ser multiplicado pela Constante de Tempo Ts.
19
instruo. Isso nos mostra que a interrupo deve ocorrer a cada 7812 instrues.
Configurando a escala inicial de TMR0 para 32 e carregando o valor 11 no registrador de
TMR0, na rotina de servio interruptor, o Interruptor Timer0 age a cada 3,9 milisegundos,
ou 7808 instrues (255-11)*32.
Uma outra forma de se escrever a funo de controle PID a que se segue:
1)]
// Onde Td Kd/Kp
// Actual equation used is Kd(en0en3)/(Kp*X*3*Ts)
21
Onde:
22
Mascara mento ou
23
Captulo 4
Especificao Bsica do Projeto
4.1 DESCRIO DAS PARTES DO SISTEMA
Qt.
Descrio
Material
Polia
Plstico
Eixo
Potencimetro
Comercial
Elemento de fixao do
Alumnio
eixo manipulador
5
Correia
24
Haste
Alumnio
Base
Alumnio
Impressora
Comercial
Rolamento
Ao SAE 1020
10
Haste do Potencimetro
25
26
Este tpico tem com objetivo apresentar o projeto de um sistema de controle para
um pndulo invertido. Primeiro ser deduzido um modelo matemtico do sistema pndulo
invertido. Em seguida, ser projetado um controlador para manter o pndulo erguido, em
regime estacionrio, aps os efeitos transitrios (devidos entrada ou a perturbaes) terem
se esgotado.
Considere-se o pndulo invertido montado num carinho movido a motor. O qual
um processo mecnico absolutamente instvel, ou seja, est sujeito a cair em qualquer
direo a menos que uma fora adequada seja aplicada ao carro de suporte da base pndulo
acelerando-o em uma determinada direo. O Pndulo foi construdo de forma a ter apenas
um grau de liberdade, considera-se aqui o problema bidimensional, no qual o pndulo se
move somente no plano da pgina. Admite-se que a massa do pndulo est concentrada ao
final da haste, como mostrado na Figura 1.
Durante o funcionamento normal do sistema, o valor do ngulo do Pndulo
traduzido por um potencimetro e enviado ao sistema de controle, que retorna ao pndulo
como ao corretiva, efetuada pelo clculo PID, aplicando uma corrente no motor o que faz
com que o carro de suporte do pndulo acelere em uma determinada direo. A acelerao
do motor aplicada ao carro deve ser suficiente para devolver o Pndulo posio vertical.
Devido s caractersticas dinmicas do sistema e o espao finito que o carrinho tem
para percorrer no trilho, foi preciso instalar dois sensores de fim de curso que tem a funo
de notificar ao sistema que o carrinho chegou ao fim do trilho e desligar o motor.
A mesma situao de um pndulo invertido, o pndulo deve ficar numa posio
vertical.
O pndulo ir cair sem qualquer direo a menos que uma fora seja aplicada.
Consideram-se apenas duas dimenses.
O mesmo estar preso sobre um cabeote de impressora que ter um percurso
deslizante na mesma e executar assim seus movimentos.
27
28
Captulo 5
Modelagem e Simulao
5.1 MODELAGEM
Via de regra para implementar o algoritmo de controle e necessrio verificar como esta
sendo feita interface do sistema eltrico e mecnico.
A modelagem dinmica do pendulo invertido no e uma tarefa simples. H algumas
variveis que precisam ser definidas para a modelagem do sistema.
Posio da base
Velocidade da base
Acelerao da base
Momento de inrcia
Coeficiente de atrito
Massa da base
Complemento da base
Constante gravitacional da terra
Posio do pendulo
Velocidade do pendulo
Momento de inrcia do pendulo
Coeficiente de atrito do pendulo
Massa do pendulo
Comprimento do pendulo
Para simplificar tudo isso, usamos uma simples regra. Selecione um motor (com o torque
apropriado, Rotao, e relao de engrenagens para acionar a polia) que pode acelerar a
base to rpido quanto o pendulo pode cair. Acelerao angular do pendulo referente ao
ngulo deslocado e:
= (g/L)*
29
A
Esta funo naturalmente instvel tanto em malha aberta quanto em malha
5.2 SIMULAO
Malha Aberta:
g=9.81;
l=0.5;
num=[0 0 1];
den=[1 0 -g/l];
t=linspace(0,15);
[g x t]=step(num,den,t);
plot(t,g);
hold;
30
Malha Fechada:
g=9.81;
l=0.5;
num=[0 0 1];
den=[1 0 -g/l];
[numft,denft]=feedback(num,den,1,1);
t=linspace(0,15);
[g x t]=step(numft,denft,t);
plot(t,g);
hold;
Por isso precisamos utilizar um controlador PID, para que possamos levar o pndulo
para uma situao de estabilidade, que conseguiremos apenas em malha fechada, j que em
malha aberta o sistema, mesmo com o controlador PID continua instvel.
Malha Aberta:
Ta=2; zeta=0.55; omega=4/(Ta*zeta);
31
g=9.81; l=0.5;
nump=1; denp=[1 0 -g/l];
t=0:0.1:4;
Kd=7
Kp=54.02
Ki=64
numpid=[Kd Kp Ki]; denpid=[1 0];
numc=conv(numpid,nump);
denc=conv(denpid,denp);
figure;
[yitae xitae]=step(num,den,t);
plot(t, yitae); grid; gtext('sem pre-compensador'); hold;
%filtro;
numfiltro=-Ki;
denfiltro=num;
[numfinal,denfinal]=series(numfiltro,denfiltro,num,den);
[yitae xitae]=step(numfinal,denfinal,t);
plot(t,yitae,'-.' );
gtext('com pre-compensador');
title('Resposta a um degrau unitario com o PID ITAE');
xlabel('t(s)'); ylabel('y(t)');
32
Malha Fechada
Ta=2; zeta=0.55; omega=4/(Ta*zeta);
g=9.81; l=0.5;
nump=1; denp=[1 0 -g/l];
t=0:0.1:4;
Kd=7
Kp=54.02
Ki=64
numpid=[Kd Kp Ki]; denpid=[1 0];
numc=conv(numpid,nump);
denc=conv(denpid,denp);
[numcmf,dencmf]=feedback(numc,denc,-1,-1);
figure;
[yitae xitae]=step(numcmf,dencmf,t);
plot(t, yitae); grid; gtext('sem pre-compensador'); hold;
%filtro;
numfiltro=-Ki;
33
denfiltro=numcmf;
[numfinal,denfinal]=series(numfiltro,denfiltro,numcmf,dencmf);
[yitae xitae]=step(numfinal,denfinal,t);
plot(t,yitae,'-.' );
gtext('com pre-compensador');
title('Resposta a um degrau unitario com o PID ITAE');
xlabel('t(s)'); ylabel('y(t)');
4 rad / s .
G(s) =
1
s ( g / A)
2
34
k p s + ki + k d s 2
PID =
Ta =
s
4
2s
k p s + ki + k d s 2
u ( s)
=
( s ) s 3 + (19, 62 + k p ) s + kd s 2 + ki
k p = 54, 02
kd = 7
ki = 64
Com isso, chegamos a valores timos para os ganhos proporcional, integral e derivativo.
35
Captulo 6
Projeto e Implementao do Software
6. IMPLEMENTAO DO SOFTWARE.
36
Para finalizao do sistema de controle PID foi prevista a implementao da planta fases
distintas, inicialmente a etapa de comando do pndulo em sistema matemtico e numa
etapa futura ser o sistema matemtico do controle proporcional, integral e derivativo,
de forma que cada fase deveria servir de suporte para o desenvolvimento da fase
seguinte. Esta arquitetura em fases deu ao sistema algumas caractersticas de tolerncia
falhas.
O sistema foi implementado utilizando a linguagem de programao C, por esta oferecer
maior facilidade de acesso ao hardware do sistema (Microcontrolador) e por ser
fornecida como linguagem padro de alto nvel.
6.3.1 Driver
Inicialmente foram implementados os drivers para manipulao A/D, atravs do uso dos
amplificadores operacionais de baixa potncia da famlia MCP601/2/3/4 fabricado pela
Microchip Technology Inc (vide data sheet anexo) cuja uma aplicaes tpicas a de um
Driver de Converso Analgica/Digital. Nesta etapa foram necessrios estudos
detalhados sobre a interface A/D e sobre as formas de acesso ao sistema de entrada e
sada, devido ao fato do acesso ao hardware, a fim assegurar uma maior proteo do
sistema, o que gera a necessidade de se usar de funes e tcnicas especificas.
39
Captulo 7
Clculos e Testes
7.1. CLCULO DE TORQUE
Como precisamos de uma resposta rpida, devido ser um sistema que deve se estabilizar
em menos de 2s, devemos trabalhar com uma rotao alta.
O motor especificado possui torque de 5 N.cm para uma rotao de 4400 rpm conforme
tabela de desempenho do motor, anexa nos apndices.
Nestas condies estamos trabalhando bem prximo rotao mxima deste motor, que
de 4800 rpm.
40
Concluses
Conclumos atravs de simulaes e clculos que possvel a construo do projeto e o
funcionamento do mesmo dentro dos parmetros especificados.
As simulaes elaboradas foram satisfatrias para este inicio de desenvolvimento a fim de
liberar os parmetros iniciais para confeccionar fisicamente os componentes que sero
necessrios para a montagem e simulao do conjunto.
As partes mais importantes para a funcionalidade do mesmo esto expostas nos dados
apresentados e assim ficando somente a construo fsica, para que a mesma seja
comprovada em seu funcionamento.
Construmos a mquina e aps alguns ensaios e testes, conclumos que no haveria a
possibilidade do sistema funcionar exatamente do modo que calculamos e simulamos em
computador, apesar de termos seguido o projeto da forma mais fiel possvel.
Com isso, prosseguimos com algumas modificaes que se fizeram necessrias para que o
projeto funcionasse da forma em que foi concebido.
Seguem as modificaes suas respectivas figuras:
1 - Um acoplador ptico foi adicionado para cada uma das quatro sadas do
microcontrolador.
41
42
43
44
Microcontrolador
Controle PID
45
Apndices
APNDICE 1
LISTA DE COMPONENTES
RESISTORES:
46
APNDICE 2
2.1 ESQUEMA ELTRICO PIC E D/A:
47
48
APNDICE 3
PROJETO MECNICO EM 3D:
49
APNDICE 4 - MOTOR
Informaes Adicionais
Novidades
CPB
Cdigo
Tenso
Consumo Nom.
(A)
Potncia
Mx.
Torque
Mx.
Sentido de
Giro
Velocidades Rotaes
9.130.081.029
12 V
3,5
60W
84Ncm
Horrio
5100 rpm
9.130.081.051(*) 12 V
3,5
60W
84Ncm
Horrio
5100 rpm
9.130.451.049
24 V
2,5
60W
75Ncm
Horrio
5200 rpm
9.130.451.143
12 V
60W
86Ncm
Horrio
4800 rpm
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Ponte H
111
Carro
112
Sistema Completo
113
Referncias bibliogrficas
[01] CHARAIS, J.; LOURENS, R., Software PID Control of an Inverted Pendulum Using
the PIC16F684, Microchip Technology inc., 2004
[02] BORSATO, A.; NOGUEIRA, E. S. V.; LEAL, M. J. O.; MARQUES, R. F.L.,
Anlise e Controle Da Dinmica De Um Pndulo Invertido, Petrpolis,
Dezembro/2001
[03] BLANKENSHIP, J., C is for Control, Prentice Hall, Columbus, Ohio, 2000
[04] OGATA, O., Modern Control Engineering, University of Minnesota, Prentice-Hall
[05] TRIGO, F. C., Filtro Estendido de Kalman Aplicado Tomografia por Impedncia
Eltrica, So Paulo, 2001.
[06] Microchip Technology Inc. - Microchip Inc. EUA. Apresenta notas de aplicao,
cdigo fonte em linguagem C e folha de dados sobre microcontroladores. Disponvel
em www.microchip.com. Acesso em Maro e Abril 2006
[07] PRATA, Stephen. C++ Primer Plus, 3rd Edition, 1997, EUA, Sams Ed.
[08] BLAKENSHIP, John. C is for Control: A Laboratory Text for Hardware Interfacing
with C and C++, 1 Edition, 1997, EUA, Prentice Hall;
[09] Site BOSCH, Apresenta dados e especificaes do motor e tambm a curva de
desempenho, Disponvel em http://www.bosch.com.br/br/motores/produtos/cpb.htm,
Acesso em Junho 2006;
114