|
Autopysta
|
Vehicle creator based on the Martinez and Jin (2020) model, with random jam density. More...
#include <creator_martinez_jin_2020.h>
Public Member Functions | |
| creator_martinez_jin_2020 (p_martinez_jin_2020 *model_params, double _spacing, double _initial_speed) | |
| Constructs a vehicle creator with the Martinez and Jin model. | |
| creator_martinez_jin_2020 (p_martinez_jin_2020 *model_params, double _spacing, double _initial_speed, double ksi, double avg_kj) | |
| Constructs a vehicle creator with the Martinez and Jin model and custom jam density range. | |
| creator_martinez_jin_2020 (p_martinez_jin_2020 *model_params, double _spacing, double _initial_speed, int maxvehs) | |
| Constructs a vehicle creator with a limit on the number of vehicles. | |
| creator_martinez_jin_2020 (p_martinez_jin_2020 *model_params, double _spacing, double _initial_speed, double ksi, double avg_kj, int maxvehs) | |
| Constructs a vehicle creator with a custom jam density range and vehicle limit. | |
| vehicle * | create (point *leader, bool immediate_follower=false) override |
| Creates a vehicle with random jam density behind a leader. | |
| vehicle * | create_no_leader (int lane) override |
| Creates a vehicle in an empty lane with random jam density. | |
| void | validate_creator () override |
| Validates the parameters of the Martinez and Jin model. | |
Public Member Functions inherited from creator | |
| vector< vehicle * > | initial_state (point *leader) |
| Initializes vehicles in the first simulation timestep. | |
Public Attributes | |
| double | a |
| Minimum value for random jam density (uniform distribution). | |
| double | b |
| Maximum value for random jam density (uniform distribution). | |
Additional Inherited Members | |
Protected Member Functions inherited from creator | |
Protected Attributes inherited from creator | |
| int | max_vehs = INT_MAX |
| Maximum number of vehicles that can be created. | |
| int | n_vehs = 0 |
| Counter for the number of vehicles created so far. | |
| model * | Model = nullptr |
| Traffic model used to determine vehicle behavior. | |
Vehicle creator based on the Martinez and Jin (2020) model, with random jam density.
The creator_martinez_jin_2020 class generates vehicles according to the Martinez and Jin (2020) car-following model, with random variations in jam density. Vehicles are placed in a lane with a given spacing and initial speed, unless constrained by the lane's capacity or other vehicles.
| creator_martinez_jin_2020::creator_martinez_jin_2020 | ( | p_martinez_jin_2020 * | model_params, |
| double | _spacing, | ||
| double | _initial_speed ) |
Constructs a vehicle creator with the Martinez and Jin model.
This constructor creates a vehicle creator that generates vehicles with a fixed spacing and initial speed. Jam density is randomly generated within a defined range.
| model_params | Parameters for the Martinez and Jin model. |
| _spacing | Desired spacing between vehicles. |
| _initial_speed | Initial speed for the created vehicles. |
| creator_martinez_jin_2020::creator_martinez_jin_2020 | ( | p_martinez_jin_2020 * | model_params, |
| double | _spacing, | ||
| double | _initial_speed, | ||
| double | ksi, | ||
| double | avg_kj ) |
Constructs a vehicle creator with the Martinez and Jin model and custom jam density range.
This constructor creates a vehicle creator that generates vehicles with a fixed spacing and initial speed. Jam density is randomly generated within the specified range.
| model_params | Parameters for the Martinez and Jin model. |
| _spacing | Desired spacing between vehicles. |
| _initial_speed | Initial speed for the created vehicles. |
| ksi | Maximum percentage deviation for the random jam density. |
| avg_kj | Average jam density. |
| creator_martinez_jin_2020::creator_martinez_jin_2020 | ( | p_martinez_jin_2020 * | model_params, |
| double | _spacing, | ||
| double | _initial_speed, | ||
| int | maxvehs ) |
Constructs a vehicle creator with a limit on the number of vehicles.
This constructor creates a vehicle creator that generates vehicles with a fixed spacing and initial speed, up to a maximum number of vehicles.
| model_params | Parameters for the Martinez and Jin model. |
| _spacing | Desired spacing between vehicles. |
| _initial_speed | Initial speed for the created vehicles. |
| maxvehs | Maximum number of vehicles to be created. |
| creator_martinez_jin_2020::creator_martinez_jin_2020 | ( | p_martinez_jin_2020 * | model_params, |
| double | _spacing, | ||
| double | _initial_speed, | ||
| double | ksi, | ||
| double | avg_kj, | ||
| int | maxvehs ) |
Constructs a vehicle creator with a custom jam density range and vehicle limit.
This constructor creates a vehicle creator that generates vehicles with a fixed spacing and initial speed, with a random jam density and a limit on the total number of vehicles created.
| model_params | Parameters for the Martinez and Jin model. |
| _spacing | Desired spacing between vehicles. |
| _initial_speed | Initial speed for the created vehicles. |
| ksi | Maximum percentage deviation for the random jam density. |
| avg_kj | Average jam density. |
| maxvehs | Maximum number of vehicles to be created. |
|
overridevirtual |
Creates a vehicle with random jam density behind a leader.
This method checks whether it is possible to create a vehicle based on the leader's current state. If allowed, it creates a new vehicle using the Martinez and Jin model with random jam density.
| leader | The current point of the leader vehicle. |
| immediate_follower | If true, the new vehicle is placed just behind the leader. |
nullptr if no vehicle was created. Reimplemented from creator.
|
overridevirtual |
Creates a vehicle in an empty lane with random jam density.
This method generates a vehicle at the start of an empty lane using the Martinez and Jin model with random jam density.
| lane | The lane number where the vehicle is created. |
nullptr if no vehicle was created. Implements creator.
|
overridevirtual |
Validates the parameters of the Martinez and Jin model.
This method ensures that the parameters of the Martinez and Jin model are valid and feasible for the simulation.
Reimplemented from creator.