Sunteți pe pagina 1din 9

F809 - Instrumentao para o ensino - 2o. Sem.

2003
Coordenador: Prof. Jos Joaquin Lunazzi
Aluno: Omar Alves Ferreira RA 962998
Orientador: Eng. Pedro Miguel Raggio
Relatrio Final
Aplicativo para simulao de uma corda vibrante
Resumo
Este relatrio descreve o aplicativo "Corda Vibrante", que simula atravs de um programa de
computador, o comportamento de uma corda ao ser esticada e solta. O sistema "Corda Vibrante" foi
incorporado ao sistema FSICA, composto de outras simulaes desenvolvidas por alunos matriculados em
F809, em semestres anteriores.
Introduo
A corda vibrante um sistema muito importante para a fsica, j que seu comportamento guarda
grandes semelhanas com muitos outros. A equao que governa o fenmeno da corda vibrante a
chamada equao de onda, presente tambm no estudo de ondas eletromagnticas, ondas em fluidos e na
mecnica quntica. O programa apresentado aqui explora um caso particular da equao de onda: a
propagao de pulsos em uma corda com as extremidades fixas.
Importncia didtica
O aplicativo descrito por este documento procura dar ao usurio a possbilidade de interagir
amplamente com um um sistema digital que representa uma corda vibrante. Atravs de sua interface visual
simples, o usurio pode alterar livremente os parmetros do sistema e verificar quais as consequncias em
seu comportamento. O objetivo deste sistema dar ao usurio a possibilidade de explorar os conceitos
fsicos e matemticos envolvidos..
Ao se modificar a densidade e a tenso na corda, define-se qual ser a frequncia de vibrao da
mesma. Pode-se tambm modificar, atravs da interface, o amortecimento ao qual a corda estar sujeita
enquanto estiver vibrando. Outra utilidade deste aplicativo simular condies que seriam difceis (ou
impossveis) experimentalmente, como por exemplo, um meio que no oferea resistncia movimento da
corda.
Uma vez que a descrio do movimento de uma onda (pulsos) feita atravs de harmnicos,
exploramos tambm uma das aplicaes das sries de Fourier. Ao se definir o formato em que a corda estar
no instante inicial, ou seja a posio em que se encontrar cada um de seus elementos de massa, obtm-se
uma funo que representa o formato da corda. Esta funo deve ser expandida em srie de Fourier, de
modo a obter sua composio harmnica. A interface grfica permite ao usurio defina o formato inicial da
corda, imediatamente antes de ser solta e mostra um grfico da funo obtida atravs da expanso.
O aplicativo simula uma corda, mas pode ser utilizado para ilustrar o comportamento ondulatrio de
forma um pouco mais geral. Atravs deste sistema poderemos ver pulsos se deslocando atravs da corda e
explorar fenmenos como a reflexo e sobreposio de pulsos.
Para seu desenvolvimento foram utilizadas tecnologias baseadas em software livre. O sistema
operacional utilizado foi o Linux e a interface grfica foi feita com componentes da biblioteca GTK (Gimp
Toolkit). A linguagem de programao utilizada foi o C.
Alm disto, o sistema bastante leve e funciona muito bem em ambientes computacionais mais
modestos. Conforme foi constatado ao ser testado em um computador com processador pentium 5OOMhz.
Por serem softwares livres, podem adquiridos gratuitamente atravs da internet, so amplamente
documentados e tem o cdigo fonte disponvel para qualquer pessoa interessada. Este fator torna o custo de
utilizao deste software bastante atraente.
Descrio do sistema
O software Corda Vibrante foi desenvolvido em linguagem C e sua interface grfica baseada nos
recursos contidos nas bibliotecas GTK (Gimp Toolkit). O sistema operacional utilizado no desenvolvimento foi
o Red Hat Linux 9.0, mas com poucas modificaes poder funcionar em qualquer outro sistema operacional,
incluindo as variantes do MS Windows.
O que est sendo simulado
O aplicativo simula um sistema composto por uma corda homognea, com as 2 extremidades fixas.
As propriedades da corda (densidade e tenso) podem ser modificadas, bem como o fator de amortecimento
do meio.
Para a implementao do programa de computador, que descrevemos aqui, utilizamos uma soluo
particular da equao de onda, com as seguintes condies de contorno.
i) u(x=0,t) = 0
ii) u(x=l,t) = 0
iii) u(x,t=0) = f(x)
iv) (du/dt)(x,t=0) = g(x) = 0
onde u(x,t) a chamada soluo geral da equao de onda. As condies i) e ii) dizem, que as
extremidades da corda se mantero fixa. A condio iii) diz que antes de ser solta, a corda ter um formato
que pode ser descrito por uma funo de x (veremos mais adiante que esta funo definida graficamente
pelo usurio ao clicar na rea de simulao). A condo iv) diz respeito velocidade inicial, que neste caso
ser sempre zero.
A descrio matemtica do sistema simulado pode ser encontrada na bibliografia apresentada no
final deste relatrio.
Sobre o GTK
O GTK (Gimp Toolkit) uma biblioteca de funes para a criao de interfaces grficas. Fornece
elementos como janelas, botes, campos para entrada de dados, reas para desenho, etc. H tambm os
mecanismos para responder s aes do usurio relacionadas a tais elementos.
Apesar de ser uma biblioteca desenvolvida originalmente para ser utilizada com a linguagem C,
fornece um modelo de API (application programming interface) orientado a objetos, utilizando a noo de
classes e callbacks (apontadores para funes) para o tratamento de eventos. Encontram-se disponveis
APIs para outras linguagens, tais como Perl, Python, PHP, Pascal e vrias outras.
O GTK foi escrito inicialmente para servir como base para o pacote GIMP (GNU Image Manipulation
Program - programa grfico bastante conhecido por usurios de software livre), mas acabou se tornando
base para a crio de milhares de outros projetos de software.
O GTK um software livre, licenciado sob a LGPL (Lesser GNU Public Licence) e pode ser baixado e
utilizado livremente por desenvolvedores de outros softwares livres e at mesmo na crio de softwares
comerciais e no livres.
Estrutura
A estrutura do programa divida em mdulos e em grupos de funes, com o objetivo de facilitar o
entendimento de seu cdigo fonte, separarando, sempre que possvel, o cdigo relacionado lgica
(clculos) daquele destinado visualizao do usurio (interface grfica).
Basicamente a diviso feita como mostra a tabela abaixo.
Mdulo Ttulo Descrio
geral.c / geral.h funes de uso
geral
funes bsicas para execuo da simulao. Entre estas
incluem-se funes matemtica, como a que utilizada para
fazer a expanso da funo que representa o formato da
corda, em srie de Fourier.
interface.c interface grfica
para o usurio
rea que contm os elementos visuais que torna possvel a
interao do usurio com sistema simulado. Esses
elementos so campos para entrada de dados (spin-buttons)
e botes com funes especficas (exemplo: soltar a corda).
Mdulo Ttulo Descrio
evt_interface.c eventos
associados a
interface grafica
para o usurio
funes destinadas a responder a eventos associados a
interface, que tenham sido disparados pelo usurio, tais
como cliques do mouse em botes.
evt_corda.c eventos
associados ao
movimento da
corda
funes que definem o formato (posio inicial) da corda e
desenham a corda em um determinado instante.
defs.h definies gerais declarao de constantes e tipos de dados utilizados em
todo o restante do sistema
Como funciona
O GTK se baseia no mesmo esquema utilizado por diversos outros mecanismos de gerenciamento de
interfaces grficas. Os programas em GTK entram em um looping ao serem iniciados. Os elementos grficos
iniciais so criados e introduzidos na interface e este looping aguarda a ocorrncia de eventos.
Durante a modelagem de um aplicativo baseado em GTK, o(a) desenvolvedor(a) deve estabelecer
quais so as respostas a serem dadas pelo sistema durante a interao de seu usurio final com o mesmo.
Cada elemento grfico da interface est sujeito a um conjunto de eventos especfico. E cada evento, de cada
elemento grfico associado a um mecanismo manipulador de eventos, isto , uma funo (conhecida como
callback). Como exemplo, consideramos os botes presentes em uma interface grfica: o usurio espera que
ao clic-lo o aplicativo reaja de alguma forma.
Muitos eventos so disparados pelo usurio, mas nem todos. Alguns dos eventos so disparados pelo
prprio aplicativo ou ainda pelo sistema operacional em que est sendo executado. O mecanismo que
anima o desenho da corda, neste caso, um bom exemplo disso: a cada 30 milisegundos, o aplicativo
dispara um evento que faz com que uma funo atualize o desenho da corda.
Como utilizar
Ao ser iniciado pelo usurio o aplicativo abrir sua interface ao usurio atravs de uma janela, como a
mostrada na ilustrao abaixo. Nesta interface se destacam duas reas: a rea superior, em branco, onde
ser mostrada a corda em animao. Na figura, a corda a linha localizada no centro desta rea. A rea
abaixo desta contm os campos para entrada dos parmetros gerais da simulao e botes de controle.
Os parmetros para a simulao so inseridos na interface pelo usurio atravs de campos de
entrada de texto. Ao se iniciar o aplicativo, alguns valores so colocados como padro. Os parmetros que
devem ser fornecidos simulao atravs destes campos so os seguintes: densidade da corda (massa por
unidade de comprimento), tenso a que est sujeta, fator de amortecimento e nmero de harmnicos
que participaro da simulao da corda.
Alm dos campos introduzidos atravs da entrada de textos, o usurio deve determinar o formato
inicial da corda, ou seja, os pontos por onde a corda ser esticada e o quanto ser esticada. Ao fazer isso,
ser mostrado o formato adquirido pela corda, como na figura abaixo:
Ilustrao 1Viso geral da interface. Atravs dos campos
para entrada de textos, o usurio pode modificar o
parmetros bsicos da simulao (densidade e tenso da
corda e fator de amortecimento).
A corda poder ser puxada atravs de muitos pontos. Na figura abaixo adicionamos mais pontos.
Cada ponto adicionado com um clique no boto do mouse.
O formato adquirido pela corda, at este momento descrito atravs de uma funo linear. No entanto
para que possamos iniciar a simulao da evoluo do formato da corda ser necessrio obter os seus
Ilustrao 2ao se clicar na rea de simulao (em branco),
inclui-se mais um ponto de sustentao para a corda. Neste
caso a corda tem 1 ponto por onde est sendo sustentada.
No esto sendo contadas as extremidades.
harmnicos, ou seja, o aplicativo ir expandir a funo que representa o formato da corda em uma srie de
Fourier. Conforme vemos atravs da figura, h um campo por onde se introduz o nmero de harmnicos que
sero includos na srie. Podemos previsualizar a forma inicial da corda, se descrita atravs de harmnicos,
clicando o boto Expandir . Na figura abaixo, observa-se a corda esticada em um formato arbitrrio.
Na figura seguinte, vemos o que ocorre quando se expande a funo que representa a forma da corda
acima, somando-se os 5 primeiros harmnicos.
Abaixo com 15 harmnicos.
E finalmente com 35 harmnicos,
Observe que o formato da corda esticada fica cada vez mais parecido com o original a medida que
aumentamos o nmero de harmnicos. O sistema admite que se inclua at 500 harmnicos, no entanto,
quando maior for este nmero mais lenta sero os calculos.
At agora o que se simulou foi apenas o esticamento da corda. Pode-se dizer que at este momento a
corda ainda est presa. Para soltar a corda e iniciar sua animao, necessrio clicar no boto Iniciar .
A partir do momento em que isto ocorrer, ser iniciada a simulao da vibrao da corda. O sistema
este evento como o instante inicial (ou seja t=0).
Concluses
O GTK fornece um excelente ambiente para o desenvolvimento de simulaes envolvendo animao.
Possui recursos grficos muito poderosos, j foi portado para muitas plataformas e um software livre.
O princpio grfico utilizado na simulao apresentada aqui o mesmo utilizado na apresentao de
um filme, ou seja, a animao apresentada quadro-a-quadro, numa taxa suficientemente alta para que os
olhos humanos tenham a impresso de estarem vendo algo em movimento. A diferena que os quadros
aqui so desenhados dinamicamente, conforme os parmetros fornecidos pelo usurio.
Isto indica que muitos outros sistemas fsicos, que envolvam movimento podem ser simulados de
forma relativamente simples. Estas possveis simulaes podem permitir ao usurio um alto grau de
interatividade e possivelmente ajudar em seu aprendizado.
Referncias
GTK (Gimp Toolkit) - http://www.gimp.org
Corda Vibrante
Differential And Integral Calculus - N. Piskunov
Cp. XVIII - Equations of Mathematical Physics

S-ar putea să vă placă și