Programación diferencial para un vehículo.


8

Estoy en un punto de mi vehículo donde, cuando voy rápido y giro, el vehículo actúa de manera extraña porque las llantas internas se mueven más rápido que las llantas externas. Así que necesito descubrir cómo programar en un diferencial, pero parece que no puedo hacer que funcione correctamente, así que estoy aquí para ver si alguien tiene experiencia con esto.

He revisado en línea la física, pero parece tener más información en cuenta de la que puedo proporcionar en mi juego (como la influencia de la gravedad real en el vehículo). Actualmente uso la siguiente lógica para determinar las velocidades diferenciales de las ruedas. Trataré de explicar de la manera más clara y simple posible, así que me disculpo si es confuso o demasiado simplificado, ¡es confuso para mí!

Esto es lo que hago: divido mi grado de turno actual por la cantidad máxima de turno para obtener un porcentaje, luego tomo ese porcentaje y lo aplico a un porcentaje modificador (solo un porcentaje que he inventado y ajustado para reducir el número pasado al diferencial, no estoy seguro de lo que realmente debería ser: ¿Velocidad del motor? ¿Velocidad?). Luego, en mi diferencial, puedo comprobar para ver si el vehículo está girando a la izquierda o la derecha y reducir la velocidad de un lado por x% y aumentar la velocidad en el otro lado de la misma x%

Estoy seguro de que mi mayor problema es el número que estoy inventando para reducir el porcentaje de giro, pero no puedo decir qué poner allí. Sé que pasar directamente el% de giro al diferencial (por ejemplo, 40%) reduciría un lado en 40 y aumentaría el otro en 40 y eso claramente no es correcto.

Tengo acceso a la velocidad del motor, la transmisión, la velocidad del eje de cada rueda, el par, la velocidad del vehículo, etc., pero no estoy seguro de cuál de estos debo tener en cuenta al hacer esta fórmula.

Tal vez haya terminado de complicarlo o tal vez haya terminado de simplificarlo. ¡Cualquier ayuda para entender esto sería genial!


¿Qué problemas tuviste realmente con la física real involucrada? Debido a que la gravedad se obtiene fácilmente (es una constante que solo debes ajustar, lo mismo ocurre con la masa del vehículo, etc.)
Roy T.

Bueno, en realidad no hay problemas importantes con la física real, pero debido a que realmente no sé mucho acerca de los diferenciales y la mecánica (de la vida real), la física se me pasó por la cabeza.
Mungoid

Respuestas:


9

Realmente creo que no deberías hacerlo de esta manera y que deberías analizar más la física real (mira mi comentario). Sin embargo, puedo decirte por qué tu enfoque actual no funciona. (Demasiado tiempo para los comentarios, así que solo publicaré esto como respuesta)

Primero exploremos lo que sucede (probablemente ya lo haya hecho usted mismo).

Punto de retorno

La ubicación es básicamente como en la imagen de arriba, pero simplifiquemos un poco los números:

Digamos que el automóvil C tiene 2 metros de ancho y tiene un círculo de giro mínimo de 5 metros. Ahora me dirijo a la izquierda. La rueda delantera izquierda ahora sigue un círculo con un diámetro de 5 metros. La rueda delantera derecha ahora sigue un círculo con un diámetro de 7 metros. Al completar un círculo completo, la rueda izquierda recorre 10 * pi metros. La rueda derecha recorre 14 * pi metros. Ahora decir que las ruedas de C todos tienen el mismo tamaño, y que la circunferencia de las ruedas es de 0,5 metros * pi (sí esas son las ruedas grandes, pero nadie dijo que no podíamos modelar un camión monstruo!) El diferencial debe asegurarse de que por cada 20 rotaciones de la rueda izquierda la rueda derecha gire 28 veces para que ninguna de las ruedas se deslice.

Entonces, ahora podría decir que el diff-% debería ajustarse, digamos que a la izquierda completa debería diferenciar + 40%, y simplemente avancemos esto a la derecha completa -40% y luego estamos dorados.

Desafortunadamente, como has visto, esto no funciona. Encontremos una fórmula general para el diferencial en este automóvil. Aquí x es el círculo de giro deseado.

left wheel distance: x*pi meters
right wheel distance: (x+2)*pi meters:
left wheel rotations: x*4
right wheel rotations: (x+2)*4  

Yo diría que la diferencia debería funcionar en la fracción ((x + 2) * 4 / (x * 4)) [*]. (Veces 100% si lo quieres en porcentajes) Tracemos eso:

trama diff

Como puede ver claramente, esta función no es lineal. Entonces, el hecho de que el diferencial dependa linealmente de cuánto va a funcionar su dirección hacia la izquierda o hacia la derecha nunca funcionará.

Ahora veo que es tentador usar la fórmula anterior, pero creo que probablemente sea mejor si no lo haces por las razones descritas anteriormente :). También deberá implementar 2 diferenciales a menos que si su dirección involucra las cuatro ruedas, lo que hace que sea aún más difícil de implementar, vea la primera imagen nuevamente.

[*]: que podemos simplificar: (x + 2) * 4 / (x * 4) => (x + 2) / x


¡No estoy en la computadora de mi trabajo para probar esto, pero tengo la fuerte sensación de que tienes razón en todos los puntos! Y no estás muy lejos de lo del camión monstruo. Es una pieza de maquinaria pesada para un simulador, por lo que las ruedas tienen unos 2 metros de diámetro. Originalmente pensé que sería capaz de 'engañar' ya que solo necesito mantener las ruedas en el suelo, pero creo que esto lo hará mucho más preciso. Revisaré los números mañana y te lo haré saber. ¡Gracias!
Mungoid

Sí, tu publicación me señaló en la dirección correcta. Había probado mi propia versión de las matemáticas que diste, pero aparentemente lo estaba haciendo un poco mal. Gracias por la orientación!
Mungoid
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.