Escolar Documentos
Profissional Documentos
Cultura Documentos
Centro de Tecnologia - CT
Curso de Engenharia Mecatrônica
Natal
2022
Universidade Federal do Rio Grande do Norte - UFRN
Sistema de Bibliotecas - SISBI
Catalogação de Publicação na Fonte. UFRN - Biblioteca Central Zila Mamede
Natal
2022
Agradecimentos
Aos meus pais, Raimundo Alves Martins Júnior e Kainara Borja De Sousa, junta-
mente, a minha irmã Alêssa Maria De Sousa Martins, por estarem ao meu lado o tempo
todo me apoiando e me fazendo continuar mesmo nos momentos mais difíceis.
A Deus pelo apoio em todas as minhas orações diárias.
Aos cientistas e pesquisadores, por fornecerem todas as respostas que preciso.
Ao corpo docente da Escola de Ciências e Tecnologia e do curso de Engenharia
Mecatrônica por todo o conhecimento essencial para minha formação.
Ao meu professor orientador Fábio Meneghetti Ugulino de Araújo, por ficar ao
meu lado e sanado todas as incertezas e problemas ao longo do projeto. Ademais, pelo
conhecimento, dedicação e paciência ao longo do curso.
A Clareliz Ferreira Gadelha por todo amor, confiança e apoio nesses últimos meses.
Aos meus amigos, por todos os bons momentos e pelas trocas de conhecimento.
Em especial a Sâmela Bruna Ferreira por ter me dado a motivação e confiança necessária
para convidar o professor Fábio Meneghetti Ugulino de Araújo a ser meu orientador.
Resumo
A engenharia de controle baseia-se em uma ampla gama de engenharias e ciências, permi-
tindo assim, uma multidisciplinaridade. Esse fato, nos permite visualizar em processos
industriais componentes elétricos, mecânicos e químicos nos sistemas de controle.
Outro detalhe, é que a análise de modelos didáticos para pesquisa e compreensão das
plantas reais, tornou-se indispensável para os projetos de controladores, bem como, os
estudos dos sistemas de controle. Um desses modelos didáticos é o sistema ball and beam,
cujo objetivo é equilibrar uma esfera em uma posição determinada. Sua alta aplicabilidade
na análise de controle, na resolução de problemas reais de estabilidade, como também, no
campo da educação garantem a esse modelo um aspecto didático bastante benéfico.
Another detail, is that the analysis of didactic models for research and understanding of
real plants, has become indispensable for the design of controllers as well as the study of
control systems. One of these didactic models is the ball and beam system, whose goal is
to balance a sphere in a given position. Its high applicability in control analysis, in solving
real stability problems, as well as in the field of education guarantees this model a very
beneficial didactic aspect.
Therefore, the respective work employs the concepts widespread in the field of control
engineering for the prototyping, modeling, and control of a ball and beam type bench top
system.
PD Proporcional Derivativo
PI Proporcional Integral
Lista de ilustrações . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Lista de tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 Visão geral dos capítulos seguintes . . . . . . . . . . . . . . . . . . . . . 14
2 Fundamentação teórica . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1 Teoria sobre sistemas de controle . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Modelo matemáticos para sistemas . . . . . . . . . . . . . . . . . . . . . 16
2.3 Modelagem de sistemas dinâmicos . . . . . . . . . . . . . . . . . . . . . 17
2.4 Linearização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Estabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6 Projeto de Controladores . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.7 Índices de desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.8 Sistema Ball and Beam . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1 Modelagem do sistema realimentado . . . . . . . . . . . . . . . . . . . . 23
3.1.1 Modelagem da planta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.2 Modelagem do controlador . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Prototipagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.1 Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.2 Servo motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.3 Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.4 Montagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.5 Código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1 Teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2 Prática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1 Perspectivas de Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . 43
Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
APÊNDICE A – Código confeccionado para o sistema de bancada
ball and beam . . . . . . . . . . . . . . . . . . . . 46
12
1 Introdução
1.1 Motivação
A análise de modelos didáticos para pequisa e compreensão das plantas reais,
tornou-se indispensável para o aprendizado de sistemas de controle. Um desses modelos
didáticos mais utilizado é o sistema ball and beam, em que, seu objetivo é tentar equilibrar
Capítulo 1. Introdução 13
uma esfera em uma posição determinada. Sua ampla aplicabilidade se dar por esse sistema
apresentar características relevantes, como a instabilidade em malha aberta e uma forte
não-linearidade (CHANG et al., 2011), presentes em diversas situações de controle real.
Além disso, o uso dos sistemas ball and beam pode ser vistas em diversas aplicações
de análise de controle, como em HAUSER et al. (1992) devido a sua vasta aplicabilidade e
sua metodologia acessível. Outro aspecto importante, é que esse sistema possui uma ampla
gama de finalidades para a indústria visando problemas reais de controle e estabilidade,
tais como a estabilização horizontalmente de um avião durante a aterrissagem e em fluxo
de ar turbulento (SHIRKE; KULKARNI, 2015).
Ademais, quando se atrela ao lado educacional é possível abstrair de forma didática
e visual os conceitos abordados ao longo da nossa vida acadêmica no sistema ball and
beam. Começando pela física, além da estabilidade, pode-se abordar vários assuntos como
as forças aplicadas, a dinâmica do sistema, a conservação de energia entre as partes. Na
engenharia e matemática, obtêm-se conceitos sobre modelagem matemática, metodologia
para confecção de um controlador PID e suas derivações, a lógica e o algorítimo por trás
do funcionamento dos sistemas. Na medicina, atribuir os ensinamentos de como nosso
corpo funciona para se manter em equilíbrio. Esses conteúdos e outros mais, podem ser
ensinados para facilitar o processo de ensino-aprendizagem dos alunos e professores devido
ao seu aspecto multidisciplinar.
1.2 Objetivo
O objetivo deste trabalho é empregar os conceitos difundidos no âmbito da enge-
nharia de controle para a prototipagem, modelagem e controle de um sistema de bancada
do tipo ball and beam como vista na figura 1.
2 Fundamentação teórica
a x + m b u
P
n P
ẋ
1 Pi=1 1i i Pj=1 1j j
ẋ2
n
a x + m j=1 b2j uj
= i=1 2i i (2.1)
.. ..
. .
ani xi +
Pn Pm
ẋn i=1 j=1 bnj uj
Sob essa lógica, conseguimos retratar a saída do sistema também como na equação
2.2 logo a seguir.
c x + m d u
P
n P
y
1 Pi=1 1i i Pj=1 1j j
y2
n
c x + m j=1 d2j uj
= i=1 2i i (2.2)
.. ..
. .
i=1 cni xi +
Pn Pm
yn j=1 dnj uj
Por outro lado, caso o sistema seja variante no tempo a equação 2.3 ficará no
formato abaixo.
t = Iα (2.6)
ressaltar que, ambas as expressões podem se relacionar tanto pela fórmula do torque
(t = F R, no qual F é uma força aplicada e R é o raio de giro) quanto pela associação das
acelerações (a = Rα, onde R é o raio e α é a aceleração angular).
2.4 Linearização
Um sistema é linear quando o mesmo satisfaz as propriedades de superposição e
homogeneidade. Isto quer dizer que, se um sistema em repouso recebe uma excitação x1 (t)
e fornece uma resposta y1 (t), bem como, para outra excitação x2 (t) produzir uma resposta
y2 (t). Esse sistema será linear, se e somente se, ao receber uma excitação αx1 (t) + βx2 (t),
ele fornecer a resposta αy1 (t) + βy2 (t) (MEDEIROS; MAITELLI, 2010).
Caso isso não aconteça, é possível realizar uma aproximação linear de um sistema
não-linear através de um ponto de operação (xpo , ypo ) para pequenas mudanças ou pequenos
sinais de (∆x e ∆y). Sendo assim, supondo um elemento com uma variável de excitação e
uma variável de resposta, dada por:
O ponto de operação é designado por xpo e supondo também que a função g(x) é
contínua em toda sua faixa, a série de Taylor é realizada em torno do ponto de operação
apresentado. Desta forma, a equação 2.8 abaixo é gerada.
dg (x − xpo ) d2 g (x − xpo )2
g(x) = g(xpo ) + + 2 + ... (2.8)
dx x=xpo
1! dx x=xpo
2!
dg (x − xpo )
g(x) = g(xpo ) + (2.9)
dx x=xpo
1!
2.5 Estabilidade
Uma das principais propriedades no âmbito de sistemas de controle é a estabilidade.
Ela nos garante que, após um período transitório o sistema se mantém em funcionamento
Capítulo 2. Fundamentação teórica 19
estável. Sendo assim, para um sistema de malha fechada ser estável o mesmo necessita de
uma resposta limitada, isto é, ao receber uma pertubação sua reposta deve ser limitada
em magnitude (DORF; BISHOP, 2001). Este enunciado é conhecido como a definição
BIBO (Bounded Input, Bounded Output) de estabilidade.
A estabilidade dos sistemas pode ser definida a partir da sua função de transferência,
para tal, todos os polos da função de transferência devem possuir parte real negativa. Essa
é uma condição suficiente e necessária.
Em 1800, A. Hurwitz e R. J. Routh criaram o método ou critério de estabilidade de
Routh-Hurwitz. Eles apresentaram que a quantidade de raízes da equação característica
do sistema no domínio de Laplace com parte real positiva, visto na equação 2.10, deve ser
igual ao número de mudanças de sinal dos coeficientes na primeira coluna do arranjo de
Routh.
Após dispor os coeficientes nas duas primeiras linhas da tabela 1, os demais índices
são encontrados correlacionando às duas linhas anteriores a ele, por exemplo, o coeficiente
b1 pode ser encontrado com a equação 2.11.
a1 a2 − a0 a3
b1 = (2.11)
a1
Portanto, ao finalizar a construção da tabela com os valores de todos os índices,
o critério de Routh-Hurwitz estabelece que todos os elementos da primeira coluna da
tabela devem ser positivos para que o sistema seja estável. Este preceito é uma condição
necessária e suficiente para a estabilidade do sistema.
Capítulo 2. Fundamentação teórica 20
Ki
Gc (s) = Kp + + Kd s (2.12)
s
Os engenheiros de controle encontravam os termos da função de transferência da
equação 2.12 estipulando valores satisfatórios com base nas estimativas dos parâmetros da
planta. Contudo, para favorecer o trabalho dos operadores de planta, métodos sistemáticos
para determinar os valores de Kp , Ki e Kd foram desenvolvidos ao passar do tempo.
Um desses métodos para a escolha dos componentes do controlador é por alocação
de polos, utilizando a comparação da equação padrão de mesma ordem da função de
transferência de malha fechada do modelo obtido. Essa equação baseia-se nos termos do
fator de amortecimento ζ e da frequência de oscilação ωn do sistema. Já esses termos
podem ser encontrados usando especificações de desempenho do projeto, como o tempo
de amortecimento Ts , entendido como o tempo necessário para que a curva de resposta
alcance, valores em uma faixa geralmente de 2% ou 5% do valor final e assim permanecer
indefinidamente, e o sobressinal máximo Mp , entendido como o valor máximo de pico da
Capítulo 2. Fundamentação teórica 21
Ki
Gc (s) = Kp E(s) + E(s) + sKd E(s) (2.13)
s
Assim, é possível também encontrar os componentes do controlador visualizando o
desempenho do erro no sistema. Esse processo de análise é dado pelo índice de desempenho
baseados na integral do erro. Nesse sentido, quando minimizamos o índice de desempenho,
estamos encontrando um ótimo sistema de controle. Portanto, o índice de desempenho é
uma medida quantitativa do desempenho de um sistema, onde é escolhido tal que seja
colocada ênfase em especificações consideradas importantes para o sistema (PALHERES,
2020). Existem quatro possíveis índices para serem analisados, cada uma com seu objetivo
ao sistema e fórmula bem definida.
Ao realizar a integral do erro ao quadrado (ISE) tende a mostrar uma rápida
diminuição do erro nos instantes inicias. Portanto, a resposta é rápida e oscilatória, o que
pode levar a um sistema com pouca estabilidade. Ademais, este critério, dá uma maior
ponderação quando há um erro grande e uma ponderação suave quando o erro é pequeno
(CASTANõ, 2021). Sua fórmula é dada pela equação 2.14.
Z T
ISE = e2 (t)dt (2.14)
0
Z T
IT AE = t | e(t) | dt (2.15)
0
A integral do erro absoluto (IAE), fornece respostas mais lentas que o índice ISE
(CASTANõ, 2021). Sua fórmula é dada pela equação 2.16.
Z T
IAE = | e(t) | dt (2.16)
0
Z T
IT SE = te2 (t)dt (2.17)
0
3 Metodologia
A função Gm f (s) pode ser encontrada a partir da equação 3.1. Neste calculo é
preciso utilizar as funções de transferência da planta G(s) e do controlador Gc (s).
Gc (s)G(s)
Gmf (s) = (3.1)
1 + Gc (s)G(s)
equações é observar o diagrama de corpo livre do sistema ball and beam, no qual, pode ser
observado na figura 5 abaixo.
ft R = Ibola α (3.2)
Pela associação das acelerações, entende-se que a aceleração linear é igual ao raio
multiplicado pela aceleração angular. Compreende-se também, que a aceleração linear
é igual à derivada segunda da posição. Sabendo disso, realizam-se as substituições na
equação 3.2, e como resultado a equação 3.3 é encontrada.
r̈
ft = Ibola (3.3)
R2
Agora, averiguando a segunda lei Newton da equação 2.5 para as forças aplicadas
a esfera no eixo x resulta na equação 3.4 visualizada a seguir.
mg sin ϕ − Ft = ma (3.4)
r̈
mg sin ϕ − Ibola = mr̈ (3.5)
R2
Capítulo 3. Metodologia 25
mg sin ϕ
r̈ = (3.6)
( IR + m)
bola
2
dg
g(t) = gpo (t) + (ϕ − ϕpo ) (3.7)
dϕ ϕ=ϕpo
mg cos ϕpo
r̈ = g(t) = (ϕ − ϕpo ) (3.8)
( IR 2 + m)
bola
mgϕ
r̈ = (3.9)
( IR + m)
bola
2
dθ
ϕ= (3.10)
L
Substituindo o ϕ da equação 3.9 pela equação 3.10, encontra-se a equação 3.11.
mgdθ
r̈ = (3.11)
L( IR + m)
bola
2
0
ṙ 0 1 r
= + mgd θ
r̈ 0 0 ṙ I
L( bola +m)
R2
(3.12)
h i r
y= 1 0
ṙ
Capítulo 3. Metodologia 26
r(s) mgd 1
= (3.13)
θ(s) L( R2 + m) s2
Ibola
2mR2
Ibola Momento de inércia da esfera 3
Kgm2
g Gravidade 9.8 m
s2
r(s) 0.37
G(s) = = 2 (3.14)
θ(s) s
Gc (s) = Kp + Kd s (3.15)
ωn2 2ζωn
Kp = ; Kd = (3.18)
0.37 0.37
Encontrar os valores do fator de amortecimento ζ e da frequência de oscilação ωn é
possível utilizando as equações encontradas pela análise em regime transitória do sistema,
como o tempo de subida tr , dado pela equação 3.19, o tempo de acomodação ts , descoberto
pela equação 3.20, o overshoot máximo Mp , visto na equação 3.21, entre outras que estão
disponíveis para usar.
π − arccos ζ
Tr = (3.19)
ωn
4
Ts2% = (3.20)
ζωn
−πζ
Mp = exp √ (3.21)
1 − ζ2
q
(ln Mp )2
ζ=q (3.22)
((ln Mp )2 + π 2 )
q
(ln 0.1)2
ζ=q (3.23)
((ln 0.1)2 + π 2 )
Capítulo 3. Metodologia 28
4
ωn = (3.24)
ζTs2%
Implementando o valor escolhido para Ts com o critério de 2%, bem como o valor
encontrado de ζ na equação 3.24, consegue-se descobrir o valor de ωn a partir da equação
3.25.
4
ωn = (3.25)
(0.6 · 5)
3.2 Prototipagem
Pensando no aspecto educacional do projeto, o protótipo desenvolvido foi construído
focado no baixo custo, possibilitando sua reprodução. Sua estrutura foi montada utilizando
materiais reciclados, como MDP para a base e suporte, e cano PVC para a barra. O
protótipo confeccionado pode ser visualizado na figura 6 abaixo.
3.2.1 Microcontrolador
O microcontrolador usado para o projeto é um ATMEGA 328P localizado em um
Arduíno Uno. Dessa forma, toda a pinagem e montagem utilizaram um Arduíno Uno como
visto na figura 7 abaixo.
3.2.3 Sensor
Motivados pelo baixo custo do projeto e a necessidade da precisão na medição, o
sensor HC-SR04 foi aplicado.
Capítulo 3. Metodologia 31
VCC 5v
GND Terra
Alcance min. 2 cm
Alcance max. 4m
Frequência de trabalho 40 Hz
Corrente de trabalho 15 mA
3.2.4 Montagem
A montagem do circuito eletrônico é mostrado na figura 10 a seguir.
Servo Motor
Sensor HC-SR04
GND GND
3.2.5 Código
Quando se pensa na confecção de um controlador PI, PD ou PID no aspecto digital,
precisa-se encontrar uma aproximação digital para as ações de controle.
Visto que, cada ciclo do algorítimo irá ter sempre a mesma duração de tempo h,
popularmente denominado de período, consegue-se estabelecer essa aproximação.
Dessa forma, o cálculo do sinal de controle é dado pela soma das ações de controle.
Assim, nosso sinal de controle será dado por Gc (k) = P (k) + I(k) + D(k). Utilizando da
equação 2.13, encontra-se P (k), I(k) e D(k) fazendo a transformada de Euler em seus
respectivos componentes. Essas transformadas podem ser visualizadas abaixo nas equações
3.29, 3.30 e 3.31
Euler
P (s) = Kp E(s) −→ P (z) = P (s) −1 ⇒
s= 1−zh
(3.29)
⇒ P (z) = Kp E(z) ⇒ P (k) = Kp e(k)
Euler
I(s) = Ki
s
E(s) −→ I(z) = I(s) −1 ⇒
s= 1−zh
(3.30)
⇒ I(z) = z − 1I(z) + Ki hE(z) ⇒ I(k) = I(k − 1) + Ki he(h)
Euler
D(s) = sKd E(s) −→ D(z) = D(s) ⇒
−1
s= 1−zh
(3.31)
−1 )E(z)
⇒ D(z) = Kd (1−z h
⇒ D(k) = Kd (e(k)−e(k−1)
h
do índice desejado. Por exemplo, para o índice de desempenho ITSE, sua aproximação
digital fica na forma da equação 3.32.
2 (k)+e2 (k−1)
IT SE = ke (3.32)
PM
k=0 2
h
4 Resultados
4.1 Teórico
Iniciando pela implementação teórica, foi empregado o uso do software Matlab,
mais especificamente, utilizando o Simulink para a realização e criação de todo o sistema
em formato de diagrama de blocos, como pode ser visualizada na figura 11, tal qual, a
observação dos gráficos gerados. Para fins experimentais, considera-se uma entrada ao
degrau unitário.
Nota-se pela figura 14 que ambas apresentam valores quase próximos a zero, este
fato se dar devido aos parâmetros decididos na confecção do controlador tornar o sistema
Capítulo 4. Resultados 37
4.2 Prática
No meio prático, o sensor e servo motor foram aferidos separadamente no protótipo.
Neste aspecto, o sensor de distância a laser VL53L0, o qual seria nossa primeira escolha,
precisou ser trocado devido o mesmo sofrer interferência da barra onde estava alocado.
Por esse motivo, o sensor ultrassônico HC-SR04 foi usado em seu lugar.
Outro detalhe observado, é que quando se compara o código final com o que foi
encontrado na teoria, se percebe uma diferença nos controladores abordados. Enquanto na
parte teórica usa-se um controlador PD, na prática, tem-se um controlador PI.
Analisando o resultado obtido na prática vistas na figura 20, utilizando os valores
para o controlador conseguidos na teoria, encontra-se a seguinte resposta do sistema.
A partir dela, é possível analisar também o sinal de erro gerado pelo sistema usando
os componentes encontrados na teoria, vista na figura 21.
Estudando o sinal de erro encontrado a partir do índice de desempenho ITSE pela
integral do erro. Consegue-se abstrair um valor de 0.14 utilizando um setpoint de 22 cm.
Ou seja, um valor melhor do que o encontrado na teoria.
Mas, analisando o protótipo em diferentes condições e valores para as componentes
do controlador, foi possível encontrar melhores valores para o índice de desempenho
abordado.
Assim, de forma empírica os valores Kp = 6 e Ki = 0.1 surgiram. Com esses
valores a seguinte resposta do sistema é gerada, vista na figura 22.
Comparando às duas respostas obtidas para um mesmo parâmetro de setpoint,
percebe-se uma melhora na figura 22 para chegar ao setpoint desejado, utilizando menos
Capítulo 4. Resultados 41
5 Conclusões
• Criação de um filtro digital para os dados aferidos pelo sensor, pois o mesmo apresenta
um erro de medição entre 1 cm a 3 cm;
Referências
CHANG, Y.-H. et al. Adaptuve fuzzy dynamic surface control for ball and beam system.
International journal of fuzzy systems, v. 13, n. 1, 3 2011. Citado na página 13.
DORF, R. C.; BISHOP, R. H. Sistemas de controle modernos. 8. ed. [S.l.]: Editora LTC,
Rio de Janeiro, 2001. Citado 4 vezes nas páginas 12, 15, 19 e 20.
FRANKLIN, G. F. et al. Sistemas de Controle para Engenharia. 6. ed. [S.l.]: Porto Alegre:
Bookman, 2013. Citado na página 19.
HAUSER, J. et al. Nonlinear control via approximate input-output linearization: The ball
and beam example. In: IEEE Transactions on Automatic Control. [S.l.: s.n.], 1992. p. 392 –
398. Citado na página 13.
LV, X. H. et al. Desing of ball-beam control system based on machine vision. TRANS
TECH PUBL. Applied mechanics and materials. [S.I.], v. 71, p. 4219–4225, 2011. Citado
na página 22.
MEENAKSHIPRIYA, B.; KALPANA, K. Modelling and control of ball and beam system
using coefficient diagram method (cdm) based pid controller. In: IFAC Proceedings
Volumes. Elsevier, Amsterdã: [s.n.], 2014. v. 47, p. 620–626. Citado na página 23.
39 // −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
40
41 void setup ( ) {
42 S e r i a l . b e g i n ( 9600 ) ;
43 HCSR04 . b e g i n ( t r i g g e r P i n , echoPin ) ; // I n i c i a l i z a s e n s o r
44 meuServo . a t t a c h ( p i n o S e r v o ) ; // I n i c i a l i z a s e r v o motor
45 i f ( ! meuServo . a t t a c h e d ( ) ) { // V e r i f i c a s e o s e r v o motor f o i
inicializado
46 S e r i a l . p r i n t l n ( " Servo nao l i g o u com o p i n o " ) ;
47 while (1) ;
48 }
49 meuServo . w r i t e ( p o s i c a o ) ; // Coloca o s e r v o na p o s i c a o i n i c i a l
50 tempo = m i l l i s ( ) ;
51 }
52
53 void loop ( ) {
54 i f ( m i l l i s ( ) > tempo + p e r i o d o ) { // Entra no c o n d i c i o n a l a cada
p e r i o d o de amostragem
55 tempo = m i l l i s ( ) ;
56 d i s t a n c i a = HCSR04 . measureDistanceCm ( ) [ 0 ] ; // Pega a d i s t a n c i a
57 d i s t a n c i a = max( d i s t a n c i a , 5 ) ; // Impede d i s t a n c i a s menores que 5 (
d e v i d o ao s e n s o r )
58 d i s t a n c i a = min ( d i s t a n c i a , 45 ) ; // Impede d i s t a n c i a s m a i o r e s que 45
( tamanho da b a r r a )
59 i f ( ! primeira_rotina ) {
60 // Impede que o s e n s o r meca v a l o r e s e l e v a d o s do medido
anteriormente ;
61 // Impede por exemplo , que e l e r e t o r n e o v a l o r 4 5 , enquanto a
b o l a e s t e j a na p o s i c a o 1 0 .
62 while ( distancia > distancia_anterior + 5 | | distancia <
distancia_anterior − 5) {
63 d i s t a n c i a = HCSR04 . measureDistanceCm ( ) [ 0 ] ;
64 d i s t a n c i a = max( d i s t a n c i a , 5 ) ;
65 d i s t a n c i a = min ( d i s t a n c i a , 45 ) ;
66 }
67 }
68 S e r i a l . p r i n t l n ( d i s t a n c i a ) ; // C r i a c a o dos g r a f i c o s a p a r t i r do
Plotter s e r i a l
69 d i s t a n c i a _ e r r o r = ( d i s t a n c i a _ s e t p o i n t − d i s t a n c i a ) ; // C a l c u l a o
erro ;
70
71 acaoP = Kp ∗ d i s t a n c i a _ e r r o r ; // C a l c u l a a acao p r o p o r c i o n a l
72 acaoD = Kd ∗ ( ( d i s t a n c i a _ e r r o r − d i s t a n c i a _ e r r o r _ a n t e r i o r ) / p e r i o d o
) ; // C a l c u l a a acao d e r i v a t i v a
73 i f (−3 < d i s t a n c i a _ e r r o r && d i s t a n c i a _ e r r o r < 3 ) {
74 // C o n d i c i o n a l que impede o s i n a l de c o n t r o l e s u b i r ou d e s c e r sem
parar .
APÊNDICE A. Código confeccionado para o sistema de bancada ball and beam 48