¿La colisión inelástica dice que la pelota rebota hacia ti cuando se lanza en ángulo sobre el suelo?

Creé una simulación de rebote usando exactamente la fórmula de Wikipedia . El comportamiento que observo no es lo que esperaría en dos casos:

  1. Cuando dos bolas golpean descentradas, actúan como si el impacto fuera de frente. representación de colisión descentrada
    Haga clic para la animación

  2. Cuando una pelota pequeña golpea una pelota grande (con gravedad), rebota de un lado a otro en arco, no alrededor de la pelota grande: animación .

¿Este comportamiento es consistente con la fórmula de la ecuación inelástica?

¿Es una simulación 2D o 3D?
Es simulación 2D.
ok, las cosas son más fáciles en 2D. Siga el procedimiento en mi respuesta. Si quieres fricción, se basa en esto.
Miré la página de Wikipedia y la demostración dice que es una colisión unidimensional, no dos. Echa otro vistazo.

Respuestas (2)

Para una simulación plana 2D con fricción cero, haga lo siguiente

Definiciones

  • Cada cuerpo tiene 3 grados de libertad. Estos son ( X 1 , y 1 , θ 1 ) y ( X 2 , y 2 , θ 2 ) definido en el centro de masa.
  • Cada cuerpo tiene masa y momento de inercia de masa. Estos son metro 1 , metro 2 y I z 1 , I z 2 .
  • El contacto está en el punto A con coordenadas ( X A , y A ) y con dirección normal desde el ángulo ψ (medido CCW desde +x).
  • El coeficiente de restitución es ϵ

Representación

  • La velocidad de cada cuerpo antes del impacto se define con un vector 3×1 (en coordenadas planas de tornillo en el origen)
    v 1 = ( X ˙ 1 + θ ˙ 1 y 1 y ˙ 1 θ ˙ 1 X 1 θ ˙ 1 ) v 2 = ( X ˙ 2 + θ ˙ 2 y 2 y ˙ 2 θ ˙ 2 X 2 θ ˙ 2 )
  • La dirección normal de contacto (fuerza) es

    norte = ( porque ψ pecado ψ X A pecado ψ y A porque ψ )
    Tenga en cuenta que la velocidad del cuerpo 1 en el punto de contacto, a lo largo de la normal de contacto se encuentra por norte v 1 = norte v 1 = ( X ˙ 1 + θ ˙ 1 ( y 1 y A ) ) porque ψ + ( y ˙ 1 θ ˙ 1 ( X 1 X A ) ) pecado ψ

  • La matriz de inercia inversa para cada cuerpo es

I 1 1 = | 1 metro 1 + y 1 2 I z 1 X 1 y 1 I z 1 y 1 I z 1 X 1 y 1 I z 1 1 metro 1 + X 1 2 I z 1 X 1 I z 1 y 1 I z 1 X 1 I z 1 1 I z 1 | I 2 1 = | 1 metro 2 + y 2 2 I z 2 X 2 y 2 I z 2 y 2 I z 2 X 2 y 2 I z 2 1 metro 2 + X 2 2 I z 2 X 2 I z 2 y 2 I z 2 X 2 I z 2 1 I z 2 |

Impacto elástico

  • La velocidad de impacto (escalar) es

    v i metro pag = norte ( v 2 v 1 )

  • La masa efectiva inversa (escalar) a lo largo del contacto de cada cuerpo es

    m 1 1 = norte I 1 1 norte m 2 1 = norte I 2 1 norte

  • El impulso que actúa sobre el cuerpo 2 es

    j = ( 1 + ϵ ) v i metro pag m 1 1 + m 2 1

  • El impacto j actuando junto norte cambia el movimiento de cada cuerpo por

    Δ v 1 = I 1 1 norte j Δ v 2 = I 2 1 norte j

  • Los cambios en el movimiento se transfieren de vuelta al centro de masa (cambio en) las velocidades Δ X ˙ 1 , Δ y ˙ 1 y cambio de giro Δ θ ˙ 1 resolviendo la siguiente definición

Δ v 1 = ( Δ X ˙ 1 + Δ θ ˙ 1 y 1 Δ y ˙ 1 Δ θ ˙ 1 X 1 Δ θ ˙ 1 ) Δ v 2 = ( Δ X ˙ 2 + Δ θ ˙ 2 y 2 Δ y ˙ 2 Δ θ ˙ 2 X 2 Δ θ ˙ 2 )

Paso de impacto

  • La velocidad final en el centro de masa se cambia de los valores de paso

X ˙ 1 X ˙ 1 + Δ X 1 ˙ X ˙ 2 X ˙ 2 + Δ X 2 ˙ y ˙ 1 y ˙ 1 + Δ y 1 ˙ y ˙ 2 y ˙ 2 + Δ y 2 ˙ θ ˙ 1 θ ˙ 1 + Δ θ 1 ˙ θ ˙ 2 θ ˙ 2 + Δ θ 2 ˙

¡Gracias por la respuesta! Sin embargo, tengo muchos problemas para convertir fórmulas diferenciales en código, o incluso para entenderlas por completo. Ya ni siquiera recuerdo qué significa esa sintaxis de flecha. Entiendo que no es tu culpa, pero significa que necesitaré algo de tiempo para procesar esta respuesta.
tratar el como una tarea. Dice asignar X ˙ + d a X ˙ . En cuanto a los puntos, son solo notación. No tienes que tomar realmente un derivado. En codigo X ˙ 1 sería una sola variable xp_1. Y Δ X ˙ 1 sería dxp_1por ejemplo. Necesitaría codificar en una matriz de 3 × 3 para pensar en la multiplicación de vectores de 3 × 1.
Nota: Hice una corrección en los resultados de los pasos de velocidad. Olvidé multiplicar con la matriz de inercia inversa para convertir el momento (impulso) en velocidad.

No. El impulso aún se conserva. En particular, se conserva la componente del impulso paralela al suelo. Entonces, si la pelota va hacia la derecha antes de tocar el suelo, seguirá yendo hacia la derecha después.

La fórmula a la que te refieres es para colisiones unidimensionales . Eso se aplica solo si los elementos están dispuestos de modo que realmente haya movimiento en una sola dimensión. Tus dos bolas se desviarían una de la otra porque golpean fuera del centro. Cada uno de ellos comenzaría a moverse parcialmente en la dirección vertical, con componentes iguales de impulso en la dirección vertical.

¿Puede sugerir la fórmula correcta entonces? ¿Tal que maneja adecuadamente la desviación y es consciente de 2D?
Conseguir el comportamiento totalmente correcto es muy complicado, porque también hay que preocuparse por el momento angular. Esto se ilustra de manera más llamativa con las superbolas: si lanzas una hacia adelante con un gran giro hacia atrás, puedes hacer que rebote hacia ti. Obviamente, esto se volverá muy complicado; obtendrás sistemas de ecuaciones bastante grandes y necesitarás muchas variables diferentes. No tengo tiempo para derivar todo esto para ti. Tal vez debería separar el movimiento en componentes paralelos y perpendiculares a la superficie de contacto e ignorar el momento angular.
Decidí posponer la rotación para más adelante, pero eso también me interesa.