public interface Synchronization extends LmrsParameters
Copyright (c) 2013-2018 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 Synchronization |
ACTIVE
Synchronization where a suitable leader is actively targeted, in relation to infrastructure.
|
static Synchronization |
DEADEND
Synchronization that only includes stopping for a dead-end.
|
static Synchronization |
PASSIVE
Synchronization where current leaders are taken.
|
static Synchronization |
PASSIVE_MOVING
Synchronization where current leaders are taken.
|
Modifier and Type | Method and Description |
---|---|
static boolean |
canBeAhead(HeadwayGTU adjacentVehicle,
org.djunits.value.vdouble.scalar.Length xCur,
int nCur,
org.djunits.value.vdouble.scalar.Speed ownSpeed,
org.djunits.value.vdouble.scalar.Length ownLength,
org.djunits.value.vdouble.scalar.Speed tagSpeed,
double dCoop,
org.djunits.value.vdouble.scalar.Acceleration b,
org.djunits.value.vdouble.scalar.Duration tMin,
org.djunits.value.vdouble.scalar.Duration tMax,
org.djunits.value.vdouble.scalar.Length x0,
org.djunits.value.vdouble.scalar.Duration t0,
org.djunits.value.vdouble.scalar.Duration lc,
double desire)
Returns whether a driver estimates it can be ahead of an adjacent vehicle for merging.
|
static org.djunits.value.vdouble.scalar.Acceleration |
gentleUrgency(org.djunits.value.vdouble.scalar.Acceleration a,
double desire,
org.opentrafficsim.base.parameters.Parameters params)
Return limited deceleration.
|
static HeadwayGTU |
getFollower(HeadwayGTU gtu,
PerceptionCollectable<HeadwayGTU,LaneBasedGTU> leaders,
HeadwayGTU follower,
org.djunits.value.vdouble.scalar.Length ownLength)
Returns the upstream gtu of the given gtu.
|
static org.djunits.value.vdouble.scalar.Length |
getMergeDistance(LanePerception perception,
org.opentrafficsim.core.network.LateralDirectionality lat)
Returns the distance to the next merge, stopping within this distance is futile for a lane change.
|
static HeadwayGTU |
getTargetLeader(HeadwayGTU gtu,
SortedSet<HeadwayGTU> leaders)
Returns the leader of one gtu from a set.
|
static PerceptionCollectable<HeadwayGTU,LaneBasedGTU> |
removeAllUpstreamOfConflicts(PerceptionCollectable<HeadwayGTU,LaneBasedGTU> set,
LanePerception perception,
RelativeLane relativeLane)
Removes all GTUs from the set, that are found upstream on the conflicting lane of a conflict in the current lane.
|
static org.djunits.value.vdouble.scalar.Length |
requiredBufferSpace(org.djunits.value.vdouble.scalar.Speed speed,
int nCur,
org.djunits.value.vdouble.scalar.Length x0,
org.djunits.value.vdouble.scalar.Duration t0,
org.djunits.value.vdouble.scalar.Duration lc,
double dCoop)
Returns the required buffer space to perform a lane change and further lane changes.
|
static org.djunits.value.vdouble.scalar.Acceleration |
stopForEnd(org.djunits.value.vdouble.scalar.Length xCur,
org.djunits.value.vdouble.scalar.Length xMerge,
org.opentrafficsim.base.parameters.Parameters params,
org.djunits.value.vdouble.scalar.Speed ownSpeed,
CarFollowingModel cfm,
SpeedLimitInfo sli)
Calculates acceleration to stop for a split or dead-end, accounting for infrastructure.
|
org.djunits.value.vdouble.scalar.Acceleration |
synchronize(LanePerception perception,
org.opentrafficsim.base.parameters.Parameters params,
SpeedLimitInfo sli,
CarFollowingModel cfm,
double desire,
org.opentrafficsim.core.network.LateralDirectionality lat,
LmrsData lmrsData)
Determine acceleration for synchronization.
|
static org.djunits.value.vdouble.scalar.Acceleration |
tagAlongAcceleration(HeadwayGTU leader,
org.djunits.value.vdouble.scalar.Speed followerSpeed,
org.djunits.value.vdouble.scalar.Length followerLength,
org.djunits.value.vdouble.scalar.Speed tagSpeed,
double desire,
org.opentrafficsim.base.parameters.Parameters params,
SpeedLimitInfo sli,
CarFollowingModel cfm)
Calculates acceleration by following an adjacent vehicle, with tagging along if desire is not very high and speed is low.
|
static final Synchronization DEADEND
static final Synchronization PASSIVE
static final Synchronization PASSIVE_MOVING
static final Synchronization ACTIVE
static org.djunits.value.vdouble.scalar.Length getMergeDistance(LanePerception perception, org.opentrafficsim.core.network.LateralDirectionality lat) throws org.opentrafficsim.core.gtu.plan.operational.OperationalPlanException
perception
- LanePerception; perceptionlat
- LateralDirectionality; lateral directionorg.opentrafficsim.core.gtu.plan.operational.OperationalPlanException
- if there is no infrastructure perceptionorg.djunits.value.vdouble.scalar.Acceleration synchronize(LanePerception perception, org.opentrafficsim.base.parameters.Parameters params, SpeedLimitInfo sli, CarFollowingModel cfm, double desire, org.opentrafficsim.core.network.LateralDirectionality lat, LmrsData lmrsData) throws org.opentrafficsim.base.parameters.ParameterException, org.opentrafficsim.core.gtu.plan.operational.OperationalPlanException
perception
- perceptionparams
- parameterssli
- speed limit infocfm
- car-following modeldesire
- level of lane change desirelat
- lateral direction for synchronizationlmrsData
- LMRS dataorg.opentrafficsim.base.parameters.ParameterException
- if a parameter is not definedorg.opentrafficsim.core.gtu.plan.operational.OperationalPlanException
- perception exceptionstatic PerceptionCollectable<HeadwayGTU,LaneBasedGTU> removeAllUpstreamOfConflicts(PerceptionCollectable<HeadwayGTU,LaneBasedGTU> set, LanePerception perception, RelativeLane relativeLane) throws org.opentrafficsim.core.gtu.plan.operational.OperationalPlanException
set
- set of GTUsperception
- perceptionrelativeLane
- relative laneorg.opentrafficsim.core.gtu.plan.operational.OperationalPlanException
- if the IntersectionPerception
category is not presentstatic org.djunits.value.vdouble.scalar.Acceleration gentleUrgency(org.djunits.value.vdouble.scalar.Acceleration a, double desire, org.opentrafficsim.base.parameters.Parameters params) throws org.opentrafficsim.base.parameters.ParameterException
b
for d < dCoop
. Beyond dCoop
the limit
is a linear interpolation between b
and bCrit
.a
- acceleration to limitdesire
- lane change desireparams
- parametersorg.opentrafficsim.base.parameters.ParameterException
- when parameter is no available or value out of rangestatic HeadwayGTU getFollower(HeadwayGTU gtu, PerceptionCollectable<HeadwayGTU,LaneBasedGTU> leaders, HeadwayGTU follower, org.djunits.value.vdouble.scalar.Length ownLength)
gtu
- gtuleaders
- leaders of own vehiclefollower
- following vehicle of own vehicleownLength
- own vehicle lengthstatic org.djunits.value.vdouble.scalar.Acceleration tagAlongAcceleration(HeadwayGTU leader, org.djunits.value.vdouble.scalar.Speed followerSpeed, org.djunits.value.vdouble.scalar.Length followerLength, org.djunits.value.vdouble.scalar.Speed tagSpeed, double desire, org.opentrafficsim.base.parameters.Parameters params, SpeedLimitInfo sli, CarFollowingModel cfm) throws org.opentrafficsim.base.parameters.ParameterException
leader
- leaderfollowerSpeed
- follower speedfollowerLength
- follower lengthtagSpeed
- maximum tag along speeddesire
- lane change desireparams
- parameterssli
- speed limit infocfm
- car-following modelorg.opentrafficsim.base.parameters.ParameterException
- if a parameter is not presentstatic boolean canBeAhead(HeadwayGTU adjacentVehicle, org.djunits.value.vdouble.scalar.Length xCur, int nCur, org.djunits.value.vdouble.scalar.Speed ownSpeed, org.djunits.value.vdouble.scalar.Length ownLength, org.djunits.value.vdouble.scalar.Speed tagSpeed, double dCoop, org.djunits.value.vdouble.scalar.Acceleration b, org.djunits.value.vdouble.scalar.Duration tMin, org.djunits.value.vdouble.scalar.Duration tMax, org.djunits.value.vdouble.scalar.Length x0, org.djunits.value.vdouble.scalar.Duration t0, org.djunits.value.vdouble.scalar.Duration lc, double desire) throws org.opentrafficsim.base.parameters.ParameterException
adjacentVehicle
- adjacent vehiclexCur
- remaining distancenCur
- number of lane changes to performownSpeed
- own speedownLength
- own lengthtagSpeed
- maximum tag along speeddCoop
- cooperation thresholdb
- critical decelerationtMin
- minimum headwaytMax
- normal headwayx0
- anticipation distancet0
- anticipation timelc
- lane change durationdesire
- lane change desireorg.opentrafficsim.base.parameters.ParameterException
- if parameter is not definedstatic org.djunits.value.vdouble.scalar.Length requiredBufferSpace(org.djunits.value.vdouble.scalar.Speed speed, int nCur, org.djunits.value.vdouble.scalar.Length x0, org.djunits.value.vdouble.scalar.Duration t0, org.djunits.value.vdouble.scalar.Duration lc, double dCoop)
speed
- representative speednCur
- number of required lane changesx0
- anticipation distancet0
- anticipation timelc
- lane change durationdCoop
- cooperation thresholdstatic org.djunits.value.vdouble.scalar.Acceleration stopForEnd(org.djunits.value.vdouble.scalar.Length xCur, org.djunits.value.vdouble.scalar.Length xMerge, org.opentrafficsim.base.parameters.Parameters params, org.djunits.value.vdouble.scalar.Speed ownSpeed, CarFollowingModel cfm, SpeedLimitInfo sli) throws org.opentrafficsim.base.parameters.ParameterException
xCur
- remaining distance to endxMerge
- distance until merge pointparams
- parametersownSpeed
- own speedcfm
- car-following modelsli
- speed limit infoorg.opentrafficsim.base.parameters.ParameterException
- if parameter is not definedstatic HeadwayGTU getTargetLeader(HeadwayGTU gtu, SortedSet<HeadwayGTU> leaders)
gtu
- gtuleaders
- leadersCopyright © 2014–2018 Delft University of Technology. All rights reserved.