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!
Respuestas:
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).
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.
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:
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
fuente