movsim / movsim

MovSim: multi-model open-source vehicular-traffic simulator
www.movsim.org
GNU General Public License v3.0
317 stars 92 forks source link

Inconsistence with Gipps’s model /Collision with accident free models (Gipps and IDM) #37

Closed mauricionovaes closed 7 years ago

mauricionovaes commented 7 years ago

I am running many simulations with Gipps’ model, I noticed that for high value for b and t (Deceleration (range of 3-5(m/s2) and Adaption/reaction time (1.25 to 2.5 seconds) there are collisions. Should it have collision? Or is there any inconsistency since the Gipps’ model is described as accident free model?

akegermany commented 7 years ago

Hi Mauricio, can you please provide more information? What are the parameters? And under which circumstances the crashes occur? Is lane-changing involved? The models are accident-free but the numerical integration does play a role. Which update interval did you use? Best regards, Arne

mauricionovaes commented 7 years ago

Hi Arne,

I thought the Gipps' model would calculate the safe speed(Vsafe) in every time step using parameters such as s0, b and reaction time (= time step) and because of the Vsafe calculated collision would never happen. am I wrong? Is Krauss model also considered collision free?

The circumstances which collisions occurs are, for example:

  1. one lane ( 7.5 km)
  2. density of 30 vehicles /km 2.v=37.5 and s0=1.75 3.1. b=3.5 and time step=1.0 (if I use Gippss model) 3.2 . b=3.0 and time step =1.0 or b=2.0 and time step = 1.25 ( if I use Krauss model with epsilon 0.1)

if I use MOBIL in order to simulate lane change with 2 lanes I have use a higher minimum gap( as 4.0) and lower b (as 1.0)

thank you, Mauricio

akegermany commented 7 years ago

So, you observe collisions only for Gipps but not for the IDM, right? Do crashes occur also without lane changes? The concept of the timestep as reaction time needs to be interpreted carefully. You can find details in http://www.akesting.de/download/ThreeTimes.pdf. For Gipps/Krauss I've to check.

mauricionovaes commented 7 years ago

The crashes occur without lane change , for example b=3.5 and time step=1.0 with gipps' model and b=3.0 and time step =1.0 or b=2.0 and time step = 1.25 with krauss model (epsilon=0.1). I am running most of my simulations with Krauss model(epsilon = 0.1),but I noticed the collisions also occurs with Gipps. I also observed collision with IDM model , for example :v0="30" T="1.0" s0="2" s1="0" delta="4" a="0.5" b="4.0" and timestep =1.0 ( however, I ran few simulations with IDM)

MTGermany commented 7 years ago

Hello Mauricio, hi Arne,

I have found the reason which is quite intricate. It has to do with he fact that we are using the simplified Gipps without considering the additional displacement due to accelerations during the reaction time. Naively, I thought that our ballistic update scheme, x(t+dt)=x(t)+v(t)dt+1/2acc(t)*dt*2, specifically the last term, would compensate for that, however, this is not true for small minimum gaps, high deceleration parameters b, and high update time steps=reaction time. In the simplified model, the safe speed is calculated such that, after driving for one reaction time with that safe speed, and then decelerating with b would just get us at a gap s0 to the leading car (provided that decelerates with b to a stop as well). Thus, the anticipated "reaction distance" (part of the stopping distance covered during the reaction time) is given by vSafeT while the "reaction distance" for the ballistic update (notice T=dt, reaction time=update time) is given by 0.5(v+vSafe)T. Since, during the braking phase, vSafe approx v-b*T<v, the actual stopping distance is larger that the anticipated one leading to crashes if there are not much other margins, i.e., for large b and small s0. This can be easily resolved by applying for the Gipps model the modified first-order positional update

x(t+dt)=x(t+T)=x(t)+vSafe*T (1)

instead of x(t+T)=x(t)+0.5(v+vSafe)T Since, in the simulator, the update is driven by the acceleration acc, this is also equivalent to

x(t+dt)=x(t)+v(t)dt+acc(t)dt**2 (1a)

while in the normal ballistic update we use

x(t+dt)=x(t)+v(t)dt+0.5acc(t)*dt**2 (2) The two attached files show the start-stop-scenario of our book "Traffic Flow Dynamics" (cf, e.g., Fig. 11.4) for the simplified Gipps model with the parameters s0=1m, b=3 m/s^2, T=dt=1 for the conventional ballistic update Eq. (2) (crashs and chaos afterwards), and the safe-speed update (1) or (1a) (no crash, controlled deceleration) Gipps_startStopTestCrash_updateBallistic.pdf Gipps_startStopTestCrash_updateVnew.pdf

MTGermany commented 7 years ago

Notice that the above simulations have been performed by a separate "smaller" c++ simulator which we use for completely independent simulator validity tests.

akegermany commented 7 years ago

commit 019b7806041e9afb4843f9c3e601fc1fd21fa835 Author: akegermany mail@akesting.de Date: Fri Dec 16 15:14:07 2016 +0100

used simple Euler instead of ballistic update scheme for iteratored maps (Gipps, Krauss, Newell), fixed ISSUE 37

Sim results for start stop scenario: startstop_gipps_crash a startstop_gipps_crash s startstop_gipps_crash v