Class CfRoomChecker
java.lang.Object
org.opentrafficsim.road.gtu.generator.CfRoomChecker
- All Implemented Interfaces:
LaneBasedGtuGenerator.RoomChecker
- Direct Known Subclasses:
CfBaRoomChecker
This class places GTU's behind the leader at the desired headway (i.e. CF, car-following) and the speed of the leader, but no
further than the GTU could have traveled at the desired speed during the time since the desired arrival. With multiple
leaders, the leader that causes the most upstream following position is used.
Copyright (c) 2013-2024 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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncanPlace
(SortedSet<HeadwayGtu> leaders, LaneBasedGtuCharacteristics characteristics, org.djunits.value.vdouble.scalar.Duration since, LanePosition initialPosition) Return the maximum safe speed and position for a new GTU with the specified characteristics.protected double
headwayFactor
(org.djunits.value.vdouble.scalar.Speed desiredSpeed, org.djunits.value.vdouble.scalar.Length desiredHeadway, org.djunits.value.vdouble.scalar.Speed generationSpeed, org.djunits.value.vdouble.scalar.Length generationHeadway, org.djunits.value.vdouble.scalar.Length leaderLength) Returns a situation dependent headway factor to deal with spillback.
-
Constructor Details
-
CfRoomChecker
public CfRoomChecker()
-
-
Method Details
-
canPlace
public LaneBasedGtuGenerator.Placement canPlace(SortedSet<HeadwayGtu> leaders, LaneBasedGtuCharacteristics characteristics, org.djunits.value.vdouble.scalar.Duration since, LanePosition initialPosition) throws NetworkException, GtuException Return the maximum safe speed and position for a new GTU with the specified characteristics. ReturnsPlacement.NO
if there is no safe speed and position. This method might be called with an empty leader set such that the desired speed can be implemented.- Specified by:
canPlace
in interfaceLaneBasedGtuGenerator.RoomChecker
- Parameters:
leaders
- SortedSet<HeadwayGtu>; leaders, usually 1, possibly more after a branchcharacteristics
- LaneBasedGtuCharacteristics; characteristics of the proposed new GTUsince
- Duration; time since the GTU wanted to arriveinitialPosition
- LanePosition; initial position- Returns:
- Speed; maximum safe speed, or null if a GTU with the specified characteristics cannot be placed at the current time
- Throws:
NetworkException
- this method may throw a NetworkException if it encounters an error in the network structureGtuException
- on parameter exception
-
headwayFactor
protected double headwayFactor(org.djunits.value.vdouble.scalar.Speed desiredSpeed, org.djunits.value.vdouble.scalar.Length desiredHeadway, org.djunits.value.vdouble.scalar.Speed generationSpeed, org.djunits.value.vdouble.scalar.Length generationHeadway, org.djunits.value.vdouble.scalar.Length leaderLength) Returns a situation dependent headway factor to deal with spillback.- Parameters:
desiredSpeed
- Speed; desired speeddesiredHeadway
- Length; desired headway at desired speedgenerationSpeed
- Speed; generation speedgenerationHeadway
- Length; desired headway at generation speedleaderLength
- Length; length of the leader- Returns:
- situation dependent headway factor to deal with spillback
-