Package org.opentrafficsim.demo
Class NetworksModel
java.lang.Object
org.djutils.event.LocalEventProducer
nl.tudelft.simulation.dsol.model.AbstractDsolModel<org.djunits.value.vdouble.scalar.Duration,org.opentrafficsim.core.dsol.OtsSimulatorInterface>
org.opentrafficsim.core.dsol.AbstractOtsModel
org.opentrafficsim.demo.NetworksModel
- All Implemented Interfaces:
Serializable
,Remote
,EventListener
,nl.tudelft.simulation.dsol.model.DsolModel<org.djunits.value.vdouble.scalar.Duration,
,org.opentrafficsim.core.dsol.OtsSimulatorInterface> org.djunits.unit.util.UNITS
,org.djutils.event.EventListener
,org.djutils.event.EventProducer
,org.opentrafficsim.core.dsol.OtsModelInterface
public class NetworksModel
extends org.opentrafficsim.core.dsol.AbstractOtsModel
implements org.djutils.event.EventListener, org.djunits.unit.util.UNITS
Simulate a single lane road of 5 km length. Vehicles are generated at a constant rate of 1500 veh/hour. At time 300s a
blockade is inserted at position 4 km; this blockade is removed at time 500s. The used car following algorithm is IDM+
Integrated Lane Change Model with Relaxation and
Synchronization, by Wouter J. Schakel, Victor L. Knoop and Bart van Arem, 2012.
Output is a set of block charts:
Output is a set of block charts:
- Traffic density
- Speed
- Flow
- Acceleration
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:
- Peter Knoppers
- See Also:
-
Field Summary
Fields inherited from class nl.tudelft.simulation.dsol.model.AbstractDsolModel
inputParameterMap, outputStatistics, simulator, streamInformation
Fields inherited from interface org.djutils.event.EventProducer
FIRST_POSITION, LAST_POSITION
Fields inherited from interface org.djunits.unit.util.UNITS
ABAMPERE, ABCOULOMB, ABOHM, ABVOLT, ACRE, AMPERE, AMPERE_HOUR, ANGSTROM, ANGSTROM_ABS, ARCMINUTE, ARCMINUTE_PER_SECOND, ARCMINUTE_PER_SECOND_SQUARED, ARCSECOND, ARCSECOND_PER_SECOND, ARCSECOND_PER_SECOND_SQUARED, ARE, ASTRONOMICAL_UNIT, ASTRONOMICAL_UNIT_ABS, ATMOSPHERE_STANDARD, ATMOSPHERE_TECHNICAL, ATOMIC_UNIT, BAR, BARYE, BASE_DAY, BASE_HOUR, BASE_MICROSECOND, BASE_MILLISECOND, BASE_MINUTE, BASE_SECOND, BASE_WEEK, BECQUEREL, BTU_ISO, BTU_IT, CALORIE, CALORIE_IT, CANDELA, CENTESIMAL_ARCMINUTE, CENTESIMAL_ARCMINUTE_PER_SECOND, CENTESIMAL_ARCMINUTE_SQUARED, CENTESIMAL_ARCSECOND, CENTESIMAL_ARCSECOND_PER_SECOND, CENTESIMAL_ARCSECOND_PER_SECOND_SQUARED, CENTIARE, CENTIMETER, CENTIMETER_ABS, CENTIMETER_MERCURY, COULOMB, CUBIC_CENTIMETER, CUBIC_DECAMETER, CUBIC_DECIMETER, CUBIC_FEET_PER_MINUTE, CUBIC_FEET_PER_SECOND, CUBIC_FOOT, CUBIC_HECTOMETER, CUBIC_INCH, CUBIC_INCH_PER_MINUTE, CUBIC_INCH_PER_SECOND, CUBIC_KILOMETER, CUBIC_LIGHTYEAR, CUBIC_METER, CUBIC_METER_PER_DAY, CUBIC_METER_PER_HOUR, CUBIC_METER_PER_MINUTE, CUBIC_METER_PER_SECOND, CUBIC_MILE, CUBIC_MILLIMETER, CUBIC_NAUTICAL_MILE, CUBIC_PARSEC, CUBIC_YARD, CURIE, DALTON, DAY, DECAMETER, DECAMETER_ABS, DECIMETER, DECIMETER_ABS, DEGREE, DEGREE_CELSIUS, DEGREE_CELSIUS_ABS, DEGREE_FAHRENHEIT, DEGREE_FAHRENHEIT_ABS, DEGREE_PER_SECOND, DEGREE_PER_SECOND_SQUARED, DEGREE_RANKINE, DEGREE_RANKINE_ABS, DEGREE_REAUMUR, DEGREE_REAUMUR_ABS, DYNE, EAST_DEGREE, EAST_RADIAN, EMU, ENERGY_ELECTRONVOLT, ENERGY_GIGAELECTRONVOLT, ENERGY_KILOELECTRONVOLT, ENERGY_MEGAELECTRONVOLT, ENERGY_MICROELECTRONVOLT, ENERGY_MILLIELECTRONVOLT, EPOCH_DAY, EPOCH_HOUR, EPOCH_J2000_SECOND, EPOCH_MICROSECOND, EPOCH_MILLISECOND, EPOCH_MINUTE, EPOCH_SECOND, EPOCH_WEEK, EPOCH_YEAR1_SECOND, ERG, ERG_PER_GRAM, ERG_PER_SECOND, ESU, FARAD, FARADAY, FLUID_OUNCE_IMP, FLUID_OUNCE_US, FOOT, FOOT_ABS, FOOT_MERCURY, FOOT_PER_HOUR, FOOT_PER_MINUTE, 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_US, GALLON_US_PER_DAY, GALLON_US_PER_HOUR, GALLON_US_PER_MINUTE, GALLON_US_PER_SECOND, GAUSS, GIGABECQUEREL, GIGAHERTZ, GIGAJOULE, GIGAOHM, GIGAVOLT, GIGAWATT, GIGAWATT_HOUR, GRAD, GRAD_PER_SECOND, GRAD_PER_SECOND_SQUARED, GRAM, GRAM_PER_CENTIMETER_3, GRAY, HECTARE, HECTOMETER, HECTOMETER_ABS, HECTOPASCAL, HENRY, HERTZ, HORSEPOWER_METRIC, HOUR, INCH, INCH_ABS, INCH_MERCURY, INCH_PER_HOUR, INCH_PER_MINUTE, INCH_PER_SECOND, INCH_PER_SECOND_2, INCH_POUND_FORCE, JOULE, KATAL, KELVIN, KELVIN_ABS, KG_PER_METER_3, KGF_PER_SQUARE_MM, KILOAMPERE, KILOAMPERE_HOUR, KILOBECQUEREL, KILOCALORIE, KILOGRAM, KILOGRAM_FORCE, KILOGRAM_METER_PER_SECOND, KILOGRAM_PER_SECOND, KILOHERTZ, KILOJOULE, KILOLUX, KILOMETER, KILOMETER_ABS, KILOOHM, KILOPASCAL, KILOVOLT, KILOWATT, KILOWATT_HOUR, KM_PER_HOUR, KM_PER_HOUR_2, KM_PER_SECOND, KNOT, KNOT_PER_SECOND, LIGHTYEAR, LIGHTYEAR_ABS, LITER, LITER_PER_DAY, LITER_PER_HOUR, LITER_PER_MINUTE, LITER_PER_SECOND, LUMEN, LUX, MASS_ELECTRONVOLT, MASS_GIGAELECTRONVOLT, MASS_KILOELECTRONVOLT, MASS_MEGAELECTRONVOLT, MASS_MICROELECTRONVOLT, MASS_MILLIELECTRONVOLT, MAXWELL, MEGAAMPERE, MEGAAMPERE_HOUR, MEGABECQUEREL, MEGAHERTZ, MEGAJOULE, MEGAOHM, MEGAVOLT, MEGAWATT, MEGAWATT_HOUR, METER, METER_ABS, METER_KILOGRAM_FORCE, METER_PER_HOUR, METER_PER_SECOND, METER_PER_SECOND_2, MICROAMPERE, MICROCOULOMB, MICROCURIE, MICROFARAD, MICROGRAM, MICROGRAY, MICROHENRY, MICROJOULE, MICROKATAL, MICROLUX, MICROMETER, MICROMETER_ABS, MICROMOLE, MICROOHM, MICROSECOND, MICROSIEMENS, MICROSIEVERT, MICROTESLA, MICROVOLT, MICROWATT, MICROWATT_HOUR, MICROWEBER, MILE, MILE_ABS, MILE_PER_HOUR, MILE_PER_HOUR_2, MILE_PER_HOUR_PER_SECOND, MILE_PER_MINUTE, MILE_PER_SECOND, MILE_PER_SECOND_2, MILLIAMPERE, MILLIAMPERE_HOUR, MILLIAMPERE_SECOND, MILLIBAR, MILLICOULOMB, MILLICURIE, MILLIFARAD, MILLIGRAM, MILLIGRAY, MILLIHENRY, MILLIJOULE, MILLIKATAL, MILLILUX, MILLIMETER, MILLIMETER_ABS, MILLIMETER_MERCURY, MILLIMOLE, MILLIOHM, MILLISECOND, MILLISIEMENS, MILLISIEVERT, MILLITESLA, MILLIVOLT, MILLIWATT, MILLIWATT_HOUR, MILLIWEBER, MINUTE, MOLE, NANOCURIE, NANOFARAD, NANOHENRY, NANOKATAL, NANOMETER, NANOMETER_ABS, NANOMOLE, NANOSIEMENS, NANOTESLA, NANOWEBER, NAUTICAL_MILE, NAUTICAL_MILE_ABS, NEWTON, NEWTON_METER, NORTH_DEGREE, NORTH_RADIAN, NOX, OHM, OUNCE, OUNCE_FORCE, PARSEC, PARSEC_ABS, PASCAL, PER_ANGSTROM, PER_ASTRONOMICAL_UNIT, PER_CENTIMETER, PER_DAY, PER_DECAMETER, PER_DECIMETER, PER_FOOT, PER_HECTOMETER, PER_HOUR, PER_INCH, PER_KILOMETER, PER_LIGHTYEAR, PER_METER, PER_MICROMETER, PER_MICROSECOND, PER_MILE, PER_MILLIMETER, PER_MILLISECOND, PER_MINUTE, PER_NAUTICAL_MILE, PER_PARSEC, PER_SECOND, PER_WEEK, PER_YARD, PERCENT, PETABECQUEREL, PETAJOULE, PETAWATT, PETAWATT_HOUR, PHOT, PICOFARAD, PIEZE, PINT_IMP, PINT_US, POUND, POUND_FOOT, POUND_FORCE, POUND_INCH, POUND_PER_SECOND, POUND_PER_SQUARE_FOOT, POUND_PER_SQUARE_INCH, QUART_IMP, QUART_US, RAD, RADIAN, RADIAN_PER_SECOND, RADIAN_PER_SECOND_SQUARED, REM, RPM, RUTHERFORD, SECOND, SIEMENS, SIEVERT, SQUARE_CENTIMETER, SQUARE_DECAMETER, SQUARE_DECIMETER, SQUARE_DEGREE, SQUARE_FOOT, SQUARE_HECTOMETER, SQUARE_INCH, SQUARE_KILOMETER, SQUARE_METER, SQUARE_MILE, SQUARE_MILLIMETER, SQUARE_NAUTICAL_MILE, SQUARE_YARD, STANDARD_GRAVITY, STATAMPERE, STATCOULOMB, STATOHM, STATVOLT, STERADIAN, STHENE, STHENE_METER, STHENE_METER_PER_SECOND, TERABECQUEREL, TERAHERTZ, TERAJOULE, TERAWATT, TERAWATT_HOUR, TESLA, TON_FORCE, TON_LONG, TON_METRIC, TON_SHORT, TONNE, TORR, UNIT, VOLT, WATT, WATT_HOUR, WEBER, WEEK, YARD, YARD_ABS
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
final org.djunits.value.vdouble.scalar.Length
final org.djunits.value.vdouble.scalar.Length
getPath
(int index) (package private) LaneBasedGtuTemplate
makeTemplate
(nl.tudelft.simulation.jstats.streams.StreamInterface randStream, Lane lane, org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length, org.djunits.unit.LengthUnit> lengthDistribution, org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length, org.djunits.unit.LengthUnit> widthDistribution, org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Speed, org.djunits.unit.SpeedUnit> maximumSpeedDistribution, Set<LanePosition> initialPositions, LaneBasedStrategicalPlannerFactory<?> strategicalPlannerFactory) void
notify
(org.djutils.event.Event event) final int
Return the number of paths that can be used to show graphs.Methods inherited from class org.opentrafficsim.core.dsol.AbstractOtsModel
getDescription, getShortName, setDescription, setInitialStreams, setShortName
Methods inherited from class nl.tudelft.simulation.dsol.model.AbstractDsolModel
addInputParameter, getInputParameter, getInputParameterMap, getOutputStatistics, getSimulator, getStreamInformation, setStreamInformation
Methods inherited from class org.djutils.event.LocalEventProducer
addListener, addListener, addListener, addListener, fireEvent, fireEvent, fireEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, getEventListenerMap, getEventTypesWithListeners, getListenerReferences, hasListeners, numberOfListeners, removeAllListeners, removeAllListeners, removeListener
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface nl.tudelft.simulation.dsol.model.DsolModel
getDefaultStream, getInputParameterMap, getOutputStatistics, getSimulator, getStream, getStreamInformation, getStreams, resetStreams, setStreamInformation
-
Constructor Details
-
NetworksModel
public NetworksModel(org.opentrafficsim.core.dsol.OtsSimulatorInterface simulator) - Parameters:
simulator
- OtsSimulatorInterface; the simulator for this model
-
-
Method Details
-
constructModel
public final void constructModel() throws nl.tudelft.simulation.dsol.SimRuntimeException- Specified by:
constructModel
in interfacenl.tudelft.simulation.dsol.model.DsolModel<org.djunits.value.vdouble.scalar.Duration,
org.opentrafficsim.core.dsol.OtsSimulatorInterface> - Throws:
nl.tudelft.simulation.dsol.SimRuntimeException
-
makeTemplate
LaneBasedGtuTemplate makeTemplate(nl.tudelft.simulation.jstats.streams.StreamInterface randStream, Lane lane, org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length, org.djunits.unit.LengthUnit> lengthDistribution, org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Length, throws org.opentrafficsim.core.gtu.GtuExceptionorg.djunits.unit.LengthUnit> widthDistribution, org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar.Rel<org.djunits.value.vdouble.scalar.Speed, org.djunits.unit.SpeedUnit> maximumSpeedDistribution, Set<LanePosition> initialPositions, LaneBasedStrategicalPlannerFactory<?> strategicalPlannerFactory) - Parameters:
randStream
- StreamInterface; the random stream to uselane
- Lane; reference lane to generate GTUs onlengthDistribution
- ContinuousDistDoubleScalar.Rel<Length,LengthUnit>; distribution of the GTU lengthwidthDistribution
- ContinuousDistDoubleScalar.Rel<Length,LengthUnit>; distribution of the GTU widthmaximumSpeedDistribution
- ContinuousDistDoubleScalar.Rel<Speed,SpeedUnit>; distribution of the GTU's maximum speedinitialPositions
- Set<LanePosition>; initial position(s) of the GTU on the Lane(s)strategicalPlannerFactory
- LaneBasedStrategicalPlannerFactory<?>; factory to generate the strategical planner for the GTU- Returns:
- template for a GTU
- Throws:
org.opentrafficsim.core.gtu.GtuException
- when characteristics cannot be initialized
-
notify
- Specified by:
notify
in interfaceorg.djutils.event.EventListener
- Throws:
RemoteException
-
getNetwork
- Specified by:
getNetwork
in interfaceorg.opentrafficsim.core.dsol.OtsModelInterface
-
getPath
- Parameters:
index
- int; the rank number of the path- Returns:
- List<Lane>; the set of lanes for the specified index
-
pathCount
public final int pathCount()Return the number of paths that can be used to show graphs.- Returns:
- int; the number of paths that can be used to show graphs
-
getMinimumDistance
public final org.djunits.value.vdouble.scalar.Length getMinimumDistance()- Returns:
- minimumDistance
-
getMaximumDistance
public final org.djunits.value.vdouble.scalar.Length getMaximumDistance()- Returns:
- maximumDistance
-