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.
org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Acceleration, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.AnglePlane, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.AngleSlope, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.AngleSolid, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Area, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Density, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Dimensionless, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.ElectricalCharge, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.ElectricalCurrent, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.ElectricalPotential, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.ElectricalResistance, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Energy, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.FlowMass, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.FlowVolume, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Force, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Frequency, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Length, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.LinearDensity, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Mass, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Power, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Pressure, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Speed, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Temperature, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Time, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Torque, org.djunits.value.vdouble.scalar.DOUBLE_SCALAR.Volume
Modifier and Type | Field and Description |
---|---|
static DualAccelerationStep |
TOODANGEROUS
Return value if lane change causes immediate collision.
|
ABAMPERE, ABCOULOMB, ABVOLT, ACRE, AMPERE, ARCMINUTE, ARCSECOND, ARE, ATMOSPHERE_STANDARD, ATMOSPHERE_TECHNICAL, ATOMIC_UNIT, BAR, BARYE, BTU_ISO, BTU_IT, CALORIE_IT, CENTESIMAL_ARCMINUTE, CENTESIMAL_ARCSECOND, CENTIMETER, CENTIMETER_MERCURY, COULOMB, CUBIC_CENTIMETER, CUBIC_DECIMETER, CUBIC_FEET_PER_MINUTE, CUBIC_FEET_PER_SECOND, CUBIC_FOOT, CUBIC_INCH, CUBIC_INCH_PER_MINUTE, CUBIC_INCH_PER_SECOND, CUBIC_KM, CUBIC_METER, CUBIC_METER_PER_DAY, CUBIC_METER_PER_HOUR, CUBIC_METER_PER_MINUTE, CUBIC_METER_PER_SECOND, CUBIC_MILE, CUBIC_YARD, DALTON, DAY, DECIMETER, DEG, DEGREE, DEGREE_CELSIUS, DEGREE_FAHRENHEIT, DEGREE_RANKINE, DEGREE_REAUMUR, DEKAMETER, DYNE, ELECTRONVOLT, EMU, ERG, ERG_PER_SECOND, ESU, EXA_ELECTRONVOLT, FARADAY, FOOT, FOOT_MERCURY, FOOT_PER_SECOND, FOOT_PER_SECOND_2, FOOT_POUND_FORCE, FOOT_POUND_FORCE_PER_HOUR, FOOT_POUND_FORCE_PER_MINUTE, FOOT_POUND_FORCE_PER_SECOND, FRANKLIN, GAL, GALLON_IMP, GALLON_PER_DAY, GALLON_PER_HOUR, GALLON_PER_MINUTE, GALLON_PER_SECOND, GALLON_US_FLUID, GIGA_ELECTRONVOLT, GIGAHERTZ, GIGAWATT, GIGAWATT_HOUR, GRAD, GRAM, GRAM_PER_CENTIMETER_3, HECTARE, HECTOMETER, HECTOPASCAL, HERTZ, HORSEPOWER_METRIC, HOUR, INCH, INCH_MERCURY, INCH_PER_SECOND_2, INCH_POUND_FORCE, JOULE, KELVIN, KG_PER_METER_3, KGF_PER_SQUARE_MM, KILO_ELECTRONVOLT, KILOAMPERE, KILOCALORIE, KILOGRAM, KILOGRAM_FORCE, KILOGRAM_PER_SECOND, KILOHERTZ, KILOMETER, KILOOHM, KILOPASCAL, KILOVOLT, KILOWATT, KILOWATT_HOUR, KM_PER_HOUR, KM_PER_HOUR_2, KNOT, KNOT_PER_SECOND, LITER, LITER_PER_DAY, LITER_PER_HOUR, LITER_PER_MINUTE, LITER_PER_SECOND, MEGA_ELECTRONVOLT, MEGAHERTZ, MEGAOHM, MEGAVOLT, MEGAWATT, MEGAWATT_HOUR, METER, METER_KILOGRAM_FORCE, METER_PER_SECOND, METER_PER_SECOND_2, MICROAMPERE, MICROVOLT, MICROWATT_HOUR, MILE, MILE_PER_HOUR, MILE_PER_HOUR_2, MILE_PER_HOUR_PER_SECOND, MILLI_ELECTRONVOLT, MILLIAMPERE, MILLIAMPERE_HOUR, MILLIBAR, MILLIMETER, MILLIMETER_MERCURY, MILLIOHM, MILLISECOND, MILLIVOLT, MILLIWATT_HOUR, MINUTE, NANOAMPERE, NAUTICAL_MILE, NEWTON, NEWTON_METER, OHM, OUNCE, OUNCE_FORCE, OUNCE_IMP_FLUID, OUNCE_US_FLUID, PASCAL, PER_CENTIMETER, PER_DAY, PER_DECIMETER, PER_DEKAMETER, PER_FOOT, PER_HECTOMETER, PER_HOUR, PER_INCH, PER_KILOMETER, PER_METER, PER_MILE, PER_MILLIMETER, PER_MILLISECOND, PER_MINUTE, PER_NAUTICAL_MILE, PER_SECOND, PER_WEEK, PER_YARD, PETA_ELECTRONVOLT, PIEZE, PINT_IMP, PINT_US_FLUID, POUND, POUND_FOOT, POUND_FORCE, POUND_INCH, POUND_PER_SECOND, POUND_PER_SQUARE_FOOT, POUND_PER_SQUARE_INCH, QUART_IMP, QUART_US_FLUID, RAD, RADIAN, RPM, SECOND, SLOPE_ARCMINUTE, SLOPE_ARCSECOND, SLOPE_CENTESIMAL_ARCMINUTE, SLOPE_CENTESIMAL_ARCSECOND, SLOPE_DEGREE, SLOPE_GRAD, SLOPE_RADIAN, SQUARE_CENTIMETER, SQUARE_DEGREE, SQUARE_FOOT, SQUARE_INCH, SQUARE_METER, SQUARE_MILE, SQUARE_MILLIMETER, SQUARE_YARD, STANDARD_GRAVITY, STATAMPERE, STATCOULOMB, STATVOLT, STERADIAN, STHENE, STHENE_METER, STHENE_METER_PER_SECOND, TERA_ELECTRONVOLT, TERAHERTZ, TERAWATT_HOUR, TON_FORCE, TON_LONG, TON_METRIC, TON_SHORT, TONNE, TORR, VOLT, WATT, WATT_HOUR, WEEK, YARD
Constructor and Description |
---|
AbstractGTUFollowingModel() |
Modifier and Type | Method and Description |
---|---|
DualAccelerationStep |
computeAcceleration(LaneBasedGTU referenceGTU,
Collection<HeadwayGTU> otherGTUs,
org.djunits.value.vdouble.scalar.Speed.Abs 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.Abs leaderSpeed,
org.djunits.value.vdouble.scalar.Length.Rel headway,
org.djunits.value.vdouble.scalar.Speed.Abs 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.Abs 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.Abs followerSpeed,
org.djunits.value.vdouble.scalar.Speed.Abs leaderSpeed,
org.djunits.value.vdouble.scalar.Length.Rel precision,
org.djunits.value.vdouble.scalar.Speed.Abs speedLimit,
org.djunits.value.vdouble.scalar.Speed.Abs 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.Abs 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.Abs leaderSpeed, org.djunits.value.vdouble.scalar.Length.Rel headway, org.djunits.value.vdouble.scalar.Speed.Abs 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.Abs 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.Abs followerSpeed, org.djunits.value.vdouble.scalar.Speed.Abs leaderSpeed, org.djunits.value.vdouble.scalar.Length.Rel precision, org.djunits.value.vdouble.scalar.Speed.Abs speedLimit, org.djunits.value.vdouble.scalar.Speed.Abs 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.