Leader/Follower Status

Main Page > Technical Documentation > Vehicle Movement Logic > Leader/Follower Status

If a vehicle is identified as being a follower, it means that the vehicle is close enough (either in distance or time) to the vehicle in front of it that the car-following model should be included in the process of determining the appropriate acceleration rate for a vehicle. While an acceleration rate per the car-following model is calculated, it should be noted that a different acceleration rate may ultimately govern. If a vehicle is not identified as being a follower (i.e., it is a leader), then the calculation of an acceleration rate per the car-following model is skipped for that time step. The variables and logic used to determine whether a vehicle is considered to be in a follower status are as follows:

Variable Definitions
 * DistanceToLeadVehicle = The distance between the front bumper of the subject vehicle and the rear bumper of the lead vehicle, in feet
 * SubjectVehicleSpeed = Velocity of the subject vehicle, in ft/s
 * Headway = time elapsed for subject vehicle to travel distance equal to DistanceToLeadVehicle, in seconds
 * HeadwayThreshold = Base time headway value to consider for follower status. Default = 2.5 s, can be revised in CarFollowModelParms.xml file.
 * FollowerHeadwayBuffer = Additional headway buffer for which to consider a vehicle for follower status, Fixed value of 3 s.
 * CarFollowDistance = Distance between subject vehicle front bumper to rear bumper of the lead vehicle, for which to consider a vehicle for follower status as a secondary measure. Default = 110 ft, can be revised in CarFollowModelParms.xml file.

Logic Conditions
 * Initially assign subject vehicle to Status = Leader
 * if DistanceToLeadVehicle (ft) is unassigned (i.e., no vehicle in front of subject vehicle in same lane), Status = Leader
 * else
 * if (SubjectVehicleSpeed > 0)
 * Headway = DistanceToLeadVehicle / SubjectVehicleSpeed
 * if (Headway < (HeadwayThreshold + FollowerHeadwayBuffer)
 * Status = Follower
 * else if (DistanceToLeadVehicle < CarFollowDistance)
 * Status = Follower
 * else
 * if (DistanceToLeadVehicle < CarFollowDistance)
 * Status = Follower