 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
53 myAX(vtype->getLength() + 1. + 2. * mySecurity),
54 myCX(25. *(1. + mySecurity + myEstimation)),
55 myMinAccel(0.2 * myAccel) {
73 return _v(veh, predSpeed, gap2pred);
104 const double bx = (1 + 7 *
mySecurity) * sqrt(speed);
116 const double dv = v - predSpeed;
118 const double bx = (1 + 7 *
mySecurity) * sqrt(v);
119 const double abx =
myAX + bx;
121 const double sdx =
myAX + ex * bx;
122 const double sdv_root = (dx -
myAX) /
myCX;
123 const double sdv = sdv_root * sdv_root;
124 const double cldv = sdv * ex * ex;
130 }
else if (dx < sdx) {
133 }
else if (dv > opdv) {
139 if (dv > sdv && dx <
D_MAX) {
150 std::cout <<
SIMTIME <<
" Wiedemann::_v veh=" << veh->
getID()
151 <<
" predSpeed=" << predSpeed <<
" gap=" << gap
152 <<
" dv=" << dv <<
" dx=" << dx <<
" ax=" <<
myAX <<
" bx=" << bx <<
" abx=" << abx
153 <<
" sdx=" << sdx <<
" sdv=" << sdv <<
" cldv=" << cldv <<
" opdv=" << opdv
154 <<
" accel=" << accel <<
" vNew=" << vNew <<
"\n";
164 double bmax = 0.2 + 0.8 *
myAccel * (7 - sqrt(v));
166 double accel = dx <= 2 * abx ?
MIN2(
myMinAccel, bmax * (dx - abx) / abx) : bmax;
184 return 0.5 * dv * dv / (abx - dx);
193 double accel = 0.5 * dv * dv / (
myAX - dx);
The car-following model and parameter.
#define UNUSED_PARAMETER(x)
virtual double maxNextSpeed(double speed, const MSVehicle *const veh) const
Returns the maximum speed given the current speed.
double finalizeSpeed(MSVehicle *const veh, double vPos) const
Applies interaction with stops and lane changing model influences.
const double mySecurity
The driver's security parameter // also 'ZF1'.
MSCFModel_Wiedemann(const MSVehicleType *vtype)
Constructor.
double following(double sign) const
double fullspeed(double v, double vpref, double dx, double bx) const
static double randNorm(double mean, double variance, std::mt19937 *rng=0)
Access to a random number from a normal distribution.
double approaching(double dv, double dx, double abx) const
MSCFModel::VehicleVariables * getCarFollowVariables() const
Returns the vehicle's car following model variables.
virtual double finalizeSpeed(MSVehicle *const veh, double vPos) const
Applies interaction with stops and lane changing model influences. Called at most once per simulation...
double followSpeed(const MSVehicle *const veh, double speed, double gap2pred, double predSpeed, double predMaxDecel, const MSVehicle *const pred=0) const
Computes the vehicle's safe speed (no dawdling)
~MSCFModel_Wiedemann()
Destructor.
double getMaxSpeed() const
Returns the maximum speed.
virtual bool isSelected() const
whether this vehicle is selected in the GUI
double myEmergencyDecel
The vehicle's maximum emergency deceleration [m/s^2].
double accelSign
state variable for remembering the drift direction
double _v(const MSVehicle *veh, double predSpeed, double gap) const
double getActionStepLengthSecs() const
Returns the vehicle's action step length in secs, i.e. the interval between two action points.
double maximumSafeStopSpeed(double gap, double currentSpeed, bool onInsertion=false, double headway=-1) const
Returns the maximum next velocity for stopping within gap.
static const double D_MAX
free-flow distance in m
double interactionGap(const MSVehicle *const, double vL) const
Returns the maximum gap at which an interaction between both vehicles occurs.
double getSecureGap(const double speed, const double leaderSpeed, const double leaderMaxDecel) const
Returns the minimum gap to reserve if the leader is braking at maximum (>=0)
const double myEstimation
The driver's estimation parameter // also 'ZF2'.
virtual double getSecureGap(const double speed, const double leaderSpeed, const double leaderMaxDecel) const
Returns the minimum gap to reserve if the leader is braking at maximum (>=0)
MSCFModel * duplicate(const MSVehicleType *vtype) const
Duplicates the car-following model.
double getLength() const
Get vehicle's length [m].
double emergency(double dv, double dx) const
const std::string & getID() const
Returns the name of the vehicle.
const MSVehicleType * myType
The type to which this model definition belongs to.
The car-following model abstraction.
const double myAX
the minimum front-bumper to front-bumper distance when standing
double getSpeed() const
Returns the vehicle's current speed.
double myAccel
The vehicle's maximum acceleration [m/s^2].
const double myCX
perception threshold modifier
const double myMinAccel
The vehicle's minimum acceleration [m/s^2] // also b_null.
double stopSpeed(const MSVehicle *const veh, const double speed, double gap) const
Computes the vehicle's safe speed for approaching a non-moving obstacle (no dawdling)
std::mt19937 * getRNG() const
Representation of a vehicle in the micro simulation.