SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
HelpersHBEFA3 Class Reference

Helper methods for HBEFA3-based emission computation. More...

#include <HelpersHBEFA3.h>

Inheritance diagram for HelpersHBEFA3:
PollutantsInterface::Helper

Public Member Functions

void addAllClassesInto (std::vector< SUMOEmissionClass > &list) const
 Add all known emission classes of this model to the given container. More...
 
SUMOReal compute (const SUMOEmissionClass c, const PollutantsInterface::EmissionType e, const double v, const double a, const double slope) const
 Computes the emitted pollutant amount using the given speed and acceleration. More...
 
std::string getAmitranVehicleClass (const SUMOEmissionClass c) const
 Returns the vehicle class described by this emission class as described in the Amitran interface (Passenger, ...) More...
 
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. More...
 
virtual SUMOEmissionClass getClassByName (const std::string &eClass, const SUMOVehicleClass vc)
 Returns the emission class associated with the given name, aliases are possible If this method is asked for the "unknown" class it should return the default (possibly depending on the given vehicle class). The class name is case insensitive. More...
 
const std::string getClassName (const SUMOEmissionClass c) const
 Returns the complete name of the emission class including the model. More...
 
int getEuroClass (const SUMOEmissionClass c) const
 Returns the Euro emission class described by this emission class as described in the Amitran interface (0, ..., 6) More...
 
std::string getFuel (const SUMOEmissionClass c) const
 Returns the fuel type described by this emission class as described in the Amitran interface (Gasoline, Diesel, ...) More...
 
virtual SUMOReal getMaxAccel (SUMOEmissionClass c, double v, double a, double slope) const
 Returns the maximum possible acceleration or -1. if the model cannot determine the maximum acceleration. Default implementation returns always -1. More...
 
const std::string & getName () const
 Returns the name of the model. More...
 
 HelpersHBEFA3 ()
 Constructor (initializes myEmissionClassStrings) More...
 
virtual bool isSilent (const SUMOEmissionClass c)
 Returns whether the class denotes a silent vehicle for interfacing with the noise model. By default the first class in each model is the silent class. More...
 
Methods for Amitran interfaces
virtual SUMOReal getWeight (const SUMOEmissionClass c) const
 Returns a reference weight in kg described by this emission class as described in the Amitran interface It might return -1, if the weight is not important to distinguish different emission classes. Default implementation returns always -1. More...
 

Static Public Attributes

static const int HBEFA3_BASE = 1 << 16
 

Protected Attributes

StringBijection
< SUMOEmissionClass
myEmissionClassStrings
 Mapping between emission class names and integer representations. More...
 
const std::string myName
 the name of the model More...
 

Static Private Attributes

static double myFunctionParameter [45][6][6]
 The function parameter. More...
 

Detailed Description

Helper methods for HBEFA3-based emission computation.

The parameter are stored per vehicle class; 6*6 parameter are used, sorted by the pollutant (CO2, CO, HC, fuel, NOx, PMx), and the function part (c0, cav1, cav2, c1, c2, c3).

Definition at line 54 of file HelpersHBEFA3.h.

Constructor & Destructor Documentation

HelpersHBEFA3::HelpersHBEFA3 ( )

Member Function Documentation

void PollutantsInterface::Helper::addAllClassesInto ( std::vector< SUMOEmissionClass > &  list) const
inlineinherited

Add all known emission classes of this model to the given container.

Parameters
[in]listthe vector to add to

Definition at line 251 of file PollutantsInterface.h.

References StringBijection< T >::addKeysInto(), and PollutantsInterface::Helper::myEmissionClassStrings.

Referenced by PollutantsInterface::getAllClasses().

SUMOReal HelpersHBEFA3::compute ( const SUMOEmissionClass  c,
const PollutantsInterface::EmissionType  e,
const double  v,
const double  a,
const double  slope 
) const
inlinevirtual

Computes the emitted pollutant amount using the given speed and acceleration.

As the functions are defining emissions in g/hour, the function's result is normed by 3.6 (seconds in an hour/1000) yielding mg/s. For fuel ml/s is returned. Negative acceleration results directly in zero emission.

Parameters
[in]cemission class for the function parameters to use
[in]ethe type of emission (CO, CO2, ...)
[in]vThe vehicle's current velocity
[in]aThe vehicle's current acceleration
[in]slopeThe road's slope at vehicle's position [°]
Returns
The amount emitted by the given emission class when moving with the given velocity and acceleration [mg/s or ml/s]

Implements PollutantsInterface::Helper.

Definition at line 108 of file HelpersHBEFA3.h.

References PollutantsInterface::FUEL, getFuel(), MAX2(), myFunctionParameter, SUMOReal, and UNUSED_PARAMETER.

std::string HelpersHBEFA3::getAmitranVehicleClass ( const SUMOEmissionClass  c) const
virtual

Returns the vehicle class described by this emission class as described in the Amitran interface (Passenger, ...)

Parameters
[in]cthe emission class
Returns
the name of the vehicle class

Reimplemented from PollutantsInterface::Helper.

Definition at line 528 of file HelpersHBEFA3.cpp.

References StringBijection< T >::getString(), and PollutantsInterface::Helper::myEmissionClassStrings.

SUMOEmissionClass HelpersHBEFA3::getClass ( const SUMOEmissionClass  base,
const std::string &  vClass,
const std::string &  fuel,
const std::string &  eClass,
const double  weight 
) const
virtual

Returns the emission class described by the given parameters.

Parameters
[in]basethe base class giving the default
[in]vClassthe vehicle class as described in the Amitran interface (Passenger, ...)
[in]fuelthe fuel type as described in the Amitran interface (Gasoline, Diesel, ...)
[in]eClassthe emission class as described in the Amitran interface (Euro0, ...)
[in]weightthe vehicle weight in kg as described in the Amitran interface
Returns
the class described by the parameters

Reimplemented from PollutantsInterface::Helper.

Definition at line 485 of file HelpersHBEFA3.cpp.

References StringBijection< T >::get(), StringBijection< T >::hasString(), and PollutantsInterface::Helper::myEmissionClassStrings.

virtual SUMOEmissionClass PollutantsInterface::Helper::getClassByName ( const std::string &  eClass,
const SUMOVehicleClass  vc 
)
inlinevirtualinherited

Returns the emission class associated with the given name, aliases are possible If this method is asked for the "unknown" class it should return the default (possibly depending on the given vehicle class). The class name is case insensitive.

Parameters
[in]eClassthe name of the emission class (string after the '/' in the emission class attribute)
[in]vcthe vehicle class to use when determining default class
Returns
the name of the model (string before the '/' in the emission class)

Reimplemented in HelpersPHEMlight.

Definition at line 131 of file PollutantsInterface.h.

References StringBijection< T >::get(), StringBijection< T >::hasString(), PollutantsInterface::Helper::myEmissionClassStrings, and UNUSED_PARAMETER.

Referenced by PollutantsInterface::getClassByName().

const std::string PollutantsInterface::Helper::getClassName ( const SUMOEmissionClass  c) const
inlineinherited

Returns the complete name of the emission class including the model.

Parameters
[in]cthe emission class
Returns
the name of the class (the complete emission class attribute)

Definition at line 145 of file PollutantsInterface.h.

References StringBijection< T >::getString(), PollutantsInterface::Helper::myEmissionClassStrings, and PollutantsInterface::Helper::myName.

Referenced by PollutantsInterface::getName().

int HelpersHBEFA3::getEuroClass ( const SUMOEmissionClass  c) const
virtual

Returns the Euro emission class described by this emission class as described in the Amitran interface (0, ..., 6)

Parameters
[in]cthe emission class
Returns
the Euro class

Reimplemented from PollutantsInterface::Helper.

Definition at line 555 of file HelpersHBEFA3.cpp.

References StringBijection< T >::getString(), and PollutantsInterface::Helper::myEmissionClassStrings.

std::string HelpersHBEFA3::getFuel ( const SUMOEmissionClass  c) const
virtual

Returns the fuel type described by this emission class as described in the Amitran interface (Gasoline, Diesel, ...)

Parameters
[in]cthe emission class
Returns
the fuel type

Reimplemented from PollutantsInterface::Helper.

Definition at line 544 of file HelpersHBEFA3.cpp.

References StringBijection< T >::getString(), and PollutantsInterface::Helper::myEmissionClassStrings.

Referenced by compute().

virtual SUMOReal PollutantsInterface::Helper::getMaxAccel ( SUMOEmissionClass  c,
double  v,
double  a,
double  slope 
) const
inlinevirtualinherited

Returns the maximum possible acceleration or -1. if the model cannot determine the maximum acceleration. Default implementation returns always -1.

Parameters
[in]cThe vehicle emission class
[in]vThe vehicle's current velocity
[in]aThe vehicle's current acceleration
[in]slopeThe road's slope at vehicle's position [°]
Returns
The maximum possible acceleration

Reimplemented in HelpersPHEMlight.

Definition at line 240 of file PollutantsInterface.h.

References UNUSED_PARAMETER.

Referenced by PollutantsInterface::getMaxAccel().

const std::string& PollutantsInterface::Helper::getName ( ) const
inlineinherited

Returns the name of the model.

Returns
the name of the model (string before the '/' in the emission class attribute)

Definition at line 118 of file PollutantsInterface.h.

References PollutantsInterface::Helper::myName.

virtual SUMOReal PollutantsInterface::Helper::getWeight ( const SUMOEmissionClass  c) const
inlinevirtualinherited

Returns a reference weight in kg described by this emission class as described in the Amitran interface It might return -1, if the weight is not important to distinguish different emission classes. Default implementation returns always -1.

Parameters
[in]cthe emission class
Returns
a reference weight

Reimplemented in HelpersPHEMlight.

Definition at line 216 of file PollutantsInterface.h.

References UNUSED_PARAMETER.

Referenced by PollutantsInterface::getWeight().

virtual bool PollutantsInterface::Helper::isSilent ( const SUMOEmissionClass  c)
inlinevirtualinherited

Returns whether the class denotes a silent vehicle for interfacing with the noise model. By default the first class in each model is the silent class.

Parameters
[in]cthe emission class
Returns
whether the class denotes a silent vehicle

Definition at line 154 of file PollutantsInterface.h.

References PollutantsInterface::HEAVY_BIT.

Referenced by PollutantsInterface::isSilent().

Field Documentation

const int HelpersHBEFA3::HBEFA3_BASE = 1 << 16
static

Definition at line 58 of file HelpersHBEFA3.h.

Referenced by HelpersHBEFA3().

double HelpersHBEFA3::myFunctionParameter
staticprivate

The function parameter.

Definition at line 129 of file HelpersHBEFA3.h.

Referenced by compute().

const std::string PollutantsInterface::Helper::myName
protectedinherited

the name of the model

Definition at line 258 of file PollutantsInterface.h.

Referenced by PollutantsInterface::Helper::getClassName(), and PollutantsInterface::Helper::getName().


The documentation for this class was generated from the following files: