itstools.vplatoon package¶
Submodules¶
itstools.vplatoon.carfollow module¶
Car following model
-
class
itstools.vplatoon.carfollow.CarFollowLaw(x0: float, v0: float, l0: float, veh_type: str = 'HDV', veh_lead=None, behavior: str = None, **kwargs)[source]¶ Bases:
itstools.vplatoon.vehicles.VehicleGeneric Car Following Behavior
-
property
T¶ Reaction time
-
a¶
-
a_t¶
-
control¶
-
property
dv¶ Determine current delta of speed
-
idx¶
-
property
k_x¶ Jam density
-
l_t¶
-
register_control_speed(control)[source]¶ This registers an external control signal into the vehicle behavior
-
property
s¶ Determine current spacing (X_n-1 - X_n)
-
property
s0¶ Minimum spacing
-
step_evolution(control: float = 0) → None[source]¶ Use this method to a single step in the simulation
-
type¶
-
property
u¶ Free flow speed
-
v_t¶
-
property
vd¶ Vehicle desired speed
-
property
vl¶ Leader speed
-
property
w¶ Shockwave speed
-
x_t¶
-
property
xl¶ Leader position
-
property
-
class
itstools.vplatoon.carfollow.IDM(x0: float, v0: float, veh_lead=None, **kwargs)[source]¶ Bases:
itstools.vplatoon.carfollow.CarFollowLawIntelligent Driver’s Model Car Following
-
property
a_max¶ Comfortable decceleration
-
property
b¶ Comfortable decceleration
-
car_following(vd: float) → None[source]¶ Acceleration car following
- Note:
- if leader
min(cong_acc, free_acc) -> Tampere
- else
manual acceleration
-
property
delta¶ Acceleration exponent
-
property
s0¶ Minimum distance
-
property
-
class
itstools.vplatoon.carfollow.OpenLoop(x0: float, v0: float, l0: float, veh_type: str, veh_lead=None, **kwargs)[source]¶ Bases:
itstools.vplatoon.carfollow.CarFollowLawOpen loop second order model
-
a¶
-
a_t¶
-
car_following() → None[source]¶ Acceleration car following
- Note:
- if leader
min(cong_acc, free_acc) -> Tampere
- else
manual acceleration
-
control¶
-
idx¶
-
l_t¶
-
property
te¶ Speed difference coefficient
-
type¶
-
v_t¶
-
x_t¶
-
-
class
itstools.vplatoon.carfollow.PlatoonFollowLaw(x0: float, v0: float, l0: float, veh_type: str = 'HDV', veh_lead=None, behavior: str = None, **kwargs)[source]¶ Bases:
itstools.vplatoon.vehicles.RegularVehicleGeneric Platoon Following Behavior
-
property
T¶ Reaction time
-
a¶
-
control¶
-
property
dv¶ Determine current delta of speed
-
property
e_s¶ Space error
-
property
e_v¶ Speed error
-
g1¶
-
g2¶
-
g3¶
-
g4¶
-
idx¶
-
property
k_x¶ Jam density
-
l_t¶
-
pos¶
-
register_control_space(control)[source]¶ This registers an external control signal into the vehicle behavior
-
register_control_speed(control)[source]¶ This registers an external control signal into the vehicle behavior
-
register_reference_space(reference)[source]¶ This registers an external reference signal into the vehicle behavior for spacing behavior (CACC)
-
register_reference_speed(reference)[source]¶ This registers an external reference signal into the vehicle behavior for speed behavior (ACC)
-
property
s¶ Determine current spacing (X_n-1 - X_n)
-
property
s0¶ Minimum spacing
-
series¶
-
spd¶
-
step_evolution(control: float = 0) → None[source]¶ Use this method to a single step in the simulation
-
property
u¶ Free flow speed
-
v¶
-
property
vd¶ Vehicle desired speed
-
property
vl¶ Leader speed
-
property
w¶ Shockwave speed
-
x¶
-
property
xl¶ Leader position
-
property
-
class
itstools.vplatoon.carfollow.Tampere(x0: float, v0: float, l0: float, veh_type: str, veh_lead=None, **kwargs)[source]¶ Bases:
itstools.vplatoon.carfollow.CarFollowLawTampere Car Following Model
-
property
c1¶ Speed difference coefficient
-
property
c2¶ Spacing coefficient
-
property
c3¶ Tampere coefficient
-
car_following() → None[source]¶ Acceleration car following
- Note:
- if leader
min(cong_acc, free_acc) -> Tampere
- else
manual acceleration
-
property
s_d¶ Determine desired spacing (d + gamma * v )
-
property
-
class
itstools.vplatoon.carfollow.VehiclePlatoon(x0: float, v0: float, l0: float, veh_type: str, veh_lead=None, **kwargs)[source]¶ Bases:
itstools.vplatoon.carfollow.PlatoonFollowLawPlatoon Car Following Model (Autonomous)
-
property
A¶ Predefined values for frontal area
-
property
C_d¶ Drag coefficient
-
property
Cdmax¶ Predefined values for frontal area
-
property
M¶ Predefined values for frontal area
-
a¶
-
car_following() → None[source]¶ Acceleration car following
- Note:
- if leader
min(cong_acc, free_acc) -> Tampere
- else
manual acceleration
-
control¶
-
g1¶
-
g2¶
-
g3¶
-
g4¶
-
idx¶
-
l_t¶
-
pos¶
-
series¶
-
spd¶
-
v¶
-
x¶
-
property
itstools.vplatoon.pid module¶
itstools.vplatoon.traffic module¶
Traffic information
itstools.vplatoon.vehicles module¶
Vehicle behavior
-
class
itstools.vplatoon.vehicles.RegularVehicle(init_pos: float, init_spd: float, init_lane: float, veh_type: str = 'HDV', veh_lead=None)[source]¶ Bases:
object-
a¶
-
property
a_t¶ Current accel
-
control¶
-
g1¶
-
g2¶
-
g3¶
-
g4¶
-
idx¶
-
l_t¶
-
lid= 0¶
-
pos¶
-
series¶
-
spd¶
-
property
t¶ Time vector
-
v¶
-
property
v_t¶ Current accel
-
property
veh_lead¶ Retrieve the pointer towards this vehicle’s leader
-
x¶
-
property
x_t¶ Current accel
-
-
class
itstools.vplatoon.vehicles.Vehicle(init_pos: float, init_spd: float, init_lane: float, veh_type: str = 'HDV', veh_lead=None)[source]¶ Bases:
objectThis data implements the Car Following Law.
To initialize a vehicle
Vehicle(x0,v0)
-
a¶
-
a_t¶
-
control¶
-
idx¶
-
l_t¶
-
lid= 0¶
-
type¶
-
property
v¶ Dynamic equation speed
-
v_t¶
-
property
veh_lead¶ Retrieve the pointer towards this vehicle’s leader
-
property
x¶ Dynamic equation position
-
x_t¶
-
itstools.vplatoon.vplatoon module¶
Main module.
Module contents¶
Top-level package for vplatoon.