![]() |
Eclipse SUMO - Simulation of Urban MObility
|
Helper methods for PHEMlight-based emission computation. More...
#include <HelpersPHEMlight.h>
Public Member Functions | |
| virtual double | compute (const SUMOEmissionClass c, const PollutantsInterface::EmissionType e, const double v, const double a, const double slope, const EnergyParams *param) const |
| Returns the amount of emitted pollutant given the vehicle type and state (in mg/s or in ml/s for fuel). | |
| std::string | getAmitranVehicleClass (const SUMOEmissionClass c) const |
| Returns the vehicle class described by this emission class as described in the Amitran interface (Passenger, ...). | |
| SUMOEmissionClass | getClass (const SUMOEmissionClass base, const std::string &vClass, const std::string &fuel, const std::string &eClass, const double weight) const |
| Returns the emission class described by the given parameters. | |
| virtual SUMOEmissionClass | getClassByName (const std::string &eClass, const SUMOVehicleClass vc) |
| Checks whether the string describes a known vehicle class. | |
| virtual double | getCoastingDecel (const SUMOEmissionClass c, const double v, const double a, const double slope, const EnergyParams *param) const |
| Returns the maximum deceleration value (as a negative number), which can still be considered as non-braking. | |
| int | getEuroClass (const SUMOEmissionClass c) const |
| Returns the Euro emission class described by this emission class as described in the Amitran interface (0, ..., 6). | |
| std::string | getFuel (const SUMOEmissionClass c) const |
| Returns the fuel type described by this emission class as described in the Amitran interface (Gasoline, Diesel, ...). | |
| virtual double | getModifiedAccel (const SUMOEmissionClass c, const double v, const double a, const double slope, const EnergyParams *param) const |
| Returns the adapted acceleration value, useful for comparing with external PHEMlight references. | |
| double | getWeight (const SUMOEmissionClass c) const |
| Returns a reference weight in kg described by this emission class as described in the Amitran interface This implementation returns only meaningful values for Solo_LKW (truck without trailer) and LNF (light duty vehicles). | |
| HelpersPHEMlight () | |
| Constructor. | |
| virtual | ~HelpersPHEMlight () |
| Destructor. | |
Protected Member Functions | |
| HelpersPHEMlight (std::string name, const int baseIndex, const int defaultClass) | |
| Constructor for subclasses. | |
Private Member Functions | |
| double | getEmission (const PHEMCEP *oldCep, PHEMlightdll::CEP *currCep, const std::string &e, const double p, const double v) const |
| Returns the amount of emitted pollutant given the vehicle type and state (in mg/s or in ml/s for fuel). | |
Private Attributes | |
| PHEMlightdll::CEPHandler | myCEPHandler |
| std::map< SUMOEmissionClass, PHEMlightdll::CEP * > | myCEPs |
| PHEMlightdll::Helpers | myHelper |
| int | myIndex |
| the index of the next class | |
Static Private Attributes | |
| static const int | PHEMLIGHT_BASE = 3 << 16 |
Helper methods for PHEMlight-based emission computation.
Definition at line 46 of file HelpersPHEMlight.h.
| HelpersPHEMlight::HelpersPHEMlight | ( | ) |
Constructor.
Definition at line 43 of file HelpersPHEMlight.cpp.
References myIndex, and PHEMLIGHT_BASE.
Referenced by HelpersPHEMlight5::HelpersPHEMlight5().
|
virtual |
|
inlineprotected |
Constructor for subclasses.
| [in] | name | the name of the model (string before the '/' in the emission class attribute) |
Definition at line 63 of file HelpersPHEMlight.h.
|
virtual |
Returns the amount of emitted pollutant given the vehicle type and state (in mg/s or in ml/s for fuel).
| [in] | c | The vehicle emission class |
| [in] | v | The vehicle's current velocity |
| [in] | a | The vehicle's current acceleration |
| [in] | slope | The road's slope at vehicle's position [deg] |
Reimplemented in HelpersPHEMlight5.
Definition at line 273 of file HelpersPHEMlight.cpp.
References PHEMlightdll::CEP::CalcPower(), PHEMCEPHandler::GetCep(), PHEMlightdll::CEP::GetCO2Emission(), getEmission(), PHEMlightdll::CEP::getFuelType(), PHEMCEPHandler::getHandlerInstance(), getModifiedAccel(), IDLE_SPEED, EnergyParams::isEngineOff(), MAX2(), myCEPs, myHelper, SECONDS_PER_HOUR, PHEMlightdll::Constants::strBEV, PHEMlightdll::Constants::strDiesel, PHEMlightdll::Constants::strGasoline, and PHEMlightdll::Constants::ZERO_SPEED_ACCURACY.
| std::string HelpersPHEMlight::getAmitranVehicleClass | ( | const SUMOEmissionClass | c | ) | const |
Returns the vehicle class described by this emission class as described in the Amitran interface (Passenger, ...).
| [in] | c | the emission class |
Definition at line 169 of file HelpersPHEMlight.cpp.
| SUMOEmissionClass HelpersPHEMlight::getClass | ( | const SUMOEmissionClass | base, |
| const std::string & | vClass, | ||
| const std::string & | fuel, | ||
| const std::string & | eClass, | ||
| const double | weight ) const |
Returns the emission class described by the given parameters.
| [in] | base | the base class giving the default |
| [in] | vClass | the vehicle class as described in the Amitran interface (Passenger, ...) |
| [in] | fuel | the fuel type as described in the Amitran interface (Gasoline, Diesel, ...) |
| [in] | eClass | the emission class as described in the Amitran interface (Euro0, ...) |
| [in] | weight | the vehicle weight in kg as described in the Amitran interface |
Definition at line 106 of file HelpersPHEMlight.cpp.
|
virtual |
Checks whether the string describes a known vehicle class.
| [in] | eClass | The string describing the vehicle emission class |
Reimplemented in HelpersPHEMlight5.
Definition at line 57 of file HelpersPHEMlight.cpp.
References OptionsCont::getBool(), getClassByName(), PHEMCEPHandler::getHandlerInstance(), OptionsCont::getOptions(), myCEPHandler, myCEPs, myHelper, myIndex, and StringUtils::to_lower_case().
Referenced by getClassByName().
|
virtual |
Returns the maximum deceleration value (as a negative number), which can still be considered as non-braking.
| [in] | c | the emission class |
| [in] | v | the speed value |
| [in] | a | the acceleration value |
| [in] | slope | The road's slope at vehicle's position [deg] |
| [in] | param | parameter of the emission model affecting the computation |
Reimplemented in HelpersPHEMlight5.
Definition at line 267 of file HelpersPHEMlight.cpp.
References myCEPs.
|
private |
Returns the amount of emitted pollutant given the vehicle type and state (in mg/s or in ml/s for fuel).
| [in] | currCep | The vehicle emission class |
| [in] | e | The emission type |
| [in] | p | The vehicle's current power |
| [in] | v | The vehicle's current velocity |
Definition at line 248 of file HelpersPHEMlight.cpp.
References PHEMlightdll::CEP::GetEmission(), and myHelper.
Referenced by compute().
| int HelpersPHEMlight::getEuroClass | ( | const SUMOEmissionClass | c | ) | const |
Returns the Euro emission class described by this emission class as described in the Amitran interface (0, ..., 6).
| [in] | c | the emission class |
Definition at line 205 of file HelpersPHEMlight.cpp.
| std::string HelpersPHEMlight::getFuel | ( | const SUMOEmissionClass | c | ) | const |
Returns the fuel type described by this emission class as described in the Amitran interface (Gasoline, Diesel, ...).
| [in] | c | the emission class |
Definition at line 191 of file HelpersPHEMlight.cpp.
|
virtual |
Returns the adapted acceleration value, useful for comparing with external PHEMlight references.
| [in] | c | the emission class |
| [in] | v | the speed value |
| [in] | a | the acceleration value |
| [in] | slope | The road's slope at vehicle's position [deg] |
Reimplemented in HelpersPHEMlight5.
Definition at line 257 of file HelpersPHEMlight.cpp.
References PHEMlightdll::CEP::GetMaxAccel(), MIN2(), and myCEPs.
Referenced by compute().
| double HelpersPHEMlight::getWeight | ( | const SUMOEmissionClass | c | ) | const |
Returns a reference weight in kg described by this emission class as described in the Amitran interface This implementation returns only meaningful values for Solo_LKW (truck without trailer) and LNF (light duty vehicles).
| [in] | c | the emission class |
Definition at line 225 of file HelpersPHEMlight.cpp.
|
private |
Definition at line 148 of file HelpersPHEMlight.h.
Referenced by getClassByName().
|
private |
Definition at line 150 of file HelpersPHEMlight.h.
Referenced by compute(), getClassByName(), getCoastingDecel(), getModifiedAccel(), and ~HelpersPHEMlight().
|
mutableprivate |
Definition at line 149 of file HelpersPHEMlight.h.
Referenced by compute(), getClassByName(), and getEmission().
|
private |
the index of the next class
Definition at line 147 of file HelpersPHEMlight.h.
Referenced by getClassByName(), and HelpersPHEMlight().
|
staticprivate |
Definition at line 48 of file HelpersPHEMlight.h.
Referenced by HelpersPHEMlight().