¿Qué hace que la velocidad de un automóvil siga la dirección de las ruedas delanteras?

Estoy tratando de simular un automóvil con modelos físicos correctos. En este ejemplo, dejamos que el automóvil tenga una velocidad constante y no hay fuerzas (fricción y arrastre) para reducir la velocidad.

Aquí hay un video que muestra mi problema. Cuando salgo de la curva girando la rueda delantera en línea recta, la velocidad del automóvil no me sigue. Vídeo: https://vid.me/XrSJ . La velocidad del carro se muestra con una flecha azul, la fuerza centrípeta con una verde y la aceleración con una flecha roja.

Por lo tanto, a la simulación le falta algo que haría que la dirección de la velocidad siguiera la dirección de la rueda delantera a medida que la rueda delantera se endereza. ¿Qué es esta pieza que falta, de dónde viene y cómo se calcula?

ACTUALIZAR

La siguiente imagen ilustra cómo calculo las fuerzas que actúan sobre el automóvil. El automóvil acaba de girar a la izquierda, pero su rueda delantera giró instantáneamente a la derecha. Es por eso que las ruedas traseras y delanteras tienen diferentes puntos de centro de curva.

El punto de la curva de la rueda trasera siempre se calcula en relación con la velocidad del automóvil (tenga en cuenta los 90 grados entre la velocidad del automóvil y el radio hasta el punto de la curva. No estoy seguro si debe calcularse en relación con la velocidad de la rueda delantera).

ingrese la descripción de la imagen aquí

"la velocidad no sigue esta transición". ¿Qué sucede en su lugar? El automóvil tiene un momento angular al dar vueltas en círculo: cuando endereza las ruedas, debe evitar que gire. ¿El problema es que el auto nunca termina yendo derecho en tu simulación? ¿Qué le permite girar cuando las ruedas están rectas? Tal vez puedas aclarar...
@Floris Si cambiara las ruedas de 45 grados a 0, ya no habría fuerzas actuando sobre el automóvil, y el automóvil simplemente se deslizaría en la misma dirección que cuando iba en círculo, ya que hay no hay fuerzas que hagan que la velocidad cambie de dirección a medida que las ruedas giran de nuevo a 0. Me doy cuenta de que a mi simulación le falta algo, pero no estoy seguro de qué. Usted dice que tengo que evitar que gire, ¿qué es lo que impide que el automóvil gire cuando las ruedas vuelven a 0 grados?
@Floris Para responder a su pregunta "¿Qué le permite girar cuando las ruedas están rectas?" Ese es el hecho de que el automóvil ESTABA girando antes de que las ruedas giraran nuevamente a 0 grados. Y no sé lo que está involucrado en detener el giro. Pensé que la fuerza centrípeta lo resolvería todo.
Pero "deslizarse en la misma dirección en la que iba" es el comportamiento correcto, ¿no? Tal vez necesite agregar un diagrama a su pregunta: qué trayectoria tiene el automóvil en su simulación; y lo que crees que debería tener...
Un automóvil que circula en un círculo con un movimiento uniforme (presuntamente), experimenta una fuerza constante que apunta exactamente hacia el centro de este círculo. El automóvil debe estar causando esta fuerza al impulsar las ruedas. Que el automóvil esté a 45 grados y permanezca en movimiento uniforme sugiere que, a pesar de esta orientación, en la dirección paralela al movimiento del automóvil hay una fuerza neta de 0. La clave aquí es la fricción: las ruedas la necesitan para empujar "hacia" el girar y actúa contra el movimiento perpendicular del automóvil.
@Floris Aquí hay un video que hice que muestra el problema: vid.me/XrSJ
¡@lawls eso lo aclara mucho! El problema es que su simulación no "ve" que una rueda rodante ideal no tiene resistencia contra el movimiento en la dirección de rodadura, pero sí resiste el deslizamiento lateral. A medida que la rueda se endereza, debe haber un par en el automóvil debido al movimiento lateral de las ruedas. Intentaré redactar una respuesta cuando esté cerca de una computadora.
En el mejor de los casos puedes simular un triciclo. Para acercarse al realismo de un automóvil, hay muchos más factores que debe considerar.

Respuestas (4)

Hay varias cosas interesantes que suceden cuando un automóvil gira.

Primero, tomemos el diagrama simple de dos ruedas delanteras giradas 45 °:

ingrese la descripción de la imagen aquí

Como puede ver, a la llanta superior le gustaría que el auto diera la vuelta al punto C 1 , pero el neumático de abajo (en el mismo ángulo) quiere dar la vuelta C 2 . Esto significa que, en realidad, ambos neumáticos experimentarán algún deslizamiento lateral. En los automóviles comunes, este problema normalmente se resuelve con algo llamado geometría de dirección de Ackermann , que hace que las ruedas giren en una cantidad ligeramente diferente, por lo que ambas "quieren" el mismo centro de rotación; esto significa que, en realidad, la rueda interior gira un poco más bruscamente que la rueda exterior:

ingrese la descripción de la imagen aquí

Esto es un poco simplificado, pero espero que se dé cuenta de que, en general, las ruedas no deben apuntar en la misma dirección cuando gira (de hecho, por razones de estabilidad, no apuntan en la misma dirección cuando conduce en línea recta, cualquiera de los dos: esto es algo que se llama puntera y necesita ajustarse de vez en cuando cuando realiza una alineación de las ruedas en su automóvil).


Ahora veamos las fuerzas que actúan sobre las ruedas.

Para simplificar las cosas, voy a dibujar solo dos ruedas como hiciste en tu simulación. Vemos que la rueda interior está haciendo un giro más cerrado que la rueda exterior; la fuerza neta sobre el automóvil debe ser tal que el centro de masa C hace un circulo de radio R sobre el punto PAG :

ingrese la descripción de la imagen aquí

Ahora supongamos inicialmente que las ruedas solo tienen fricción lateral: es decir, ruedan perfectamente y la fuerza sobre ellas es perpendicular a la dirección en la que apuntan. La fuerza resultante debe estar centrada en el centro de masa y apuntar al centro de rotación. En otras palabras, ¿podemos resolver para F 1 y F 2 ? Extendiendo las fuerzas F 1 y F 2 a lo largo de su dirección, obtenemos el siguiente diagrama y vemos que hay una relación entre F 1 y F 2 :

ingrese la descripción de la imagen aquí

Ahora, si la rueda delantera cambiara la dirección en la que apunta, la cantidad y la dirección de la fuerza que proporciona cambiarán. Pero hasta que el automóvil cambie su camino, la fuerza en la parte trasera ( F 1 ) no cambia.

Lo que tienes que hacer es esto.

Cambiando el ángulo de las ruedas delanteras y resolviendo la rotación en el estado estacionario (básicamente, resolviendo el paralelogramo de fuerzas que dibujé arriba) obtendrás una relación entre las fuerzas F 1 y F 2 y el ángulo entre la rueda y el vector velocidad (de hecho, este es el mismo en magnitud que los ángulos θ 1 y θ 2 en mi diagrama).

Cuando la rueda delantera cambia de dirección, está cambiando el ángulo entre ella y el vector de velocidad; pero si de repente cambia la rueda delantera para que apunte "recto", la rueda trasera (todavía) se encuentra en un ángulo con el vector de velocidad. Esto significa que habrá una fuerza lateral (que puedes calcular a partir de la relación anterior) y un par que enderezará el auto.

ACTUALIZAR una mejor manera de ver la ecuación de movimiento es trabajar al revés: sabe que el movimiento de la fuente del automóvil debe seguir la dirección en la que apunta (instantáneamente) la rueda; del mismo modo, la parte trasera debe seguir la dirección en la que apunta la rueda trasera. Esto le dice cuál será la posición del automóvil después Δ t , y a partir de esto puede calcular la aceleración instantánea y, por lo tanto, la fuerza/par de las ruedas. Tal modelo le dará el movimiento correcto así como las fuerzas correctas.

Escribí una implementación simple del movimiento (no el cálculo de la fuerza) en Python:

# simple car simulation
# one front wheel, one back wheel

import math
import numpy as np
from scipy import interpolate
import matplotlib.pyplot as plt

def sind(x):
    return math.sin(x*math.pi/180.)

def cosd(x):
    return math.cos(x*math.pi/180.)

def atan2d(y,x):
    return 180/math.pi*math.atan2(y,x)

# dimensions:
length = 2  # axis to axis

# time when wheel is turned, and by how much:
timePoints =  [0, 1,  5, 9, 12, 15]
thetaPoints = [0, 0, 15,  15, 0,  0]
theta = interpolate.interp1d(timePoints, thetaPoints)

# time step for simulation:
dt = 0.05

# show that it worked:
plt.figure()
t = np.arange(0, 15, dt)
plt.plot(t, theta(t))
plt.xlabel('time')
plt.ylabel('steering angle')
plt.title('steering angle vs time')
plt.show()


# position of rear wheel of car at time t:
x = 0
y = 0

# velocity of rear wheel
v = 5

# angle of car body
alpha = 0

plt.figure()
for T, th in enumerate(theta(t)):
    dx = v * dt * cosd(alpha)
    dy = v * dt * sind(alpha)
    vf = v / cosd(th)
    dxf = vf * dt * cosd(th+alpha)
    dyf = vf * dt * sind(th+alpha)
    yl = dyf - dy + length * sind(alpha)
    xl = dxf - dx + length * cosd(alpha)
    alpha = atan2d(yl, xl)
    plt.plot(x,y,'.b')
    if (T%50==0):
        plt.plot([x, x+xl], [y,y+yl], 'r', linewidth=5)
    x = x + dx
    y = y + dy

plt.xlabel('x')
plt.ylabel('y')
plt.title('trajectory')
plt.axis('equal')
plt.show()

En este caso, la rueda gira lentamente, de acuerdo con el siguiente diagrama:

ingrese la descripción de la imagen aquí

y la trayectoria viene dada por este gráfico (la línea roja corresponde a la dirección en la que apunta el automóvil cada 2,5 segundos; puede ver que cuando la rueda está recta, el automóvil sigue la dirección de las ruedas):

ingrese la descripción de la imagen aquí

La geometría de la dirección de Ackermann no tiene nada que ver con la necesidad de incluir la fricción. La fricción es necesaria para crear una restricción en la ruta de viaje. No incluye necesariamente una fuerza disipativa, por lo que no es necesario invocar la noción de "fricción" que reduce la energía cinética. Las fuerzas centrípitas pueden ser "conservadoras".
@DWin mi punto fue que la simple noción de apuntar las dos ruedas 45 grados restringe demasiado el problema, razón por la cual el análisis con una rueda en la parte delantera y trasera es más fácil de resolver sin envolverse alrededor del eje con detalles.
Muchas gracias por tomarte tu tiempo para ayudarme. He tratado de incorporar su respuesta en mi simulación toda la semana. Funciona bien, pero no hay algunos problemas. Para ver si entendí su respuesta correctamente, actualicé mi pregunta con una imagen para ilustrar cómo calculo actualmente las fuerzas que actúan sobre el automóvil. ¿Están correctamente calculados? Además, no creo que pueda hacer esto "hacia atrás" como sugirió en su actualización, ya que necesito que el automóvil patine durante giros cerrados, etc., corríjame si me equivoco.
Para incorporar el derrape, comience por asumir "sin derrape". Entonces puedes calcular la fuerza que parece ser aplicada. Si esa fuerza excede la que está disponible, la rueda patinará. La dirección de la fuerza en una rueda que patina y rueda es complicada: la magnitud es cualquiera que sea la fuerza normal multiplicada por el coeficiente de fricción dinámica. Pero tal vez ese debería ser el tema de una pregunta nueva (y más enfocada)...
¿No debería ocurrir el derrape por sí solo si no dejamos que las fuerzas centrípetas de las ruedas sean mayores que el rozamiento máximo?
Sí (si entiendo lo que acaba de decir), pero tenga en cuenta que hay una fuerza diferente en las ruedas delanteras y traseras, por lo que las ruedas delanteras patinarán primero (es por eso que acelerar en un giro puede ayudar ... aumenta la fuerza normal en El frente). Necesitas conocer la distribución de fuerzas para saber si vas a derrapar.
Si las fuerzas se calculan usando el paralelogramo que presentaste, no veo el problema. Simplemente no podemos permitir que la magnitud de la fuerza de cualquiera de las ruedas sea mayor que la fuerza de fricción máxima. Me doy cuenta de que la distribución del peso cambiará, pero para simplificar, podríamos dividir la masa de manera uniforme en cada rueda.

No entiendo por qué esta pregunta no ha sido respondida en los comentarios. Si no hay fricción, entonces la "dirección de las ruedas" no puede hacer girar el automóvil. Es como si el coche estuviera sobre una pista de derrape de hielo puro. (Aquellos de nosotros que hemos conducido en clima invernal conocemos la sensación de encontrar un parche de "hielo negro").

Para responder a su pregunta directamente, cuando la dirección de la velocidad de la parte delantera del automóvil no coincide con la dirección de las ruedas delanteras, la llanta se deforma y actúa como un resorte que ejerce una fuerza lateral sobre el automóvil. La desviación entre estas direcciones se denomina ángulo de deslizamiento y, en una aproximación de primer orden, la fuerza lateral sobre el neumático es proporcional a este ángulo de deslizamiento.

En su modelo, parece que las fuerzas se calculan suponiendo que el automóvil ya se está moviendo en la dirección correcta. Esto funciona bien cuando el automóvil se mueve en la dirección correcta, pero tan pronto como haya una desviación (por ejemplo, causada por un cambio repentino en la posición de la rueda), las fuerzas calculadas serán incorrectas. Como un ejemplo específico, si la rueda apunta en línea recta, el movimiento "debería" ser recto, por lo que "debería" haber cero fuerza, y su modelo fielmente le da cero fuerza, sin poder enderezar el automóvil.

Para modelar correctamente sus fuerzas, podría usar una ecuación a lo largo de las líneas de

F F = C A F A F V F | V F |

Dónde C es una constante, V F es la velocidad de la parte delantera del automóvil, y A F es un vector unitario en la dirección del eje de la rueda delantera (Tenga en cuenta que no importa en qué dirección a lo largo de ese eje apunte, ya que si lo voltea, la magnitud también cambiará)

Esto también funciona para la rueda trasera.

F r = C A r A r V r | V F |

Por supuesto, ahora las fuerzas ya no son perpendiculares a las velocidades, por lo que obtendrá pérdidas por fricción. En el lado positivo, estas serían pérdidas por fricción realistas, pero si quisiera que su automóvil girara indefinidamente en las curvas, este tratamiento de las ruedas no lo permitiría.

Creé una simulación que integra estas fuerzas para dar una trayectoria al vehículo, sin embargo, la implementación ingenua es muy inestable numéricamente y requiere un paso de tiempo de .0005 s para obtener un resultado estable con coeficientes de deslizamiento que parecen producir resultados razonables.

camino del coche

Esto estaba usando la misma configuración que Floris para darle una comparación de los resultados.

Distancia entre ejes de 2 m, velocidad inicial de 5 m/s y el mismo perfil de ángulo de dirección.

Dados los problemas de estabilidad numérica con este método, recomendaría intentar seguir la ruta que ha explorado Floris.

Si encuentro una manera de combinar fácilmente los métodos, actualizaré.

cuando acelera el vehículo y gira, el centro de gravedad se desplaza desde diferentes partes de la carrocería. Aunque tal vez estoy malinterpretando tu pregunta...