Autopysta
Loading...
Searching...
No Matches
creator_martinez_jin_2020 Class Reference

Vehicle creator based on the Martinez and Jin (2020) model, with random jam density. More...

#include <creator_martinez_jin_2020.h>

Inheritance diagram for creator_martinez_jin_2020:
creator

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.
 
vehiclecreate (point *leader, bool immediate_follower=false) override
 Creates a vehicle with random jam density behind a leader.
 
vehiclecreate_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.
 
modelModel = nullptr
 Traffic model used to determine vehicle behavior.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ creator_martinez_jin_2020() [1/4]

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.

Parameters
model_paramsParameters for the Martinez and Jin model.
_spacingDesired spacing between vehicles.
_initial_speedInitial speed for the created vehicles.

◆ creator_martinez_jin_2020() [2/4]

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.

Parameters
model_paramsParameters for the Martinez and Jin model.
_spacingDesired spacing between vehicles.
_initial_speedInitial speed for the created vehicles.
ksiMaximum percentage deviation for the random jam density.
avg_kjAverage jam density.

◆ creator_martinez_jin_2020() [3/4]

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.

Parameters
model_paramsParameters for the Martinez and Jin model.
_spacingDesired spacing between vehicles.
_initial_speedInitial speed for the created vehicles.
maxvehsMaximum number of vehicles to be created.

◆ creator_martinez_jin_2020() [4/4]

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.

Parameters
model_paramsParameters for the Martinez and Jin model.
_spacingDesired spacing between vehicles.
_initial_speedInitial speed for the created vehicles.
ksiMaximum percentage deviation for the random jam density.
avg_kjAverage jam density.
maxvehsMaximum number of vehicles to be created.

Member Function Documentation

◆ create()

vehicle * creator_martinez_jin_2020::create ( point * leader,
bool immediate_follower = false )
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.

Parameters
leaderThe current point of the leader vehicle.
immediate_followerIf true, the new vehicle is placed just behind the leader.
Returns
A pointer to the created vehicle, or nullptr if no vehicle was created.

Reimplemented from creator.

◆ create_no_leader()

vehicle * creator_martinez_jin_2020::create_no_leader ( int lane)
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.

Parameters
laneThe lane number where the vehicle is created.
Returns
A pointer to the created vehicle, or nullptr if no vehicle was created.

Implements creator.

◆ validate_creator()

void creator_martinez_jin_2020::validate_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.


The documentation for this class was generated from the following file: