Class AbstractCarFollowingModel
java.lang.Object
org.opentrafficsim.road.gtu.tactical.following.AbstractCarFollowingModel
- All Implemented Interfaces:
CarFollowingModel,DesiredHeadwayModel,DesiredSpeedModel,Initialisable
- Direct Known Subclasses:
AbstractIdm
Default implementation where desired speed and headway are pre-calculated for car-following.
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:
- Wouter Schakel
-
Field Summary
Fields inherited from interface org.opentrafficsim.road.gtu.tactical.following.CarFollowingModel
CAR_FOLLOWING_MODEL -
Constructor Summary
ConstructorsConstructorDescriptionAbstractCarFollowingModel(DesiredHeadwayModel desiredHeadwayModel, DesiredSpeedModel desiredSpeedModel) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionfinal org.djunits.value.vdouble.scalar.LengthdesiredHeadway(Parameters parameters, org.djunits.value.vdouble.scalar.Speed speed) Determines the desired headway in equilibrium conditions, i.e. no speed difference with the leader.final org.djunits.value.vdouble.scalar.SpeeddesiredSpeed(Parameters parameters, SpeedLimits speedLimits, org.djunits.value.vdouble.scalar.Speed maxVehicleSpeed) Determines the desired speed.protected abstract org.djunits.value.vdouble.scalar.AccelerationfollowingAcceleration(Parameters parameters, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Speed desiredSpeed, org.djunits.value.vdouble.scalar.Length desiredHeadway, PerceptionIterable<? extends PerceivedObject> leaders) Determination of car-following acceleration, possibly based on multiple leaders.final org.djunits.value.vdouble.scalar.AccelerationfollowingAcceleration(Parameters parameters, org.djunits.value.vdouble.scalar.Speed speed, SpeedLimits speedLimits, org.djunits.value.vdouble.scalar.Speed maxVehicleSpeed, PerceptionIterable<? extends PerceivedObject> leaders) Determination of car-following acceleration, possibly based on multiple leaders.final voidinit(LaneBasedGtu gtu) Initialize car-following model.Sets the desired speed model.toString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.opentrafficsim.road.gtu.tactical.following.CarFollowingModel
getLongName, getName
-
Constructor Details
-
AbstractCarFollowingModel
public AbstractCarFollowingModel(DesiredHeadwayModel desiredHeadwayModel, DesiredSpeedModel desiredSpeedModel) Constructor.- Parameters:
desiredHeadwayModel- desired headway modeldesiredSpeedModel- desired speed model
-
-
Method Details
-
desiredHeadway
public final org.djunits.value.vdouble.scalar.Length desiredHeadway(Parameters parameters, org.djunits.value.vdouble.scalar.Speed speed) throws ParameterException Description copied from interface:DesiredHeadwayModelDetermines the desired headway in equilibrium conditions, i.e. no speed difference with the leader.- Specified by:
desiredHeadwayin interfaceDesiredHeadwayModel- Parameters:
parameters- parametersspeed- speed to determine the desired headway at- Returns:
- desired headway
- Throws:
ParameterException- if parameter exception occurs
-
desiredSpeed
public final org.djunits.value.vdouble.scalar.Speed desiredSpeed(Parameters parameters, SpeedLimits speedLimits, org.djunits.value.vdouble.scalar.Speed maxVehicleSpeed) throws ParameterException Description copied from interface:DesiredSpeedModelDetermines the desired speed.- Specified by:
desiredSpeedin interfaceDesiredSpeedModel- Parameters:
parameters- parametersspeedLimits- speed limitsmaxVehicleSpeed- maximum speed of the vehicle- Returns:
- desired speed
- Throws:
ParameterException- if parameter exception occurs
-
followingAcceleration
public final org.djunits.value.vdouble.scalar.Acceleration followingAcceleration(Parameters parameters, org.djunits.value.vdouble.scalar.Speed speed, SpeedLimits speedLimits, org.djunits.value.vdouble.scalar.Speed maxVehicleSpeed, PerceptionIterable<? extends PerceivedObject> leaders) throws ParameterException Description copied from interface:CarFollowingModelDetermination of car-following acceleration, possibly based on multiple leaders. The implementation should be able to deal with:
- The current speed being higher than the desired speed.
- The headway being negative.
- Specified by:
followingAccelerationin interfaceCarFollowingModel- Parameters:
parameters- parametersspeed- current speedspeedLimits- speed limitsmaxVehicleSpeed- maximum vehicle speedleaders- set of leader headways and speeds, ordered by headway (closest first)- Returns:
- car-following acceleration
- Throws:
ParameterException- if parameter exception occurs
-
setDesiredSpeedModel
Sets the desired speed model.- Parameters:
model- new model- Returns:
- the model that was set before this method was called
-
followingAcceleration
protected abstract org.djunits.value.vdouble.scalar.Acceleration followingAcceleration(Parameters parameters, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Speed desiredSpeed, org.djunits.value.vdouble.scalar.Length desiredHeadway, PerceptionIterable<? extends PerceivedObject> leaders) throws ParameterException Determination of car-following acceleration, possibly based on multiple leaders.- Parameters:
parameters- parametersspeed- current speeddesiredSpeed- desired speeddesiredHeadway- desired headwayleaders- set of leader headways (guaranteed positive) and speeds, ordered by headway (closest first)- Returns:
- car-following acceleration
- Throws:
ParameterException- if parameter exception occurs
-
toString
-
init
Description copied from interface:InitialisableInitialize car-following model.- Specified by:
initin interfaceCarFollowingModel- Specified by:
initin interfaceInitialisable- Parameters:
gtu- gtu
-