public abstract class AbstractGTUFollowingModel extends Object implements GTUFollowingModel
Copyright (c) 2013-2015 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
Modifier and Type | Field and Description |
---|---|
static DualAccelerationStep |
TOODANGEROUS
Return value if lane change causes immediate collision.
|
Constructor and Description |
---|
AbstractGTUFollowingModel() |
Modifier and Type | Method and Description |
---|---|
DualAccelerationStep |
computeAcceleration(LaneBasedGTU referenceGTU,
Collection<HeadwayGTU> otherGTUs,
org.djunits.value.vdouble.scalar.Speed speedLimit)
Compute the lowest accelerations (or most severe decelerations) that would be used if a referenceGTU is present
(inserted, or not removed) in a set of other GTUs.
If any GTU in the set of otherGTUs has a null headway (indicating that the other GTU is in fact parallel to the referenceGTU), prohibitive decelerations shall be returned. Two AccelerationStep values are returned in a DualAccelerationStep. TODO We should probably add a be ready to stop before argument to prevent vehicles that cannot see their leader, or should slow down for a crossing from accelerating to unsafe speeds. |
AccelerationStep |
computeAcceleration(LaneBasedGTU follower,
org.djunits.value.vdouble.scalar.Speed leaderSpeed,
org.djunits.value.vdouble.scalar.Length.Rel headway,
org.djunits.value.vdouble.scalar.Speed speedLimit)
Compute the acceleration that would be used to follow a leader.
TODO We should probably add a be ready to stop before argument to prevent vehicles that cannot see their leader, or should slow down for a crossing from accelerating to unsafe speeds. |
AccelerationStep |
computeAccelerationWithNoLeader(LaneBasedGTU gtu,
org.djunits.value.vdouble.scalar.Speed speedLimit)
Compute the acceleration that would be used if the is not leader in sight.
|
org.djunits.value.vdouble.scalar.Length.Rel |
minimumHeadway(org.djunits.value.vdouble.scalar.Speed followerSpeed,
org.djunits.value.vdouble.scalar.Speed leaderSpeed,
org.djunits.value.vdouble.scalar.Length.Rel precision,
org.djunits.value.vdouble.scalar.Speed speedLimit,
org.djunits.value.vdouble.scalar.Speed followerMaximumSpeed)
Compute the minimum net headway given the speed of the follower and the leader.
At the returned headway, the follower would decelerate with it's maximum comfortable deceleration. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
computeAcceleration, getLongName, getName, getStepSize, maximumSafeDeceleration
public static final DualAccelerationStep TOODANGEROUS
public final DualAccelerationStep computeAcceleration(LaneBasedGTU referenceGTU, Collection<HeadwayGTU> otherGTUs, org.djunits.value.vdouble.scalar.Speed speedLimit) throws org.opentrafficsim.core.network.NetworkException
computeAcceleration
in interface GTUFollowingModel
referenceGTU
- LaneBasedGTU; the GTU for which the accelerations are computedotherGTUs
- Collection<HeadwayGTU>; the other GTUs. A negative headway value indicates that the other GTU is a
follower. NB. If the referenceGTU is contained in this Collection, it is ignored.speedLimit
- DoubleScalar.Abs<SpeedUnit>; the local speed limitorg.opentrafficsim.core.network.NetworkException
- on network inconsistencypublic final AccelerationStep computeAcceleration(LaneBasedGTU follower, org.djunits.value.vdouble.scalar.Speed leaderSpeed, org.djunits.value.vdouble.scalar.Length.Rel headway, org.djunits.value.vdouble.scalar.Speed speedLimit)
computeAcceleration
in interface GTUFollowingModel
follower
- LaneBasedGTU; the GTU for which acceleration is computedleaderSpeed
- DoubleScalar.Abs<SpeedUnit>; the speed of the leaderheadway
- DoubleScalar.Rel<LengthUnit>; the headway of the leaderspeedLimit
- DoubleScalarAbs<SpeedUnit>; the local speed limitpublic final AccelerationStep computeAccelerationWithNoLeader(LaneBasedGTU gtu, org.djunits.value.vdouble.scalar.Speed speedLimit) throws org.opentrafficsim.core.network.NetworkException
computeAccelerationWithNoLeader
in interface GTUFollowingModel
gtu
- LaneBasedGTU; the GTU for which acceleration is computedspeedLimit
- DoubleScalar.Abs<SpeedUnit>; the local speed limitorg.opentrafficsim.core.network.NetworkException
- on network inconsistencypublic final org.djunits.value.vdouble.scalar.Length.Rel minimumHeadway(org.djunits.value.vdouble.scalar.Speed followerSpeed, org.djunits.value.vdouble.scalar.Speed leaderSpeed, org.djunits.value.vdouble.scalar.Length.Rel precision, org.djunits.value.vdouble.scalar.Speed speedLimit, org.djunits.value.vdouble.scalar.Speed followerMaximumSpeed)
minimumHeadway
in interface GTUFollowingModel
followerSpeed
- DoubleScalar.Abs<SpeedUnit>; speed of the followerleaderSpeed
- DoubleScalar.Abs<SpeedUnit>; speed of the leaderprecision
- DoubleScalar.Rel<LengthUnit>; the required precision of the result (must be > 0)speedLimit
- DoubleScalar.Abs<SpeedUnit>; the local speed limitfollowerMaximumSpeed
- DoubleScalar.Abs<SpeedUnit>; the maximum speed that the follower can drive atCopyright © 2014–2015 Delft University of Technology. All rights reserved.