Class LmrsUtil
java.lang.Object
org.opentrafficsim.road.gtu.tactical.util.lmrs.LmrsUtil
- All Implemented Interfaces:
LmrsParameters
Copyright (c) 2013-2026 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ParameterTypeAccelerationMaximum critical deceleration, e.g. stop/go at traffic light.static final ParameterTypeDurationFixed model time step.static final ParameterTypeDurationCurrent car-following headway.static final ObjectParameter key for T.static final ParameterTypeDurationHeadway relaxation time.static final ParameterTypeDurationMaximum car-following headway.static final ParameterTypeDurationMinimum car-following headway. -
Method Summary
Modifier and TypeMethodDescriptionstatic SimpleOperationalPlandeterminePlan(TacticalContextEgo context, LmrsData lmrsData, AbstractIncentivesTacticalPlanner incentives) Determines a simple representation of an operational plan.static DesiregetLaneChangeDesire(TacticalContextEgo context, AbstractIncentivesTacticalPlanner incentives) Determines lane change desire for the given GtU.static org.djunits.value.vdouble.scalar.AccelerationsingleAcceleration(TacticalContext context, org.djunits.value.vdouble.scalar.Length distance, org.djunits.value.vdouble.scalar.Speed leaderSpeed, double desire) Determine acceleration from car-following with desire-adjusted headway.
-
Field Details
-
DT
Fixed model time step. -
TMIN
Minimum car-following headway. -
T
Current car-following headway. -
TMAX
Maximum car-following headway. -
TAU
Headway relaxation time. -
BCRIT
Maximum critical deceleration, e.g. stop/go at traffic light. -
T_KEY
Parameter key for T. This value might e.g. be set by relaxation, its initialization, and tailgating.
-
-
Method Details
-
determinePlan
public static SimpleOperationalPlan determinePlan(TacticalContextEgo context, LmrsData lmrsData, AbstractIncentivesTacticalPlanner incentives) throws GtuException, NetworkException, ParameterException Determines a simple representation of an operational plan.- Parameters:
context- tactical information such as parameters and car-following modellmrsData- LMRS dataincentives- planner with set of incentives- Returns:
- simple operational plan
- Throws:
GtuException- gtu exceptionNetworkException- network exceptionParameterException- parameter exceptionOperationalPlanException- operational plan exception
-
getLaneChangeDesire
public static Desire getLaneChangeDesire(TacticalContextEgo context, AbstractIncentivesTacticalPlanner incentives) throws ParameterException, GtuException Determines lane change desire for the given GtU. Mandatory desire is deduced as the maximum of a set of mandatory incentives, while voluntary desires are added. Depending on the level of mandatory lane change desire, voluntary desire may be included partially. If both are positive or negative, voluntary desire is fully included. Otherwise, voluntary desire is less considered within the range dSync < |mandatory| < dCoop. The absolute value is used as large negative mandatory desire may also dominate voluntary desire.- Parameters:
context- tactical information such as parameters and car-following modelincentives- planner with set of incentives- Returns:
- lane change desire for gtu
- Throws:
ParameterException- if a parameter is not definedGtuException- if there is no mandatory incentive, the model requires at least one
-
singleAcceleration
public static org.djunits.value.vdouble.scalar.Acceleration singleAcceleration(TacticalContext context, org.djunits.value.vdouble.scalar.Length distance, org.djunits.value.vdouble.scalar.Speed leaderSpeed, double desire) throws ParameterException Determine acceleration from car-following with desire-adjusted headway.- Parameters:
context- tactical information such as parameters and car-following modeldistance- distance from follower to leaderleaderSpeed- speed of leaderdesire- level of lane change desire- Returns:
- acceleration from car-following
- Throws:
ParameterException- if a parameter is not defined
-