Class FixedAccelerationModel

java.lang.Object
org.opentrafficsim.road.gtu.lane.tactical.following.AbstractGtuFollowingModelMobil
org.opentrafficsim.road.gtu.lane.tactical.following.FixedAccelerationModel
All Implemented Interfaces:
Serializable, CarFollowingModel, DesiredHeadwayModel, DesiredSpeedModel, GtuFollowingModelOld, Initialisable

public class FixedAccelerationModel extends AbstractGtuFollowingModelMobil implements Serializable
Fixed GTU following model. This GTU following model does not react in any way to other GTUs. Instead it has a predetermined acceleration for a predetermined duration.
Primary use is testing of lane based GTU movement.

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
See Also:
  • Field Summary

    Fields inherited from class org.opentrafficsim.road.gtu.lane.tactical.following.AbstractGtuFollowingModelMobil

    TOODANGEROUS

    Fields inherited from interface org.opentrafficsim.road.gtu.lane.tactical.following.CarFollowingModel

    CAR_FOLLOWING_MODEL
  • Constructor Summary

    Constructors
    Constructor
    Description
    FixedAccelerationModel(org.djunits.value.vdouble.scalar.Acceleration acceleration, org.djunits.value.vdouble.scalar.Duration duration)
    Create a new FixedAccelerationModel.
  • Method Summary

    Modifier and Type
    Method
    Description
    final 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 headway, org.djunits.value.vdouble.scalar.Speed speedLimit)
    Compute the acceleration that would be used to follow a leader.
    final 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 headway, org.djunits.value.vdouble.scalar.Speed speedLimit, org.djunits.value.vdouble.scalar.Duration stepSize)
    Compute the acceleration that would be used to follow a leader.
    final org.djunits.value.vdouble.scalar.Length
    desiredHeadway(org.opentrafficsim.base.parameters.Parameters parameters, org.djunits.value.vdouble.scalar.Speed speed)
    Determines the desired headway in equilibrium conditions, i.e. no speed difference with the leader.
    final org.djunits.value.vdouble.scalar.Speed
    desiredSpeed(org.opentrafficsim.base.parameters.Parameters parameters, SpeedLimitInfo speedInfo)
    Determines the desired speed.
    final org.djunits.value.vdouble.scalar.Acceleration
    followingAcceleration(org.opentrafficsim.base.parameters.Parameters parameters, org.djunits.value.vdouble.scalar.Speed speed, SpeedLimitInfo speedInfo, PerceptionIterable<? extends Headway> leaders)
    Determination of car-following acceleration, possibly based on multiple leaders.
    final org.djunits.value.vdouble.scalar.Acceleration
    Retrieve the acceleration of this FixedAccelerationModel.
    final org.djunits.value.vdouble.scalar.Duration
    Retrieve the duration of this FixedAccelerationModel.
    final String
    Return the complete name of the car-following model.
    final org.djunits.value.vdouble.scalar.Acceleration
    Return the maximum safe deceleration for use in gap acceptance models.
    final String
    Return the name of the car-following model.
    final org.djunits.value.vdouble.scalar.Duration
    Return the standard step size of this GTU following model.
    final void
    setA(org.djunits.value.vdouble.scalar.Acceleration a)
    Set value of acceleration parameter.
    final void
    setFspeed(double fSpeed)
    Set value of desired speed factor.
    final void
    setT(org.djunits.value.vdouble.scalar.Duration t)
    Set value of desired headway.
    final String

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.opentrafficsim.road.gtu.lane.tactical.following.CarFollowingModel

    init
  • Constructor Details

    • FixedAccelerationModel

      public FixedAccelerationModel(org.djunits.value.vdouble.scalar.Acceleration acceleration, org.djunits.value.vdouble.scalar.Duration duration)
      Create a new FixedAccelerationModel.
      Parameters:
      acceleration - Acceleration; the acceleration that will be returned by the computeAcceleration methods
      duration - Duration; the duration that the acceleration will be maintained
  • Method Details

    • getDuration

      public final org.djunits.value.vdouble.scalar.Duration getDuration()
      Retrieve the duration of this FixedAccelerationModel.
      Returns:
      Duration; the duration of this FixedAccelerationModel
    • getAcceleration

      public final org.djunits.value.vdouble.scalar.Acceleration getAcceleration()
      Retrieve the acceleration of this FixedAccelerationModel.
      Returns:
      Acceleration; the acceleration of this FixedAccelerationModel
    • computeAcceleration

      public final 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 headway, org.djunits.value.vdouble.scalar.Speed speedLimit, org.djunits.value.vdouble.scalar.Duration stepSize)
      Compute the acceleration that would be used to follow a leader.
      Specified by:
      computeAcceleration in interface GtuFollowingModelOld
      Parameters:
      followerSpeed - Speed; the speed of the follower at the current time
      followerMaximumSpeed - Speed; the maximum speed that the follower is capable of driving at
      leaderSpeed - Speed; the speed of the follower at the current time
      headway - Length; 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 drop
      speedLimit - Speed; the local speed limit
      stepSize - Duration; given step size, which can be longer or shorter than the provided step size in the algorithms.
      Returns:
      Acceleration; the acceleration (or, if negative, deceleration) resulting from application of the GTU following model
    • computeAcceleration

      public final 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 headway, org.djunits.value.vdouble.scalar.Speed speedLimit)
      Compute the acceleration that would be used to follow a leader.
      Specified by:
      computeAcceleration in interface GtuFollowingModelOld
      Parameters:
      followerSpeed - Speed; the speed of the follower at the current time
      followerMaximumSpeed - Speed; the maximum speed that the follower is capable of driving at
      leaderSpeed - Speed; the speed of the follower at the current time
      headway - Length; 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 drop
      speedLimit - Speed; the local speed limit
      Returns:
      Acceleration; the acceleration (or, if negative, deceleration) resulting from application of the GTU following model
    • getMaximumSafeDeceleration

      public final org.djunits.value.vdouble.scalar.Acceleration getMaximumSafeDeceleration()
      Return the maximum safe deceleration for use in gap acceptance models. This is the deceleration that may be enforced upon a new follower due to entering a road or changing into an adjacent lane. The result shall be a positive value. In most car following models this value is named b.
      Specified by:
      getMaximumSafeDeceleration in interface GtuFollowingModelOld
      Returns:
      Acceleration; must be a positive value!
    • getStepSize

      public final org.djunits.value.vdouble.scalar.Duration getStepSize()
      Return the standard step size of this GTU following model.
      Specified by:
      getStepSize in interface GtuFollowingModelOld
      Returns:
      Duration; the standard step size of the GTU following model
    • getName

      public final String getName()
      Return the name of the car-following model.
      Specified by:
      getName in interface CarFollowingModel
      Returns:
      name of the car-following model
    • getLongName

      public final String getLongName()
      Return the complete name of the car-following model.
      Specified by:
      getLongName in interface CarFollowingModel
      Returns:
      complete name of the car-following model
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • setA

      public final void setA(org.djunits.value.vdouble.scalar.Acceleration a)
      Set value of acceleration parameter.
      Specified by:
      setA in interface GtuFollowingModelOld
      Parameters:
      a - Acceleration; value to set
    • setT

      public final void setT(org.djunits.value.vdouble.scalar.Duration t)
      Set value of desired headway.
      Specified by:
      setT in interface GtuFollowingModelOld
      Parameters:
      t - Duration; desired headway
    • setFspeed

      public final void setFspeed(double fSpeed)
      Set value of desired speed factor.
      Specified by:
      setFspeed in interface GtuFollowingModelOld
      Parameters:
      fSpeed - double; desired speed factor
    • desiredSpeed

      public final org.djunits.value.vdouble.scalar.Speed desiredSpeed(org.opentrafficsim.base.parameters.Parameters parameters, SpeedLimitInfo speedInfo) throws org.opentrafficsim.base.parameters.ParameterException
      Determines the desired speed.
      Specified by:
      desiredSpeed in interface DesiredSpeedModel
      Parameters:
      parameters - Parameters; parameters
      speedInfo - SpeedLimitInfo; info regarding the desired speed for car-following
      Returns:
      desired speed
      Throws:
      org.opentrafficsim.base.parameters.ParameterException - if parameter exception occurs
    • desiredHeadway

      public final org.djunits.value.vdouble.scalar.Length desiredHeadway(org.opentrafficsim.base.parameters.Parameters parameters, org.djunits.value.vdouble.scalar.Speed speed) throws org.opentrafficsim.base.parameters.ParameterException
      Determines the desired headway in equilibrium conditions, i.e. no speed difference with the leader.
      Specified by:
      desiredHeadway in interface DesiredHeadwayModel
      Parameters:
      parameters - Parameters; parameters
      speed - Speed; speed to determine the desired headway at
      Returns:
      desired headway
      Throws:
      org.opentrafficsim.base.parameters.ParameterException - if parameter exception occurs
    • followingAcceleration

      public final org.djunits.value.vdouble.scalar.Acceleration followingAcceleration(org.opentrafficsim.base.parameters.Parameters parameters, org.djunits.value.vdouble.scalar.Speed speed, SpeedLimitInfo speedInfo, PerceptionIterable<? extends Headway> leaders) throws org.opentrafficsim.base.parameters.ParameterException
      Determination 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:
      followingAcceleration in interface CarFollowingModel
      Parameters:
      parameters - Parameters; parameters
      speed - Speed; current speed
      speedInfo - SpeedLimitInfo; info regarding the desired speed for car-following
      leaders - PerceptionIterable<? extends Headway>; set of leader headways and speeds, ordered by headway (closest first)
      Returns:
      car-following acceleration
      Throws:
      org.opentrafficsim.base.parameters.ParameterException - if parameter exception occurs