Skip to content

6.3 ExecutingLaneChange

smart-fm edited this page Nov 9, 2018 · 8 revisions

Along with the lane choice model, the executeLaneChanging function forms the core lane change model. It checks if the gaps for a lane change is acceptable and executes it.


Flow chart for executeLaneChanging

Before the above logic is implemented, the vehicle checks if there is an incident in the target lane within the incident zone (two car length from the incident), using the isInIncidentArea function. If that's the case, no LC is executed and the vehicle stays in the current lane. Then, the function starts to collect the gaps on the target lane (left or right) regarding the lead and lag vehicles (in current or next segment), using the gapDistance function. Then, the function checks is both lead and lag gaps are larger than the critical gap, calculated with the lcCriticalGap function (See [Section 6.5] (https://github.com/smart-fm/simmobility-prod/wiki/6.5-GapModel)). If one of the gaps is not acceptable, a FLAG_LC_FAILED is set and the function then checks if a lane change is still possible under the nosing model. If the vehicle is not nosing already, but already within the nosing distance (a parameter predefined in the configuration XML file), the function computes a new nosing probability using the function lcNosingProb (see [Section 6.4] (https://github.com/smart-fm/simmobility-prod/wiki/6.4-AuxiliaryFunctions)). If the probability results in a nosing decision, the function then checks if the nosing is possible. If first updates the reaction time (cfTimer) to a smaller value and then checks if the nosing is feasible (checkNosingFeasibility, see Section 6.4) the other vehicle is willing to yield (willYield, see also [Section 6.4] (https://github.com/smart-fm/simmobility-prod/wiki/6.4-AuxiliaryFunctions)). If these conditions are satisfied, the function updates both vehicles nosing and yielding flags, but only proceeds with the lane change maneuver if the gaps are larger than a minimum nosing LC gaps predefined in the configuration XML file. The LCexecution function represents of the lane change follows the following logic:


Flow chart for LCexecution

Although MITSIM simulated lane changes instantly, SimMobilit ST accounts for progressive lane changes maneuvers. The vehicle moves to the side lane with constant lateral speed.

Clone this wiki locally