SIMULAÇÃO COMPUTACIONAL COMO APOIO PARA OUTRAS DISCIPLINAS Lincoln C. Zamboni 1, Sergio V. D. Pamboukian 2, Edson A. R. Barros 3 Abstract Nowadays, programming is an essential tool for engineering students in the development of their projects. In the Escola de Engenharia of Universidade Presbiteriana Mackenzie, the students of the 2nd stage of the course develop multidisciplinary projects that use the programming as an auxiliary tool for solving problems of Calculus, Physics and other disciplines. The programming allows, for example, simulating situations that cannot be created in the reality for being impossible (visualization of an atom, i.e.) or very dangerous (experiments with radioactive materials, i.e.). In this work, we described a multidisciplinary project developed by our students that consists in the visualization of the movement of a solid sphere electrically charged, immersed in a rigid transparent box, containing or not a fluid, and submitted to an electric field generated by deflecting plates. The developed program allows visualizing the animation of the movement of the sphere in 3D. z placa defletora z = c, c>0 placa defletora y=0 placa defletora x=0 placa defletora y = b, b>0 placa defletora x = a, a>0 y placa defletora z=0 x FIGURA. 1 CAIXA FORMADA POR PLACAS DEFLETORAS. Index Terms Electric field, multidisciplinary projects, programming, simulation. INTRODUÇÃO Atualmente, a programação é uma ferramenta essencial para os estudantes de Engenharia no desenvolvimento de seus projetos. Na Escola de Engenharia da Universidade Presbiteriana Mackenzie, os alunos da 2ª etapa do curso desenvolvem projetos multidisciplinares que utilizam a programação como ferramenta auxiliar para a resolução de problemas de Cálculo, Física e outras disciplinas. A programação permite, por exemplo, simular situações que não podem ser criadas na realidade por serem impossíveis (visualização de um átomo, por exemplo) ou muito perigosas (experimentos com materiais radioativos, por exemplo). Neste trabalho, descrevemos um dos projetos multidisciplinares desenvolvidos por nossos alunos. ENUNCIADO SINTÉTICO DO PROJETO Este Projeto de Integração Multidisciplinar Acadêmico (PRIMA) desenvolvido pelas turmas do 2º semestre de Engenharia consiste na visualização do movimento de uma pequena bola maciça (esfera) eletricamente carregada, imersa em uma caixa transparente rígida (paralelepípedo) e submetida ao campo elétrico gerado pela diferença de potencial de três pares ortogonais de placas defletoras ilustradas na Figura 1. A caixa pode conter ou não um fluído (ar, água, óleo ou vácuo). O software desenvolvido deve permitir que a visualização seja feita a partir de diversos pontos de vista de um observador. PROJEÇÃO CILÍNDRICA ORTOGONAL Em [1], [2] e [3] é mostrado que a posição de um ponto no espaço pode ser definida de várias maneiras. A mais comum é com o uso de um sistema de coordenadas cartesianas, onde um ponto é posicionado através de três coordenadas reais (x’, y’, z’). Para visualizar um objeto no espaço (3D) na tela do computador (que é plana - 2D), pode-se projetar cada ponto (x’, y’, z’) do objeto no plano definido pela tela (x, y), usando, para tanto, uma projeção cônica ou cilíndrica. O equacionamento seguinte, de acordo com [4], [5] e [6], é formalizado para uma projeção cilíndrica ortogonal. Considerando apenas a rotação em torno do eixo z de um ângulo z, conforme ilustrado na Figura 2, tem-se que, a partir da igualdade vetorial x i y j z k x ' i ' y ' j ' 1 Lincoln César Zamboni, Escola de Engenharia, Universidade Presbiteriana Mackenzie, Rua da Consolação, 930, 01302-907, Consolação, São Paulo, SP, Brazil, lincoln.zamboni @mackenzie.com.br 2 Sergio Vicente Denser Pamboukian, Escola de Engenharia, Universidade Presbiteriana Mackenzie, Rua da Consolação, 930, 01302-907, Consolação, São Paulo, SP, Brazil, [email protected] 3 Edson de Almeida Rego Barros, Escola de Engenharia, Universidade Presbiteriana Mackenzie, Rua da Consolação, 930, 01302-907, Consolação, São Paulo, SP, Brazil, [email protected] z=z’ (entra no plano do papel) z (entra no plano do papel) x x projeção do objeto no plano xy z z’ z x’ y’ y FIGURA. 2 ROTAÇÃO EM TORNO DO EIXO Z. y z ' k ' (onde i, j, k, i’, j’ e k’ são os versores dos eixos x, y, z, x’, y’ e z’, respectivamente), multiplicando-se escalarmente ambos os membros por i (o produto escalar entre dois versores é o co-seno do ângulo entre eles), encontra-se: x x ' (i ' i) y ' ( j ' i) x ' cos z y ' cos( 2 z ) x ' cos z y ' sen z . Analogamente, y x'sen z y' cos z e z z ' . Matricialmente tem-se (1). x cos z y sen z z 0 sen z cos z 0 0 x ' 0 y ' 1 z ' (1) Utilizando (1) e considerando as três rotações e as três translações possíveis, obtém-se de forma matricial (2). 0 xt 1 y 0 cos x t zt 0 sen x translação 0 cos y sen x 0 cos x sen y rotação em torno de x (R yz ) cos z sen z 0 sen z cos z 0 y’ x’ FIGURA. 3 PROJEÇÃO CILÍNDRICA ORTOGONAL. Em (3) temos: cx cos x , cy cos y , cz cos z , sx sen x , sy sen y , sz sen z e a sx sy . LANÇAMENTO DE PROJÉTIL rotação em torno de z (R xy ) x y z objeto As Figuras 4 e 5 ilustram o lançamento de um projétil, considerando as ações do atrito (Fat é a força de atrito) e da gravidade (P é a força peso). Além do atrito e da gravidade, o projétil (esfera) também está sujeito à ação do campo elétrico (E) gerado pelas placas defletoras. A velocidade (v) e a posição do projétil (r) estão relacionadas de forma aproximada por: 0 sen y 1 0 0 cos y y Fat rotação em torno de y (R xz ) 0 x ' 0 y ' 1 z ' (3) (2) (k) (2) (1) rotação em torno de z (R xy ) (k+1) (0) Observando a Figura 3 e considerando apenas as translações nas direções dos eixos x e y e tomando a projeção no plano xy (despreza-se z), encontra-se (3). x xt (cy cz ) x ' (cy sz ) y ' sy z ' y yt (a cz cx sz ) x ' (a sz cx cz ) y ' ( sx cy ) z ' ... P ... z x (3) FIGURA. 4 TRAJETÓRIA DO PROJÉTIL. (n) (k) Fat k D vk vk 0 q Ex Fk D vk vk m g q Ey 0 q Ez vxk v k vyk vzk vxk 0 q Ex D vk vyk m g q Ey vzk 0 q Ez 0 P m g 0 D vk vxk q Ex D vk vyk m g q Ey D vk vzk q Ez (k+1) Em (6), D C FIGURA. 5 FORÇAS ATUANTES NO PROJÉTIL NO INSTANTE K. rxk 1 rxk vxk ryk 1 ryk vyk t rz k 1 rz k vzk Fk m a k a k Fk m A partir da aceleração calculamos uma nova velocidade (v): (4) O campo elétrico (E), gerado pelas placas defletoras, pode ser calculado por: Vax Vbx Ex Dx Vay Vby E Ey Dy Ez Vaz Vbz Dz 1 S , C é o coeficiente de forma 2 do projétil, é a densidade do fluído em que o projétil está imerso, S é a área da seção reta do projétil, m é a massa do projetil e q é a carga do projétil. Com o uso da Segunda Lei de Newton, encontramos a aceleração (a): rk 1 rk vk t rk 1 rk v k t rxk 1 rxk vxk t ry k 1 ry k vyk t rz k 1 rz k vzk t (6) (5) Em (5) Ex é o campo elétrico gerado pelas placas defletoras dispostas ao longo do eixo x, Vax e Vbx são as tensões existentes nas placas defletoras e Dx é a dimensão da caixa ao longo do eixo x. De maneira análoga são calculados os campos elétricos ao longo dos eixos y e z. A força resultante (F) é calculada a partir da soma da força de atrito, do peso e da força gerada pelo campo elétrico: v k 1 v k F a k v k 1 v k k t t m D vk vxk q Ex vxk 1 vxk vy vy 1 D v vy m g q Ey t k k k 1 k m D vk vzk q Ez vzk 1 vzk D vxk m vk vxk q Ex t vxk 1 D vy vy k 1 k m vk vyk g q Ey t (7) vzk 1 D vzk vk vzk q Ez t m A partir da nova velocidade (v), podemos calcular a nova posição do projétil (r) por (4). CHOQUE DE UM PROJÉTIL Em [4], [5] e [6] tem-se algumas considerações vetoriais no choque do projétil com uma superfície rígida ilustradas pela Figura 6. Ler(VBY) // tensão na placa B eixo Y (V) Ler(VAZ) // tensão na placa A eixo Z (V) Ler(VBZ) // tensão na placa B eixo Z (V) n (versor normal à superfície no ponto de colisão) superfície rígida v (velocidade do projétil antes do choque) w (velocidade do projétil depois do choque) u (reflexão do vetor v) FIGURA. 6 CHOQUE DE UM PROJÉTIL. O vetor u é calculado por u v 2 (v n) n e o vetor w é calculado por w u , onde 0 1 (se 0 , o choque será inelástico e se 1 , elástico perfeito). ALGORITMO A seguir podemos ver o algoritmo utilizado para o cálculo e desenho da trajetória do projétil obtido de (4) e (7). As unidades estão indicadas entre parênteses nos comentários e seguem o exposto em [7]. // **** INICIALIZAÇÃO **** Ler(T0) // tempo inicial (s) Ler(T) // período de observação (s) Ler(N) // quantidade de intervalos // (natural não nulo) Ler(DX) // dimensão x da caixa Ler(DY) // dimensão y da caixa Ler(DZ) // dimensão z da caixa Ler(RX0) // posição x inicial (m) Ler(RY0) // posição y inicial (m) Ler(RZ0) // posição z inicial (m) Ler(VX0) // velocidade x inicial (m/s) Ler(VY0) // velocidade y inicial (m/s) Ler(VZ0) // velocidade z inicial (m/s) Ler(G) // aceleração da gravidade(m/s2) Ler(M) // massa do projétil (kg) Ler(C) // coeficiente de forma // (adimensional) Ler(Ro) // densidade do fluido (kg/m3) Ler(S) // área da seção reta do // projétil (m2) Ler(Q) // carga da esfera (C) Ler(L) // coeficiente de elasticidade // (adimensional) Ler(VAX) // tensão na placa A eixo X (V) Ler(VBX) // tensão na placa B eixo X (V) Ler(VAY) // tensão na placa A eixo Y (V) // **** CÁLCULOS INICIAIS **** // Calcular o incremento de tempo (s) DT ← T/N // Calcular a constante DM (m-1) DM ← C/2*Ro*S/M // Calcular o módulo da velocidade // inicial (real positivo, m/s) ModV0 ← raizquadrada(VX0*VX0 + VY0*VY0 + VZ0*VZ0) // Calcular a variável DMModV0 (s-1) DMModV0 ← DM*ModV0 // Calcular campo elétrico EX ← (VAX-VBX)/DX EY ← (VAY-VBY)/DY EZ ← (VAZ-VBZ)/DZ // // // // // ------------------------------------Coloque aqui o código para movimentar a caneta para a posição inicial RX0, RY0 e RZ0 ------------------------------------- // **** CÁLCULO DA TRAJETÓRIA **** para K←0 até N-1 faça início // Calcular a nova posição RX0 ← RX0+VX0*DT RY0 ← RY0+VY0*DT RZ0 ← RZ0+VZ0*DT // // // // // // // // // // // // ----------------------------------Coloque aqui o código para verificar se houve choque da esfera contra uma das placas defletoras. Se houve, inverter a velocidade no sentido do choque aplicando o coeficiente de elasticidade ----------------------------------Coloque aqui o código para plotar a nova posição do objeto nas novas coordenadas RX0, RY0 e RZ0 ----------------------------------- // Calcular a nova velocidade VX0 ← VX0 – (DMModV0*VX0+EX*Q/M)*DT VY0 ← VY0 – (DMModV0*VY0+EY*Q/M+G)*DT VZ0 ← VZ0 - (DMModV0*VZ0+EZ*Q/M)*DT // Calcular o novo módulo da veloc. ModV0 ← raizquadrada(VX0*VX0 + VY0*VY0 + VZ0*VZ0) // Calcular o novo valor de DMModV0 DMModV0 ← DM*ModV0 fim SOFTWARE O software ilustrado na Figura 7 foi desenvolvido utilizando a linguagem Object Pascal e o ambiente de desenvolvimento Delphi da Borland. FIGURA. 7 JANELA DO SOFTWARE. A interface gráfica permite ao usuário configurar facilmente as características da simulação: tensão nas placas, carga da esfera, coeficiente de elasticidade utilizado no choque, dimensões da caixa, posição inicial da esfera, velocidade inicial da esfera, posição do observador, período de observação, etc. REFERÊNCIAS [1] ZAMBONI, L. C.; PAMBOUKIAN, S. V. D., “Matrizes de rotação a partir de Quatérnions e a criação de um componente C++ Builder para visualização de funções matemáticas no R 3”, Revista Mackenzie de Engenharia e Computação”, n. 4, 2003, pp. 75-106. [2] ANTON, H.; RORRES, C. “Álgebra Linear com aplicações”, Bookman, 2001. [3] WATT, A., “3D Computer Graphics”, Addison-Wesley, 2000. [4] BARROS, E. A. R.; GRINKRAUT, M. L.; PAMBOUKIAN, S. V. D.; ZAMBONI, L. C., “Delphi para Universitários” - 2ª Edição. São Paulo: Páginas & Letras, 2000. [5] BARROS, E. A. R.; PAMBOUKIAN, S. V. D.; ZAMBONI, L. C., “C++ Builder para Universitários” - 2ª Edição. São Paulo: Páginas & Letras, 2003. [6] ZAMBONI, L. C.; MONEZZI JÚNIOR, O. Cálculo Numérico para Universitários. São Paulo: Páginas & Letras, 2ª ed., 2002. [7] ROZEMBERG, I.M. “O Sistema Internacional de Unidades – SI”. 2ª. Edição. São Paulo. Instituto Mauá de Tecnologia, 2002.