Escolar Documentos
Profissional Documentos
Cultura Documentos
Escola de Engenharia
Curso de Graduação em Engenharia Mecânica
Niterói – RJ
2019
1
Niterói – RJ
2019
Ficha catalográfica automática - SDC/BEE
Gerada com informações fornecidas pelo autor
CDD -
BANCA EXAMINADORA
Niterói – RJ
2019
iv
Resumo
Esse trabalho tem três objetivos básicos: (1) implementar um código na linguagem
Python para aproximar a solução de equações diferenciais ordinárias usando a técnica
de Runge-Kutta de quarta ordem; (2) Estudar numericamente as vibrações e o amorteci-
mento de impacto de um veı́culo usando o modelo linear clássico massa-mola-amortecedor;
(3) Propor e estudar numericamente um sistema de amortecimento não-linear elasto-
viscoplástico. O problema linear, por ter solução analı́tica, permite comparar essa solução
com a aproximação numérica e estimar o erro envolvido, validando o código. O estudo
de vibrações não lineares está se tornando cada vez mais importante devido aos novos
materiais poliméricos usados em diferentes aplicações, entre elas a absorção de energia e
proteção contra impactos. A análise numérica preliminar feita no caso não linear mostra
o potencial dessas aplicações e estimula o prosseguimento de estudos experimentais.
Abstract
The present study had three basic goals: (1) to implement a code using the Python
language to approximate the solution of ordinary differential equations using the Runge-
Kutta 4th order method; (2) To perform the numerical analysis of vibrations and impact
damping of a vehicle using the classic linear mass-spring-damper linear model; (3) To pro-
pose and elasto-viscoplastic model for the damping system and to perform the numerical
analysis of the system behavior. Since the linear problem has an analytical solution, it
is possible to compare this solution with the numerical approximation and to estimate
the error involved, validating the code. The study of nonlinear vibrations is becoming
increasingly important due to the new polymeric materials used in different applications,
including energy absorption and impact protection. The preliminary numerical analy-
sis made in the nonlinear case shows the potential of these applications and encourages
further experimental studies.
Agradecimentos
Agradecimento I:
Agradeço aos meus pais, Valmir e Angela, que sempre prezaram muito pela minha
educação e sempre me apoiaram em todos os momentos de minha vida. O que sou hoje é
reflexo do carinho deles. Às demais pessoas que já passaram ou estão na minha vida que
apoiam e me aturam, muito obrigado por compartilhar essa jornada comigo.
Agradecimento II:
Gostaria de agradecer primeiro a Deus que tornou tudo possı́vel:
À minha famı́lia e aos meus pais, José e Rosalia, que foram minha primeira escola,
ensinaram-me os bons valores, a prática do bem, a ética de se fazer o que é certo e a
buscar a igualdade e a justiça. Eles não mediram esforços para me oferecer o melhor que
puderam. Estendo esse agradecimento à minha avó, minha segunda mãe, e a todas as
amigas que trabalharam em minha casa que com sua doçura e amor me ensinaram a viver.
Aos meus melhores amigos, Raphael e Luı́sa, que estiveram sempre comigo nos
momentos alegres e tristes, passaram comigo por muitas fases da vida, mas nunca desisti-
ram e me ajudaram a atravessar todas as dificuldades. Ajudaram-me também a conhecer
a mim mesmo e a lutar pelos nossos direitos.
Aos meus amigos, com os quais partilho as mesmas bandeiras e esperanças, agra-
deço por todos momentos importantes que tivemos, todas as viagens e partilhas. Todas
as vitórias e também as derrotas. Obrigado a todos voluntários que acreditam, se somam
aos projetos e ajudam a construir um mundo melhor.
Às duas escolas que passei, gostaria de agradecer muito pela minha formação, me
tornaram um ser humano mais equilibrado e crı́tico. Centrinho e Gaylussac me concede-
ram um amplo conhecimento geral, acadêmico e de vida. Construı́ram valores em mim
que guardarei para sempre.
viii
À Igreja e aos padres, gostaria de agradecer pelos amigos que são, pela formação
em busca da Equidade em favor dos menos favorecidos. Por todas oportunidades que tive
de servir ao próximo, aos que tinham fome ou quaisquer outras necessidades. Cada grupo,
cada debate e cada evento me fizeram ser uma pessoa melhor.
À faculdade sem a qual não poderia ter essa formação tão ampla e benéfica. E aos
professores por partilharem seus conhecimentos comigo com tanto prazer e zelo. Obrigado
por todas as horas gastas na dedicação à docência confeccionando e corrigindo provas,
preparando materiais e aulas.
A todos os meus colegas de faculdade, que me apoiarem sempre nas dificuldades em
todos os momentos de estudos antes das provas, mas também nos momentos de churrasco,
Choppadas e cantareiras. Em especial gostaria de agradecer ao Vitor, por todo esforço e
dedicação na construção desse projeto, sem você nada disso seria possı́vel.
ix
Lista de Figuras
Lista de Tabelas
Resumo iv
Abstract v
Agradecimentos vii
Lista de Figuras ix
Lista de Tabelas x
1 Introdução 1
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Revisão Bibliográfica 4
2.1 Vibrações Mecânicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Classificação de Vibrações . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2 Componentes de Sistemas Discretos . . . . . . . . . . . . . . . . . . 5
2.2 Vibrações Não Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Fontes de não linearidade . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Métodos Numéricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.1 Runge Kutta de 4a Ordem . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
xi
xii
4 Conclusão 24
4.0.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Referências Bibliográficas 25
5 Appendix 26
5.1 Código Fonte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Capı́tulo 1
Introdução
1.1 Motivação
Quando se fala em vibrações, seu comportamento fı́sico só pode ser demonstrado,
em sua maioria, através de modelos matemáticos não-lineares devido à sua alta comple-
xidade e variáveis envolvidas no ambiente em questão.
Como esse modelos matemáticos, em sua maioria, somente podem ser resolvidos
através de métodos numéricos, o tema desse trabalho foi escolhido visando obter um
melhor entendimento da resolução desse tipo de problema e a aquisição de novos conhe-
cimentos no processo de desenvolvimento desses modelos
Tendo a compreensão de métodos numéricos almejada e a dominação da linguagem
de programação escolhida nesse trabalho, acredita-se que abre-se um caminho não só
para a resolução de diversos outros problemas clássicos da engenharia, mas também para
diversos problemas modernos que lidamos no mercado de trabalho na atualidade.
Assim, esse trabalho visa aplicar os conhecimentos adquiridos durante o curso com
os fundamentos de uma ferramenta de programação para que, a união dessas informações
sirva de carga para o sucesso profissional.
1.2 Objetivo
O objetivo desse trabalho é expor o desenvolvimento e implementação do método
de Runge Kuta de 4a ordem para solução de um modelo de vibração não-linear, discorrer
erros envolvidos, sua construção na linguagem de programação e interpretação fı́sica dos
resultados.
O propósito é otimizar o modelo matemático de forma que possa ser utilizado para
a solução de problemas reais de vibração não-lineares de materiais elasto-viscoplásticos
e ao fim do trabalho ter conhecimento suficientes de Python para realizar análises mais
complexas e desenvolver o código mais rápido
1.3 Metodologia
Estabelecido um problema simplificado de vibração linear em que seja possı́vel
realizar a sua solução analı́tica, será criado uma representação em espaço de estados a
ser resolvida a partir das equações que o regem. Assim, o método numérico de Runge-
3
Revisão Bibliográfica
Esse trabalho será focado os casos de vibrações livres, amortecidas, retilı́neas e discretas,
onde pode-se fazer diretas referências a casos do cotidiano, simplificadamente aplicadas.
4
5
Nota-se que se pode considerar não linearidades fı́sicas (ou materiais) ou geométri-
cas dos sistemas envolvidos. Do ponto de vista fı́sico, pode-se considerar não linearidades
constitutivas como comportamento elásticos não lineares, plasticidade ou outros fenôme-
nos correlatos. Do ponto de vista geométrico, podemos pensar em impactos ou grandes
deslocamentos. [7]
1
yi+1 = yi + (K1 + 2K2 + 2K3 + K4 ) (2.2)
6
Onde:
1 1 1 1
K1 = f (xi , yi )K2 = f (xi + h, yi K1 h)K3 = f (xi + h, K2 h)K4 = f (xi +h, K3 h) (2.3)
2 2 2 2
2.4 Python
Para este trabalho, a linguagem escolhida para se escrever e resolver o método
numérico foi a Python, criada e lançada por Guido Van Rosum em 1991. Essa linguagem
está se tornando cada vez mais comum na indústria 4.0 com o crescimento de novas áreas
que trabalham com grandes dados, ciência de dados e machine learning, além de ser
comumente utilizada para fins acadêmicos no ramo de engenharia.
Em resumo, Python é uma linguagem funcional, ou seja, faz uso principalmente
de funções matemáticas e o valor de retorno é o resultado das funções de entrada; In-
terpretada: significa que ela é executada por um interpretador para posteriormente ser
executada pelo processador; Imperativa: descreve as ações por meio de comandos que
variam o estado de um programa; Orientada para objetos (POO): contém dados na forma
de campo e códigos na forma de procedimentos; De alto nı́vel: significa ser próxima à lin-
guagem humana, o que permite ser facilmente aprendida e não requere conhecimento em
um nı́vel elevado sobre o processamento de computadores para masterizá-la; De tipagem
dinâmica: não exige declaração de dados pois são capazes testar e escolher as variáveis
durante a própria execução.
Os principais pontos para esse escolha são: (1) ter um gerenciamento de memória
automático o que a torna automatizadamente eficiente; (2) ser orientada a objetos, o que
9
facilita a programação; (3) vasta biblioteca de funções prontas e otimizadas que se pode
utilizar;(4) tipagem dinâmica, diferente da linguagem aprendida no curso e (4) grande
comunidade de usuários e fóruns de discussão, o que facilita muito no suporte a eventuais
problemas. Abaixo pode-se ver o fórum pt.stackoverflow.com onde usuário de diversas
linguagens se ajudam e discutem sobre sua utilização com o mundo. Uma das maiores
comunidades de usuários é em relação ao Python.
√ √
c 2 k c 2 k
c
− 2m t ( 2m ) −m t −( 2m ) −m t
x(t) = e D1 e + D2 e (3.1)
Na próxima sessão, o código será validado para um caso não linear, que possui uma
solução analı́tica conhecida. Haverá uma discussão sobre os erros envolvidos, sua otimi-
zação, e como será adaptado para a finalidade desejada, que é a resolução de um caso de
vibração não linear. Assim, também pode-se estudar a sua convergência. Diferentemente
de um caso linear, em que pode-se realizar a comparação entre os resultados numéricos e
analı́ticos, na maioria dos casos não lineares isso não é possı́vel de ser realizado.
Ra − Rn
Erro(%) = | | × 100% (3.3)
Ra
Onde Ra e Rn representam, respectivamente, os resultados analı́ticos e numéricos.
Assim, dado o código descrito em 3.1, e a solução analı́tica proposta em 3.2, pode-
mos ver a evolução da solução conforme a escolha do valor de dt.
13
Como se pode observar nos gráficos acima e mostrados nas tabelas, o método das
diferenças finitas Runge Kutta de 4a ordem torna-se preciso quanto menor for o intervalo
de tempo dt escolhido. Pode-se verificar isso através dos erros relativos nas tabelas. Além
disso, com o estudo feito baixo, rodou-se o mesmo código com o intuito de avaliar a a
influência da escolha do dt no tempo de processamento do programa. Assim, pode-se
tomar critérios para escolher um dt adequado futuramente para a resolução do código não
linear.
16
F = k(x − xp ) (3.5)
N
p F
ẋ = ; xp = (t = 0) = 0 (3.6)
c
N
F − Fy
1
p
ẋ = ; F = F y + C(ẋp ) N quandoF > F y (3.7)
c
Onde k, c e N são constantes positivas que caracterizam o amortecedor e xp re-
presenta sua deformação plástica. Para a resolução do código, a seguinte mudança de
variáveis deve ser realizada: z 1 = x, z 2 = ẋ, z 3 = xp , tomando assim, a notação vetorial
final em espaços de estados dessa resolução:
z˙1 f 1 (z, t) z2 0
k 0
ż = z˙2 ; f (z, t) = f 2 (z, t) = − m (z 1 − z 2 ) ; z = v (3.8)
k(z −z )
z˙3 f 3 (z, t) ( 1c 3 )N 0
Utilizando critérios de erro absoluto, baseados nos estudos anteriores para o caso linear,
levando em consideração conceitos como underflow explicados anteriormente na linguagem
escolhida podemos saber o número de passos exatos em que a condição do erro é satis-
feita, assim, descobrindo a quantidade de passos necessários para o programa representar
adequadamente o problema proposto.
Consegue-se mostrar de uma forma simples, que o dt escolhido, ainda influencia
em muito no resultado obtido para o caso linear, Como mostrado abaixo.
21
Este material foi escolhido devido a ampla aplicação de polı́meros dessa natureza
vem sendo cada vez mais comumente utilizado em toda a indústria. As condições de
contorno escolhidas para a simulação de impacto estão descritas a seguir:
Obtendo esse estudo da solução da equação 3.8, pode-se ir além e verificar o com-
portamento da aceleração no teste. Representado abaixo na figura 3.14, pode observar um
máximo de desaceleração de 1.2g. Levando em conta estudos que mostram que a partir
de 7g, já começa a ser maléfico para o ser humano, o material escolhido obteve um bom
resultado ao teste submetido.
até a sua total parada, e o efeito sofrido pelo material, isto é, a deformação plástica que
o mesmo foi submetido. Ambos também resultados da solução da equação 3.8
Conclusão
Bibliografia
Appendix
26
27