public abstract class AbstractCarFollowingModel extends Object implements CarFollowingModel, GTUFollowingModelOld
Constructor and Description |
---|
AbstractCarFollowingModel() |
Modifier and Type | Method and Description |
---|---|
org.djunits.value.vdouble.scalar.Acceleration |
computeAcceleration(org.djunits.value.vdouble.scalar.Speed followerSpeed,
org.djunits.value.vdouble.scalar.Speed followerMaximumSpeed,
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.
|
org.djunits.value.vdouble.scalar.Acceleration |
computeAcceleration(org.djunits.value.vdouble.scalar.Speed followerSpeed,
org.djunits.value.vdouble.scalar.Speed followerMaximumSpeed,
org.djunits.value.vdouble.scalar.Speed leaderSpeed,
org.djunits.value.vdouble.scalar.Length.Rel headway,
org.djunits.value.vdouble.scalar.Speed speedLimit,
org.djunits.value.vdouble.scalar.Time.Rel stepSize)
Compute the acceleration that would be used to follow a leader.
|
AccelerationStep |
computeAccelerationStep(LaneBasedGTU gtu,
org.djunits.value.vdouble.scalar.Speed leaderSpeed,
org.djunits.value.vdouble.scalar.Length.Rel headway,
org.djunits.value.vdouble.scalar.Length.Rel maxDistance,
org.djunits.value.vdouble.scalar.Speed speedLimit)
Compute the acceleration that would be used to follow a leader.
|
AccelerationStep |
computeAccelerationStep(LaneBasedGTU gtu,
org.djunits.value.vdouble.scalar.Speed leaderSpeed,
org.djunits.value.vdouble.scalar.Length.Rel headway,
org.djunits.value.vdouble.scalar.Length.Rel maxDistance,
org.djunits.value.vdouble.scalar.Speed speedLimit,
org.djunits.value.vdouble.scalar.Time.Rel stepSize)
Compute the acceleration that would be used to follow a leader.
|
AccelerationStep |
computeAccelerationStep(org.djunits.value.vdouble.scalar.Speed followerSpeed,
org.djunits.value.vdouble.scalar.Speed leaderSpeed,
org.djunits.value.vdouble.scalar.Length.Rel headway,
org.djunits.value.vdouble.scalar.Speed speedLimit,
org.djunits.value.vdouble.scalar.Time.Abs currentTime)
Compute the acceleration that would be used to follow a leader.
|
AccelerationStep |
computeAccelerationStep(org.djunits.value.vdouble.scalar.Speed followerSpeed,
org.djunits.value.vdouble.scalar.Speed leaderSpeed,
org.djunits.value.vdouble.scalar.Length.Rel headway,
org.djunits.value.vdouble.scalar.Speed speedLimit,
org.djunits.value.vdouble.scalar.Time.Abs currentTime,
org.djunits.value.vdouble.scalar.Time.Rel stepSize)
Compute the acceleration that would be used to follow a leader.
|
AccelerationStep |
computeAccelerationStepWithNoLeader(LaneBasedGTU gtu,
org.djunits.value.vdouble.scalar.Length.Rel maxDistance,
org.djunits.value.vdouble.scalar.Speed speedLimit)
Compute the acceleration that would be used if the is not leader in sight.
|
AccelerationStep |
computeAccelerationStepWithNoLeader(LaneBasedGTU gtu,
org.djunits.value.vdouble.scalar.Length.Rel maxDistance,
org.djunits.value.vdouble.scalar.Speed speedLimit,
org.djunits.value.vdouble.scalar.Time.Rel stepSize)
Compute the acceleration that would be used if the is not leader in sight.
|
DualAccelerationStep |
computeDualAccelerationStep(LaneBasedGTU gtu,
Collection<HeadwayGTU> otherGtuHeadways,
org.djunits.value.vdouble.scalar.Length.Rel maxDistance,
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. or should slow down for a crossing from accelerating to unsafe speeds. |
DualAccelerationStep |
computeDualAccelerationStep(LaneBasedGTU gtu,
Collection<HeadwayGTU> otherGtuHeadways,
org.djunits.value.vdouble.scalar.Length.Rel maxDistance,
org.djunits.value.vdouble.scalar.Speed speedLimit,
org.djunits.value.vdouble.scalar.Time.Rel stepSize)
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. or should slow down for a crossing from accelerating to unsafe speeds. |
org.djunits.value.vdouble.scalar.Acceleration |
followingAcceleration(LaneBasedGTU gtu,
org.djunits.value.vdouble.scalar.Speed speed,
org.djunits.value.vdouble.scalar.Speed speedLimit,
boolean enforcement,
org.djunits.value.vdouble.scalar.Speed maximumVehicleSpeed,
org.djunits.value.vdouble.scalar.Length.Rel headway,
org.djunits.value.vdouble.scalar.Speed leaderSpeed)
Determines car-following acceleration.
|
org.djunits.value.vdouble.scalar.Acceleration |
followingAcceleration(LaneBasedGTU gtu,
org.djunits.value.vdouble.scalar.Speed speed,
org.djunits.value.vdouble.scalar.Speed speedLimit,
boolean enforcement,
org.djunits.value.vdouble.scalar.Speed maximumVehicleSpeed,
SortedMap<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.value.vdouble.scalar.Speed> leaders)
Multi-anticipative determination of car-following acceleration.
|
protected abstract org.djunits.value.vdouble.scalar.Acceleration |
followingAcceleration(LaneBasedGTU gtu,
org.djunits.value.vdouble.scalar.Speed speed,
org.djunits.value.vdouble.scalar.Speed desiredSpeed,
org.djunits.value.vdouble.scalar.Length.Rel desiredHeadway,
SortedMap<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.value.vdouble.scalar.Speed> leaders)
Multi-anticipative determination of car-following acceleration.
|
org.djunits.value.vdouble.scalar.Acceleration |
freeAcceleration(LaneBasedGTU gtu,
org.djunits.value.vdouble.scalar.Speed speed,
org.djunits.value.vdouble.scalar.Speed speedLimit,
boolean enforcement,
org.djunits.value.vdouble.scalar.Speed maximumVehicleSpeed)
Determines the acceleration if there is no reason to decelerate.
|
org.djunits.value.vdouble.scalar.Acceleration |
getMaximumSafeDeceleration()
Return the maximum safe deceleration for use in gap acceptance models.
|
org.djunits.value.vdouble.scalar.Time.Rel |
getStepSize()
Return the standard step size of this GTU following model.
|
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.Length.Rel maxDistance,
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
desiredHeadway, desiredSpeed, getLongName, getName
getLongName, getName
public org.djunits.value.vdouble.scalar.Acceleration freeAcceleration(LaneBasedGTU gtu, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Speed speedLimit, boolean enforcement, org.djunits.value.vdouble.scalar.Speed maximumVehicleSpeed) throws org.opentrafficsim.core.gtu.drivercharacteristics.ParameterException
freeAcceleration
in interface CarFollowingModel
gtu
- GTU for which the acceleration is calculated.speed
- Current speed.speedLimit
- Speed limit, static or dynamic.enforcement
- Whether the speed limit is enforced by camera, section control, etc.maximumVehicleSpeed
- Maximum speed of the vehicle.org.opentrafficsim.core.gtu.drivercharacteristics.ParameterException
- If parameter exception occurs.public org.djunits.value.vdouble.scalar.Acceleration followingAcceleration(LaneBasedGTU gtu, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Speed speedLimit, boolean enforcement, org.djunits.value.vdouble.scalar.Speed maximumVehicleSpeed, org.djunits.value.vdouble.scalar.Length.Rel headway, org.djunits.value.vdouble.scalar.Speed leaderSpeed) throws org.opentrafficsim.core.gtu.drivercharacteristics.ParameterException
followingAcceleration
in interface CarFollowingModel
gtu
- GTU for which the acceleration is calculated.speed
- Current speed.speedLimit
- Speed limit, static or dynamic.enforcement
- Whether the speed limit is enforced by camera, section control, etc.maximumVehicleSpeed
- Maximum speed of the vehicle.headway
- Net headway towards the leading vehicle.leaderSpeed
- Speed of the leading vehicle.org.opentrafficsim.core.gtu.drivercharacteristics.ParameterException
- If parameter exception occurs.public org.djunits.value.vdouble.scalar.Acceleration followingAcceleration(LaneBasedGTU gtu, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Speed speedLimit, boolean enforcement, org.djunits.value.vdouble.scalar.Speed maximumVehicleSpeed, SortedMap<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.value.vdouble.scalar.Speed> leaders) throws org.opentrafficsim.core.gtu.drivercharacteristics.ParameterException
followingAcceleration
in interface CarFollowingModel
gtu
- GTU for which the acceleration is calculated.speed
- Current speed.speedLimit
- Speed limit, static or dynamic.enforcement
- Whether the speed limit is enforced by camera, section control, etc.maximumVehicleSpeed
- Maximum speed of the vehicle.leaders
- Set of leader headways and speeds, ordered by headway (closest first).org.opentrafficsim.core.gtu.drivercharacteristics.ParameterException
- If parameter exception occurs.protected abstract org.djunits.value.vdouble.scalar.Acceleration followingAcceleration(LaneBasedGTU gtu, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Speed desiredSpeed, org.djunits.value.vdouble.scalar.Length.Rel desiredHeadway, SortedMap<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.value.vdouble.scalar.Speed> leaders) throws org.opentrafficsim.core.gtu.drivercharacteristics.ParameterException
gtu
- GTU for which the acceleration is calculated.speed
- Current speed.desiredSpeed
- Desired speed.desiredHeadway
- Desired headway.leaders
- Set of leader headways (guaranteed positive) and speeds, ordered by headway (closest first).org.opentrafficsim.core.gtu.drivercharacteristics.ParameterException
- If parameter exception occurs.public AccelerationStep computeAccelerationStep(LaneBasedGTU gtu, org.djunits.value.vdouble.scalar.Speed leaderSpeed, org.djunits.value.vdouble.scalar.Length.Rel headway, org.djunits.value.vdouble.scalar.Length.Rel maxDistance, org.djunits.value.vdouble.scalar.Speed speedLimit) throws org.opentrafficsim.core.gtu.GTUException
GTUFollowingModelOld
computeAccelerationStep
in interface GTUFollowingModelOld
gtu
- LaneBasedGTU; the GTU for which acceleration is computedleaderSpeed
- Speed; the speed of the leaderheadway
- Length.Rel; the headway of the leadermaxDistance
- Length.Rel; the maximum distance we can cover at the current time, e.g. as the result of a lane dropspeedLimit
- Speed; the local speed limitorg.opentrafficsim.core.gtu.GTUException
- when the velocity of the gtu cannot be determinedpublic AccelerationStep computeAccelerationStep(LaneBasedGTU gtu, org.djunits.value.vdouble.scalar.Speed leaderSpeed, org.djunits.value.vdouble.scalar.Length.Rel headway, org.djunits.value.vdouble.scalar.Length.Rel maxDistance, org.djunits.value.vdouble.scalar.Speed speedLimit, org.djunits.value.vdouble.scalar.Time.Rel stepSize) throws org.opentrafficsim.core.gtu.GTUException
GTUFollowingModelOld
computeAccelerationStep
in interface GTUFollowingModelOld
gtu
- LaneBasedGTU; the GTU for which acceleration is computedleaderSpeed
- Speed; the speed of the leaderheadway
- Length.Rel; the headway of the leadermaxDistance
- Length.Rel; the maximum distance we can cover at the current time, e.g. as the result of a lane dropspeedLimit
- Speed; the local speed limitstepSize
- given step size, which can be longer or shorter than the provided step size in the algorithms.org.opentrafficsim.core.gtu.GTUException
- when the velocity of the gtu cannot be determinedpublic org.djunits.value.vdouble.scalar.Acceleration computeAcceleration(org.djunits.value.vdouble.scalar.Speed followerSpeed, org.djunits.value.vdouble.scalar.Speed followerMaximumSpeed, org.djunits.value.vdouble.scalar.Speed leaderSpeed, org.djunits.value.vdouble.scalar.Length.Rel headway, org.djunits.value.vdouble.scalar.Speed speedLimit)
GTUFollowingModelOld
computeAcceleration
in interface GTUFollowingModelOld
followerSpeed
- Speed; the speed of the follower at the current timefollowerMaximumSpeed
- Speed; the maximum speed that the follower is capable of driving atleaderSpeed
- Speed; the speed of the follower at the current timeheadway
- Length.Rel; the net headway (distance between the front of the follower to the rear of the leader)
at the current time, or the maximum distance we can cover at the current time, e.g. as the result of a lane
dropspeedLimit
- Speed; the local speed limitpublic org.djunits.value.vdouble.scalar.Acceleration computeAcceleration(org.djunits.value.vdouble.scalar.Speed followerSpeed, org.djunits.value.vdouble.scalar.Speed followerMaximumSpeed, org.djunits.value.vdouble.scalar.Speed leaderSpeed, org.djunits.value.vdouble.scalar.Length.Rel headway, org.djunits.value.vdouble.scalar.Speed speedLimit, org.djunits.value.vdouble.scalar.Time.Rel stepSize)
GTUFollowingModelOld
computeAcceleration
in interface GTUFollowingModelOld
followerSpeed
- Speed; the speed of the follower at the current timefollowerMaximumSpeed
- Speed; the maximum speed that the follower is capable of driving atleaderSpeed
- Speed; the speed of the follower at the current timeheadway
- Length.Rel; the net headway (distance between the front of the follower to the rear of the leader)
at the current time, or the maximum distance we can cover at the current time, e.g. as the result of a lane
dropspeedLimit
- Speed; the local speed limitstepSize
- given step size, which can be longer or shorter than the provided step size in the algorithms.public AccelerationStep computeAccelerationStep(org.djunits.value.vdouble.scalar.Speed followerSpeed, org.djunits.value.vdouble.scalar.Speed leaderSpeed, org.djunits.value.vdouble.scalar.Length.Rel headway, org.djunits.value.vdouble.scalar.Speed speedLimit, org.djunits.value.vdouble.scalar.Time.Abs currentTime)
GTUFollowingModelOld
computeAccelerationStep
in interface GTUFollowingModelOld
followerSpeed
- Speed; the speed of the follower at the current timeleaderSpeed
- Speed; the speed of the follower at the current timeheadway
- Length.Rel; the net headway (distance between the front of the follower to the rear of the leader)
at the current time, or the maximum distance we can cover at the current time, e.g. as the result of a lane
dropspeedLimit
- Speed; the local speed limitcurrentTime
- to be used to determine the validity of the AccelerationSteppublic AccelerationStep computeAccelerationStep(org.djunits.value.vdouble.scalar.Speed followerSpeed, org.djunits.value.vdouble.scalar.Speed leaderSpeed, org.djunits.value.vdouble.scalar.Length.Rel headway, org.djunits.value.vdouble.scalar.Speed speedLimit, org.djunits.value.vdouble.scalar.Time.Abs currentTime, org.djunits.value.vdouble.scalar.Time.Rel stepSize)
GTUFollowingModelOld
computeAccelerationStep
in interface GTUFollowingModelOld
followerSpeed
- Speed; the speed of the follower at the current timeleaderSpeed
- Speed; the speed of the follower at the current timeheadway
- Length.Rel; the net headway (distance between the front of the follower to the rear of the leader)
at the current time, or the maximum distance we can cover at the current time, e.g. as the result of a lane
dropspeedLimit
- Speed; the local speed limitcurrentTime
- to be used to determine the validity of the AccelerationStepstepSize
- given step size, which can be longer or shorter than the provided step size in the algorithms.public DualAccelerationStep computeDualAccelerationStep(LaneBasedGTU gtu, Collection<HeadwayGTU> otherGtuHeadways, org.djunits.value.vdouble.scalar.Length.Rel maxDistance, org.djunits.value.vdouble.scalar.Speed speedLimit) throws org.opentrafficsim.core.gtu.GTUException
GTUFollowingModelOld
computeDualAccelerationStep
in interface GTUFollowingModelOld
gtu
- LaneBasedGTU; the GTU for which the accelerations are computedotherGtuHeadways
- 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.maxDistance
- Length.Rel; the maximum distance we can cover at the current time, e.g. as the result of a lane dropspeedLimit
- Speed; the local speed limitorg.opentrafficsim.core.gtu.GTUException
- when the velocity of the gtu cannot be determinedpublic DualAccelerationStep computeDualAccelerationStep(LaneBasedGTU gtu, Collection<HeadwayGTU> otherGtuHeadways, org.djunits.value.vdouble.scalar.Length.Rel maxDistance, org.djunits.value.vdouble.scalar.Speed speedLimit, org.djunits.value.vdouble.scalar.Time.Rel stepSize) throws org.opentrafficsim.core.gtu.GTUException
GTUFollowingModelOld
computeDualAccelerationStep
in interface GTUFollowingModelOld
gtu
- LaneBasedGTU; the GTU for which the accelerations are computedotherGtuHeadways
- 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.maxDistance
- Length.Rel; the maximum distance we can cover at the current time, e.g. as the result of a lane dropspeedLimit
- Speed; the local speed limitstepSize
- given step size, which can be longer or shorter than the provided step size in the algorithms.org.opentrafficsim.core.gtu.GTUException
- when the velocity of the gtu cannot be determinedpublic AccelerationStep computeAccelerationStepWithNoLeader(LaneBasedGTU gtu, org.djunits.value.vdouble.scalar.Length.Rel maxDistance, org.djunits.value.vdouble.scalar.Speed speedLimit) throws org.opentrafficsim.core.gtu.GTUException
GTUFollowingModelOld
computeAccelerationStepWithNoLeader
in interface GTUFollowingModelOld
gtu
- LaneBasedGTU; the GTU for which acceleration is computedmaxDistance
- Length.Rel; the maximum distance we can cover at the current time, e.g. as the result of a lane dropspeedLimit
- Speed; the local speed limitorg.opentrafficsim.core.gtu.GTUException
- when the velocity of the gtu cannot be determinedpublic AccelerationStep computeAccelerationStepWithNoLeader(LaneBasedGTU gtu, org.djunits.value.vdouble.scalar.Length.Rel maxDistance, org.djunits.value.vdouble.scalar.Speed speedLimit, org.djunits.value.vdouble.scalar.Time.Rel stepSize) throws org.opentrafficsim.core.gtu.GTUException
GTUFollowingModelOld
computeAccelerationStepWithNoLeader
in interface GTUFollowingModelOld
gtu
- LaneBasedGTU; the GTU for which acceleration is computedmaxDistance
- Length.Rel; the maximum distance we can cover at the current time, e.g. as the result of a lane dropspeedLimit
- Speed; the local speed limitstepSize
- given step size, which can be longer or shorter than the provided step size in the algorithms.org.opentrafficsim.core.gtu.GTUException
- when the velocity of the gtu cannot be determinedpublic 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.Length.Rel maxDistance, org.djunits.value.vdouble.scalar.Speed speedLimit, org.djunits.value.vdouble.scalar.Speed followerMaximumSpeed)
GTUFollowingModelOld
minimumHeadway
in interface GTUFollowingModelOld
followerSpeed
- Speed; speed of the followerleaderSpeed
- Speed; speed of the leaderprecision
- Length.Rel; the required precision of the result (must be > 0)maxDistance
- Length.Rel; the maximum distance we can cover at the current time, e.g. as the result of a lane dropspeedLimit
- Speed; the local speed limitfollowerMaximumSpeed
- Speed; the maximum speed that the follower can drive atpublic org.djunits.value.vdouble.scalar.Acceleration getMaximumSafeDeceleration()
GTUFollowingModelOld
getMaximumSafeDeceleration
in interface GTUFollowingModelOld
public org.djunits.value.vdouble.scalar.Time.Rel getStepSize()
GTUFollowingModelOld
getStepSize
in interface GTUFollowingModelOld
Copyright © 2014–2016 Delft University of Technology. All rights reserved.