Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics...

27

Transcript of Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics...

Page 1: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad
Page 2: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Physics Engine Manual

Versión 1.1

Historial de Revisiones Fecha Versión Descripción Autor

07/06/2010 1.0 Versión inicial Sergio Miguel Martin

20/10/2010 1.1 Cambio de Formato Sergio Miguel Martin

Tabla de Contenidos

1. Introducción 3 1.1 Propósito 3 1.2 Alcance 3 1.3 Definiciones, Acrónimos, y Abreviaciones 3 1.4 Referencias 3

2. Método de diferenciales finitos para resolución de problemas complejos 4 2.1 Introducción a los problemas complejos 4 2.2 Limitaciones de los métodos con integrales 7 2.3 Método de diferenciales finitos. 11

3. ¿Cómo trabaja Icarus Physics Engine? 17 3.1 Operación básica de IPE 17 3.2 Impacto del error acumulado en la simulación 18

4. Fuerzas gravitatorias, eléctricas, y magnéticas 21 4.1 Fuerzas Gravitatorias 21 4.2 Fuerzas Eléctricas 22 4.3 Fuerzas Magnéticas 23 4.4 Operación de aplicar el diferencial de tiempo 23

5. Métodos de Optimización 24 5.1 Modo No-Optimizado 24 5.2 Método de Euler de n-Pasos 24 5.3 Método de Runge-Kutta 26

Page 3: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 3 de 27

Manual 1 - Funcionamiento Básico

1. Introducción

1.1 Propósito

El propósito de este documento es introducir al lector a la complejidad de los problemas de resolución continua, a la solución con diferenciales finitos, definir los algoritmos diferenciales básicos, y los procedimientos utilizados en Icarus Physics Engine, y su implementación de métodos de optimización numéricas.

1.2 Alcance

Este documento describe la primera aproximación matemática al campo de resolución de problemas físicos y da un panorama de la operación y algoritmos utilizados por Icarus Physics Engine al simular esquemas orientados a objetos bajo campos gravitatorios y electromagnéticos.

1.3 Definiciones, Acrónimos, y Abreviaciones

IPE – Icarus Physics Engine

1.4 Referencias

N/A

Page 4: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 4 de 27

2. Método de diferenciales finitos para resolución de problemas complejos

En Icarus Physics Engine se simularán escenarios de gravitación donde una n-cantidad de objetos interactuarán en tiempo real. En tanto sus posiciones varíen, también lo hará el campo gravitatorio y su influencia entre ellos. Entonces, ¿hay una 'formula mágica' que determine el estado de todo el sistema en un cierto momento en el futuro? Bueno, la física y matemáticas modernas cuentan con un vastísimo conocimiento práctico en solucionar problemas en cualquier tipo de sistemas. Pero la en su gran mayoría, se componen de herramientas específicas que están pensadas solo para versiones simplificadas de esos sistemas. Sistemas más complejos (como aquellos a ser simulados en Icarus) requerirán ser divididos en una discreta cantidad de sistemas mas simples que puedan ser resueltos con aquellas herramientas.

2.1 Introducción a los problemas complejos

Generalmente, cuando a un estudiante se le enseña sobre la fuerza de gravedad, se utilizan ejercicios simples descartan otros factores que no sean únicamente la aceleración constante de la gravedad por considerar que su influencia en el ejercicio es despreciable (y lo son: resistencia del aire, variación de la gravedad respecto a la altura). De esta manera, un sistema complejo real se convierte en un único sistema simple capaz de ser calculado usando formulas simples.

Esta metodología es muy útil para enseñar y aprender este fenómeno, pero a menudo se queda corto en frente de sistemas más complejos que (desafortunadamente) no pueden ser resueltos con la aplicación de un puñado de fórmulas.

Figura 1: Ejemplo simple de caída libre

Page 5: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 5 de 27

En el Diagrama 1 se muestra un ejercicio simple de caída libre. Mientras que una fuerza gravitatoria (mostrada en negro) 'tira hacia abajo' el objeto hacia el suelo, otros factores (mostrados en rojo) como la resistencia del aire y los mucho menos obvios efectos de la variación del campo gravitatorio se consideran despreciables.

Ahora, mientras el hecho de que su influencia en el desarrollo final del ejercicio es prácticamente despreciable es la única razón para descartar a la resistencia del aire, es tan solo la media verdad cuando se trata de la variación del campo gravitatorio. El segundo factor para no tener en cuenta la variación del campo gravitatorio es que la solución analítica es demasiado compleja y, en algunos casos, no tiene solución en absoluto.

La aceleración de la gravedad sobre cualquier cosa existente en el universo varía en la inversa del cuadrado de la distancia respecto a la masa atrayente. Así que, reviendo el Diagrama 1, podemos señalar que a la Altitud 1, la gravitación de la tierra mayor que en la Altitud 2 tanto como la diferencia entre incremento de distancia entre ellas lo permite. Esta diferencia de distancia (en el rango de los metros) tiene tan poco efecto en la aceleración que podría afectar demasiado poco el resultado de la duración de la caída. Tan poco que puede ser ignorado.

2/8.9 smg =

Formula 1: Asumimos a una gravedad constante durante todo el ejercicio

¿Pero esto es así para escalas mas largas de distancia? La respuesta es un rotundo no.

El modulo de las aceleraciones lineales para diferentes distancias (en orden creciente) desde la tierra se muestran en la siguiente tabla:

Donde Distancia al centro de la Tierra

Aceleración de la Gravedad

Superficie Terrestre (polos): 6356 km 9,8322 m/s2

Superficie Terrestre (ecuador):

6378 km 9,78 m/s2

Estación Espacial MIR 6656 km 8.18 m/s2

Termosfera 7356 km 7.32 m/s2

Órbita Geoestacionaria 35786 km 0,3113 m/s2

Órbita lunar promedio 384400 km 0,0027 m/s2

Tabla 1: Aceleración de la gravedad según la distancia de la Tierra.

Como se muestra en la Tabla 1. La influencia de la gravedad de la tierra sobre cuerpos cercanos varía considerablemente en la escala de los kilómetros. Más aún, a la distancia de diez mil kilómetros, se experimenta la mitad de la aceleración de la gravedad de la que se experimenta en la superficie terrestre.

Page 6: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 6 de 27

Entonces, imagine ahora una experiencia de caída libre hacia la tierra desde la distancia de la órbita lunar. Le tomaría muchísimo mas tocar la superficie terrestre (le recomendamos usar paracaídas, de todas maneras), de lo que podría calcular usando la simplificación de los ejercicios teóricos donde se deja la gravedad constante en 9.8m/s. Comenzaría a sentir una lenta aceleración (0.0027 m/s2) el cual se incrementaría rápidamente mientras pasa cerca de la estación espacial MIR (8.12 m/s2) y más aún cuando llegue cerca de la superficie (9.8 m/s2).

Al final de esta experiencia, habrá pasado mucho mas tiempo del 'esperado' debido a que la aceleración comenzó siendo mucho menor que la sufrida en la superficie.

Figura 2: Complejidad de las formulas para ejercicios que toman en cuenta la variación de la fuerza de la gravedad.

Más allá de eso, no hay nada que criticarle a nuestros profesores de física. Las fórmulas para caída libre (observar Figura 2) con cálculos que tengan cuenta la variación de la aceleración gravitatoria son extremadamente complejas.

Page 7: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 7 de 27

Si además agregamos otros factores de complejidad como otra dimensión (moviéndose hacia un costado como en el Caso 2), o agregando diferentes fuentes de gravedad (imagine un objeto en el medio entre la luna y la tierra siendo atraído por ambos como en el caso 3), no hay soluciones analíticas de un solo paso que puedan calcularlo.

Por suerte, hay una manera para llegar a la solución en un caso de tipo 1, 2,3 o más complejo, pero primero veremos porque la solución actual no puede hacerlo.

2.2 Limitaciones de los métodos con integrales

Cuando tratamos de resolver un problema de caída libre como el de la Figura 1 para calcular cuanto tiempo le tomará a un objeto cayendo desde (por ejemplo) 50

metros de altura hasta llegar al suelo, usamos las siguientes formulas bien conocidas:

Formula 2: Fórmulas para el calculo de caída libre estándar Donde:

Es la velocidad inicial (m/s).

Es la velocidad en función del tiempo (m/s).

Es la altura inicial (m).

Es la altura en función del tiempo (m). Es el tiempo transcurrido (s).

Es la aceleración (constante) producida por la gravedad (puesto en 9.81 m/s2).

Dado que la aceleración es tomada como constante durante todo la duración del ejercicio, la diferencia de tiempo no tiene efectos en este valor, y por lo tanto la hace independiente del paso del tiempo.

Page 8: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 8 de 27

Figura 3: La aceleración constante (g) del objeto durante todo el transcurso del ejercicio

De la primer fórmula, podemos ver que la velocidad final dado una cierta variación de tiempo (t) depende linealmente de la aceleración de la gravedad. En otras palabras, podemos definir que la velocidad como una variable que varía según la integral definida de la aceleración de la gravedad respecto al tiempo

En la Figura 3, podemos definir el módulo de la cantidad de variación de la velocidad como el área encerrada entre la aceleración y los tiempos de comienzo y fin del ejercicio.

Geométricamente podemos definir esto como el área del rectángulo donde la altura es la constante de la gravedad y el largo es el tiempo transcurrido. De esto podemos verificar que la variación de la velocidad obedece a la fórmula 2:

tgv

vtgtgv

∆=∆

+∆=∂= ∫*)2(

*)1( 0

Page 9: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 9 de 27

Esto prueba que, mientras el tiempo fluye de comienzo a fin, la velocidad va a tener que variar linealmente, frenando la subida del objeto, deteniéndose completamente en el punto mas alto, y acelerando su caída hacia el piso. Podemos verlo gráficamente en la Figura 4:

Figura 4: Velocidad del objeto a través de todo el ejercicio

En la Figura 4 podemos definir el módulo de la cantidad de variación de altura como el área encerrada por la variación lineal de la velocidad y los tiempos de comienzo/fin. Esto significa que la variación de la altura puede ser definida como la

integral de la velocidad respecto al tiempo.

Formula 3: La variación de la altitud depende linealmente de la velocidad

Pero como la velocidad no solo no es constante, sino que es linealmente dependiente del tiempo, podemos componer la cantidad de variación de velocidad de la ecuación (2) en el valor v de la ecuación (3) como la doble integral de la aceleración de la gravedad respecto al tiempo.

0*)3( htvtvh +∆=∂= ∫

( )

00

2

0

2)5(

)4(

htvtg

h

tvtgttgh

+∆+∆=

=∂+∆=∂∂= ∫∫ ∫

Page 10: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 10 de 27

Ahora podemos ver la evolución de la altitud en el siguiente gráfico en la Figura 5.

Figura 5: La altitud depende finalmente del cuadrado del tiempo

En este punto, teniendo la gravedad como constante, hemos podido resolver un simple ejercicio de caída libre usando métodos integrales.

Alguna variable cuyo valor se desconozca y quiera ser calculada debe ser despejada a algún lado de la ecuación (5) y los cálculos en el otro lado revelarán su valor exacto.

Pero este método tiene sus limitaciones. A medida que los problemas se hagan mas y mas complejos (Casos de 1 a 3), las herramientas matemáticas se hacen menos capaces de determinar una cantidad discreta de fórmulas que puedan resolver el sistema.

En el caso 1, la aceleración gravitatoria del objeto no es constante, depende de la inversa del cuadrado de la distancia a la tierra como en la siguiente fórmula (6).

Donde g es la aceleración de la gravedad, G es la constante de gravitación universal, Me es la masa total de la Tierra, y d es la distancia entre el objeto y la Tierra.

Asumiendo que la masa del objeto es tan pequeña que no afectará significativamente a la tierra, la posición en X de la tierra puede ser tomada como constante; de esta manera, la distancia (d) dependerá únicamente de la posición X del objeto:

objetotierra

e

xxd

d

MGg

−=

=

)7(

)6(2

Page 11: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 11 de 27

)()10(

)()9(

)()8(

objeto

objeto

xfg

dfg

xfd

=⇒

=

=

Ahora la gravedad no es mas una constante, depende de la posición del objeto! (formula 10). Debido a que la posición del objeto será afectado, al mismo tiempo, por la gravedad en cada punto, la solución ya no resulta tan fácil de obtener. La fuerza de gravedad sufrida por el objeto debe ser calculada tomando en cuenta la distancia a los objetos atrayentes, pero no hay manera de saber este valor a priori usando métodos integrales.

Entonces, la única alternativa para éste y otros casos más complejos es simplificarlos utilizando una aproximación discreta: el método de diferenciales finitos.

2.3 Método de diferenciales finitos.

En el contexto de un ejemplo unidimensional como el caso 1, examinemos qué le pasa a la aceleración de la gravedad a medida que el objeto se aproxima a la Tierra:

Page 12: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 12 de 27

Figura 6: Ejemplo Unidimensional

Ahora que la gravedad es variable y depende de la distancia, podemos determinar el poder del campo gravitatorio en cualquier punto del espacio basado en la distancia respecto a la masa atrayente.

Page 13: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 13 de 27

Figura 7: Líneas equipotenciales del campo gravitatorio de la Tierra

En la Figura 7, podemos ver que, en ciertos radios, el valor del campo gravitacional de la tierra se mantiene igual. En este ejemplo, todos los objetos en el radio R1 sufrirán la misma atracción gravitacional. Al mismo tiempo, cualquier objeto en el radio R1 sufrirá más atracción gravitacional que cualquier objeto situado sobre el radio R2. Al mismo tiempo, cualquier objeto localizado en el radio R2 sufrirá más atracción gravitacional que cualquier objeto en el radio R3.

Entonces, podemos afirmar que:

- En cualquier posición del espacio hay uno y solo un único valor del campo gravitatorio, (1)

- Este valor puede ser determinado usando una cantidad finita de cálculos (2)

Recordando el primer ejemplo donde la aceleración de la gravedad fue tomada como constante (Figura 1); el razonamiento era que la variación de la distancia (en el orden de los metros) no era suficientemente significativa como para modificar los resultados. Entonces, si pudiéramos usar la misma formula 1 para calcular el cambio de posición de un objeto muchas veces usando un diferencial de tiempo pequeño, recalculando el valor de la gravedad en cada nueva posición tomándola como constante, podríamos reducir casos como el 1, 2, 3, o mas complejos en una cantidad finita de problemas mas simples con un pequeño costo de pérdida de información.

Para comprender a qué nos referimos con pérdida de información y como se ve influenciada por el diferencial de tiempo, daremos una aproximación gráfica del concepto básico de la integración.

Page 14: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 14 de 27

Definamos arbitrariamente una función desconocida y = f(x) que depende de alguna variable x y encierra un área dada (At) entre su valor y y el eje y = 0, con limites laterales x = 0 y x = x'. (Recordando figuras 3 y 4 para saber porque determinar el área debajo de la función es importante para nuestra simulación).

Figura 8: Función arbitraria f(x).

Una primera aproximación para determinar el área encerrada por la función sería dibujar una serie de rectángulos basados en el calor de y (basado en la afirmación (2)) de la función en el que nos encontramos como la altura, y usando un diferencial x (∆x) constante como largo, como se muestra en la siguiente figura:

Page 15: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 15 de 27

Figura 9: Aproximación rectangular del área total usando diferenciales finitos

sobre x. Como se puede observar en la figura 9, podemos aproximarnos al área total debajo de la función usando un número finito de rectángulos. Las n-sumas del área de los rectángulos nos dará un estimado del área total que diferirá solamente en un error indeterminable que llamamos pérdida de información o error (E(i)).

)(*)()11(0

iEttifAtn

i

+∆∆=∑=

En la siguiente figura podemos observar que, si reducimos el diferencial de tiempo (∆x), la cantidad de pasos (n) se incrementará, y la pérdida de información se reducirá.

Page 16: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 16 de 27

Figura 10: La pérdida de información se reduce a la par con el diferencial de

tiempo Como consecuencia lógica, mientras que el diferencial de tiempo (∆x) se aproxima a cero, la cantidad de pasos tienden a infinito, y la pérdida de información se aproxima a cero también. Como podemos ver en la siguiente fórmula, esto resulta en definición de la integral definida de la función:

∑∫=∞→

=

=

∆==n

in

n

xx

x

xxfdxxfAt1

'

0

)(lim)()12(

Donde una hipotética pérdida de información (E) tendería a cero. Pero usar una cantidad infinita de pasos nos lleva a un nuevo callejón sin salida: una infinita cantidad de pasos requeriría un poder computacional infinito. Estamos de nuevo donde empezamos y seguimos sin una fórmula exacta para resolver el problema. Sin embargo, en el primer ejemplo de caída libre que vimos, asumimos que, por algunos metros, la diferencia de la aceleración de la gravedad era tan pequeña que la pérdida de información no afectaría al resultado de una manera significativa. Teniendo eso en mente, podemos resolver un problema complejo en donde nos falta una función que defina a g (pero podamos obtener su valor fácilmente en cualquier momento del tiempo), dividiendo toda la duración de toda la experiencia en diferenciales de tiempo muy pequeños, calculando una g constante para cubrir 'unos pocos metros' cuyo diferencial cause una pérdida de información tan pequeña que no afectara los resultados significativamente y re-calculando el valor de la gravedad en cada paso. Y es exactamente así como Icarus Physics Engine trabaja. Lea el siguiente capítulo para obtener mas detalles sobre esto.

Page 17: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 17 de 27

3. ¿Cómo trabaja Icarus Physics Engine?

3.1 Operación básica de IPE

Icarus Physics Engine (IPE), tal como cualquier otro motor físico de computadoras, usa el método de diferenciales finitos para simular el sistema completo en incrementos discretos de tiempo. IPE le permite al usuario asignar la duración del diferencial de tiempo para llevarlo a un balance entre márgenes de errores y rendimiento aceptables. La siguiente figura define cómo el usuario puede usar los diferenciales de tiempo como balance entre el error (pérdida de información) y el rendimiento (simulación más rápida).

Figura 11: El usuario puede definir el diferencial de tiempo que mejor se ajuste a

sus necesidades IPE re-evalúa todas las interacciones de las fuerzas sobre un objeto al comienzo de cada paso y obtiene una fuerza resultando como la suma vectorial de todas las otras fuerzas. Luego utiliza esta fuerza para calcular la aceleración vectorial y la toma como constante. Una vez terminado de calcular esta constante en todos los objetos del sistema, aplica la simple fórmula (5) utilizando la constante obtenida en vez de 'g'. La figura 12 ilustra las fuerzas resultantes (en rojo) en un estado dado:

Figura 12: Todas las fuerzas son recalculadas al comienzo de un paso

Como resultado de aplicar la formula (5) en cada objeto del sistema utilizando la aceleración calculada en el paso anterior como constante, el sistema pasa hacia el siguiente estado (con un tiempo igual al anterior mas una unidad del diferencial de tiempo) donde las posición y velocidad del objeto se aproximan mucho al caso analítico. (Recordar cuán cercano se puede aproximar a la función real utilizando una aproximación diferencial revisando la figura 10).

Page 18: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 18 de 27

En la siguiente figura, podemos ver como podemos aproximarnos a una órbita real usando una serie finita de pasos lineales (los diferenciales de tiempo se han exagerado para permitir al observador notar la forma línea de los avances de los pasos; todos los casos incluidos en los escenarios de Icarus tienen diferenciales que no son ni siquiera perceptibles):

Figura 13: Comparación de movimiento entre una órbita real y una simulada

3.2 Impacto del error acumulado en la simulación

Mientras que el error (o información perdida) en un paso puede ser considerado despreciable, su efecto permanece para el siguiente paso. Incluso pudiendo considerar que, en un paso, los efectos de la variación de la gravedad son despreciables, a medida que los pasos corren, sus efectos se acumulan y, en un momento futuro se terminará teniendo un error que afectará significativamente el resultado de la simulación. Revisando el Caso 1 de la Figura 2, tenemos un ejemplo simple de un objeto siendo atraído por otra masa (la cuál no es afectada por la masa insignificante del objeto, para simplificar el ejemplo). Vea la Figura 14:

Page 19: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 19 de 27

Figura 14: El error se acumula a medida que se suceden los pasos en el ejemplo

del Caso 1 La figura 14 muestra como el error debido a dejar la gravedad como constante se acumula paso a paso. Imagine que el error tolerado para este ejercicio fuera que la distancia entre la simulación y la medición 'real' no excediera el límite de los 500 kilómetros. Luego del primer paso, el error fue solo de 50 kilómetros, y era todavía tolerable para esta simulación. Luego del segundo paso, la combinación entre el error acumulado anterior y el error del paso actual hicieron que se incremente a 200 kilómetros, un valor todavía tolerable. Pero en el tercer paso, la acumulación del error produjo un error de posición de 1000 kilómetros y la simulación puede seguir siendo considerada correcta. Nuevamente, en este ejemplo visual, el error fue exagerado. La capacidad computacional moderna permite efectuar simulaciones relativamente rápidas con una tasa de error extremadamente baja. En algunos casos podría tomar una gran cantidad de pasos hasta que la acumulación de errores pudiera ser considerada significativa. Sin embargo, es importante notar que, dado que seguimos utilizando un método de diferenciales finitos, todas las simulaciones terminarán con un error significativo en alguna n-cantidad de pasos, independientemente del largo del diferencial de tiempo elegido.

Page 20: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 20 de 27

Hay, de todas maneras, muchas maneras de reducir considerablemente la acumulación de error utilizando métodos matemáticos como los de Euler y Runge-Kutta que están implementados en IPE y pueden ser seleccionados por el usuario. Estos métodos se explicaran luego en este manual. IPE provee una forma de estimar el valor absoluto del error, y luego estimar si la simulación ha sufrido una acumulación de error significativa. Debido a que estamos simulando un sistema cerrado, la energía debería conservarse durante toda la simulación. Se puede obtener la energía total del sistema como la suma de todas las energías potenciales y cinéticas al comienzo de la simulación (cuando sabemos que el error E es igual a cero). Entonces, a cada paso recalculamos la suma de todas esas energías comparándolas con la inicial. La magnitud de la diferencia nos dará una noción del error acumulado.

Figura 15: El área sombreada indica las posibles desviaciones de energía debido a

la acumulación del error Como puede ver en la Figura 15, un medida real esperaría mostrar una energía constante durante toda la experiencia, pero debido a que el error en la simulación tiende a acumularse, la energía total tiende a divergir. La divergencia de energía es entonces, un buen indicador de acumulación de error:

tTTtE −≈ 0)(

Donde E(t) es la acumulación de error al momento t, To es la energía total al comienzo de la simulación, y Tt es la energía total al momento t.

Page 21: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 21 de 27

4. Fuerzas gravitatorias, eléctricas, y magnéticas IPE es capaz de simular interacciones gravitatorias, eléctricas, y magnéticas entre los cuerpos simulados. Puede simular, incluso, un sistema en el que los tres tipos de fuerzas (En este programa, separamos deliberadamente la fuerza electromagnética en dos, por razones técnicas), al mismo tiempo si estos cuerpos tienen masa y carga y el usuario requiere que ambos afecten a la simulación. Las interacciones entre objetos, campos eléctricos/magnéticos uniformes y campos magnéticos inducidos por una corriente, pueden ser definidas como una lista de reglas, por ejemplo:

Objeto Es afectado por A través de la siguiente fuerza

Objeto 1 Objeto 2 Gravedad Objeto 2 Objeto 1 Gravedad Objeto 1 Campo Magnético 1 Magnetismo

De esta manera, el usuario puede tener el control total de las interacciones incluidas en la simulación. La manera en la que IPE simula cada fuerza es explicada en los siguientes párrafos:

4.1 Fuerzas Gravitatorias

IPE calcula la fuerza producida por la atracción entre cuerpos con masa en el espacio (x, y ,z) usando la Ley de Gravitación Universal de Newton.

Donde:

• F es la magnitud de la fuerza gravitatoria entre dos objetos con masa. • G es la constante universal de gravitación • m1 es la masa del primer objeto • m2 es la masa del segundo objeto • r es la distancia entre los dos objetos

*El valor por defecto de G es:

Y puede ser editado por el usuario. Como IPE utiliza vectores para la posición, velocidad, y aceleración, la fuerza de atracción producida por sus cálculos debe ser obtenida como una fuerza vectorial también, utilizando la siguiente fórmula:

Page 22: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 22 de 27

4.2 Fuerzas Eléctricas

IPE calcula la fuerza producida por la atracción/repulsión entre dos cuerpos con carga en el espacio (x, y, z) usando la ley de Coulomb.

Donde:

• F es la magnitud de la fuerza de atracción/repulsión entre dos cargas puntuales, • Ke es la constante de Coulomb • q1 es la carga de la primera partícula • q2 i es la carga de la segunda partícula • r es la distancia entre las dos cargas • es el vector unitaria apuntando desde la partícula q1 hacia la partícula q2.

*El valor por defecto de Ke es:

Y puede ser editado por el usuario. Como IPE utiliza vectores para la posición, velocidad, y aceleración, la fuerza de atracción producida por sus cálculos debe ser obtenida como una fuerza vectorial también, utilizando la siguiente fórmula:

Donde

• Eo es la constante eléctrica* *El valor por defecto de Eo es: 8.854187817...×10−12 A�s/(V�m) = 8.854187817...×10−12 F/m

Page 23: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 23 de 27

4.3 Fuerzas Magnéticas

IPE calcula la fuerza producida por un campo magnético (B) sobre una partícula con carga (q) en el espacio (x, y, z) usando la ecuación de fuerza de Lorentz.

donde:

• B es la intensidad vectorial del campo magnético • v es la velocidad vectorial de la partícula afectada. • q es la carga de la partícula.

Como IPE utiliza vectores para la posición, velocidad y aceleración, la fuerza resultante de sus cálculos debe ser obtenida como fuerza vectorial también, y la ecuación de Lorentz lo provee. Cabe notar que, a diferencia con las otras interacciones donde la dirección del vector unitario unía la posición de ambos objetos, el campo magnético produce una fuerza sobre la partícula en movimiento que es perpendicular a ambos la velocidad y la dirección del campo. Icarus es una forma excelente de aprender sobre este fenómeno debido a que es fácil de ver la perpendicularidad de la fuerza resultante en 3D.

4.4 Operación de aplicar el diferencial de tiempo

Una vez que todas las reglas de la lista de reglas de IPE fueron calculadas, la fuerza resultante (Fr) sobre cualquier objeto 'k' es la suma vectorial de todas las fuerzas gravitatorias/eléctricas/magnéticas individuales de todos los otros objetos/campos que interactuaron con este objeto 'k':

∑=

=n

iikk FF

0

rr

Habiendo obtenido la fuerza resultante sobre el objeto, lo único que queda es obtener la aceleración vectorial, dividiéndola por la masa del objeto:

i

ii m

Fa

rr =

Una vez obtenidas todas las aceleraciones vectoriales para todos los objetos en la simulación, IPE aplica la fórmula 5 (usando 'a' como g) para cada uno de ellos y aplica el diferencial de tiempo.

Page 24: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 24 de 27

5. Métodos de Optimización El IPE permite al usuario elegir entre tres modos de ejecución de la simulación con diferenciales finitos.

5.1 Modo No-Optimizado

Este es el modo más rápido y toma una sola unidad de procesamiento por cada diferencial. Si el usuario elije el modo no-optimizado, la simulación usará una aproximación rectangular como el visto en la figura 9. El área debajo de la función del campo será estimada utilizando el área de un rectángulo cuyo largo será el diferencial de tiempo y su alto será el valor de la función el punto inicial. Este modo produce mucha mas pérdida de información que los modos optimizados y está recomendado para simulaciones donde el rendimiento es mucho mas importante que la acumulación de errores.

Figura 16: Modo No-Optimizado

5.2 Método de Euler de n-Pasos

Éste es el modo mas explícito y simple para la integración numérica de ecuaciones diferenciales. La idea detrás de este métodos es que podemos usar 2 o más (n) unidades de cálculo por paso para aumentar la precisión con menor pérdida de información que la que obtendríamos reduciendo los pasos por unidad de tiempo (o dicho de otra manera, reduciendo el diferencial de tiempo). El efecto sobre el error unitario del método de Euler es exactamente igual al de reducir en n-pasos el diferencial de tiempo, pero su ventaja real es que evita la acumulación de error. (ver Figura 14). Podemos generalizar el caso de la figura 16 como una aproximación con el método de Euler de 1 paso. Ahora, en vez de seguir adelante con el siguiente diferencial, podemos aplicar otra unidad de cálculo llevandolo al método de euler de 2 pasos. Esto se realiza reevaluando

Page 25: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 25 de 27

la variable constante (en nuestro caso, la aceleración) en la mitad del diferencial de tiempo y recalculando la pendiente. Esto resultará en la siguiente figura:

Figura 17: Aproximación de Euler de 2 y 3 pasos

La idea detrás el método Euler de 2 pasos es que, la aceleración es re-evaluada en función de la posición que el objeto tendría a la mitad del diferencial del tiempo. Entonces, se realiza una corrección en la pendiente de la velocidad en ∆t/2. En el método de Euler de 3 pasos, la re-evaluación ocurre 2 veces, una al primer tercio y la otra al segundo tercio del diferencial de tiempo. Un buen balance entre cantidad de pasos del método de Euler por diferencial de tiempo y duración del diferencial del tiempo puede incrementar enormemente la precisión con muy bajo costo de rendimiento.

Page 26: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 26 de 27

5.3 Método de Runge-Kutta

Éste es el método más eficiente entre rendimiento/exactitud para la integración numérica de ecuaciones diferenciales. Se realizan 4 pasos cada uno utilizando los resultados obtenidos del anterior. Se utilizan siempre 4 unidades de cálculo por diferencial de tiempo. Definiendo un problema inicial como:

La solución aproximada se define como:

Donde:

De esta manera, el siguiente valor (yn+1) es determinado por el valor actual (yn) mas el producto de un intervalo (h) y una pendiente estimada. Esta pendiente se obtiene como el promedio de las siguientes pendientes: k1 es la pendiente al comienzo del intervalo. k2 es la pendiente a la mitad del intervalo, utilizando k1 para determinar el valor de y en el punto Tn + h/2 análogamente al método de Euler k3 es, de nuevo, la pendiente evaluada a la mitad del intervalo pero utilizando k2 para determinar el valor de y k4 es la pendiente al final del intervalo utilizando k3. Haciendo un promedio de las cuatro y asignando mas importancia a las dos del medio (k2 y k3), obtenemos una pendiente estimada por el método de Runge-Kutta:

La siguiente figura muestra gráficamente como el método de Runge-Kutta se aproxima a una pendiente muy precisa en cuatro pasos:

Page 27: Icarus Physics Engine - cseweb.ucsd.educseweb.ucsd.edu/~sergiom/icarus/downloads/Icarus Physics Engine... · es despreciable (y lo son: resistencia del aire, variación de la gravedad

Icarus Version: 1.0 IPE - Manual Fecha: 03/06/2010

Universidad Nacional de La Matanza 2010

Página 27 de 27

Figura 18: Método de Runge-Kutta