public final class SpeedLimitUtil extends Object
Copyright (c) 2013-2016 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 org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterTypeAcceleration |
A_LAT
Maximum comfortable acceleration in the lateral direction.
|
Modifier and Type | Method and Description |
---|---|
static org.djunits.value.vdouble.scalar.Acceleration |
approachTargetSpeed(CarFollowingModel carFollowingModel,
org.opentrafficsim.core.gtu.behavioralcharacteristics.BehavioralCharacteristics behavioralCharacteristics,
org.djunits.value.vdouble.scalar.Speed speed,
SpeedLimitInfo speedLimitInfo,
org.djunits.value.vdouble.scalar.Length distance,
org.djunits.value.vdouble.scalar.Speed targetSpeed)
Returns an acceleration based on the car-following model in order to adjust the speed to a given value at some location
ahead.
|
static org.djunits.value.vdouble.scalar.Acceleration |
considerSpeedLimitTransitions(org.opentrafficsim.core.gtu.behavioralcharacteristics.BehavioralCharacteristics behavioralCharacteristics,
org.djunits.value.vdouble.scalar.Speed speed,
SpeedLimitProspect speedLimitProspect,
CarFollowingModel carFollowingModel)
Acceleration for speed limit transitions.
|
static org.djunits.value.vdouble.scalar.Speed |
getLegalSpeedLimit(SpeedLimitInfo speedLimitInfo)
Returns the minimum speed of the applicable speed limit types MAX_LEGAL_VEHICLE_SPEED, ROAD_CLASS, FIXED_SIGN and
DYNAMIC_SIGN.
|
static org.djunits.value.vdouble.scalar.Speed |
getMaximumVehicleSpeed(SpeedLimitInfo speedLimitInfo)
Returns the speed of speed limit type MAX_VEHICLE_SPEED.
|
public static final org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterTypeAcceleration A_LAT
public static org.djunits.value.vdouble.scalar.Speed getLegalSpeedLimit(SpeedLimitInfo speedLimitInfo)
speedLimitInfo
- speed limit infoNullPointerException
- if speed limit info is nullpublic static org.djunits.value.vdouble.scalar.Speed getMaximumVehicleSpeed(SpeedLimitInfo speedLimitInfo)
speedLimitInfo
- speed limit infoNullPointerException
- if speed limit info is nullpublic static org.djunits.value.vdouble.scalar.Acceleration considerSpeedLimitTransitions(org.opentrafficsim.core.gtu.behavioralcharacteristics.BehavioralCharacteristics behavioralCharacteristics, org.djunits.value.vdouble.scalar.Speed speed, SpeedLimitProspect speedLimitProspect, CarFollowingModel carFollowingModel) throws org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
approachTargetSpeed()
of the abstract car-following model implementation. All remaining transitions happen in the
default manner, i.e. deceleration and acceleration after the speed limit change and governed by the car-following model.behavioralCharacteristics
- behavioral characteristicsspeed
- current speedspeedLimitProspect
- speed limit prospectcarFollowingModel
- car following modelorg.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
- if a required parameter is not foundpublic static org.djunits.value.vdouble.scalar.Acceleration approachTargetSpeed(CarFollowingModel carFollowingModel, org.opentrafficsim.core.gtu.behavioralcharacteristics.BehavioralCharacteristics behavioralCharacteristics, org.djunits.value.vdouble.scalar.Speed speed, SpeedLimitInfo speedLimitInfo, org.djunits.value.vdouble.scalar.Length distance, org.djunits.value.vdouble.scalar.Speed targetSpeed) throws org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
___ location of target speed --)| ___ |___|(--------------s--------------) (--h--)|___| ))) vTarHere,
s
is the distance to the target speed, and h
is the desired headway if the vehicle would drive at
the target speed vTar
.vTar
at all. Because of this underestimation, strong deceleration is required
later. This behavior is not in line with the sensitivity parameters of the car-following model.vTar'
should be lower. We require:
v = vTar
then vTar' = vTar
, otherwise there is an incentive to accelerate or decelerate for no
good reasonvTar ~ 0
then vTar' ~ 0
, as car-following models are suitable for stopping and need no additional
incentive to decelerate in such cases0 < vTar < v
then vTar' < vTar
, introducing additional deceleration to compensate for the fact
that the virtual vehicle does not move
vTar' = vTar * (vTar/v) = vTar^2/v
.v < vTar
we get vTar' > vTar
leading to additional acceleration. Acceleration is then
appropriate, and possibly limited by a free term in the car-following model.vTar'
at a distance s + h'
where h'
is the desired
headway if the vehicle would drive at speed vTar'
. Both vTar'
and h'
depend on the current speed
of the vehicle, so the virtual vehicle in this case actually moves, but not with vTar
.carFollowingModel
- car-following model to usebehavioralCharacteristics
- behavioral characteristicsspeed
- current speedspeedLimitInfo
- info regarding the desired speed for car-followingdistance
- distance to the location of the target speedtargetSpeed
- target speedorg.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
- if parameter exception occursNullPointerException
- if any input is nullIllegalArgumentException
- if the distance or target speed is not at least 0Copyright © 2014–2016 Delft University of Technology. All rights reserved.