Jump to content

Vehicle acceleration doubt


antonio6vieira
 Share

Recommended Posts

Hi guys!


As I said in a previous post, I'm trying to simulate roundabouts on Simio. So, I was wondering what would be the best way to model the acceleration process of the cars.


In a previous model I worked on (also on the field of traffic micro simulation: traffic lights and pre signals) I was able to model the acceleration by incrementing the DesiredSpeed, in intervals of time, according to an expression I implemented (from a scientific article). Nonetheless, if I try to do the same thing on the roundabout model, the DesiredSpeed increases but the cars won't move - they will only move once they stop accelerating. This didn't happen when I did the traffic light model.


So, I would like to know why does this hapen now? Also, what you guys think would be the best way to implement the acceleration of the vehicles?


Thanks.

Link to comment
Share on other sites

Hi,


See if you can replicate it in an empty model and link it here.


Without seeing the problem first hand, I think your issue may be .DesiredSpeed, which is more like the speed the entities "want" to be going if they aren't limited by paths/nodes or blocked by other entities.


The actual movement rate state the entity is using is Entity.Movement.Rate which as a state you can alter during a run, as long as the entity isn't blocked/waiting/seizing/in a station/etc.

Link to comment
Share on other sites

Thanks for the reply.


I tried to change the Movement.Rate state but the result was the same.


Please find attached the model I am working on. For the present problem I have, you only need to analyse the "EntryRoundaboutOrStop", "InRoundabout" and "Acceleration" processes.


As you can see by executing the model, the car executes the process Acceleration but will only start its movement once he finishes accelerating... This didn't happen on the previous traffic model I worked on...

Roundabout.spfx

Link to comment
Share on other sites

Hi,


The execute step you use to run your car's acceleration increment process is not a "continue" process so the token that enters the execute step in the "EntryRoundaboutOrStop" process waits for the executed process to complete (ie. your acceleration to reach its maximum) before continuing.


Because this is done on the "OnEntered" it causes your vehicle to wait at the node for all the processes run by the OnEntered add-on process to complete. This differs from using the "OnExited" add-on process which doesn't wait for it's processes to complete (due to the literal departure from the node onto a path/station being required to execute the "OnExited" add on process).


I suspect having used the OnExited instead of the OnEntered in your previous model is what caused the acceleration to work properly.


I hope this helps.


Michael

Link to comment
Share on other sites

×
×
  • Create New...