You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This error occurs for micro-simulation and for vehicles that have their vehicle type changed, while they are moving on a lane. More specifically, in microsim/MSLane.cpp, the brutto occupancy depends on the value myBruttoVehicleLengthSum (veh_length+min_gap). This value is only updated upon entry and exit of a vehicle in the lane, disregarding the fact that the vehicle's length and minGap value can be changed as the vehicle is in the lane, either directly by traci or by changing it's vType. For example, the vehicle's length+min_gap value at the lane exit may be lower than these values at the lane entry, leaving the difference as residue to the value myBruttoVehicleLengthSum. After some time, this leads to an inaccurate 100% occupancy of the lane and no more vehicles are able to join the lane.
A possible solution could be to calculate myBruttoVehicleLengthSum and myNettoVehicleLengthSumin getBruttoOccupancy and getNettoOccupancy directly, by iterating the list of vehicles in the lane.
SUMO-version:
v1.16 and git build
operating system:
Windows 10 & Ubuntu
The text was updated successfully, but these errors were encountered:
iterating the list of vehicles is probably to inefficient.
Since changing the type of a vehicle is presumably a rare event, updating the occupancy upon type change sounds like a better solution.
Out of curiosity, are you actually changing vehicle lengths or just minGaps at runtime? If the former, what are you modelling?
Actually the issue came up when using simpla, that generally does a lot of vType changing. More specifically I set a relatively lower min_gap for the follower, catchup and/or catchup follower vTypes than the leader and default vType. In almost 1hour of simulation, the accumulated mingap difference was enough to flag the lane as having reached it's maximum occupancy.
I am only changing the minGaps, not the length, I just mentioned it as there is a relative setLength function that someone could use for a reason.
Hello,
This error occurs for micro-simulation and for vehicles that have their vehicle type changed, while they are moving on a lane. More specifically, in
microsim/MSLane.cpp
, the brutto occupancy depends on the valuemyBruttoVehicleLengthSum
(veh_length+min_gap). This value is only updated upon entry and exit of a vehicle in the lane, disregarding the fact that the vehicle's length and minGap value can be changed as the vehicle is in the lane, either directly by traci or by changing it's vType. For example, the vehicle's length+min_gap value at the lane exit may be lower than these values at the lane entry, leaving the difference as residue to the valuemyBruttoVehicleLengthSum
. After some time, this leads to an inaccurate 100% occupancy of the lane and no more vehicles are able to join the lane.A possible solution could be to calculate
myBruttoVehicleLengthSum
andmyNettoVehicleLengthSum
ingetBruttoOccupancy
andgetNettoOccupancy
directly, by iterating the list of vehicles in the lane.SUMO-version:
v1.16 and git build
operating system:
Windows 10 & Ubuntu
The text was updated successfully, but these errors were encountered: