Class AbstractCarFollowingModel
java.lang.Object
org.opentrafficsim.road.gtu.lane.tactical.following.AbstractCarFollowingModel
- All Implemented Interfaces:
CarFollowingModel,DesiredHeadwayModel,DesiredSpeedModel,Initialisable
- Direct Known Subclasses:
AbstractIDM,ToledoCarFollowing
public abstract class AbstractCarFollowingModel extends java.lang.Object implements CarFollowingModel
Default implementation where desired speed and headway are pre-calculated for car-following.
Copyright (c) 2013-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Version:
- $Revision$, $LastChangedDate$, by $Author$, initial version Apr 2016
- Author:
- Wouter Schakel
-
Field Summary
Fields inherited from interface org.opentrafficsim.road.gtu.lane.tactical.following.CarFollowingModel
CAR_FOLLOWING_MODEL -
Constructor Summary
Constructors Constructor Description AbstractCarFollowingModel(DesiredHeadwayModel desiredHeadwayModel, DesiredSpeedModel desiredSpeedModel) -
Method Summary
Modifier and Type Method Description LengthdesiredHeadway(Parameters parameters, Speed speed)Determines the desired headway in equilibrium conditions, i.e.SpeeddesiredSpeed(Parameters parameters, SpeedLimitInfo speedInfo)Determines the desired speed.protected abstract AccelerationfollowingAcceleration(Parameters parameters, Speed speed, Speed desiredSpeed, Length desiredHeadway, PerceptionIterable<? extends Headway> leaders)Determination of car-following acceleration, possibly based on multiple leaders.AccelerationfollowingAcceleration(Parameters parameters, Speed speed, SpeedLimitInfo speedLimitInfo, PerceptionIterable<? extends Headway> leaders)Determination of car-following acceleration, possibly based on multiple leaders.voidinit(LaneBasedGTU gtu)Initialize car-following model.java.lang.StringtoString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.opentrafficsim.road.gtu.lane.tactical.following.CarFollowingModel
getLongName, getName
-
Constructor Details
-
AbstractCarFollowingModel
public AbstractCarFollowingModel(DesiredHeadwayModel desiredHeadwayModel, DesiredSpeedModel desiredSpeedModel)- Parameters:
desiredHeadwayModel- DesiredHeadwayModel; desired headway modeldesiredSpeedModel- DesiredSpeedModel; desired speed model
-
-
Method Details
-
desiredHeadway
Determines the desired headway in equilibrium conditions, i.e. no speed difference with the leader.- Specified by:
desiredHeadwayin interfaceDesiredHeadwayModel- Parameters:
parameters- Parameters; parametersspeed- Speed; speed to determine the desired headway at- Returns:
- desired headway
- Throws:
ParameterException- if parameter exception occurs
-
desiredSpeed
public final Speed desiredSpeed(Parameters parameters, SpeedLimitInfo speedInfo) throws ParameterExceptionDetermines the desired speed.- Specified by:
desiredSpeedin interfaceDesiredSpeedModel- Parameters:
parameters- Parameters; parametersspeedInfo- SpeedLimitInfo; info regarding the desired speed for car-following- Returns:
- desired speed
- Throws:
ParameterException- if parameter exception occurs
-
followingAcceleration
public final Acceleration followingAcceleration(Parameters parameters, Speed speed, SpeedLimitInfo speedLimitInfo, PerceptionIterable<? extends Headway> leaders) throws ParameterExceptionDetermination 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- Parameters; parametersspeed- Speed; current speedspeedLimitInfo- SpeedLimitInfo; info regarding the desired speed for car-followingleaders- PerceptionIterable<? extends Headway>; set of leader headways and speeds, ordered by headway (closest first)- Returns:
- car-following acceleration
- Throws:
ParameterException- if parameter exception occurs
-
followingAcceleration
protected abstract Acceleration followingAcceleration(Parameters parameters, Speed speed, Speed desiredSpeed, Length desiredHeadway, PerceptionIterable<? extends Headway> leaders) throws ParameterExceptionDetermination of car-following acceleration, possibly based on multiple leaders.- Parameters:
parameters- Parameters; parametersspeed- Speed; current speeddesiredSpeed- Speed; desired speeddesiredHeadway- Length; desired headwayleaders- PerceptionIterable<? extends Headway>; set of leader headways (guaranteed positive) and speeds, ordered by headway (closest first)- Returns:
- car-following acceleration
- Throws:
ParameterException- if parameter exception occurs
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
init
Initialize car-following model.- Specified by:
initin interfaceCarFollowingModel- Specified by:
initin interfaceInitialisable- Parameters:
gtu- LaneBasedGTU; gtu
-