Estoy tratando de integrar el movimiento de rotación de un cuerpo rígido (un conjunto de N masas puntuales) , pero mis resultados parecen totalmente erróneos. ¿Cuál de los siguientes pasos podría estar mal?
1) Asumiendo solo un marco inercial, podemos escribir:
2) En el marco inercial tenemos:
3) Como he asumido solo un marco inercial, el tensor de inercia será una función del tiempo y se actualizará en cada paso de tiempo .
dónde
He calculado la derivada de ser:
dónde
4) integro la ecuación diferencial usando un esquema simple de Runge-Kutta 4 como este:
dónde es el paso de tiempo de integración y
Comienzo la simulación inicializando el sistema con una velocidad angular . Después de eso, en cada paso de tiempo giro todo puntos del cuerpo rígido alrededor del vector actual por un ángulo usando una matriz de rotación calculada a través de la fórmula de Rodrigues
dónde es el matriz de identidad y
Después de la rotación/actualización de todos puntos, recalculo el tensor de inercia (y por lo tanto y ) y luego, mediante la ecuación Actualizo la velocidad angular . El ciclo continúa desde hasta algunos con paso . El problema es que, al principio, los resultados son correctos (el momento angular y la energía son constantes), pero después de un tiempo de iteraciones, los números crecen rápidamente demasiado y me lleno de NaN. Incluso para el caso más simple donde el par externo es , sucede lo mismo. Revisé si hay un problema con el determinante de (y por lo tanto no se puede invertir), pero el determinante sigue siendo distinto de cero. ¿Hay algo malo con alguna de las ecuaciones? ¿Debo realizar algún tipo de normalización a una cantidad durante el ciclo de tiempo? Debe haber una manera de simular la rotación del cuerpo rígido en el marco de inercia. Gracias.
No seguí tu derivación de . En la mayoría de los libros de texto se evalúa de la siguiente manera
con la salvedad añadida de que depende de la orientación del cuerpo. La orientación se puede rastrear utilizando ángulos de Euler, cuaterniones o simplemente la matriz de rotación de 3 × 3 . De cualquier manera, el resultado final es que el momento de masa del tensor de inercia debe calcularse en cada instante a partir del MMOI en el marco del cuerpo.
Al final tienes las ecuaciones de movimiento.
También es común expresar lo anterior en términos de momento angular en el siguiente algoritmo. A cada paso de integración se le da la matriz de rotación y vector de impulso
Nota : Al integrar la matriz de rotación usando Runge-Kutta el resultado de ya no es una matriz de rotación y la precisión de la solución se degradará rápidamente.
Entonces, en cambio, la gente a menudo usa cuaterniones que describen la rotación como
La derivada del cuaternión se define como
Hay dos formas de integrar el cuaternión
usar que requiere una nueva normalización después de cada subpaso.
Dado y vector
dónde es el ángulo de paso y es el eje de rotación del paso.
El cuaternión resultante aún representa rotaciones siempre y no se aleja como lo hacen otras formulaciones, pero es inestable para valores de rotación bajos, como puede ver en la en el denominador.
acechador
Rishabh jainista
eli
Miguel Gaitanas
Miguel Gaitanas
Miguel Gaitanas
eli
acechador
Miguel Gaitanas
eli
Rishabh jainista
Juan Alexiou