public abstract class AbstractGTUGenerator extends Object implements org.opentrafficsim.core.OTS_SCALAR, org.opentrafficsim.core.OTS_DIST
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.opentrafficsim.core.units.distributions.OTS_DOUBLE_DIST.ContinuousDistScalar, org.opentrafficsim.core.units.distributions.OTS_DOUBLE_DIST.DiscreteDistScalar
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 |
---|---|
protected long |
numberGTUs
Number of generated GTUs.
|
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 |
---|
AbstractGTUGenerator(String name,
org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface simulator,
org.opentrafficsim.core.gtu.GTUType gtuType,
Class<?> gtuClass,
GTUFollowingModel gtuFollowingModel,
LaneChangeModel laneChangeModel,
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Abs<org.djunits.value.vdouble.scalar.Speed.Abs,org.djunits.unit.SpeedUnit> initialSpeedDist,
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Time.Rel,org.djunits.unit.TimeUnit> interarrivelTimeDist,
long maxGTUs,
org.djunits.value.vdouble.scalar.Time.Abs startTime,
org.djunits.value.vdouble.scalar.Time.Abs endTime,
Lane lane,
org.djunits.value.vdouble.scalar.Length.Rel position,
LaneBasedRouteGenerator routeGenerator,
org.opentrafficsim.core.gtu.animation.GTUColorer gtuColorer) |
Modifier and Type | Method and Description |
---|---|
protected void |
checkCarBuilderList()
Check if car can be generated.
|
protected boolean |
enoughSpace(LaneBasedIndividualCar.LaneBasedIndividualCarBuilder carBuilder)
Check if the car to be built is not overlapping with another GTU on the same lane, and if it has enough headway to be
generated safely.
|
protected void |
generate()
Generate a GTU.
|
org.djunits.value.vdouble.scalar.Time.Abs |
getEndTime() |
Class<?> |
getGtuClass() |
org.opentrafficsim.core.gtu.animation.GTUColorer |
getGtuColorer() |
GTUFollowingModel |
getGtuFollowingModel() |
org.opentrafficsim.core.gtu.GTUType |
getGtuType() |
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Abs<org.djunits.value.vdouble.scalar.Speed.Abs,org.djunits.unit.SpeedUnit> |
getInitialSpeedDist() |
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Time.Rel,org.djunits.unit.TimeUnit> |
getInterarrivelTimeDist() |
LaneChangeModel |
getLaneChangeModel() |
abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.unit.LengthUnit> |
getLengthDist() |
long |
getMaxGTUs() |
abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Abs<org.djunits.value.vdouble.scalar.Speed.Abs,org.djunits.unit.SpeedUnit> |
getMaximumSpeedDist() |
String |
getName() |
org.opentrafficsim.core.network.route.RouteGenerator |
getRouteGenerator() |
abstract org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface |
getSimulator() |
org.djunits.value.vdouble.scalar.Time.Abs |
getStartTime() |
abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.unit.LengthUnit> |
getWidthDist() |
HeadwayGTU |
headway(org.djunits.value.vdouble.scalar.Length.Rel maxDistance,
LaneBasedRouteNavigator routeNavigator,
Lane generatorLane)
Check the available headway for GTU that is about to be constructed.
|
void |
setRouteGenerator(LaneBasedRouteGenerator routeGenerator) |
public AbstractGTUGenerator(String name, org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface simulator, org.opentrafficsim.core.gtu.GTUType gtuType, Class<?> gtuClass, GTUFollowingModel gtuFollowingModel, LaneChangeModel laneChangeModel, org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Abs<org.djunits.value.vdouble.scalar.Speed.Abs,org.djunits.unit.SpeedUnit> initialSpeedDist, org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Time.Rel,org.djunits.unit.TimeUnit> interarrivelTimeDist, long maxGTUs, org.djunits.value.vdouble.scalar.Time.Abs startTime, org.djunits.value.vdouble.scalar.Time.Abs endTime, Lane lane, org.djunits.value.vdouble.scalar.Length.Rel position, LaneBasedRouteGenerator routeGenerator, org.opentrafficsim.core.gtu.animation.GTUColorer gtuColorer) throws nl.tudelft.simulation.dsol.SimRuntimeException
name
- the name of the generatorsimulator
- the simulator to schedule the start of the generationgtuType
- the type of GTU to generategtuClass
- the GTU class to instantiategtuFollowingModel
- the GTU following model to uselaneChangeModel
- the lane change model to useinitialSpeedDist
- distribution of the initial speed of the GTUinterarrivelTimeDist
- distribution of the interarrival timemaxGTUs
- maximum number of GTUs to generatestartTime
- start time of generation (delayed start)endTime
- end time of generationlane
- the lane to generate the GTU onposition
- position on the lane, relative to the design line of the linkrouteGenerator
- RouteGenerator; the route generator that will create a route for each generated GTUgtuColorer
- the GTUColorer to usenl.tudelft.simulation.dsol.SimRuntimeException
- when simulation scheduling failsprotected final void generate() throws Exception
Exception
- when something in the generation fails.protected final boolean enoughSpace(LaneBasedIndividualCar.LaneBasedIndividualCarBuilder carBuilder) throws org.opentrafficsim.core.network.NetworkException
carBuilder
- the car to be generatedorg.opentrafficsim.core.network.NetworkException
- if GTU does not have a position on the lane where it is registeredpublic final HeadwayGTU headway(org.djunits.value.vdouble.scalar.Length.Rel maxDistance, LaneBasedRouteNavigator routeNavigator, Lane generatorLane) throws org.opentrafficsim.core.network.NetworkException
maxDistance
- DoubleScalar.Rel<LengthUnit>; the maximum distance to look for a leaderrouteNavigator
- RouteNavigator; the route that this GTU intends to takegeneratorLane
- Lane; the lane on which the GTU is generatedorg.opentrafficsim.core.network.NetworkException
- on network inconsistencyprotected final void checkCarBuilderList() throws Exception
Exception
- on any problempublic abstract org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface getSimulator()
public abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.unit.LengthUnit> getLengthDist()
public abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length.Rel,org.djunits.unit.LengthUnit> getWidthDist()
public abstract org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Abs<org.djunits.value.vdouble.scalar.Speed.Abs,org.djunits.unit.SpeedUnit> getMaximumSpeedDist()
public final String getName()
public final org.opentrafficsim.core.gtu.GTUType getGtuType()
public final Class<?> getGtuClass()
public final GTUFollowingModel getGtuFollowingModel()
public final org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Abs<org.djunits.value.vdouble.scalar.Speed.Abs,org.djunits.unit.SpeedUnit> getInitialSpeedDist()
public final org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Time.Rel,org.djunits.unit.TimeUnit> getInterarrivelTimeDist()
public final long getMaxGTUs()
public final org.djunits.value.vdouble.scalar.Time.Abs getStartTime()
public final org.djunits.value.vdouble.scalar.Time.Abs getEndTime()
public final org.opentrafficsim.core.network.route.RouteGenerator getRouteGenerator()
public final void setRouteGenerator(LaneBasedRouteGenerator routeGenerator)
routeGenerator
- set routeGenerator.public final LaneChangeModel getLaneChangeModel()
public final org.opentrafficsim.core.gtu.animation.GTUColorer getGtuColorer()
Copyright © 2014–2015 Delft University of Technology. All rights reserved.