Modelo de dinámica de vehículos en SUMO
El modelo de dinámica del vehículo en SUMO incluye dos aspectos
Modelo longitudinal: Modelo de dinámica longitudinal, utilizado para describir la aceleración y desaceleración del vehículo
Modelo transversal: Modelo de dinámica transversal, utilizado para describir cambios de carril de vehículos
En términos de modelos longitudinales, dado que SUMO se utiliza principalmente para estudiar el comportamiento externo de los vehículos, las interacciones de varios vehículos y el flujo de tráfico, la precisión del modelado de vehículos individuales Los requisitos son muy altos. Cambio de carril de vehículos
En términos de modelos longitudinales, dado que SUMO se utiliza principalmente para estudiar el comportamiento externo de los vehículos, las interacciones de varios vehículos y el flujo de tráfico, la precisión del modelado de un solo vehículo no es alta y puede ser Se aproxima a la motivación original, y se utiliza un modelo simple de seguimiento de automóviles para describir los cambios en la velocidad y posición del vehículo. El siguiente modelo de coche incluye dos situaciones: ningún coche delante y un coche delante.
En cuanto a modelos laterales, SUMO adopta un modelo de cambio de carril (Referencia). En resumen, es un árbol de decisión que establece muchas condiciones de cambio de carril. Siempre que se cumplan ciertas condiciones, se realizará la operación de cambio de carril correspondiente.
El modelo de cambio de carril predeterminado es el cambio de carril instantáneo, que se completa en un paso de simulación, que se representa intuitivamente mediante el movimiento instantáneo del vehículo entre dos carriles.
Los modelos más detallados incluyen:
Consulte https://sumo.dlr.de/wiki/Simulation/SublaneModel#Sublane-Model para obtener detalles sobre cómo configurar esto.
Este artículo presenta principalmente el siguiente modelo de automóvil.
Para comprender el siguiente modelo de automóvil en SUMO, es necesario saber cómo configurar el modelo.
Para comprender el modelo Krauss mejorado que SUMO utiliza de forma predeterminada, primero debe comprender cómo se modela el modelo Krauss original.
Modelo de Claus en la literatura:
Supongamos que la distancia entre el líder y el seguidor es la distancia entre los autos, ¿dónde está la longitud de la carrocería?
Si se requiere que el vehículo no colisione, debe cumplir
donde
Para poder calcular y , la velocidad debe darse como expresión de control de una función de distancia de movimiento y ? A continuación se utiliza la expansión de Taylor de la función ? como una aproximación usando ? en lugar de la función ?, ignorando los términos de orden superior, dando
La siguiente pregunta es cómo calcular la derivada. ?
Supongamos que la aceleración durante el frenado es?
El término integral corresponde a la distancia de frenado ¿Si la aceleración es? Por lo general, al calcular la distancia, estamos acostumbrados a establecer el intervalo de integración como tiempo y la función del producto como velocidad. En este ejemplo, el intervalo de integración se establece en el intervalo de cambio de velocidad y se integra a lo largo del tiempo. Después de integrar, obtendremos una función de velocidad que se puede utilizar en operaciones posteriores.
Ponga la fórmula en la fórmula para obtener
El lado derecho de la expresión anterior contiene ?, por lo que es necesario reorganizarlo para obtener
La ecuación anterior es la expresión de velocidad de seguimiento segura del modelo original de Krauss en SUMO. Parte del código fuente del programa es el siguiente:
Aquí, el lado derecho de la ecuación es el seguro. velocidad de seguimiento, expresada como?
Aquí, el lado derecho de la ecuación es la velocidad de seguimiento segura. Sin embargo, esta velocidad no es la velocidad de seguimiento del último automóvil. De manera similar a la situación sin un automóvil delante, queremos asegurarnos de que la siguiente velocidad no exceda la velocidad máxima permitida, por lo que tomamos la menor entre la velocidad segura y la velocidad máxima permitida, es decir,
donde ? es la aceleración máxima, ? es el tamaño del paso de actualización de la simulación.
Además, también se puede introducir un factor de aleatorización para indicar que el vehículo no tiene que seguir la velocidad de seguimiento segura anterior y puede tomar un valor menor, es decir:
¿Dónde ? es un parámetro imperfecto establecido externamente, que indica el grado de desviación de ?.
Para resumir los pasos del algoritmo:
Aunque el modelo Krauss original mencionado anteriormente está incluido en SUMO, no se utiliza como el siguiente modelo de automóvil predeterminado, pero se ha modificado significativamente. El punto de partida del modelo mejorado es el mismo que el del modelo original de Krauss: aumentar la velocidad de seguimiento lo más rápido posible sin provocar una colisión. Sin embargo, es completamente diferente del modelo Claus original en términos de cálculo de velocidades seguras.
El modelo de Claus mejorado todavía se basa en la fórmula anterior, pero en lugar de utilizar la expansión de Taylor para aproximar la función de distancia de frenado, utiliza cálculo numérico. Los pasos y el código fuente se implementan de la siguiente manera:
La fórmula anterior es el tiempo necesario para que la velocidad del vehículo de delante se reduzca a 0.
El cálculo anterior se implementa en el código fuente de SUMO a través de la función BrakeGapEuler.
Cabe señalar que SUMO utiliza la integración numérica de Euler de forma predeterminada, y la fórmula de cálculo de la posición es la siguiente:
En otras palabras, la posición en este momento es igual a la posición en este momento La posición más el cambio de posición causado por la velocidad en este momento.
Una vez que comprenda esta integración, podrá comprender mejor las fórmulas del código fuente.
Una vez alcanzada una velocidad de seguimiento segura, el resto del modelo es similar al modelo original de Krauss, es decir, comparado con la velocidad máxima permitida y teniendo en cuenta factores aleatorios. Esto se hace en la función followSpeed y la función dawdle2.