rp_breno - LMC

Propaganda
Escola Politécnica da Universidade de São Paulo
Departamento de Engenharia de Estruturas e Fundações
Laboratório de Mecânica Computacional
1o Relatório de Atividades
de Iniciação Científica
Título: “Interface Gráfica para o Estudo de Tensões e Deformações no
Ensino de Engenharia de Estruturas”
Bolsista: Breno Ayres Pereira Mendes
Orientador: Prof. Dr. Marcos A. M. Noronha
Processo: 00/02242-1
SUMÁRIO
1.PLANO INICIAL .......................................................................................................................................................... 2
2.RESUMO DAS ATIVIDADES ..................................................................................................................................... 2
2.1 ETAPA 1 ......................................................................................................................................................................... 2
2.2 ETAPAS 2 E 4 ................................................................................................................................................................. 4
3. RESULTADOS OBTIDOS ........................................................................................................................................ 11
3.1 DESENVOLVIMENTO DO PROGRAMA. ........................................................................................................................... 11
3.2 PROGRAMA IMPLEMENTADO EM JAVA ....................................................................................................................... 11
4. SITUAÇÃO ATUAL DO PROGRAMA .................................................................................................................. 15
5. PRÓXIMOS PASSOS ................................................................................................................................................ 15
BIBLIOGRAFIA ............................................................................................................................................................ 16
1
1.Plano Inicial
O projeto está dedicado ao desenvolvimento de uma ferramenta computacional que permite
a visualização de tensões e deformações de elementos infinitesimais bi- e tridimensionais, para o
ensino de engenharia de estruturas. A pesquisa visa o desenvolvimento e a utilização de recursos de
multimídia interativa como material complementar nas aulas de Resistência dos Materiais.
A visualização da transformação de tensões e deformações em um elemento infinitesimal
utilizando recursos de multimídia interativa permite uma apresentação muito mais eficiente do
assunto, principalmente devido ao efeito de animação e manipulação dos dados do problema através
do programa que está sendo desenvolvido neste trabalho.
Para o desenvolvimento do projeto estavam previstas as seguintes etapas:
Curso de programação de linguagem Java, curso do aplicativo do programa Flash e revisão
bibliográfica em livros e artigos sobre o assunto.
Implementação em Java para a transformação de tensões quando se dá uma rotação
arbitrária em um elemento bidimensional.
Implementação em Java para a transformação de deformações quando se dá uma rotação
arbitrária em um elemento bidimensional.
Implementação em Java para a transformação de tensões quando se dá uma rotação
arbitrária em um elemento tridimensional.
Implementação em Java para a transformação de deformações quando se dá uma rotação
arbitrária em um elemento tridimensional.
Verificação e correção da implementação computacional do programa. Adaptação do
material produzido ao projeto integrado de pesquisa.
O cronograma inicial previa, para o primeiro semestre, o término das etapas 1, 2 e o início
da etapa 3.
2.Resumo das Atividades
Para propósito de cumprimento do cronograma, nesta primeira parte do projeto foram
feitos: estudos bibliográficos, concepção do protótipo do programa e algumas implementações do
programa. Procurou-se respeitar ao máximo o cronograma do projeto, no entanto em algumas
ocasiões tornou-se necessário reordenar algumas etapas.
2.1 Etapa 1
Na primeira etapa do projeto foi realizado um curso de programação de linguagem Java no
Laboratório de Mecânica Computacional. Durante este estudo percebeu-se que seria necessário para
o desenvolvimento do trabalho um estudo aprofundado sobre Teoria de Modelagem Orientada a
Objetos, Biblioteca Java Swing e Biblioteca Java 3D.
Além da linguagem Java foi feito um estudo sobre o programa Flash pois, como consta na
etapa 6 do projeto, será feita uma adaptação do estudo realizado para o projeto de pesquisa
utilizando recursos deste programa.
2
Estudo da linguagem Java
Java é:

Uma linguagem de programação.

Um ambiente de desenvolvimento.

Um ambiente de aplicativos.
A linguagem Java resulta da busca por uma linguagem de programação que englobe todas
as características da linguagem C++, com a segurança de uma linguagem do tipo SmallTalk.
Características da linguagem Java:

Orientada a Objetos.

Ambiente Interpretado.

Permite mais de um thread de atividade (multi-tarefas).

Portável.
A arquitetura Java foi desenvolvida para atingir essas características através da
implementação de três recursos: Máquina Virtual Java, Coleta de Lixo e Segurança do
Código.
Tendo em vista que este projeto tem por principal objetivo o ensino, e que se pretende
disponibilizar na Internet o material aqui produzido, procuramos uma linguagem que não
dependesse da plataforma (p. ex. Windows, Linux, Solaris, etc.). A resposta foi a linguagem
Java que, devido a Máquina Virtual Java (uma máquina imaginária a qual é implementada
através de emulação em um software executado em uma máquina real), permite a utilização
do programa independentemente da plataforma.
A linguagem Java é fornecida em um pacote de programas denominado JDK. O JDK é um
ambiente de desenvolvimento para criação de aplicativos e applets. Neste pacote existem
ferramentas para desenvolvimento e teste de programas escritos na linguagem Java. A
versão utilizada neste projeto foi a jdk1.2.2.
Biblioteca Java Swing é:
Um novo pacote de ferramentas da Sun Microsystem para desenvolvimento de interfaces
gráficas com o usuário. Esta biblioteca foi desenvolvida para que os programadores
pudessem desenvolver grandes aplicativos com uma grande variedade de componentes
gráficos (janelas, menus, botões, fichários, campos de texto, etc.).
Biblioteca Java3D é:
Uma interface de programação usada para escrever aplicativos e applets gráficos
tridimensionais. Possibilita grande capacidade de manipulação e criação de geometrias
espaciais. Os ambientes gráficos tridimensionais criados com o Java3D são baseados em
uma estrutura de árvore acíclica que define a cena a ser desenhada.
Teoria de Modelagem Orientada a Objetos é:
Um conjunto de técnicas de programação baseado no conceito de classes e objetos. Uma
classe é um conjunto de dados e métodos para manipulação destes. Os dados podem ser
vistos como as propriedades do objeto, enquanto os métodos são os comportamentos do
objeto. Este tipo de programação permite o desenvolvimento modularizado de códigos
computacionais e a reutilização dos mesmos de forma bastante eficiente.
O Programa Flash é:
Uma ferramenta de autoria e edição de imagens vetoriais com animação, som e
interatividade. Possibilita a criação de efeitos avançados em arquivos bastantes pequenos,
devido às imagens vetoriais. Recentemente, este programa tem sido amplamente utilizado
no desenvolvimento de websites com animação.
3
2.2 Etapas 2 e 4
Tendo como objetivo uma melhor visualização do estado de tensão para um elemento
bidimensional optamos por implementar o programa para o caso 2D já com plataforma para
visualização 3D. Sendo assim, apenas a distribuição de tensão é característica do caso
bidimensional enquanto que a manipulação é toda feita tridimensionalmente. Para esta situação
acoplamos a etapa dois à etapa quatro, haja visto que a implementação para o caso 3D fica
praticamente feita, necessitando apenas de alguns ajustes no código. Devido à alteração do
cronograma as etapas 3,5 e 6 serão realizadas na segunda parte do trabalho.
Antes da realização da implementação, tornou-se imprescindível o estudo aprofundado dos
seguintes assuntos: estado de tensão e deformação dos elementos infinitesimais, Círculo de Morh e
Notação Tensorial.
Feitos os estudos citados acima foram implementadas as classes responsáveis pelo cálculo
das tensões e deformações principais e em um plano genérico.
Estudo do estado de tensão e deformação dos elementos
Estado de tensões
Como a coesão dos materiais depende de ações de forças de natureza eletromagnéticas ou
gravíficas que atraem os átomos mutuamente por meio de pares de força, tornou-se
necessário, para o estudo da resistência dos materiais, relacionar estas forças com ações
externas. No entanto, como os efeitos destas ações externas manifestam-se na forma de
forças distribuídas na superfície do material, é intuitivo que um dos parâmetros
força
fundamentais para estudar a resistência dos materiais seja a relação:  
,
área.em.que.atua
denominada de tensão. Tendo isto em vista, podemos estabelecer uma relação entre as
tensões que atuam em um elemento infinitesimal e a interação deste com o restante do
corpo.
As tensões atuantes sobre um elemento infinitesimal podem ser de dois tipos: tensão de
cisalhamento e tensão normal. Estas estão distribuídas nos três planos que definem o
elemento infinitesimal, são elas:  x , xy , xz ,  y , yx , yz ,  z , zx , zy . Outra maneira de
representar este mesmo estado de tensão seria na forma matricial de um tensor:
  x  xy  xz 


 xy  y  yz   tensor .


 xz  yz  z 
Outro aspecto importante no que diz respeito às tensões refere-se à direção do plano em
estudo. Uma situação particularmente importante é aquela em que não temos tensão de
cisalhamento em nenhum dos planos que determinam o elemento infinitesimal. Para esta
condição, damos o nome de estado principal de tensões. Outra situação importante ocorre
quando um dos planos tem tensão de cisalhamento igual a zero, sendo que neste caso
podemos obter as tensões principais para o caso plano e posteriormente obter o estado de
tensão principal para o caso 3D.
Estado de deformações:
Como já foi dito, as tensões que atuam em determinado elemento infinitesimal em um dado
plano podem ser sempre decompostas em normal e de cisalhamento que possuem efeito
bastantes diferentes no elemento. A componente normal provoca afastamento relativo entre
duas faces opostas do elemento, ao passo que a componente de cisalhamento provoca
escorregamento entre elas.
4
Círculo de Mohr:
Dado um elemento infinitesimal e seu estado de tensão para o caso plano, uma boa maneira
de se obter sua tensões principais e as tensões em uma direção genérica é através do Círculo
de Mohr. Este último conceito parte do princípio que do equilíbrio de um elemento
infinitesimal obtemos equações que parametrizam uma circunferência. Isso que dizer que se
adotarmos um sistema de eixos coordenados e marcarmos o ponto M de abscissa  x e
ordenada  xy para qualquer valor do parâmetro  , vamos sempre obter um ponto que se
encontra em uma circunferência.
Para o caso tridimensional, para que seja viável o uso do Círculo de Mohr, é necessário que
o elemento se encontre no estado de tensão principal ou que pelo menos um dos planos do
elemento infinitesimal não possua tensão de cisalhamento.
Quanto às deformações, como as equações para a transformação das deformações planas
tem analogia formal com as equações de transformação no estado plano de tensões,
podemos estender o uso do Círculo de Mohr para análise das deformações planas. Sendo
conhecidas as componentes de deformação  x ,  y ,  xy podemos obter as deformações
normais e de cisalhamento máximas e mínimas.
As mesmas considerações feitas para o caso 3D do estado de tensões devem ser levadas em
conta para as deformações.
Notação Tensorial:
Um modo para representação mais imediata do estado de tensão e deformação é através do
conceito de tensores. A vantagem da utilização dos tensores em detrimento ao Círculo de
Morh é permitir operações mais automáticas independente do caso em que os planos em
estudo são os principais ou não. Para o caso 3D isto é de grande importância, pois permite a
obtenção dos planos principais através do cálculo dos auto-valores do tensor. Outra
vantagem se deve ao fato de que para obter as tensões ou deformações em um plano
genérico basta que se pré-multiplique o tensor pela matriz de rotação e pós-multiplique o
resultado pela transposta da matriz de rotação, como indicado a seguir:
[Tensor ( x , y , z )]  [ R].[T ].[ R]T ,
onde a matriz de rotação [R] é dada pelo produto [ R]  [ Rz ].[ Ry ].[ Rx ] , sendo que cada
termo deste produto representa a rotação em torno de um eixo específico, dado por:
cos( z )  sen( z ) 0
[ Rz ]  sen( z ) cos( z ) 0
 0
0
1
 cos( y ) 0 sen( y ) 


[ Ry ]  
0
1
0 
 sen( y ) 0 cos( y )


0
0
1


[ Rx ]  0 cos( x )  sen( x )
0 sen( x ) cos( x ) 
5
Programa implementado para calculo das tensões e deformações:
O cálculo de transformação de tensões e deformações utilizando notação tensorial foi
implementado na classe Tensor. Cabe aqui ressaltar que devido ao fato da linguagem Java
ser Orientada a Objetos esta classe será utilizada diretamente no programa gráfico. Os
resultados apresentados a seguir (baseados em exercícios de livros de Resistência dos
Materiais) ilustram a utilização de um objeto desta classe.
c:\jdk1.2.2\bin\java.exe
Principal
Entre as tensões:
Em x:
100
Em y:
60
Em xy:
48
(1) Entrar o Ângulo:
(2)Obter Angulos Máximos:
(3) Sair
Digite sua opção:
2
a00:132.0
a01:-7.105427357601002E-15
a10:-5.329070518200751E-15
a11:28.0
angulo P 33.69006752597979
a00:80.0
a01:52.0
a10:51.99999999999999
a11:79.99999999999999
angulo T -11.309932474020213
(1) Entrar o Ângulo:
(2)Obter Angulos Máximos:
(3): notar
Sairque a resposta está representada sugerindo um tensor.
Obs.
Digite sua opção:
1
Entre o angulo:
6
Protótipo do programa
Para implementação do programa foi necessário realizar vários modelos. Estes modelos
tinham por objetivos simular a apresentação, interação com o usuário e gerar parâmetros
para a estruturação do código (diagrama de classes). O modelo que se apresentou mais
viável é o que está exposto a seguir:
7
8
Obs.: Apesar de ser este o modelo que está sendo seguido, o mesmo pode sofrer alguma
modificação no decorrer do projeto.
9
Projeto de classes
Com um modelo estabelecido para o protótipo foi possível a elaboração do diagrama de
classes. O diagrama de classes permite que se conheça o programa antes de construí-lo.
Como o modelo omite os detalhes não essenciais, sua manipulação é mais fácil do que a da
entidade original. Porém, justamente por se tratar de um modelo, o diagrama de classes é
passível de modificações no decorrer do projeto.
Segue o diagrama de classes:
T
Tensor
Strain
Inf Element
Stress
TCanvas
Axis
Arrow
Prism
Cutter
Paralelogram
Cube
TShapes
Obs.: Este era o projeto de classes logo após adotado o modelo. No entanto houveram
algumas modificações durante o desenvolvimento do programa.
Descrição das classes:
 T : classe principal, gerencia as demais classes e monta a interface gráfica com o usuário.
 TCanvas: tem por finalidade montar a árvore necessária ao Java3D para visualização da
cena.
 TShapes: responsável pelas transformações e atributos das formas geométricas.
 Cube, Prism, Cutter, Arrow, Paralelogram e Axis representam as formas básicas,
contendo as coordenadas para a modelagem destas. Com exceção da classe Axis, herdam
os atributos da classe TShape.
 InfElement: faz uso das classes Cube, Prism, Cutter, Axis e Tensor. Tem por finalidade
montar o elemento infinitesimal.
 Stress: estende a classe InfElement e faz uso da classe Arrow. É responsável pela
aplicação e manipulação de um estado de tensões em um elemento infinitesimal.
 Tensor: classe implementada com a finalidade de execução dos cálculos relativos a
estados de tensão e deformação.
 Strain: classe responsável pelas deformações do elemento infinitesimal. Estende a classe
InfElement e faz uso da classe Paralelogram.
10
3. Resultados Obtidos
3.1 Desenvolvimento do Programa.
Como dito anteriormente, o projeto do diagramas de classe poderia sofrer alguma
modificação no decorrer da programação. Foi justamente isto que aconteceu, haja visto que
algumas classes tornaram-se dispensáveis e outras tiveram que ser criadas para possibilitar o melhor
funcionamento do programa. Outro fator que influenciou esta modificação na estrutura do programa
foi a existência de muitas ferramentas disponíveis no pacote Java3D. O diagrama de classes do
protótipo desenvolvido até agora está exposto a seguir:
T
TInfElemBehavior
Tensor
Stress
Inf Element
Twindow
Axis
Arrow
Cube
TAtrib
TShapes
Obs. : O diagrama aqui exposto não leva em conta as classes pertencentes às bibliotecas
Java e Java3D. Como se pode notar, este diagrama foi acrescido de mais três classes.
São elas: TInfElemBehavior (comportamento do elemento infinitesimal), TAttrib
(encapsulamento de atributos) e Twindow (janela para entrada dos valores das
tensões). As classes que estão presentes no diagrama inicial mas não estão neste
diagrama ainda não foram implementadas (sua implementação será feita com o
decorrer do projeto, nas próximas etapas).
3.2 Programa implementado em JAVA
Esta implementação teve por principal diretriz seguir ao máximo o modelo do protótipo do
programa apresentado no item 2.2. A seguir, são apresentadas figuras obtidas durante o
funcionamento do programa.
11
Visualização do elemento infinitesimal.
Possibilidade de rotação em diferentes ângulos através de interação com o mouse.
12
Seleção de uma face para seleção da direção da tensão a ser aplicada.
Alteração do valor da tensão em uma dada direção(na figura, tensão normal).
13
Elemento rotacionado no espaço em um ângulo arbitrário.
Elemento infinitesimal após entrada dos valores das tensões.
14
4. Situação Atual do Programa
Como já foi dito anteriormente, este projeto se encontra nas etapas 2 e 4 .
Vale ser ressaltado que o desenvolvimento do programa está condicionado ao estudo da
Biblioteca Java3D. Esta Biblioteca é muito extensa e embora apresente a vantagem de oferecer uma
grande variedade de código já pronto para ser utilizado, também apresenta a dificuldade de
utilização e aprendizado da mesma devido à existência de pouco material de consulta. Por muitas
vezes avanços no desenvolvimento do código implicaram em reformulação de algumas classes e
reestudo da Biblioteca Java3D. No entanto, como pode ser notado nos exemplos, o programa
implementado se encontra em boas condições de interatividade com o usuário, permitindo que o
mesmo realize:
 Rotação através do mouse.
 Seleção das faces.
 Seleção dos eixos para determinação da componente de tensão a ser modificada.
 Janela para entrada dos valores das tensões.
5. Próximos passos
Como diretriz do projeto procuraremos seguir o cronograma. Isto implica em finalização
das etapas 2 e 4 e desenvolvimento das etapas 3, 5 e 6, respectivamente.
Para a finalização das etapas 2 e 4 os próximos passos serão:
 Reconstrução do elemento infinitesimal a partir dos valores e direções entrados pelo
usuário.
 Implementação da ferramenta de corte para determinação das componentes de tensão
em uma nova direção.
 Reestruturação da cena (visualização independente dos prismas e do elemento
resultantes do corte).
 Círculo de Mohr.
 Extensão para o caso tridimensional.
O desenvolvimento das etapas 3 e 5 será realizado de forma similar ao procedimento
adotado para as etapas 2 e 4, sendo consideradas as modificações necessárias para o estado
de deformação.
Na etapa 6 será feita a revisão do material produzido (correção de erros no programa,
realização de testes de uso, geração de applets) e adaptação para o projeto integrado (website
utilizando textos, animações desenvolvidas em Flash em conjunto com os applets).
15
Bibliografia

















Java in a Nutshell , D. Flanagan, O’Reilly & Assoc.,USA, 1997.
Java Swing, R. Eckstein, M. Loy and D. Wood, O’Reilly & Assoc., USA, 1998.
The Java 3D API Specification, Second Edition, H. Sowizral, K. Rushforth, M. Deering,
Addison-Wesley, USA, 2000.
Tutorial: "A Linguagem de Programação Java - Orientação a Objetos”, André Augusto Cesta
(Orientadora: Profa Dra Cecília Mary Fischer Rubira), Instituto de Computação da Unicamp,
agosto de 1996.
Curso de Java do LMC: http://www.lmc.ep.usp.br/people/gguello/cursodejava/
Tutorial Java – SUN
The Java Tutorial!, Object-Oriented Programming for the Internet, Campione Mary, Walrath
Kathy, Versão OnLine em HTML http://java.sun.com/docs/books/tutorial/index.html
Java Web Site http://java.sun.com
Introdução à Resistência dos Materiais, Octávio Gaspar Ricardo, Editora da Universidade de
Campinas
Resistência dos Materiais, Ferdinand P. Beer, E. Russell Johnston, JR., MAKRON Books, 3ª
Edição.
ELASTICITY, Pei Chi Chou, Nicholas J. Pagano, Dover Publications, Inc., New York
Modelagem e Projetos Baseados em Objetos, James Rumbaugh, Michael Blaha, William
Premerlani, Frederick Eddy, William Lorensen, Editora Campus, 6º Reimpressão
Flash 4 para Windows e Macintosh, Katherine Ulrich, Editora Campus, Rio de Janeiro, 1999
Flash 4 Using Flash, Peter Fenczik, Dave Jacowitz, John Lancaster, Ben Melnick, Michelle
Sudduth, Macromedia, Inc., San Francisco, CA, 1999
Flash 4 segredos action Scripts e integração com ASP PERL(CGI), Jung Moo Kim, Editora
Érica
Flash 4 Magic, David. J. Embebton, J Scott Hamlin, New Riders
Mecânica dos Sólidos vol 1, Timoshenko, Gere, Livros Tecnicos e Científicos Editora.
_______________________________
Bolsista: Breno Ayres Pereira Mendes
____________________________________
Orientador: Prof. Dr. Marcos A. M. Noronha
16
Download