Class AbstractDirectedLaneChangeModel
- java.lang.Object
-
- org.opentrafficsim.road.gtu.lane.tactical.directedlanechange.AbstractDirectedLaneChangeModel
-
- All Implemented Interfaces:
DirectedLaneChangeModel
- Direct Known Subclasses:
DirectedAltruistic,DirectedEgoistic
public abstract class AbstractDirectedLaneChangeModel extends java.lang.Object implements DirectedLaneChangeModel
Common code for a family of lane change models like in M. Treiber and A. Kesting Traffic Flow Dynamics, Springer-Verlag Berlin Heidelberg 2013, pp 239-244.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: 1401 $, $LastChangedDate: 2015-09-14 01:33:02 +0200 (Mon, 14 Sep 2015) $, by $Author: averbraeck $,
initial version 4 nov. 2014
- Author:
- Peter Knoppers
-
-
Field Summary
Fields Modifier and Type Field Description protected static ParameterTypeAccelerationBComfortable deceleration parameter type.
-
Constructor Summary
Constructors Constructor Description AbstractDirectedLaneChangeModel(LanePerception perception)Construct a DirectedLaneChangeModel.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract AccelerationapplyDriverPersonality(DualAccelerationStep accelerationStep)Return the weighted acceleration as described by the personality.DirectedLaneMovementStepcomputeLaneChangeAndAcceleration(LaneBasedGTU gtu, LateralDirectionality direction, java.util.Collection<Headway> sameLaneGTUs, java.util.Collection<Headway> otherLaneGTUs, Length maxDistance, Speed speedLimit, Acceleration otherLaneRouteIncentive, Acceleration laneChangeThreshold, Duration laneChangeTime)Compute the acceleration and lane change.LanePerceptiongetPerception()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.opentrafficsim.road.gtu.lane.tactical.directedlanechange.DirectedLaneChangeModel
getLongName, getName
-
-
-
-
Field Detail
-
B
protected static final ParameterTypeAcceleration B
Comfortable deceleration parameter type.
-
-
Constructor Detail
-
AbstractDirectedLaneChangeModel
public AbstractDirectedLaneChangeModel(LanePerception perception)
Construct a DirectedLaneChangeModel.- Parameters:
perception- LanePerception; the perception.
-
-
Method Detail
-
computeLaneChangeAndAcceleration
public final DirectedLaneMovementStep computeLaneChangeAndAcceleration(LaneBasedGTU gtu, LateralDirectionality direction, java.util.Collection<Headway> sameLaneGTUs, java.util.Collection<Headway> otherLaneGTUs, Length maxDistance, Speed speedLimit, Acceleration otherLaneRouteIncentive, Acceleration laneChangeThreshold, Duration laneChangeTime) throws GTUException, ParameterException, OperationalPlanException
Compute the acceleration and lane change.- Specified by:
computeLaneChangeAndAccelerationin interfaceDirectedLaneChangeModel- Parameters:
gtu- LaneBasedGTU; the GTU for which the acceleration and lane change is computeddirection- LateralDirectionality; the direction of the lane we want to change tosameLaneGTUs- Collection<Headway>; the set of information about observable GTUs in the current lane (can not be null and may include thegtu)otherLaneGTUs- Collection<Headway>; the set of information about observable GTUs in the adjacent lane where GTUs should drive in the absence of other traffic (must be null if there is no such lane)maxDistance- Length; the maximum distance that the current GTU can drive, e.g. due to a lane dropspeedLimit- Speed; the local speed limitotherLaneRouteIncentive- Acceleration; route incentive to merge to the adjacent lane where GTUs should drive in the absence of other trafficlaneChangeThreshold- Acceleration; threshold that prevents lane changes that have very little benefit merge to overtake other trafficlaneChangeTime- Duration; time spent to overtake- Returns:
- LaneMovementStep; the result of the lane change and GTU following model
- Throws:
GTUException- when the position of the GTU on the lane(s) cannot be determinedParameterException- in case of a parameter problem.OperationalPlanException- if DefaultAlexander perception category is not present
-
applyDriverPersonality
public abstract Acceleration applyDriverPersonality(DualAccelerationStep accelerationStep)
Return the weighted acceleration as described by the personality. This incorporates the personality of the driver to the lane change decisions.- Parameters:
accelerationStep- DualAccelerationStep; the DualAccelerationStep that contains the AccelerationStep that the reference GTU will make and the AccelerationStep that the (new) follower GTU will make- Returns:
- Acceleration; the acceleration that the personality of the driver uses (in a comparison to a similarly computed acceleration in the non-, or different-lane-changed state) to decide if a lane change should be performed
-
getPerception
public final LanePerception getPerception()
- Specified by:
getPerceptionin interfaceDirectedLaneChangeModel- Returns:
- the perception.
-
-