SUMO - Simulation of Urban MObility
MSCFModel_KraussOrig1.h
Go to the documentation of this file.
1 /****************************************************************************/
10 // The original Krauss (1998) car-following model and parameter
11 /****************************************************************************/
12 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
13 // Copyright (C) 2001-2017 DLR (http://www.dlr.de/) and contributors
14 /****************************************************************************/
15 //
16 // This file is part of SUMO.
17 // SUMO is free software: you can redistribute it and/or modify
18 // it under the terms of the GNU General Public License as published by
19 // the Free Software Foundation, either version 3 of the License, or
20 // (at your option) any later version.
21 //
22 /****************************************************************************/
23 #ifndef MSCFModel_KraussOrig1_h
24 #define MSCFModel_KraussOrig1_h
25 
26 // ===========================================================================
27 // included modules
28 // ===========================================================================
29 #ifdef _MSC_VER
30 #include <windows_config.h>
31 #else
32 #include <config.h>
33 #endif
34 
35 #include "MSCFModel.h"
37 
38 
39 // ===========================================================================
40 // class definitions
41 // ===========================================================================
47 public:
56  MSCFModel_KraussOrig1(const MSVehicleType* vtype, double accel, double decel,
57  double emergencyDecel, double apparentDecel, double dawdle, double headwayTime);
58 
59 
62 
63 
66 
72  double moveHelper(MSVehicle* const veh, double vPos) const;
73 
74 
83  double followSpeed(const MSVehicle* const veh, double speed, double gap2pred, double predSpeed, double predMaxDecel) const;
84 
85 
93  virtual double stopSpeed(const MSVehicle* const veh, const double speed, double gap2pred) const;
94 
95 
108  double insertionFollowSpeed(const MSVehicle* const veh, double speed, double gap2pred, double predSpeed, double predMaxDecel) const;
109 
110 
115  virtual int getModelID() const {
117  }
118 
119 
123  double getImperfection() const {
124  return myDawdle;
125  }
127 
128 
129 
132 
135  void setMaxDecel(double decel) {
136  myDecel = decel;
138  }
139 
140 
144  void setImperfection(double imperfection) {
145  myDawdle = imperfection;
146  }
147 
148 
152  void setHeadwayTime(double headwayTime) {
153  myHeadwayTime = headwayTime;
154  myTauDecel = myDecel * headwayTime;
155  }
157 
158 
163  virtual MSCFModel* duplicate(const MSVehicleType* vtype) const;
164 
165 protected:
172  virtual double vsafe(double gap, double predSpeed, double predMaxDecel) const;
173 
174 
179  virtual double dawdle(double speed) const;
180 
181 protected:
183  double myDawdle;
184 
186  double myTauDecel;
187 };
188 
189 #endif /* MSCFModel_KraussOrig1_H */
190 
Representation of a vehicle in the micro simulation.
Definition: MSVehicle.h:83
The car-following model abstraction.
Definition: MSCFModel.h:60
The original Krauss (1998) car-following model and parameter.
The car-following model and parameter.
Definition: MSVehicleType.h:74
void setHeadwayTime(double headwayTime)
Sets a new value for driver reaction time [s].
double followSpeed(const MSVehicle *const veh, double speed, double gap2pred, double predSpeed, double predMaxDecel) const
Computes the vehicle&#39;s safe speed (no dawdling)
virtual int getModelID() const
Returns the model&#39;s name.
double myDawdle
The vehicle&#39;s dawdle-parameter. 0 for no dawdling, 1 for max.
MSCFModel_KraussOrig1(const MSVehicleType *vtype, double accel, double decel, double emergencyDecel, double apparentDecel, double dawdle, double headwayTime)
Constructor.
double getImperfection() const
Get the driver&#39;s imperfection.
double myDecel
The vehicle&#39;s maximum deceleration [m/s^2].
Definition: MSCFModel.h:469
double moveHelper(MSVehicle *const veh, double vPos) const
Applies interaction with stops and lane changing model influences.
double insertionFollowSpeed(const MSVehicle *const veh, double speed, double gap2pred, double predSpeed, double predMaxDecel) const
Computes the vehicle&#39;s safe speed (no dawdling) This method is used during the insertion stage...
virtual double vsafe(double gap, double predSpeed, double predMaxDecel) const
Returns the "safe" velocity.
virtual double stopSpeed(const MSVehicle *const veh, const double speed, double gap2pred) const
Computes the vehicle&#39;s safe speed for approaching a non-moving obstacle (no dawdling) ...
void setMaxDecel(double decel)
Sets a new value for maximum deceleration [m/s^2].
void setImperfection(double imperfection)
Sets a new value for driver imperfection.
virtual MSCFModel * duplicate(const MSVehicleType *vtype) const
Duplicates the car-following model.
double myTauDecel
The precomputed value for myDecel*myTau.
double myHeadwayTime
The driver&#39;s desired time headway (aka reaction time tau) [s].
Definition: MSCFModel.h:476
virtual double dawdle(double speed) const
Applies driver imperfection (dawdling / sigma)