UNIVERSIDADE POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
ENGENHARIA ELÉTRICA
SISTEMA DE CONTROLE DE EQUILÍBRIO DE UM PÊNDULO
INVERTIDO UTILIZANDO CONTROLE PID ATRAVÉS DO PIC
Curitiba
2009
MOACIR LOURENÇO
WILSON BACKES
SISTEMA DE CONTROLE DE EQUILÍBRIO DE UM PÊNDULO
INVERTIDO UTILIZANDO CONTROLE PID ATRAVÉS DO PIC
Monografia apresentada ao Curso de
Engenharia
Elétrica
da
Universidade
Positivo, para obtenção de avaliação parcial
da disciplina de Trabalho de Conclusão de
Curso (TCC), como requisito à obtenção do
grau de Engenheiro Eletricista, sob a
orientação do Prof. Anselmo Rodrigues.
Curitiba
2009
Dedicamos em especial este trabalho aos
nossos professores, nossas famílias e amigos
que colaboraram para a realização deste.
Agradecemos a Deus, às nossas famílias, ao
Prof. Anselmo Rodrigues pela orientação deste
trabalho.
Agradecemos em especial o Sr. Bohdan
Waszczynski pela doação do plotter.
Wilson Backes e Moacir Lourenço
Agradeço especialmente à minha esposa
Adriane Maria Ribas Lourenço e às minhas
filhas Bruna Izabele Lourenço e Gabriela
Thaisa Lourenço por suportarem minha
ausência durante estes anos.
Moacir Lourenço
SUMÁRIO
LISTA DE ABREVIATURAS, SIGLAS E CONVENÇÕES ORTOGRÁFICAS ................ 6
LISTA DE ILUSTRAÇÕES ............................................................................................. 8
LISTA DE TABELAS ...................................................................................................... 9
CAPÍTULO 1 - INTRODUÇÃO ...................................................................................... 10
1.1 Problema ........................................................................................................................................... 10
1.2 Justificativa ....................................................................................................................................... 10
1.3 Objetivos Específicos........................................................................................................................ 10
CAPÍTULO 2 – FUNDAMENTAÇÃO TEÓRICA ........................................................... 12
2.1 Pêndulo Invertido ........................................................................................................................................... 12
2.2 Modelo Matemático do Sistema .................................................................................................................. 13
2.3 O Pêndulo Simples ........................................................................................................................................ 17
2.4 Controladores PID ......................................................................................................................................... 18
2.4.1 Controle Proporcional ............................................................................................................................ 19
2.4.2 Controle Integral ..................................................................................................................................... 21
2.4.3 Controle Derivativo ................................................................................................................................. 22
2.5 Sintonia do Controle PID .............................................................................................................................. 22
2.5.1 Corrigindo Manualmente o PID ............................................................................................................ 22
2.6 Motores de Passo .......................................................................................................................................... 24
2.6.1 Controle de Deslocamento do Motor de Passo ................................................................................. 24
2.7 Controle por Computador Discretizando o Sistema ................................................................................. 25
2.7.1 Discretização ........................................................................................................................................... 26
2.7.2 Amostragem ............................................................................................................................................ 26
2.7.3 Teorema da Amostragem...................................................................................................................... 26
2.7.4 Controle PID Discreto ............................................................................................................................ 27
2.8 Microcontrolador ............................................................................................................................................ 28
2.8.1 Microcontrolador PIC ............................................................................................................................. 29
2.8.2 PIC 18F452 ............................................................................................................................................. 30
CAPÍTULO 3 – ESPECIFICAÇÕES TÉCNICAS PRELIMINARES .............................. 31
3.1 Descrição da Planta de Controle do Pêndulo ................................................................................... 31
3.2 Diagrama em Blocos......................................................................................................................... 32
3.3 Descrição Geral dos Blocos Figura 11 ............................................................................................. 32
3.4 Descrição Completa da Planta ......................................................................................................... 33
3.5 Lista de Materiais e Descrição de Uso ............................................................................................. 34
3.6 Motivo de Uso de Alguns Componentes .......................................................................................... 34
3.7 Detalhes de Acionamento do Motor de Passo ................................................................................. 35
3.8 Discretização do PID para uso no PIC ............................................................................................. 35
3.9 Prévia do Programa a ser criado no PIC .......................................................................................... 37
CAPÍTULO 4 – IMPLEMENTAÇÃO .............................................................................. 39
4.1 Descrição da montagem ................................................................................................................... 39
4.1.1 Cálculo dos parâmetros do modelo do pêndulo ........................................................................ 40
4.2 Testes, medições e configurações ................................................................................................... 43
4.2.1 Ensaio do subconjunto potenciômetro-eixo-pêndulo ................................................................. 43
4.2.2 Medição do ângulo do pêndulo .................................................................................................. 46
4.2.3 Ensaio de ajuste da velocidade do motor de passo .................................................................. 48
4.2.4 Modelo da malha identificada .................................................................................................... 51
4.2.4.1 Especificação da resposta no domínio do tempo ................................................................... 51
4.3 Código fonte ...................................................................................................................................... 57
4.3.1 Firmware .................................................................................................................................... 57
4.4 Placas de circuito impressa (PCI) ..................................................................................................... 68
4.5 Custos do projeto .............................................................................................................................. 70
4.5.1 Custos dos componentes e materiais ........................................................................................ 70
4.5.2 Custos dos serviços contratados ............................................................................................... 70
CAPÍTULO 5 – CONCLUSÃO ...................................................................................... 71
CAPÍTULO 6 - REFERÊNCIAS .................................................................................... 73
Anexo 1 – Folha de dados do potenciômetro ........................................................... 75
Anexo 2 – Folha de dados do motor de passos ....................................................... 77
Anexo 3 – Folha de dados do driver para motor de passos .................................... 79
6
Lista de Abreviaturas, Siglas e Convenções Ortográficas
Abreviaturas e Siglas
A = amplitude do movimento do pêndulo simples
Br = constante de amortecimento viscoso do eixo do potenciômetro
cg = centro de gravidade
dXl = primeira derivada de Xl
d2Xl = segunda derivada de Xl
dYl = primeira derivada de Yl
d2Yl = segunda derivada de Yl
dXlk = primeira derivada de Xlk
d2Xlk = segunda derivada de Xlk
dYlk= primeira derivada de Ylk
d2Ylk= segunda derivada de Ylk
ess = erro de estado estacionário
e(t) = Erro (ângulo diferente de zero)
F = frequência
g = aceleração da gravidade
H = somatória das forças na direção X
I = momento de inércia do pêndulo (mL2/3 para uma haste uniforme)
Ir = taxa integral ou reset
Kd = ganho derivativo
Ki = ganho integral
Kp = ganho proporcional
L = metade do comprimento do pêndulo
MV(t) = variável manipulada
Mp = máximo pico da variável a ser controlada
7
m = massa do pêndulo
N = rotação do motor de passo
p = ponto de pivotamento do eixo do pêndulo
P = peso da partícula e a tração na corda
Pb = banda proporcional
Ts = tempo de acomodação para resposta ao degrau unitário
ta = tempo de amostragem do sistema de controle
ts = tempo de acomodação da variável a ser controlada
T = período
Td = tempo derivativo
V = somatória das forças na direção Y
Xlk = coordenada no eixo X do centro de gravidade
Xl = coordenada no eixo X do ponto de pivotamento
Ylk= coordenada no eixo Y do centro de gravidade
Yl = coordenada no eixo Y do ponto de pivotamento
ωd = resposta em frequencia da oscilação
ωn = frequência natural ou não amortecida
ωt = fase da amplitude do pêndulo simples
ξ = taxa de amortecimento admissional
θ = ângulo do pêndulo com relação à linha vertical
Convenções Ortográficas
itálico
variáveis e termos em língua estrangeira
subscritos
índices
8
LISTA DE ILUSTRAÇÕES
Figura 01 – Pêndulo invertido montado sobre carro.............................................
12
Figura 02 – Pêndulo invertido..........................................................................
13
Figura 03 – O pêndulo simples........................................................................
17
Figura 04 – Curvas do controle proporcional.......................................................
20
Figura 05 – Curvas do controle integral.............................................................
21
Figura 06 – Amostragem de um sinal senoidal....................................................
26
Figura 07 – Arquitetura básica de um microcontrolador.........................................
29
Figura 08 – Planta de controle em malha fechada...............................................
31
Figura 09 – Bloco representando o controle que deverá ser implementado...............
33
Figura 10 – Bloco representando o controle em malha fechada...................................
33
Figura 11 – Aproximação da derivada............................................................................
36
Figura 12 – Aproximação da integral..............................................................................
37
Figura 13 – Fluxograma de implementação........................................................
39
Figura 14 – Parâmetros do pêndulo livre............................................................
40
Figura 15 – Tela com dados obtidos do ensaio do pêndulo livre.............................
44
Figura 16 – Gráfico das oscilações do pêndulo livre.............................................
45
Figura 17 – Circuito para medição do ângulo do potenciômetro..............................
47
Figura 18 – Modelo da planta identificada do motor e pêndulo...............................
51
Figura 19 – Resposta ao degrau unitário para sistemas de 2ª ordem .......................
53
Figura 20 – Resposta ao degrau típica..............................................................
53
Figura 21 – Modelo da malha de controle resultante............................................
56
Figura 22 – Circuito simulado do PIC....................................................................
68
Figura 23 – Placa de circuito impresso do PIC....................................................
68
Figura 24 – Circuito simulado da fonte de 30V para o driver..................................
69
Figura 25 – Placa de circuito impresso da fonte de 30V para o driver......................
69
9
LISTA DE TABELAS
Tabela 01 – Efeito de cada parâmetro no controlador..................................
23
Tabela 02 – Sugestão de alteração nos parâmetros do PID.........................
23
Tabela 03 – Passo completo 1 (full-step)..................................................
25
Tabela 04 – Passo completo 2 (full-step)..................................................
25
Tabela 05 – Características do microcontrolador PIC 18F452..........................
30
Tabela 06 – Descrição da saída dos bloco da figura 10...............................
33
Tabela 07 – Lista de materiais................................................................
34
Tabela 08 – Valores calculados ξωn.........................................................
44
Tabela 09 – Preço de componentes e materiais.........................................
70
Tabela 10 – Preço de serviços contratados...............................................
70
10
CAPÍTULO 1 - INTRODUÇÃO
1.1
Problema
A posição ereta estável de um ser humano ao caminhar se aproxima muito de
um pêndulo invertido pivotado em suas articulações. A modelagem resultante é
conhecida como Pêndulo Invertido Humano (HIP - Human Inverted Pendulum)[13].
Modelos biomecânicos do modo de caminhar dos seres humanos têm aplicações em
muitas áreas como esportes, fabricação de calçados, robótica.
Esta proposta de trabalho de conclusão de curso é a apresentação de um
sistema de controle de um pêndulo invertido, onde o grau de instabilidade é complexo.
1.2
Justificativa
A área de engenharia de controle e automação é uma área excitante, onde são
aplicados diversos conhecimentos de engenharia elétrica. Neste trabalho é necessário
conhecimento e aplicação das disciplinas acadêmicas em cálculo aplicado, física,
eletrônica analógica e digital, programação de computadores e sistemas de controle
que se complementam para atingir o objetivo final. Este projeto torna possível verificar
como essas disciplinas são aplicáveis no mundo real, como é o caso do controle PID
amplamente utilizado na indústria para controle, por exemplo: de sistemas automáticos,
robôs e controle espacial.
Com esse trabalho será possível fazer uma analogia com outros sistemas
complexos, pois o pêndulo invertido é criticamente estável.
1.3
Objetivos específicos
Obter o modelo matemático mais adequado para o sistema de pêndulo invertido,
utilizando para isto toda literatura[7] já aplicada a trabalhos e estudos similares e
complementando se for necessário. Estudar, simular e desenvolver um algoritmo para
aplicar um sistema de controle PID configurado em hardware baseado em PIC.
Conceber um hardware capaz de produzir a melhor implementação dos sistemas a
11
serem desenvolvidos buscando a leitura precisa dos movimentos de um pêndulo
invertido. Buscar com este trabalho a demonstração das aplicações práticas de um
pêndulo invertido, para que haja uma compreensão de todo este sistema, que a
princípio, não tem muito sentido prático visto de forma isolada.
12
CAPÍTULO 2 - FUNDAMENTAÇÃO TEÓRICA
2.1
Pêndulo invertido
Um pêndulo invertido é um dispositivo que é fixado em um ponto fixo que
permite com que o mesmo gire em torno desse ponto fixo. Este pêndulo deverá ser
montado sobre um carro que pode ser acionado em relação a horizontal, o
acionamento do carro será feito de tal forma a anular a aceleração do pêndulo. A
intensidade da aceleração do carro dependerá exclusivamente do ângulo do pêndulo
com a vertical.
Figura 1 – Pêndulo Invertido Montado sobre Carro
Fonte: www.automatica.li2.uchile.cl
Para que este sistema funcione corretamente será necessário modelar o sistema
matematicamente para se obter as equações dinâmicas do mesmo, também deverá ser
feito uma transformação ou simplificação de um sistema não linear para um sistema
linear a fim de se obter as equações necessárias para acionamento do carro motor.
Para fazer com que o pêndulo invertido permaneça em equilíbrio é necessário
obter a equação matemática que rege este movimento, e quanto mais próxima esta
equação da realidade encontrada, mais fácil de ser obtido o controle do pêndulo
invertido. Porém, esta análise é complexa, pois alguns fatores são difíceis de serem
obtidos como o atrito viscoso, resposta real do atuador levando-se em conta a inércia e
outros.
Para esta análise, será necessário usar as equações diferenciais do sistema.
13
Obtidas as equações físicas do sistema, deverá ser aplicado a transformada de
Laplace para a obtenção das equações de controle do sistema.
Esta dissertação é o resultado de um estudo detalhado necessário na área de
equações do pêndulo invertido, controle PID e diversas áreas de controle em geral. A
pesquisa realizada foi obtida através da literatura clássica de controle e física.
2.2
Modelo matemático do sistema
A dedução das equações do sistema será feita utilizando-se relações
trigonométricas e das decomposições das forças (figura 2), assim facilitando o
entendimento do sistema.
Figura 2 – Pêndulo Invertido
FONTE: Própria
Equação na direção X do sistema:
𝑋𝑙𝑘 = 𝑋𝑙 + Lsenθ
Derivando o sistema, obtém-se a equação da velocidade:
(1)
14
d 𝑋𝑙𝑘
dt
d 𝑋𝑙
=
+ Lcosθ
dt
dθ
(2)
dt
Derivando novamente, obtém-se a equação da aceleração:
d 2 𝑋𝑙𝑘
d2t
=
d 2 𝑋𝑙
d2t
d2θ
+ Lcosθ
d2t
dθ 2
− Lsenθ
(3)
dt
Equação na direção Y do sistema:
Ylk = Lcosθ
(4)
Derivando o sistema, obtém-se:
d Y lk
dt
dθ
= Lsenθ
; para yp = 0
dt
(5)
Derivando novamente, obtém-se:
d 2 Ylk
d2t
= − Lcosθ
d2θ
(6)
d2t
A somatória das forças na direção de X, é dada por:
∑𝐹𝑥 = 𝑚
𝑑 2 𝑋 𝑙𝑘
(7)
𝑑 2𝑡
Então através de (3):
∑𝐹𝑥 = m
d2 𝑋 𝑙
d2 t
∑𝐹𝑥 = m
+ Lcosθ
d2 𝑋 𝑙
d2 t
d2 θ
d2 t
− Lsenθ
+ mLcosθ
d2 θ
d2 t
dθ 2
(8)
dt
− mLsenθ
dθ 2
dt
(9)
A somatória das forças na direção de Y é dada por:
∑𝐹𝑦 =
𝑑 2 𝑌𝑙𝑘
𝑚 2
𝑑 𝑡
Onde: (𝑉 − 𝑚𝑔) =
𝐹𝑦
(10)
(11)
15
dθ 2
∑𝐹𝑦 = m −Lcosθ
dt
dθ 2
∑𝐹𝑦 = −mLcosθ
− Lsenθ
dt
− mLsenθ
dθ 2
(12)
dt
dθ 2
(13)
dt
O somatório dos torques é dado por:
∑𝜏 = 𝐼
𝑑 2θ
𝑑 2𝑡
𝑑 2θ
+ 𝐵𝑟
(14)
𝑑 2𝑡
∑𝐹𝑦 𝐿𝑠𝑒𝑛θ −∑𝐹𝑥 𝐿cos⁡θ = 𝐼
𝑑 2θ
𝑑 2𝑡
𝑑2θ
+ 𝐵𝑟
(15)
𝑑2𝑡
Neste caso, é gerada uma força de atrito que depende do atrito viscoso, e
quanto maior a velocidade maior o atrito.
Combinando com as equações anteriores:
𝐼
𝑑2 θ
𝑑2 θ
+
𝐵
𝑟 2 =
𝑑2 𝑡
𝑑 𝑡
dθ
dt
−mLcosθ
− [m
2
− mLsenθ
d 2 𝑋𝑙
d2t
+ mLcosθ
dθ
dt
2
Lsenθ −
d2θ
− mLsenθ
d2t
dθ 2
dt
Lcosθ}
(16)
Assumindo que a haste é uniforme, que possui um momento de inércia mL2 /3 e
também que θ é muito pequeno, assim obtém-se:
4𝑚𝐿 2
𝑑2𝜃
3
𝑑2𝑡
𝑑 2𝜃
𝑑 2𝑡
+
+ 𝐵𝑟
𝑑𝜃
𝑑𝑡
3𝐵𝑟
𝑑𝜃
4𝑚𝐿 2
𝑑𝑡
− 𝑚𝑔𝐿𝜃 = −𝑚𝐿
−
3𝑔𝜃
4𝐿
=−
𝑑 2 𝑋𝑙
𝑑2𝑡
𝑑 2 𝑋𝑙
4𝐿
𝑑 2𝑡
3
Pode-se observar na equação que:
θ = deslocamento angular
dθ
= velocidade angular do pêndulo
dt
d²θ
= aceleração angular do pêndulo
d²t
(17)
(18)
16
𝑋𝑙 = deslocamento do carro
d 𝑋𝑙
= velocidade linear do carro
dt
d² 𝑋𝑙
= aceleração linear do carro
d²t
Para facilitar os cálculos e obter a equação de transferência deve-se utilizar a
transformada de Laplace.
Lembrando algumas equações transformadas de Laplace para equações
diferenciais:
L
df t
L
d²f t
dt
d²t
= sF s
(19)
= s²F s
(20)
Aplicando Laplace a equação, obtém-se:
𝑑 2𝜃
𝑑2𝑡
+
3𝐵𝑟
𝑑𝜃
4𝑚𝐿 2
𝑑𝑡
−
3𝑔𝜃
4𝐿
=−
𝑑 2 𝑋𝑙
4𝐿
𝑑 2𝑡
3
(21)
Definindo-se os parâmetros:
2𝜉𝜔𝑛 =
𝑑 2𝜃
𝑑 2𝑡
3 𝐵𝑟
4𝑚𝐿²
+ 2𝜉 𝜔𝑛
𝑑𝜃
𝑑𝑡
𝜔𝑛 ² =
3𝑔
;
4𝐿
𝐾𝑝 =
− 𝜔𝑛2 𝜃 = −𝐾𝑝
𝑑 2 𝑋𝑙
𝑑 2𝑡
3
4𝐿
(22)
Assim obteve-se a função de transferência1:
−𝐾𝑝 𝑠 2
𝜃(𝑆)
= 2
𝑋 𝑆
𝑠 + 2𝜉𝜔𝑛 𝑠 − 𝜔𝑛 ²
1
(23)
A função de transferência do pêndulo invertido proposto resultou numa função similar ao encontrado na Tese de
Mestrado do Eng. Ricardo Ribeiro “Implementação de um sistema de controle de um pêndulo invertido”, citado nas
referências bibliográficas.
17
2.3 O pêndulo simples
O pêndulo simples é um dispositivo que executa movimento em intervalos
regulares; esse tipo de movimento é chamado de movimento periódico ou movimento
harmônico. Esta representação auxiliará na dedução de alguns parâmetros e também
na execução do ensaio para determinação do atrito viscoso do conjunto potenciômetroeixo-pêndulo.
Este tipo de movimento pode ser expresso por (24):
x t = Acos(ωt + Ø)
(24)
Onde: A = amplitude do movimento
ωt = fase
θ = fase inicial ou ângulo de fase
Neste tipo de movimento o cosseno varia entre −1 𝑒 + 1, logo o A varia entre os
limites ±A como mostra a figura 3, a constante θ é zero em relação à vertical.
Figura 3 – Pêndulo Simples
FONTE: http://www.fisica.ufs.br
O deslocamento deve retornar ao valor inicial depois de um tempo T. Isto é x(t)
deve ser igual a x(t + T). Sendo assim pode-se escrever que:
x cos ωt = x cos ω(t + T)
(25)
A quantidade ω é chamada de frequência angular do movimento e sua unidade
é o radiano por segundos.
18
As forças que agem sobre o pêndulo são: o peso da partícula e a tração na
corda conforme equações (26) e (27):
Px = −mg senθ
(26)
Py = −mg cosθ
(27)
Decompondo o peso que é mg, temos mgcosθ que é radial e mgsenθ que é
tangente a trajetória da partícula, essa é a força restauradora que age em sentido
oposto ao deslocamento da partícula de forma a trazê-la de volta a posição central.
Pode-se escrever essa força como:
F = −mg senθ
(28)
Se o ângulo θ for muito pequeno pode-se escrever com pequeno erro senθ = θ.
Pode-se relacionar o ângulo θ com o deslocamento em arco da partícula S.
F = −mg
S
L
(29)
Comparando com a equação F = −kx (lei de Hooke), com o deslocamento
sendo agora o comprimento do arco 𝑠 em lugar de x, e a constante da mola agora
sendo mg/L. Assim sendo pode-se escrever, ω = √k/m e T = 2π√m/(mg/L)
simplificando a equação obtém-se:
𝑇=
2𝜋√𝐿
𝑔
(30)
Existem várias aplicações praticas que utilizam os conceitos envolvidos nos
estudos de pêndulos, como controle de oscilação de arranhas céus.
2.4
Controladores PID
Os controladores PID[10] são amplamente utilizado nas indústrias e bastante
difundido no meio acadêmico. Apesar disso, os controladores utilizados nem sempre
estão devidamente sintonizados, e muitos se encontram operando em modo manual.
19
Isso ocorre principalmente devido aos processos controlados nas indústrias não serem
sistemas mono variáveis e sim apresentarem múltiplas variáveis.
Mas, o que se deve ter em mente é que o controle PID torna-se simples somente
para os casos em que é mono variável e que existem diversas técnicas de sintonia.
O controle PID consiste em calcular um valor de atuação sobre o processo a
partir de informações do valor desejado e do valor atual da variável do processo. Este
valor de atuação sobre o processo é transformado em um sinal adequado ao atuador
utilizado (válvula, motor, relé, etc.).
O PID é a composição de três ações quase intuitivas: o controle proporcional faz
a correção verificando o erro entre o valor real e o desejado, o controle integral verifica
os erros pequenos, mas que ocorrem há muito tempo e que requerem correção mais
intensa e o derivativo se o erro está variando muito rápido e esta taxa de variação deve
ser reduzida para evitar oscilações.
A equação característica do PID é apresentada na equação 31 a seguir:
𝑀𝑉 𝑡 =
100
𝑃𝑏
𝑒 𝑡 + 𝐼𝑟
𝑒 𝑡 𝑑𝑡 + 𝑇𝑑
𝑑𝑒 𝑡
𝑑𝑡
(31)
Onde:
MV(t) = Variável manipulada
e(t) = Erro (ângulo diferente de zero)
Pb = Banda proporcional
Ir = taxa integral ou reset
Td = Tempo derivativo
2.4.1 Controle proporcional
No controle proporcional o valor de MV é proporcional ao erro, ou seja,
proporcional entre a diferença entre o valor desejado set point e o valor medido pelo
sensor. À medida que a diferença aumenta, MV aumenta até 100 %. O valor de desvio
20
que provocara MV = 100% define a banda proporcional (Pb ). Com Pb alto a saída só se
tornara alta para erros altos. Com Pb baixo a saída MV assume valores altos mesmo
para erros pequenos. Em resumo quanto menor o valor de Pb mais forte a ação
proporcional no controle PID.
Pode-se escrever isso matematicamente como: u t = Pb . e(t) ou no domínio de
transformada de Laplace: U S = E S . Pb . Ou seja, o controlador proporcional nada
mais é do que um amplificador com ganho ajustável.
Figura 4 – Curvas do Controle Proporcional
Fonte: www.wma.ind.br
Na figura 4A com a banda proporcional grande, o processo estabiliza, porém
abaixo do set point.
Na figura 4B a estabilização ocorre mais próxima do set point, porém com
redução excessiva da banda de passagem.
Na figura 4C o sistema se torna oscilatório.
O ajuste da banda proporcional faz parte da sintonia de controle.
A principal desvantagem deste sistema é que o controlador não introduz o termo
1/S. Isso significa que se o sistema era do tipo zero e continuará sendo do tipo zero. O
controlador não introduz qualquer novo pólo, ou zero no sistema.
21
2.4.2 O controle integral
A ação integral tem o objetivo de eliminar o desvio característico de um controle
puramente proporcional (figura 4C). Isso é feito variando à saída do controlador u(t)
segundo uma taxa proporcional ao sinal do erro atuante. Assim sendo:
𝑑𝑢 (𝑡)
𝑑𝑡
= 𝐼𝑟 𝑒 𝑡
(32)
Integrando os dois lados temos:
𝑢 𝑡 = 𝐼𝑟
𝑒 𝑡 𝑑𝑡
(33)
Pode-se observar o exemplo de somente proporcional (figura 5A) e com controle
integral (figura 5B). Com o controle proporcional o sistema não atingiu o set point, com
o controle integral acrescentado o sistema atingiu o set point.
A ação integral funciona da seguinte maneira: em intervalo regulares a ação
integral corrige o valor de MV somando a esta o desvio do erro (set point – valor atual).
O valor da intensidade da ação integral depende do valor de 𝐼𝑟 esse valor é uma
constante e o valor é ajustado pelo processo de sintonização do controlador.
Verificando a equação (33) pode-se observar que se o valor do erro for dobrado
então o valor de u(t) varia duas vezes mais rápido.
Figura 5 – Curvas do Controle Proporcional-Integral
Fonte: www.wma.ind.br
22
2.4.3 Ação de controle derivativo
A ação de controle derivativa causa uma resposta na saída do controlador (MV)
que é proporcional a velocidade de variação do erro. A ação derivativa tem o efeito de
reduzir a velocidade das variações evitando que se eleve ou reduza muito rapidamente.
A ação derivativa só ocorre quando há variação no erro, quando o erro está variando o
controle derivativo tende a atenuar as variações e, portanto sua função melhora o
desempenho do processo durante os transitórios.
A equação do controle derivativo é:
𝑀𝑉(𝑡) = 𝑇𝑑
𝑑𝑢 (𝑡)
𝑑𝑡
(34)
Onde 𝑇𝑑 representa o tempo derivativo.
Ao utilizar o controle PID estamos unindo o controle básico do P com a
eliminação do erro em I e com a redução de oscilação em D.
2.5
Sintonia do controle PID
Existem diversos métodos de sintonia tanto operados em manual (malha aberta)
como em modo automático (malha fechada)[10]. A grande maioria dos controladores
PID industriais apresentam Auto Tune, em que o controle aplica um ensaio ao processo
e obtém o conjunto de parâmetro do PID (Pb, Ir e Td). Para alguns processos este
cálculo é suficiente, mas para outros é necessário realizar isso de modo manual.
2.5.1 Corrigindo manualmente o PID
Normalmente o ajuste fino é manual, e feito pelo método de tentativa e erro,
aplicando uma alteração em um dos parâmetros do PID e verificando o desempenho
do sistema, até que o desempenho desejado seja obtido.
Para que isso seja realizado de forma mais simples é necessário conhecimento
do efeito de cada um dos parâmetros do PID.
23
Na tabela 1, mostra o efeito de cada parâmetro no controlador:
Tabela 1 – Efeito de Cada Parâmetro no Controlador
Parâmetro
Pb
Ir
Td
Ao aumentar, o processo ...
Torna-se mais lento.
Geralmente se torna mais estável ou
menos oscilante.
Tem menos overshoot.
Torna-se mais rápido, atingindo
rapidamente o set point.
Fica mais instável ou mais oscilante.
Tem mais overshot.
Torna-se mais lento.
Tem menos overshoot.
Ao Diminuir, o processo ...
Torna-se mais rápido.
Fica mais instável ou mais oscilante.
Tem mais overshoot.
Torna-se mais lento, demorando para
atingir o set point.
Fica mais estável ou mais oscilante.
Tem menos overshoot.
Tem mais overshoot
Fonte: www.wma.ind.br
A tabela 2 a seguir apresenta sugestão de alteração nos parâmetros PID
baseadas no comportamento do processo:
Tabela 2 – Sugestão de Alteração nos Parâmetros do PID
Se o desempenho do processo ...
Tente uma a uma as opções:
Está quase bom, mas o overshoot está um
pouco alto
Aumentar Pb em 20%
Diminuir Ir em 20%
Aumentar Td em 50%
Está quase bom, mas não tem overshoot e Diminuir Pb em 20%
demora para atingir o set point
Aumentar Ir em 20%
Diminuir Td em 50%
Está bom, mas MV está sempre variando
Diminuir Td em 50%
entre 0% e 100% ou está variando demais
Aumentar Pb em 20%
Está ruim. Após a partida, o transitório dura Aumentar Pb em 50%
vários períodos de oscilação, que reduz
muito lentamente ou não reduz.
Está ruim. Após a partida avança
Diminuir Pb em 50%
lentamente em direção ao set point, sem
Aumentar Ir em 50%
overshoot. Ainda está longe do set point e
Diminuir Td em 70%
MV já é menor que 100%.
Fonte: www.wma.ind.br
24
2.6
Motores de passo
Os motores de passo necessitam de um driver para acionamento, pois são
controlados digitalmente através de um hardware específico ou através de softwares.
Motores de passos são encontrados em aparelhos onde a precisão é um fator
muito importante. São usados em larga escala em impressoras, plotters, scanners,
drives de disquetes, discos rígidos e muitos outros aparelhos.
Existem vários modelos de motores de passos disponíveis no mercado que
podem ser utilizados para diversos propósitos.
2.6.1 Controle de deslocamento do motor de passo
Para se ter o controle de um motor de passo
[9]
é necessário um driver para
acionamento das bobinas; não se pode alimentar diretamente o motor com uma fonte
CC. Esse driver deve fazer o acionamento sequencial da bobinas a fim de causar o giro
do motor. Quanto mais rápido for o intervalo de mudança da bobina alimentada mais
rápido será a velocidade imposta ao motor.
Nas tabelas 3 e 4 a seguir a sequência de energização das bobinas de um motor
de passo:
No Passo completo 1 (Full-step)




Somente uma bobina é energizada a cada passo;
Menor torque;
Pouco consumo de energia;
Maior velocidade.
Passo completo 2 (Full-step)




Duas bobinas são energizadas a cada passo;
Maior torque;
Consome mais energia que o Passo completo 1;
Maior velocidade
25
Tabela 3 - Passo Completo 1 (Full-step)
Nº do passo
1 -->
2 -->
3 -->
4 -->
B3
1
0
0
0
B2
0
1
0
0
B1
0
0
1
0
B0
0
0
0
1
Decimal
8
4
2
1
Fonte: www.rogercom.com
Tabela 4 - Passo Completo 2 (Full-step)
Nº do passo
1 -->
2 -->
3 -->
4 -->
B3
1
0
0
1
B2
1
1
0
0
B1
0
1
1
0
B0
0
0
1
1
Decimal
12
6
3
9
Fonte: www.rogercom.com
2.7
Controle por computador discretizando o sistema
O controle por computador é uma área de pesquisa relativamente nova. Com o
avanço dos sistemas digitais e dos microprocessadores esta área ganhou grande
importância, causando a substituição de sistemas analógicos.
O controle digital oferece vantagens em relação ao controle analógico, em
termos de custo final e flexibilidade. Com estas vantagens o sistema digital começou a
substituir o sistema analógico na década de 70. Ocorrendo aumento do número de
computadores, esse aumento possibilitou a melhoria da qualidade e produtividade dos
produtos fabricados na indústria.
Atualmente existem vastíssimos recursos de hardware e software, que podem
ser empregados na substituição de sistemas analógicos obtendo-se assim maior
flexibilidade e menor custo.
Mas para sua utilização é necessário, a discretização do sistema a ser
controlado.
26
2.7.1 Discretização
A discretização consiste em converter sinais contínuos em discretos. Diz-se que
um sistema controlado digitalmente é discreto ou discretizado quando o sistema e as
variáveis envolvidas são contínuos. Porém, para se efetuar os cálculos do controle, as
mesmas devem ser discretizadas através da amostragem.
2.7.2 Amostragem
Na figura 6 mostra-se o processo de amostragem de um sinal senoidal.
A amostragem consiste em tomar amostra de um sinal contínuo f(t) em
intervalos de T segundos, convertendo-se em uma sequência discreta de valores. Cada
uma das amostras corresponde à amplitude do sinal naquele instante.
Figura 6 – Amostragem de um Sinal Senoidal
Fonte: Própria
2.7.3 Teorema da amostragem
Shannon e Nyquist demonstraram que um sinal contínuo amostrado pode ser
reconstituído a partir das amostras se, e apenas se, todas as frequências contidas no
sinal forem menores que 𝑓𝑠 /2, onde 𝑓𝑠 é a frequência de amostragem. Em outras
27
palavras para se ter uma boa reprodução do sinal contínuo é necessário amostrá-lo
com uma frequência pelo menos igual ao dobro da frequência da mais alta harmônica
do sinal. Na prática se usa a frequência de amostragem 10 vezes ou mais que a
frequência fundamental 𝑓0 .
2.7.4 Controle PID discreto
O controle proporcional, integral e derivativo é um sistema contínuo, para a sua
utilização em microprocessadores é necessário discretizá-lo. Para tanto é necessário
que o período de amostragem seja suficientemente fino em relação às constantes de
tempo do sistema e do controlador analógico.
No entanto o código de implementação do PID digital é o mesmo:
𝑎 𝑡 = 𝐾𝑝 𝑒 𝑡 + 𝐾𝑖
𝑡
0
𝑒 𝑡 𝑑𝑡 + 𝐾𝑑
𝑑𝑒 𝑡
𝑑𝑡
(35)
Onde a(t) é o sinal de atuação, e(t) o erro entre a saída e a referência e 𝐾𝑝 , 𝐾𝑖 e
𝐾𝑑 as constantes proporcional, integral e derivativa do PID, a discretização é obtida
substituindo a variável (t) por : t = nT
Sendo T o período de amostragem e n o número da amostra.
Obtendo-se assim uma equação para o PID discretizado:
𝑛
𝑗 =0 𝑒
𝑎 𝑛𝑇 = 𝐾𝑝 𝑒 𝑛𝑇 + 𝐾𝑖 𝑇
𝑗𝑇 + 𝐾𝑑
𝑒 𝑛𝑇 −𝑒 𝑛−1 𝑇
𝑇
(36)
Como nT representa a amostra número do sistema, é substituída simplesmente
por n.
𝑎 𝑛 = 𝐾𝑝 𝑒 𝑛 + 𝐾𝑖 𝑇
𝑛
𝑗 =0 𝑒
𝑗 + 𝐾𝑑
𝑒 𝑛 −𝑒 𝑛−1 𝑇
𝑇
(37)
Simplificando:
𝑎 𝑛 = 𝐾𝑝 +
𝐾𝑑
𝑇
𝑒 𝑛 +
𝐾𝑑
𝑇
Substituído as constantes do sistema:
𝑒 𝑛 − 1 + 𝐾𝑖 𝑇
𝑛
𝑗 =0 𝑒(𝑗)
(38)
28
𝐾𝑝 +
𝐾𝑑
𝐾𝑑
𝑇
𝑇
=𝐴
=𝐵
𝐾𝑖 𝑇 = 𝐶
𝑎 𝑛 = 𝐴𝑒 𝑛 + 𝐵𝑒 𝑛 − 1 + 𝐶
𝑛
𝑗 =0 𝑒(𝑗)
(39)
Esta equação é facilmente implementada:
𝑒 = 𝑟𝑒𝑓𝑒𝑟ê𝑛𝑐𝑖𝑎 − 𝑉𝑎𝑙𝑜𝑟𝑀𝑒𝑑𝑖𝑑𝑜
𝐼𝑛𝑡𝐸𝑟𝑟𝑜 = 𝐼𝑛𝑡𝐸𝑟𝑟𝑜 + 𝑒
𝑎 = 𝐴 ∗ 𝑒 + 𝐵 ∗ 𝑒1 + 𝐶 ∗ 𝐼𝑛𝑡𝐸𝑟𝑟𝑜
𝑒1 = 𝑒
2.8
Microcontrolador
Praticamente todos nós estamos rodeados de aparelhos eletrônicos que
possuem dentro de si, um microcontrolador. A principal vantagem do microcontrolador
é que o mesmo apresenta uma serie de recursos em um único chip, o que não ocorria
com o processador. O microcontrolador apresenta a vantagem de ser mais confiável
devido aos seus componentes estarem dentro do próprio CI e não necessitando de
placa externa, aumentando a confiabilidade do sistema e diminuindo o risco de mau
contato.
29
Figura 7 - Arquitetura básica de um microcontrolador.
Fonte: http://www.mikroe.com/pt
2.8.1 Microcontrolador PIC
A família PIC se utiliza de uma arquitetura diferente conhecida como Harvard
que prevê vias de comunicação entre a CPU e os periféricos, permitindo a realização
de operações simultaneamente, o que implica em um aumento considerável na
velocidade de execução de uma instrução e permite ainda que a memória de dados e
programa tenha tamanhos diferentes.
Esta facilidade permite ainda que em uma única palavra de 14 bits tenha o
código da instrução, onde a mesma vai atuar e o eventual operando ou dado, se
houver.
Criou-se então uma terminologia chamada RISC (computador com Set de
instrução reduzida que faz com que existam poucas instruções (aproximadamente 35
instruções)). O fato de haver poucas instruções significa que está no compilador a
complexidade.
Cada instrução possui um tempo de execução de um ciclo do micro controlador,
com exceção da instrução que faz chamada a outra instrução (dois ciclos).
30
Nos microcontrolador PIC, o sinal do clock é dividido internamente por quatro,
gerando as fases conhecidas como Q1, Q2, Q3 e Q4. Cada ciclo de instrução é
composto das quatro fases, de forma que cada ciclo demanda então um tempo.
Sendo então o tempo de ciclo: T =
1
Fclock
4
Se o clock for de 4 MHz o período de cada fase será de T = 250 ηs então cada
ciclo terá a duração de 1 μs.
2.8.2 PIC 18F452
Este microcontrolador apresenta 40 pinos sendo 33 pinos utilizados com
entrada/saída. Possui 75 palavras de instrução, clock de até 40 MHz, 1536 bytes de
memória de dados, 256 bytes de memória de programa e memória flash.
Tabela 5 – Características do microcontrolador PIC 18F452
Características
Freqüência de operação
Resets (e atraso)
Memória de programa Flash (16bits
de palavra)
Memória de dados (bytes)
Memória de dados (instruções)
Memória de dados EEPROM (bytes)
PIC 18F452
DC – 40MHz
POR, BOR (PWRT, OST)
32K
Interrupção
Portas de entrada/Saída
Temporizadores
Módulo Capture/ Compare/PWM
Comunicação serial
Comunicação paralela
Módulo 10 bits analógico digital
Comparador analógico
Conjunto de instruções
Tipo de pinagem
18
Portas A, B, C, D e E
4
2
MSSP, USART
PSP
8 canais de entrada
2
75
40 pinos tipo PDIP
1536
16384
256
Fonte: www.microchip.com
31
CAPÍTULO 3 – ESPECIFICAÇÕES TÉCNICAS PRELIMINARES
Neste capítulo será feito uma breve descrição do sistema de pêndulo invertido,
quais os componentes serão utilizados para realizar a malha de controle, a descrição
de todos os blocos que compõe o sistema e também de forma sucinta a lógica
utilizada.
3.1
Descrição da planta de controle do pêndulo
Na figura 8 está representada a planta de controle do pêndulo invertido em
malha fechada, para descrever o mesmo deve-se iniciar de um ponto, começando da
referência. A referência se trata de um valor em radiano que é a posição do pêndulo
que deseja que o mesmo permaneça, no caso desejamos que seja 90° ou π/2 rad
(posição vertical), essa referência serve para calcular o erro dado por er=ref-θ ou seja é
a diferença entre o valor medido do ângulo do pêndulo e da ref. Esse erro será utilizado
no PID para calcular a saída para o motor, esse motor irá causar um deslocamento no
carro e consequentemente um deslocamento angular no pêndulo que novamente será
lido por um sensor para ser enviado para novo cálculo do erro. Resumindo tem-se o
sistema que fica todo momento calculando o erro (diferença entre a posição que está e
a que deveria estar) esse erro é enviado para o PID que calcula um valor para acionar
o motor. O motor gira e causa um deslocamento no carro, o movimento do carro causa
um deslocamento no pêndulo e esse é novamente lido e enviado ao passo inicial para
ser calculado novamente o erro. O sistema fica executado isso sucessivamente.
Figura 8 – Planta de controle em malha fechada.
Fonte: Própria
32
3.2
Diagrama em blocos
A planta de controle da figura 9 pode ser realizada de diversas formas utilizando
diversos componentes. Mas a escolha dos componentes certos favorece a obtenção de
melhores resultados, assim também a lógica utilizada pode causar melhor resposta. A
figura 9 é uma tentativa e solução para a obtenção do sistema de malha fechada,
mostrando os vários blocos e alguns componentes para o controle do pêndulo
invertido.
3.3
Descrição geral dos blocos
O sistema sugerido para o controle do pêndulo invertido pode ser visto na figura
9.

No bloco 1: o ângulo do pêndulo será medido através de um potenciômetro de
precisão e será enviado para a entrada analógica do PIC (bloco 2).

No bloco 2: o valor da entrada analógica será convertido em radianos (ângulo)
para ser utilizado no cálculo do erro que será utilizado na fórmula do PID (bloco
3).

No bloco 3 o PID irá gerar o cálculo para a frequência da onda quadrada que
será enviada para o drive de acionamento do motor, a frequência será gerada
pelo timer 0 (bloco 4).

No bloco 4 a saída C1 do PIC em alto e baixo gerando assim a onda quadrada e
a saída C2 do PIC para o controle da direção do carro.

No bloco 5 o drive vai acionar as bobinas do motor fazendo com que o mesmo
gire, causando um deslocamento do carro.

No bloco 6 o motor de passo recebe o acionamento do drive e sua direção
(esquerda ou direita).

No bloco 7 o motor de passo executando deslocamento vai causar uma
mudança no ângulo do pêndulo invertido, esse ângulo de novo vai ser lido (bloco
1) pelo sensor potenciômetro e novamente vai calcular o erro e assim
sucessivamente (controle em malha fechada).
33
Figura 9 – Bloco representando o controle que deverá ser implementado
Fonte: Própria
3.4
Descrição completa do sistema
Figura 10 – Bloco representando o controle em malha fechada
Fonte: Própria
Tabela 6 – Descrição da saída dos blocos da figura 10
Saída dos blocos de controle
Sinal gerado e explicação
(1) Erro do sistema
Em 1 temos o erro calculado er=ref-θ. Esse erro será calculado pelo PIC.
O valor θ será obtido através da entrada analógica do PIC e convertido
em radiano.
Através do erro calculado, o PID calcula a saída 2. Antes disso no bloco
PID é executado o algoritmo no PIC. O valor gerado em (2) é um sinal de
onda quadrada de 5 Volts com freqüência entre 0 e 3300Hz, que serve
para controlar a velocidade do motor de passo. Esse sinal é gerado na
saída C1 do PIC. Também através da saída C2 é controlado o sentido de
rotação do motor (C2=0 horário, C2=1 anti-horário).
Nesse bloco temos a alimentação gerada para as bobinas do motor de
passo. O sinal positivo irá direto para a bobina do motor e o negativo é
controlado pela saída do Drive, possibilitado assim criar a seqüência de
acionamento das bobinas que é descrito na tabela 4.
O motor vai girar e causar um deslocamento do carro
Será medido o ângulo em radiano através de um potenciômetro de
precisão ligado a entrada analógica do PIC.
(2) Onda quadrada de 0 a 3300Hz e
sinal para controle de direção do
motor do passo.
(3) Alimentação para as 4 bobinas
do motor de passo
(4) Deslocamento do carro
(5) Ângulo em radianos
Fonte: Própria
34
3.5
Lista de materiais e descrição de uso
Na tabela 7 será listado os materiais utilizados, bem como uma descrição de uso
destes.
Tabela 7 – Lista de materiais
Componente
Quantidade
Descrição de uso e especificações
PIC 18F452
1
-Utilização da entrada analógica para ler o ângulo.
-Cálculo do erro er=ref- Ө
-Será implementado o algoritmo PID.
-Através do PID será calculado o tempo para timer0 para gerar a
freqüência da onda quadrada, para acionamento do motor, essa onda
quadrada será gerada na saída C1 do PIC.
-Verifica sentido de rotação do motor, acionando a saída C2 do PIC
para movimento do carro para a esquerda e desativando a saída C2
para acionamento do motor para a direita.
Drive
1
-Através da saída C1 do PIC é controlado a velocidade de comutação
da bobina do motor de passo.
-Através da saída C2 do PIC é controlado o sentido de giro do motor de
passo.
Sensor angular
Estrutura
do
plotter
Motor de passo
Pêndulo
1
1
-Lê a posição do ângulo da haste do pêndulo.
-Será montado nessa estrutura o pêndulo e o motor de passo.
1
1
200 passos, ângulo de passo 1,8º ±5%
- O comprimento e a massa serão definidos posteriormente para
auxiliar o equilíbrio do pêndulo.
Fonte: Própria
3.6
Motivo do uso de alguns componentes
Vale ressaltar o motivo de uso de alguns componentes utilizado no projeto.
O motor de passo deverá ser utilizado devido à precisão e a facilidade de
controle através de circuito lógico e também por apresentar baixa inércia. Outro fator
interessante é a capacidade de mudança de rotação em pleno funcionamento.
Já o driver de acionamento a primeira vista pode parecer desnecessário, pois
poderia ser acionado o motor diretamente pelo PIC, mas seriam necessárias quatro
saídas para acionar as bobinas do motor. Com o driver são somente necessárias duas
saídas, uma para controle de velocidade e outra para controle de direção. Além do fato
de a lógica criada no PIC ser mais fácil de ser implementada quando utilizado o driver.
35
O PIC 18F452 utilizado pode parecer pouco eficiente para a aplicação visto que
tem pouca memória e capacidade de processamento, mas é o suficiente para aplicação
em questão. Outro fator interessante é o baixo custo que o mesmo apresenta, além de
ser facilmente programável em linguagem “C”.
O uso da estrutura de um plotter facilitou, pois não será necessária preocupação
com a parte mecânica que não faz parte do foco do projeto.
3.7
Detalhes de acionamento do motor de passo
A entrada da placa eletrônica é constituída de uma porta para selecionar a
velocidade e outra para controlar a direção do motor de passo, sendo PAS para
controle da velocidade e DIR para controle da direção. A velocidade do motor de passo
é diretamente proporcional a frequência da onda quadrada aplicada a entrada PAS,
sendo que para o nosso caso está frequência está entre 0 a 3333 Hz. Com essa
frequência a velocidade máxima admitida pelo motor de passo é de 1000 rpm. Assim
temos a equação (40) onde N é a velocidade em rpm para o motor de passo e F é a
frequência em Hertz da onda quadrada aplicada em PAS. Assim, toda vez que for
enviado um novo pulso para a entrada PAS a saída da placa A1 terá seu estado
atualizado conforme tabela 4 alterando o sinal para a bobina do motor que estão
ligadas a estas saídas e alterando também o estado das entradas.
𝐹=
3.8
10𝑁
3
(40)
Discretização do PID para uso no PIC
No PIC deverá ser implementado o algoritmo PID que será responsável pelo
controle do deslocamento do carro. Para realizar esse código deve-se fazer a
discretização do PID como descrito no capítulo 2.
No algoritmo PID tem-se uma integral e uma derivada. Na equação (31) tem-se
a equação do PID.
Para se discretizar o sinal de erro amostrado a uma taxa de
amostragem fixa 𝑇 tem-se:
36
𝑒 𝑘 = 𝑒(𝑡)
(41)
Onde: t=TK
Com K=0, 1, 2, 3,....,
Para calcular a derivada do controlador sabendo que a derivada é igual a
inclinação da reta tangente conforme mostrado na figura 11 tem-se:
𝑑𝑒 𝑡
𝑑𝑡
≅
𝑒 𝑘 −𝑒 𝑘−1
𝑇
(42)
Figura 11 – Aproximação da derivada
Fonte: www.ct.utfpr.edu.br
Já para a obtenção da integral basta considerar a aproximação com a área do
trapézio. Isso pode ser verificado na figura 12.
A área de cada trapézio vale:
𝐴𝑡 =
𝑒 𝑘 +𝑒 𝑘−1
𝑇
2
(43)
A área total é a soma das áreas de todos os trapézios até o instante (K).
𝑆 𝑘 =𝑠 𝑘−1 +
𝑇 𝑒 𝑘 +𝑒 𝑘−1
2
(44)
37
Na equação 44 o termo s(k-1) que representa a área anterior ao erro que deve
ser somada a área atual para se obter o valor da integral, ou seja, no PIC deve-se
considerar o erro do passado para calcular a integral.
Figura 12 – Aproximação da integral
Fonte: www.ct.utfpr.edu.br
O PID discretizado completo fica:
𝑈 𝑘 = 𝐾𝑝 𝑒 𝑘 + 𝐾𝑖 𝑆 𝑘 + 𝐾𝑑
3.9
𝑒 𝑘 +𝑒 𝑘−1
𝑇
(45)
Previa do programa a ser criado no PIC
Então, para se realizar o PID no PIC considera-se a seguinte relação:
ErroAtual = e(k)
ErroAnterior = e(k-1)
AreaAtual= T/2*( e(k) + e(k-1)) =TempoAmostragem/2*(ErroAtual +
ErroAnterior)
AreaAnterior = s(k-1)
PID =U(k)
38
TempoAmostragem = T;
//Então deve-se executar um loop infinito, basicamente o
seguinte programa:
While(1)
{
ErroAtual=ValorConversorAD; //Lê o valor do potenciômetro
através do conversor AD
ValorProporcional =Kp*ErroAtual;
ValorDerivativo =Kd*(ErroAtual - ErroAnterior)/TempoAmostragem;
AreaAtual =(TempoAmostragem)/2*(ErroAtual+ErroAnterior);
ValorIntegral =Ki*(AreaAtual + AreaAnterior);
PID = ValorProporcional + ValorDerivativo + ValorIntegral;
ContagemTimmer0 = PID;
AreaAnterior = AreaAnterior + AreaAtual;
ErroAnterior = ErroAtual;
}
Como se pode verificar o programa é simples, pois, basicamente calcula o valor
da integral calculando as várias áreas dos trapézios e o derivativo calculando a
inclinação da reta tangente. O sinal do PID será o responsável pela contagem do
timer02; quanto menor o valor do timer0 mais rápido o chaveamento das bobinas do
motor de passo fazendo com que mesmo gire mais rapidamente. Como mencionado
anteriormente, o maior problema é fazer a sintonia do PID, ou seja, achar valores de Kp
, Ki e Kd.
Neste programa pode-se verificar que o controle proporcional relaciona-se com o
erro do presente, o derivativo ao do futuro (pois verifica a tendência de crescimento do
erro) e o integral verifica o erro do passado. Desta forma, o termo integral tem que levar
em conta o erro desde o início de ligação do PIC.
2 O módulo TMR0 timer é um temporizador de 8 bits / contador com as seguintes características: 8-bit
timer/counter; 8-bit timer / contador; 8-bit prescaler (shared with Watchdog timer); 8-bit prescaler (compartilhado
com temporizador do watch dog); Fonte de clock programável interno ou externo; Interrupção overflow; e
Interrupção no estouro. Seleção borda externa programável.
39
CAPÍTULO 4 – IMPLEMENTAÇÃO
4.1 Descrição da montagem
Neste capítulo serão apresentados de forma objetiva os detalhes de montagem
do projeto, sendo efetuados cálculos, ensaios de cada subconjunto e montagem final.
Primeiramente deverão ser efetuados os cálculos aproximados e testes para definir os
coeficientes de atrito viscoso tanto do conjunto potenciômetro-eixo-pêndulo como do
driver-motor-carro. Depois dos cálculos serão criados programas de aquisição de
dados em linguagem “C” utilizando-se para isto a placa didática com microcontrolador
PIC 16F877A ou o PIC 18F452, efetuando-se assim ensaios com cada subconjunto
para obtenção dos dados reais e fazendo-se um comparativo entre o que foi calculado
e o que foi ensaiado, obtendo-se então a melhor resposta do sistema de controle do
pêndulo invertido. Na Figura 13 pode-se acompanhar o fluxograma das atividades de
implantação deste capítulo.
Figura 13 – Fluxograma de implementação
Fonte: Própria
40
4.1.1 Cálculo dos parâmetros do modelo do pêndulo
Para a obtenção do coeficiente de atrito viscoso do conjunto potenciômetro-eixopêndulo, o modelo matemático do movimento é análogo ao pêndulo simples. Na figura
14, se visualiza as variáveis a serem consideradas para estes cálculos.
Figura 14 – Parâmetros do pêndulo livre
Fonte: Própria
As equações3 do sistema são obtidas a seguir:
Xlk = Xl − Lsen( 𝜃);
d 𝑋𝑙𝑘
dt
d 2 𝑋𝑙𝑘
d2t
=
=
d 2 𝑋𝑙
d2 t
d 𝑋𝑙
dt
+ Lcosθ
+ Lcosθ
d2θ
d2t
dθ
dt
;
− Lsenθ
dθ 2
dt
;
(46)
Ylk = Yl − Lcos( 𝜃);
3
A dedução das equações deste capítulo foi baseada na Tese de Mestrado do Eng. Ricardo Ribeiro “Implementação
de um sistema de controle de um pêndulo invertido”, a qual está citada nas Referências Bibliográficas. Apenas foi
efetuada uma verificação e adaptação em relação às abreviaturas e siglas.
41
d Y lk
d Yl
=
dt
d 2 Y lk
=
dt
dθ
+ Lsenθ
dt
d2 Yl
; 𝑝𝑎𝑟𝑎 𝑌𝑝 = 0;
dt
d2θ
+ Lsenθ
dt
;
dt
(47)
2
𝐹𝑥 = 𝑚
d Xlk
dt
;
2
d θ
dt
𝐻 = 𝑚[−𝐿𝑐𝑜𝑠 𝜃
2
d θ
dt
𝐻 = −𝑚𝐿𝑐𝑜𝑠 𝜃
dθ 2
];
dt
+ 𝐿𝑠𝑒𝑛 𝜃
+ 𝑚𝐿𝑠𝑒𝑛 𝜃
dθ 2
;
dt
(48)
2
𝐹𝑦 = 𝑚
d Ylk
dt
;
2
d θ
dt
𝑉 − 𝑚𝑔 = 𝑚[−𝐿𝑠𝑒𝑛 𝜃
2
𝑉 = 𝑚𝐿𝑠𝑒𝑛 𝜃
d θ
dt
+ 𝑚𝐿𝑐𝑜𝑠 𝜃
+ 𝐿𝑐𝑜𝑠 𝜃
dθ 2
dt
2
d θ
dθ 2
];
dt
+ 𝑚𝑔;
(49)
dθ
𝑀𝑙𝑘 = 𝐼 dt + 𝐵𝑟 dt ;
2
d θ
𝑉𝐿𝑠𝑒𝑛 𝜃 + 𝐻𝐿𝑐𝑜𝑠(𝜃) = 𝐼 dt
dθ
+ 𝐵𝑟 dt .
(50)
Combinando todas as equações, tem-se:
2
d θ
dθ
𝐼 dt + 𝐵𝑟 dt = −𝑉𝐿𝑠𝑒𝑛 𝜃 + 𝐻𝐿𝑐𝑜𝑠(𝜃);
2
d θ
2
dθ
𝐼 dt + 𝐵𝑟 dt = 𝑚𝐿𝑠𝑒𝑛 𝜃
d θ
dt
+ 𝑚𝐿𝑐𝑜𝑠 𝜃
2
+ −𝑚𝐿𝑐𝑜𝑠 𝜃
d θ
dt
+ +𝑚𝐿𝑠𝑒𝑛 𝜃
dθ 2
dt
dθ 2
dt
+ 𝑚𝑔 𝐿𝑠𝑒𝑛 𝜃 +
𝐿𝑐𝑜𝑠(𝜃);
42
2
d θ
2
dθ
d θ
dt
𝐼 dt + 𝐵𝑟 dt = 𝑚𝐿2 𝑠𝑒𝑛2 𝜃
2
dθ 2
d θ
dt
𝑚𝐿2 𝑐𝑜𝑠 2 𝜃
2
d θ
+ +𝑚𝐿𝑠𝑒𝑛 𝜃 cos⁡
(𝜃) dt
2
d θ
dt
− 𝑚𝑔𝐿𝑠𝑒𝑛 𝜃 −
;
2
dθ
d θ
dt
𝐼 dt + 𝐵𝑟 dt = −𝑚𝐿2
𝐼 + 𝑚𝐿2
dθ 2
dt
− 𝑚𝐿2 𝑠𝑒𝑛 𝜃 cos 𝜃
− 𝑚𝑔𝐿𝑠𝑒𝑛 𝜃 ;
dθ
+ 𝐵𝑟 dt + 𝑚𝑔𝐿𝑠𝑒𝑛 𝜃 = 0.
Considerando que a haste é uniforme, e que possui momento de inércia
(51)
𝑚 𝐿2
3
e
admitindo-se que 𝜃 é muito pequeno, toma-se então 𝑠𝑒𝑛(𝜃) ≈ 𝜃, obtém-se:
4
𝑚𝐿2
3
2
d θ
dt
d2θ
dt
dθ
𝑡 + 𝐵𝑟 dt
+
3𝐵𝑟
dθ
4𝑚 𝐿2
dt
𝑡 + 𝑚𝑔𝐿𝜃 𝑡 = 0;
+
3𝑔
4𝐿
𝜃 = 0.
(52)
Definindo os parâmetros das equações (52) tem-se a equação (53) que é a
equação do pêndulo convencional, cujos valores são dados pela equação (55).
2𝜉𝜔𝑛 =
d2θ
dt
𝑡 + 2𝜉𝜔𝑛
dθ
dt
3𝐵𝑟
, 𝜔𝑛2 =
3𝑔
.
(53)
𝑡 + 𝜔2𝑛 𝜃 𝑡 = 0.
(54)
4𝑚 𝐿2
4𝐿2
𝜆 = −𝜉𝜔𝑛 ± 𝑗𝜔𝑛 √1 − 𝜉 2 .
(55)
43
Fazendo 𝜔𝑑 = 𝜔𝑛 (1 − 𝜉 2 ) obtém-se a solução dada por (56). Em geral 𝜃(𝑡)
apresenta uma resposta senoidal de freqüência (𝜔𝑑 /2𝜋) amortecida com um envelope
exponencial (𝑒 −𝜉𝜔 𝑛 𝑡 )[7].
𝜃 𝑡 = 𝐾 𝑒−𝜉𝜔𝑛 𝑡 𝑠𝑒𝑛(𝜔𝑑𝑡 + 𝑎)
(56)
4.2 Testes, medições e configurações
4.2.1 Ensaio do subconjunto potenciômetro-eixo-pêndulo
Foi retirado o carro e posicionado de cabeça para baixo, como um pêndulo
simples para a obtenção da equação de transferência do pêndulo invertido.
Utilizou-se a comunicação USB da placa didática para enviar o valor do ângulo e
o número de interrupções a uma taxa de 64 kbps para o computador, sendo que os
dados foram obtidos através do programa PuTTY que lê através da USB. Utilizando-se
o timer0 foi ajustado o valor de cada interrupção, o que equivale a 71,896 μs,
bastando-se então fazer: N*71,896μs para se saber em qual instante ocorria a
interrupção. No ensaio foi obtido 2552 amostra em 29 segundos, ocorrendo uma leitura
a cada 11,719 ms. Para aquisição dos dados do PIC 18f452 foi empregado o programa
PuTTY da figura 15.
44
Figura 15 – Tela com dados obtidos do ensaio do pêndulo livre
Fonte: Própria
Estes dados foram exportados para o software Excel e plotado o gráfico com as
2552 amostras através dos valores das amostras onde os valores eram máximos. Foi
calculado o valor de ξωn . A tabela 8 nos mostra os valores calculados.
Tabela 8 – Valores calculados de ξωn
Amostra
172
294
532
Ângulo
169,344
159,341
143,596
Tempo
1,7066
3,148038
5,9379
ξωn = ln((ângulo-90)/(169,344-90))/(Tempo-1,7066)
*Tempo em que foi solto o pêndulo corresponde ao tempo 0
93,48m
92,71m
Fonte: Própria
Através do valor calculado e com auxilio do software Excel, plotou-se um gráfico
para o valor calculado e comparado-se com o gráfico obtido da simulação, resultou no
gráfico da figura 16.
45
Figura 16 – Gráfico das oscilações do pêndulo livre
200
180
160
140
120
100
80
60
40
20
0
Valor simulado
28,7
26,8
24,9
22,9
21
19,1
17,1
15,2
13,3
11,3
9,39
7,45
5,52
3,58
1,65
Valor calculado
0
Ângulo
Simulação pêndulo simples
Tempo
Fonte: Própria
O gráfico simulado na cor azul, foi obtido direto do PIC e o gráfico na cor
vermelha foi obtido através de cálculos utilizando o valor de ξωn = 93m.
Com o valor de ξωn = 0,093 obtem-se os valores restantes da equação do
pêndulo invertido. A equação do pêndulo invertido deduzida no capítulo 2 apresenta a
seguinte equação (23) mostrada a seguir:
Lembrado que:
2𝜉𝜔𝑛 =
3 𝐵𝑟
4𝑚𝐿²
𝜔𝑛 ² =
3𝑔
;
4𝐿
𝐾𝑝 =
3
4𝐿
Pode-se então com o valor da massa e do comprimento da haste e com o 𝜉𝜔𝑛
obter a equação completa do pêndulo invertido.
46
Também, através do ensaio tem-se o tempo de oscilação que equivale a um
período de oscilação; o valor encontrado no ensaio foi de 1,44 segundos. Então tem-se
a variação de 360º em 1,44 segundos, assim obtém-se:
𝜔𝑑 =
2𝜋
𝑇
= 4,363 𝑟𝑎𝑑/𝑠
(57)
O valor de 𝜔𝑑 representa a reposta em frequência da oscilação.
Para achar 𝜔𝑛 utiliza-se a seguinte relação:
𝜔𝑑2 = 𝜔𝑛2 − 𝜔𝑛2 𝜉 2 → 𝜔𝑛 = 4,364
(58)
Como 𝜉𝜔𝑛 = 0,093, então:
𝜉=
0,093
𝜔𝑛
→ 𝜉 = 21,31𝑚
(59)
Para se calcular o valor de 𝐾𝑝 , uma vez que este depende do comprimento da
haste que é de 0,6 metros, utiliza-se a seguinte relação:
3
𝐾𝑝 = 4𝐿
(60)
Sabendo-se que o valor de L é 0,30 metros, pois é o comprimento da haste
dividido por 2, e sendo L a distância do centro de massa da haste, obtém-se:
𝐾𝑝 = 2,5
(61)
Assim tem-se a equação do pêndulo invertido completamente definida:
𝜃 𝑆
−2,5𝑠 2
= 2
𝑋 𝑆
𝑠 + 186𝑠 − 19,044
(62)
4.2.2 Medição do ângulo do pêndulo
Para se realizar a medição do ângulo foi utilizado um potenciômetro de precisão
de 2 KΩ, o potenciômetro foi ligado com um resistor para se obter um divisor de
tensão, conforme esquema da figura 17:
47
Figura 17 – Circuito para medição do ângulo do potenciômetro
2,72KΩ
11720mV
Entrada analógica do PIC AN0
2KΩ
Fonte: Própria
O Valor do resistor foi calculado para se obter a tensão de 5,0 Volts na entrada
analógica do PIC que é o valor máximo de tensão. Assim quando o potenciômetro está
em valor máximo obtemos o valor de 5,0 Volts. O potenciômetro apresenta 270º de
giro, assim tem-se a seguinte relação 270º equivale a 2 KΩ.
Foi criado o programa 2 e colocado um transferidor para se verificar a precisão
do mesmo.
Para se criar a relação foi efetuado os seguintes cálculo no PIC:
ValorAdc = Read_Adc();
Vo = (ValorAdc/1023)*5000;//1023 pois são 10 bits Vo valor de
saída do divisor de tensão
Potenciometro=(Vo*2720)/(11720-Vo);//Obtem valor do
potenciômetro em ohms
ValorAngulo=(((Potenciometro*90)/581)/1.1);
No programa acima foi utilizado o conversor AD do PIC de 10 bits tendo-se
assim uma resolução de 4,88 milivolts para um sinal de 5,0 Volts que é o valor fundo de
escala para o conversor do PIC, conforme a equação (63):
5
𝑅𝑒𝑠𝑜𝑙𝑢çã𝑜 = 210 = 4,88 𝑚𝑉
(63)
Como pode se verificar acima foi necessário verificar a relação do divisor de
tensão e calcular o valor do potenciômetro para se obter a relação da tensão com o
ângulo em questão:
48
Potenciometro=(Vo*2720)/(11720-Vo);//Obtem valor do
potenciometro em ohms
Onde: 2720 é o valor em ohms do resistor associado para realizar o divisor de
tensão e 11720 é o valor em milivolts da tensão aplicada ao divisor de tensão.
Resumido, simplificado e criado uma única equação para o programa para se
usar menos memória do PIC visto que esse é limitado ficando assim:
ValorAngulo=(-244800*Read_Adc())/(639.1*Read_Adc()-1569118.32);
Desta forma a equação é uma simplificação da equação criada onde se utilizava
muitas variáveis.
4.2.3 Ensaio de ajuste da velocidade do motor de passo
Para alterar a velocidade de um motor de passo é necessário alterar a
velocidade de chaveamento das bobinas do mesmo, quanto maior a velocidade de
chaveamento das bobinas mais rápido será a velocidade do motor. No projeto do
pêndulo foram utilizadas as saídas do microcontrolador PIC: C0, C1, a primeira para a
determinação do passo e a segunda para determinação da direção que serão enviados
para o driver de acionamento do motor de passo.
O intervalo de transição de acionamento da bobina ou tempo de chaveamento é
o que determina a velocidade do motor de passo, onde este intervalo foi criado pelo
timer0 do PIC. Com o timer0 é possível controlar o intervalo de chaveamento das
bobinas através das saídas do PIC. Como o motor de passo é muito preciso foi
possível controlar a velocidade do motor de passo de forma precisa. E através de
medições onde se selecionava a velocidade e a posição, então, foi possível verificar a
exatidão do programa gerada pelo controlador e a precisão do motor sendo o erro em
torno de 1milímetro.
Para realizar o timer0 criou-se uma interrupção de contagem a cada 64 micro
segundos e através de valores em relação a essa contagem foram realizadas quantas
49
interrupções são necessária para ocorrer mudança de energização das bobinas do
motor, quanto menor o número de interrupções maior a velocidade do motor. Sendo
possível através de cálculo ajustando o número de interrupções para saber a
velocidade de rotação do motor.
Através da equação: 𝑇 = 1/𝑓 se for selecionado 1 Hz tem que ter uma mudança
de energização de 1s entre as bobinas, como a interrupção ocorre a cada 64 micro
segundos para 1 Hz tem-se 1𝑠 = 64𝜇, ou seja: 𝑛 = 15625 interrupções para ter um
tempo de 1 segundo. Como o motor apresenta 200 passos a um 1 Hz temos a
velocidade de 0,3 rpm. Assim pode-se criar a relação de fórmulas utilizadas no
programa do PIC:
1
𝑇 = 𝑓𝑟𝑒𝑞𝑢 ê𝑛𝑐𝑖𝑎
(64)
𝑛 = 15625 𝑇
(65)
3
𝑟𝑝𝑚 = 𝑓𝑟𝑒𝑞𝑢ê𝑛𝑐𝑖𝑎 10 ou
𝑓𝑟𝑒𝑞𝑢ê𝑛𝑐𝑖𝑎 =
10
3
𝑟𝑝𝑚
(66)
(67)
O valor de “n” será utilizado para efetuar a contagem do número de interrupções
do timer0 e quando a contagem for igual a “n” ocorre a mudança de energização das
bobinas do motor de passo e assim a alteração do passo do motor. Conforme descrito
pela tabela (ver tabelas 3 e 4 do motor de passo capítulo 2).
Para se ajustar o timer0 do PIC para 64 micro segundos basta selecionar o
“prescaler” e o inicio de contagem, onde neste projeto ficou a seguinte fórmula:
𝑇=
16∗ 6536 −6516 ∗1∗4
20𝑀
𝑇 = 64𝜇𝑠
(68)
50
Onde: (6536-6515)= 21 - representa o número de contagem do contador do
timer0.
16
- é o número do prescaler para realizar a divisão.
20M - é o clock do microcontrolador.
4
- é devido ao clock ser dividido por 4 na família PIC.
Como escrito anteriormente o motor de passo apresenta ótima precisão, para
verificar isso foi realizado um ensaio, onde através do display de LCD da placa didática,
foi selecionado a posição e o valor da velocidade que se desejava. E com o uso de
uma fita métrica foi realizado medições para verificar onde o carro fixado na impressora
parava.
Para a aferição inicial e determinação do quanto o motor se deslocou, foi
enviando comando para 200 passos, ou seja, uma volta completa do motor, então foi
medido o deslocamento do carro. Obtendo-se a seguinte relação:
X=ValorPosição = 0.2587*passo;
// (Valor em milímetros)
Como o motor apresenta 200 passos para uma volta no caso de uma volta
completa do eixo do motor temos um deslocamento de:
X= 0.2587*200;
X = 51.74 mm
Para realizar o ensaio foi criado o programa que consta no item 4.3 desta.
Conforme ensaio pode-se verificar erro de posição de no máximo de 1milímetro.
Criado uma expressão para o deslocamento que serão utilizadas para obter os
coeficientes do controlador PID e realizar a sintonia:
X = 0.2587*freqüência *Tempo
// (Valor em milímetros)
Onde a frequência é em relação ao chaveamento das bobinas.
51
Realizando a transformada de Laplace tem-se:
X(S) = (0,2587m*Freqüência(S)*1)/S
passo utilizado)
//(Equação do motor de
Podemos verificar que a cada frequência da fórmula acima temos um passo do
motor e assim um deslocamento de 0.2587mm.
4.2.4 Modelo da planta identificada
Como foi identificado as equações de transferência dos subconjuntos motor e do
pêndulo, obteve-se o modelo da planta que é demonstrada a seguir:
Figura 18 – Modelo da planta identificada do motor e pêndulo
𝐹𝑟𝑒𝑞𝑢ê𝑛𝑐𝑖𝑎(𝑆)
𝑖
1
0.2587𝑚
𝑠
𝑋(𝑆)
−2,5𝑠 2
𝑠 2 + 186𝑚𝑠 2 − 19,044
𝜃(𝑆)
Fonte: Própria
4.2.4.1
Especificação da resposta no domínio do tempo
Antes de projetar um sistema de controle devem ser desenvolvidas algumas
especificações que descrevam as características que o sistema deve possuir. Por
exemplo: algumas especificações podem ser dadas em termos da resposta ao degrau
do sistema.
O tempo de acomodação 𝑇𝑠 é o tempo necessário para que a saída se estabilize
dentro de certo percentual do seu valor final. São dois os valores comuns 2% e 5%.
Assim são necessários aproximadamente quatro constantes de tempo para c(t)
se estabilizar[7], então obteve-se:
4
𝑇𝑠 = 𝜉 𝜔
𝑛
(69)
52
Desenvolvendo-se a relação em que o sobre sinal é máximo. A resposta ao
degrau é máxima no instante 𝑇𝑝 do gráfico. Analisando pode-se verificar que o sinal é
máximo na expressão[6]:
1
𝑐 𝑡 = 1 − 𝛽 𝑒 −𝜉𝜔 𝑛 𝑡 𝑠𝑒𝑛(𝛽𝜔𝑛 𝑡)
(70)
Portanto, pode-se escrever: 𝑠𝑒𝑛 𝛽𝜔𝑛 𝑡 = 𝑠𝑒𝑛(𝜋), ou seja, quando 𝛽𝜔𝑛 𝑇𝑝 = 𝜋,
substituindo 𝛽 = 1 − 2𝜉
1
2
, obtem-se:
𝑇𝑝 = 𝜔
2𝜋
𝑛
1−2𝜉
(71)
E o sobre-sinal pode ser dado em ponto percentuais :
𝑀𝑝 = 𝑒
Pode-se assim isolar 𝜉 =
2𝜋𝜉
)
1−2𝜉
(−
(72)
(𝐿𝑛 2 𝑀𝑝
𝜋 2 +𝐿𝑛 2 𝑀𝑝
Através das equações (69), (70), (71) e (72) é possível se fazer projetos para se
ter determinado sobre sinal em percentual e tempo de acomodação especificado para a
equação de transferência de segunda ordem através de cálculos. Isso será realizado
para o pêndulo invertido.
53
Figura 19 – Resposta ao degrau unitário para sistemas de 2ª ordem
Fonte: www.mspc.eng.br
Figura 20 – Resposta ao degrau típica
Fonte: www.mspc.eng.br
No gráfico da figura 19 que representa a resposta 𝑥(𝑡) do sistema de segunda
ordem a entrada em degrau unitário 𝑢(𝑡) para diversos valores de 𝜉, ou seja:
54
𝜔 𝑠2
1
𝑋 𝑆 = 𝑈 𝑆 𝐺 𝑆 = 𝑠 ∗ 𝑠 2 +2𝜉𝜔𝑛
2
𝑛 𝑠+𝜔 𝑛
(73)
No gráfico da figura 20 podemos observar os valores de Mp, Tp e Ts.
As oscilações da resposta tem a seguinte frequência:
𝜔𝑑 =
𝜔𝑛 (1 − 2𝜉)
(74)
E são amortecidas em: 𝑒 −𝜉𝜔 𝑛
Desta forma para o projeto do pêndulo invertido pode-se especificar os valores
para 𝑡𝑠 , 𝑀𝑝 𝑒 𝑇𝑝 .
As especificações definidas para a malha de controle são: máximo pico (𝑀𝑝 )
menor ou igual a 5%; tempo de acomodação (𝑡𝑠 ) em torno de 0,2 segundos; erro em
regime permanente (𝑒𝑠𝑠) próximo de 0,5%.
Com as especificações e conhecendo a planta do sistema (equação de
transferência do motor de passo e pêndulo invertido) pode-se calcular valores para
𝐾𝑝 , 𝐾𝑖 𝑒 𝐾𝑑 .
Para sistemas estáveis aproximados por funções de segunda ordem e com as
raízes expressas por (75), existe uma relação entre o máximo pico e o fator de
amortecimento (𝜉) dado pela expressão (76) ou (77), e junto com a freqüência natural
de oscilação (𝜔𝑛 ) há uma relação também com o tempo de acomodação (expressão
78).
𝑠1,2 = −𝜉𝜔𝑛 ± 𝑗𝜔𝑛 1 − 𝜉 2
(75)
𝜋𝜉
𝑀𝑝 = 𝑒 √1−𝜉 2
𝜉=
𝑙𝑛 2 𝑀𝑝
𝜋 2 +𝑙𝑛 2 𝑀𝑝
(76)
(77)
55
𝑡𝑠 =
4
(78)
𝜉𝜔 𝑛
Com a especificação de máximo pico de 5% utilizando a expressão (77) obtemse:
𝜉 = 0,6901
(79)
Com a especificação de tempo de acomodação de 0,2 s utilizando a expressão
(75) obtem-se:
𝜔𝑛 = 28,98
𝑟𝑎𝑑
𝑠
(80)
Com os valores de 𝜉 𝑒 𝜔𝑛 na equação (75) tem-se:
𝑠1,2 = −𝜉𝜔𝑛 ± 𝑗𝜔𝑛 1 − 𝜉 2
𝑠1,2 = −20,00 ± 𝑗20,97
𝑠1 = −28,98∠2,3324
(81)
(82)
Com os valores de (82) na planta representada na figura 18 tem-se (substituir
valor no lugar de S):
𝐺 𝑆1 = 0.2587𝑚
1
−2,5(−20+𝑗 20,97)2
−20+𝑗 20,97
(−20+𝑗20,97)2 +186𝑚 −20+𝑗 20,97 −19,044
𝐺(𝑠1 ) = 15𝜇 ± 𝑗16,61𝜇
𝐺 𝑠1 = 22,38𝜇∠0,836
(83)
(84)
As equações (85), (86) e (87) definidas por Phillips e Harbor, são utilizadas para
calcular os ganhos típicos de um controlador PID quando conhecida (ou estimada) a
função de transferência do processo a ser controlado.
56
𝐾𝑥 lim𝑠→0 𝑠 𝑛 𝐺 𝑠 𝐻 𝑠 = 1/𝑒𝑠𝑠
𝐾𝑝 = −
𝑠𝑒𝑛 ∠𝑠1 +∠𝐺 𝑠1 𝐻 𝑠1
−
𝐺 𝑠1 𝐻 𝑠1 𝑠𝑒𝑛 ∠𝑠1
𝐾𝑑 = −
(85)
2𝐾𝑖 cos 𝑠1
𝑠𝑒𝑛 ∠𝐺 𝑠1 𝐻 𝑠1
|𝑠1 | 𝐺 𝑠1 𝐻 𝑠1 𝑠𝑒𝑛 ∠𝑠1
𝑠1
−
𝐾𝑖
|𝑠1 |2
(86)
(87)
Para que se possa efetuar o cálculo, um dos três parâmetros do controlador
precisa ser estimado ou adotado (Phillips e Harbor). Depois de alguns experimentos
práticos foi selecionado o valor (88) para o ganho integral.
𝐾𝑖 = 2000
(88)
Substituindo os valores de (84), (87) e (88) em (86) e (87) vem (89) e (90).
𝐾𝑝 = 1750
(89)
𝐾𝑑 = 1583
(90)
O diagrama em blocos indicado na figura 6.1 ilustra o modelo da malha de
controle resultante. Obtendo-se o gráfico do lugar das raízes da malha de controle,
nota-se que os pólos dominantes especificados (s1,2) estão sobre a área estável do
gráfico e tendem a estarem próximos do ponto de operação desejado.
Figura 21 - Modelo da malha de controle resultante.
ref
+
-
1583𝑠 2 + 1750𝑠 + 2000
𝑠
−3
0.2587. 10
1
𝑠
Fonte: própria
−2,5𝑠 2
𝑠 2 + 186. 10−3 𝑠 2 − 19,044
𝜃
57
4.3 Código Fonte
4.3.1 Firmware
****************************************************************
******PROGRAMA VERIFICAÇÃO EXPRESSÃO VELOCIDADE MOTOR DE PASSO E
EXATIDÃO
****************************************************************
#include <18f452.h>
#device adc=10
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=20000000)
#include <mod_lcd.c>
#build(reset=0x200)
#build(interrupt=0x208)
#org 0x0000,0x01ff
void bootloader() {
#asm
nop
#endasm
}
#define S1
!input (pin_a1) // Botão incrementa velocidade
#define S2
!input (pin_a2) // Botão decrementa velocidade
#define S3
!input (pin_a3) // Liga motor
#define S4
!input (pin_a4) // Botão incrementa velocidade
#define S5
!input (pin_a5) // Botão decrementa velocidade
//---------------------------------------------------------int32 frequencia=1;
static float32 T=0,rpm=0.3333,NumeroVoltas=0,rotacao=0,tempo=0;
static int32 contador=0,m=1,n=7812,passo=0;
static int1 direcao=0;//int1 significa uma boleana
//------------------------------------------------------------tela_rpm()
{
lcd_escreve('\f');
lcd_pos_xy(1,1);
if(rpm<0)
rpm=0;
printf(lcd_escreve,"rpm= %1.2f",rpm );
lcd_pos_xy(1,2);
printf(lcd_escreve,"P= %1.2f" ,NumeroVoltas );
lcd_pos_xy(14,2);
printf(lcd_escreve,"D=%d" ,direcao);
delay_ms(10);
}
tela_Posicao()
{
lcd_escreve('\f');
lcd_pos_xy(1,1);
58
printf(lcd_escreve,"Tempo=%2.2f",Tempo);
lcd_pos_xy(14,1);
printf(lcd_escreve,"D=%d" ,direcao);
lcd_pos_xy(1,2);
printf(lcd_escreve,"P=%1.2f" ,NumeroVoltas );
lcd_pos_xy(9,2);
printf(lcd_escreve,"R=%1.2f" ,rotacao);
delay_ms(10);
}
Calculo_rpm()
{
if(frequencia>0)
rpm=(frequencia*3)/10;//Fórmula para
calcular a velocidade do motor em rpm
else
rpm=0;
}
Calculo_Frequencia ()//Calcula o valor do n do timmer 0 para a
frequência frequência
{
T=(float32)1/(frequencia);
n=(int32)(15625*T); //calcula valor para o timer 0 e atraves
deste valor permite calcular a frequencia
}
#int_TIMER0
void trata_tmr()
{
set_timer0(65517+get_timer0());
contador++;
// tempo+=1;
if(contador >= n&&(NumeroVoltas>Rotacao))
{
switch ( m )
{
case 1:
{
if(direcao==true)//Verifica sentido de
giro do motor se =0 sentido horário
output_C(3); //Liga bobina
motor de passo A e B
else
output_C(9); //Liga bobina motor
de passo A e B'
break;
}
case 2:
{
if(direcao==true)//Verifica sentido de
giro do motor se =0 sentido horário
output_C(6); //Liga bobina motor
de passo A' e B
59
else
output_C(12);//Liga bobina motor
de passo A' e B'
break;
}
case 3:
{
if(direcao==true)//Verifica sentido de
giro do motor se =0 sentido horário
output_C(12); //Liga bobina motor
de passo A' e B'
else
output_C(6); //Liga bobina motor de
passo A' e B
break;
}
case 4:
{
if(direcao==true)//Verifica sentido de
giro do motor se =0 sentido horário
output_C(9); //Liga bobina motor
de passo A e B'
else
output_C(3); //Liga bobina motor
de passo A e B
m=0;
break;
}
}//fim do switch
m++;
contador=0;
passo++;
}//fim do if contador
}//fim do void trata_tmr()
void main()
{
int1 m1=0,m3=0; //int1=bool para seleção display
int m2=0;//Para selecionar aumento de valor
lcd_ini();//Inicializa o display lcd
delay_ms(20);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16);
set_timer0(0);
lcd_escreve('\f');
output_C(0);
for (;;)
{
tela_rpm();
while(m1==0&&m3==0) //seleciona tela
{
m2=1;//Auxiliar para ocorrer incremento maior
da frequencia, 1 quando sai do loop
60
if(S3==1)//Desliga seleção de valores e
habilita partida do motor
{
m1=1;
lcd_escreve('\f');
}
while(S1==1)//Incrementa a rotação do motor
{
frequencia+=m2;
m2++;
// if(frequencia>540)
//
frequencia=250;
Calculo_Frequencia();//Calcula o valor
de n para timer0
Calculo_rpm();//Através da frequência
calcula o valor de rpm
tela_rpm();
delay_ms(10);
}
while(S2==1)//Decrementa o rpm do motor
{
frequencia-=m2;
m2++;
if(frequencia<0)
frequencia=0;
Calculo_Frequencia();//Calcula o valor
de n para timer0
Calculo_rpm();//Através da frequência
calcula o valor de rpm
tela_rpm();
delay_ms(10);
}
while(S4==1&&S5==0)//Decrementa o número de
voltas do motor
{
NumeroVoltas+=m2;
m2++;
tela_rpm();
delay_ms(10);
}
while(S5==1&&S4==0)//Decrementa o número de
voltas do motor
{
NumeroVoltas-=m2;
m2++;
if(NumeroVoltas<0)
NumeroVoltas=0;
tela_rpm();
delay_ms(10);
}
61
if(S4==1&&S5==1)//Incrementa o número de voltas
do motor
{
if(direcao==1)
direcao=0;
else if(direcao==0)
direcao=1;
tela_rpm();
delay_ms(500);
}
}//Fim do while de entrada tela
While(m1==1&&(NumeroVoltas>Rotacao))//Laço liga motor
{
Rotacao=(float32)(0.2587*passo);// Para
verificar o número de rotação do motor
enable_interrupts(global| int_timer0);
}//Fim do laço liga motor
if(NumeroVoltas<=Rotacao)
{
disable_interrupts(global|
int_timer0);//desabilita interrupção do timer 0
delay_ms(100);//Um tempo para as bobinas
ficarem energizada e não haver inércia
output_C(0); //Desliga as bobinas do motor para
não haver aquecimento do mesmo
tempo=(float32)((n*71.896*passo)/1000000);
tela_posicao();
m3=1;
tempo=rotacao=passo=contador=0;//Reseta valores
parada do motor para inicializar o timer 0
m1=0;//Para retornar a tela de seleção
if(direcao==1)//Muda o sentido de rotação do
motor
direcao=0;
else direcao=1;
}
while(m3==1)//Para mostrar tela de posição após o motor ter
se deslocado
{
if(S4==1)
{
m3=0;//Para voltar para a seleção de tela
inicial
delay_ms(1000);
}
}
}//Fim do for infinito
}//Fim do void man
***************************************************************
FIM DO PROGRAMA PARA VERIFICAÇÃO MOTOR DE PASSO EXATIDÃO
****************************************************************
62
****************************************************************
******PROGRAMA CONTROLE PID PÊNDULO INVERTIDO
****************************************************************
#include <18f452.h>
#device adc=10
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=20000000)
#include <mod_lcd.c>
#use rs232(baud=64000,xmit=PIN_C6,rcv=PIN_C7)
#build(reset=0x200)
#build(interrupt=0x208)
#org 0x0000,0x01ff
void bootloader() {
#asm
nop
#endasm
}
#define S1
!input (pin_a1) // Botão seleção tela
#define S2
!input (pin_a2) // Botão decrementa valor de Kp,
Ki e Kd
#define S3
!input (pin_a3) // Botão incrementa valor de Kp,
Ki e Kd
#define S4
!input (pin_a4) // Botão start pêndulo invertido
#define S5
!input (pin_a5) // Botão stop pêndulo invertido
//----------------------------------------------------------int32 frequencia=1;
static float32
T=0,rpm=0.3333,NumeroVoltas=0,rotacao=0,tempo=0,ErroAtual=0,Valo
rProporcional=0,ValorDerivativo=0,ValorIntegral=0,ErroAnterior=0
,TempoAmostragem=0.004;
static int32
contador=0,m=1,n=7812,passo=0,Ki=0,Kp=0,Kd=0,contador1=0;
static int1 direcao=0;//int1 significa uma boleana
static float32
ref=1.5707,AreaAtual=0,AreaAnterior=0,ValorAngulo=0;
int tela=1;
//-------------------------------------------------------------tela_Kp()
{
lcd_escreve('\f');
lcd_pos_xy(1,1);
printf(lcd_escreve,"Selecione Kp");
lcd_pos_xy(1,2);
printf(lcd_escreve,"Kp= %lu" ,Kp );
delay_ms(10);
if(s2==1)
{
kp-=10;
if(Kp>0)
63
kp==0;
}
if(s3==1)
kp+=10;
if(s1==1)
{
tela+=1;
delay_ms(500);
}
if(tela>5)
tela=1;
}
tela_Kd()
{
lcd_escreve('\f');
lcd_pos_xy(1,1);
printf(lcd_escreve,"Selecione Kd");
lcd_pos_xy(1,2);
printf(lcd_escreve,"Kd= %lu" ,Kd );
delay_ms(10);
if(s2==1)
{
kd-=10;
if(Kd>0)
kd==0;
}
if(s3==1)
kd+=10;
if(s1==1)
{
tela+=1;
delay_ms(500);
}
if(tela>5)
tela=1;
}
tela_Ki()
{
lcd_escreve('\f');
lcd_pos_xy(1,1);
printf(lcd_escreve,"Selecione Ki");
lcd_pos_xy(1,2);
printf(lcd_escreve,"Ki= %lu" ,Ki );
delay_ms(10);
if(s2==1)
{
ki-=10;
if(Ki>0)
ki==0;
}
if(s3==1)
64
ki+=10;
if(s1==1)
{
tela+=1;
delay_ms(500);
}
if(tela>5)
tela=1;
}
tela_Valores()
{
lcd_escreve('\f');
lcd_pos_xy(1,1);
printf(lcd_escreve,"Kp=%lu",kp);
lcd_pos_xy(10,1);
printf(lcd_escreve,"kd=%lu" ,kd);
lcd_pos_xy(1,2);
printf(lcd_escreve,"ki=%lu" ,ki);
delay_ms(10);
if(s1==1)
{
tela+=1;
delay_ms(500);
}
if(tela>5)
tela=1;
}//fim tela valores
tela_Angulo()
{
lcd_escreve('\f');
lcd_pos_xy(1,1);
printf(lcd_escreve,"Valor Angulo");
ValorAngulo=(-244800*Read_Adc())/(639.1*Read_Adc()1569118.32);//Lê o ângulo em graus
ValorAngulo=(ValorAngulo*3.141592)/180;//Converte o
ângulo em radiano
lcd_pos_xy(1,2);
printf(lcd_escreve,"Radiano= %f1.3" ,ValorAngulo);
delay_ms(10);
if(s1==1)
{
tela+=1;
delay_ms(500);
}
if(tela>5)
tela=1;
}
Calculo_rpm()
{
65
if(frequencia>0)
rpm=(frequencia*3)/10;//Fórmula para
calcular a velocidade do motor em rpm
else
rpm=0;
}
Calculo_Frequencia ()//Calcula o valor do n do timmer 0 para a
frequência frequência
{
T=(float32)1/(frequencia);
n=(int32)(15625*T); //calcula valor para o timer 0 e atraves
deste valor permite calcular a frequencia
}
#int_TIMER0
void trata_tmr()
{
set_timer0(65517+get_timer0());
contador++;
contador1++;
if(contador >= n)
{
switch ( m )
{
case 1:
{
if(direcao==true)//Verifica sentido de
giro do motor se =0 sentido horário
output_C(3); //Liga bobina
motor de passo A e B
else
output_C(9); //Liga bobina motor
de passo A e B'
break;
}
case 2:
{
if(direcao==true)//Verifica sentido de
giro do motor se =0 sentido horário
output_C(6); //Liga bobina motor
de passo A' e B
else
output_C(12);//Liga bobina motor
de passo A' e B'
break;
}
case 3:
{
if(direcao==true)//Verifica sentido de
giro do motor se =0 sentido horário
output_C(12); //Liga bobina motor
de passo A' e B'
66
else
output_C(6); //Liga bobina motor de
passo A' e B
break;
}
case 4:
{
if(direcao==true)//Verifica sentido de
giro do motor se =0 sentido horário
output_C(9); //Liga bobina motor
de passo A e B'
else
output_C(3); //Liga bobina motor
de passo A e B
m=0;
break;
}
}//fim do switch
m++;
contador=0;
// passo++;
}//fim do if contador
}//fim do void trata_tmr()
void main()
{
int1 m1=0;//int1=bool para seleção display
int x=0;
int32 k[150];
float32 k2[150];
//float32 ValorAngulo=0;
lcd_ini();//Inicializa o display lcd
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16);
set_timer0(1);
lcd_escreve('\f');
setup_adc_ports(AN0);
setup_adc(adc_clock_div_32);
set_adc_channel(1);
output_C(0);
memset(K,0,sizeof(k));
for (;;)
{
while(S4==0)// Para selecionar as telas seleção de Ki, Kp e
Kd
{
if(tela==1)
Tela_Kp();
if(tela==2)
Tela_Kd();
if(tela==3)
Tela_Ki();
if(tela==4)
67
tela_Valores();
if(tela==5)
tela_Angulo();
disable_interrupts(global| int_timer0);
output_C(0);
}//Fim laço while(S4==0)
while(S4==1||m1==1)
{
if(S4==1)//Liga pêndulo invertido
m1=1;
if(S5==1)//desliga pêndulo invertido
m1=0;
ValorAngulo=(-244800*Read_Adc())/(639.1*Read_Adc()1569118.32);//Lê o
ângulo em graus
ValorAngulo=(ValorAngulo*3.141592)/180;//Converte o ângulo
em radiano
ErroAtual = ref - ValorAngulo; //Lê o valor do erro
através do conversorAD
ValorProporcional =KP*ErroAtual;
ValorDerivativo =(KD*(ErroAtual ErroAnterior))/Tempoamostragem;
AreaAtual =(TempoAmostragem *(ErroAtual+ErroAnterior))/2;
ValorIntegral =Ki*(AreaAtual + AreaAnterior);
frequencia = ValorProporcional + ValorDerivativo +
ValorIntegral;
AreaAnterior = AreaAnterior + AreaAtual;
ErroAnterior = ErroAtual;
if(frequencia<0)
{
direcao=1;
frequencia*=-1;
}
if(frequencia>0)
{
direcao=0;
}
if(frequencia>417)
frequencia=416;
Calculo_Frequencia();//Calcula o valor de n para timer0
enable_interrupts(global| int_timer0);
} //Fim laço (S4==1||m1==1)
}//Fim do for infinito
}//Fim do void man
****************************************************************
FIM DO PROGRAMA CONTROLE PID PÊNDULO INVERTIDO
68
4.4 Placas de circuito impresso (PCI)
Figura 22 – Circuito do PIC
Fonte: Própria
Figura 23 – Placa de circuito impresso do PIC
Fonte: Própria
69
Figura 24 – Circuito da fonte de 30V para o driver
Fonte: Própria
Figura 25 – Placa de circuito impresso da fonte 30V para o driver
Fonte: Própria
70
4.5 Custos do projeto
Deve-se destacar que a doação do plotter usado, barateou o projeto, ficando a
cargo da equipe a compra de componentes menores e com menor preço. Outro
aspecto importante foi o convênio celebrado entre a Universidade Positivo e a empresa
Akiyama, fabricante e fornecedor de motores de passo, drivers e outros, viabilizado
pelo Professor Doutor Anselmo Rodrigues (orientador deste projeto), onde o desconto
para alunos é de trinta pontos percentuais (30%), também barateando o custo do
projeto.
4.5.1 Componente e materiais
Tabela 9 – Preço de componentes e materiais
Material / Componente
Potenciômetro de precisão 2kΩ
Motor de passo
Driver para motor de passo
Haste em alumínio Ø1/2"
Placas de nylon
Microcontrolador PIC 18F452
Componentes eletrônicos Diversos
Fabricante
Preço em R$
Ashay
Akiyama
Akiyama
sem marca
sem marca
Microchip
Diversas
SUB-TOTAL
R$ 162,00
R$ 64,87
R$ 196,60
R$ 15,00
R$ 15,00
R$ 28,00
R$ 200,00
R$ 681,47
Fonte: Própria
4.5.2 Serviços contratados
Tabela 10 – Preço dos serviços contratados
Serviço contratado
Usinagem peças em nylon
Usinagem de alojamentos para rolamentos
Usinagem do eixo para potenciômetro
Fornecedor
SUB-TOTAL
Fonte: Própria
Preço em R$
R$ 150,00
R$ 35,00
R$ 15,00
R$ 200,00
71
CAPÍTULO 5 – CONCLUSÃO
O presente trabalho de conclusão de curso “TCC” consistiu em implementar um
sistema de controle PID em arquitetura PIC de um pêndulo invertido construído sobre a
base e o carro de movimento linear de um plotter. O PIC utilizado para a
implementação do algoritmo de controle PID foi o 18F452 citado nos capítulos
anteriores, este algoritmo foi compilado utilizando-se a linguagem de programação “C”.
A planta final do projeto foi identificada de acordo com os cálculos, testes e
ensaios demonstrados no capítulo 4 deste, onde verificou que estes resultados
estavam coerentes para que a implementação seguisse adiante.
Os custos apurados neste projeto foram baixos, porém, se for considerado a
compra de todos os componentes, principalmente a aquisição do plotter, artigo raro no
mercado, mesmo que usado, pois, este normalmente é desmontado e as peças em
condições de uso são reaproveitadas na manutenção e adaptação de outros.
Houve receio no início do projeto quanto ao uso do PIC definido para
processamento, porém, ao longo dos testes e resultados obtidos, foi verificado que sua
especificação atendia o projeto sem nenhuma restrição.
Devemos citar neste trabalho que a dificuldade de obtenção de dados mais
conclusivos e informações sobre a utilização de motores de passo para aplicações
robustas, ou com necessidade de velocidades mais altas foram relevantes e decisivas
para a conclusão e obtenção de sucesso do sistema. A montagem do driver conforme
as literaturas também foi decisivo, somente com a aquisição de um driver profissional é
que se conseguiu um resultado aceitável.
Algo que aparentemente não aparentava problema, pelo menos ao se iniciar o
projeto, foi a parte mecânica, ou seja, o sistema de polias, correias e o carro, acabaram
gerando um grande atraso e resultados indesejados no momento da implementação do
sistema de controle, gerando incertezas que não foram consideradas nos cálculos.
Verificado após vários testes que ocorriam muitas oscilações no sistema devido
a vários fatores não considerados até então, os quais foram resolvidos um a um.
Primeiramente as folgas ocorridas no carro, que foi resolvido com ajustes na usinagem.
Foi verificado também problema de usinagem da rosca do eixo em relação à haste, a
qual foi resolvida efetuando-se re-furação e execução de rosca. Diante destes
72
problemas ocorridos, conclui-se que para serviços de usinagem ou qualquer serviço
necessário, deve-se contratar profissionais, pois estes resultados geram incertezas que
dificultam e atrasam toda a implementação de um projeto, no qual se busca a precisão,
aliada a prazos de entrega definidos no início do projeto. Outros fatores que
contribuíram para a geração de oscilações indesejadas no projeto, foram as
interferências devido à frequência de chaveamento do driver, resolvido parcialmente
com a montagem de um capacitor de 100μF, simulando um filtro simples, montado no
sinal oriundo do potenciômetro de precisão. Outra ação tomada para minimizar a
interferência da frequência de chaveamento, foi aterrar a malha dos cabos do motor de
passo.
Para trabalhos futuros, aconselha-se estudar todos os componentes de uso
neste tipo de montagem, pode-se utilizar para leitura do ângulo da haste um encoder
rotativo se o custo total do projeto não for relevante, e no caso do motor para
acionamento do sistema, verificar um motor de pequeno porte, porém, com uma
resposta rápida, precisa e uma alta velocidade final.
73
CAPÍTULO 6 – REFERÊNCIAS
[1]
BARCZAK, C. L.: Controle Digital de Sistemas Dinâmicos, Editora Edgard
Blucher Ltda., 1995
[2]
BOLTON, W.: Engenharia de Controle, Makron Books do Brasil, 1995
[3]
CASTRUCCI, P.; SALES, R. M.: Controle Digital, Editora Edgard Blucher Ltda.,
1995
[4]
HEMERLY, E. M.: Controle por Computador de Sistemas Dinâmicos, Editora
Edgard Blucher Ltda., 1996
[5]
OGATA, K; Modern Control Engineering; 3rd. Edition; Prentice-Hall; New
Jersey-USA;
1997
[6]
PHILLIPS C.L, Harbor R.D.: Sistemas de Controle e Realimentação, Editora
Makron Books do Brasil, 1997
TESES E ARTIGOS
[7]
RIBEIRO, R.: Implementação de um Sistema de Controle de um Pêndulo
Invertido, Universidade Federal de Itajubá, Brasil.
Disponível em:
<http://www.dominiopublico.gov.br/pesquisa/DetalheObraForm.do?select_action=&co_
obra=66421>
SÍTIOS NA INTERNET
[8]
Movimento Harmônico Simples. Disponível em:
<http://portalsaofrancisco.com.br/alfa/fisica/movimento-harmonico-simples-6.php>
Acesso em: 20 mar 2009.
[9]
Motores de Passo. Disponível em:
<http://www.rogercom.com/artigos/ControledeMotordePasso>
Acesso em 16 abr 2009.
[10] Controladores PID microprocessados:
<http://www.wma.ind.br/img/downloads/controladoresPIDMicroprocessados.pdf>
Acesso em 16 abr 2009.
[11] Pêndulo Invertido em:
< http://automatica.li2.uchile.cl/exp/pi.htm>
Acesso em 30 mai 2009.
74
[12] Inverted pendulum em:
<http://www.answers.com/topic/inverted-pendulum>
Acesso em 30 mai 2009.
[13] HIP - Human Inverted Pendulum:
<http:// www.cat.inist.fr/?aModele=afficheN&cpsidt=20144476>
Acesso em 30 mai 2009.
75
Anexo 1
Folha de dados do potenciômetro de precisão Vishay Spectrol modelo 357
76
77
Anexo 2
Folha de dados do motor de passos Akiyama modelo AK57H/3-1.8
78
79
Anexo 3
Folha de dados do driver para motor de passos Akiyama
80
Download

INSTITUTO VICENTIN DE FILOSOFIA