SUMO - Simulation of Urban MObility
PHEMlightdll::CEP Class Reference

#include <CEP.h>

Collaboration diagram for PHEMlightdll::CEP:
Collaboration graph

Public Types

enum  NormalizingType { NormalizingType_RatedPower, NormalizingType_DrivingPower }
 

Public Member Functions

double CalcEngPower (double power)
 
double CalcPower (double speed, double acc, double gradient)
 
 CEP (bool heavyVehicle, double vehicleMass, double vehicleLoading, double vehicleMassRot, double crossArea, double cWValue, double f0, double f1, double f2, double f3, double f4, double axleRatio, std::vector< double > &transmissionGearRatios, double auxPower, double ratedPower, double engineIdlingSpeed, double engineRatedSpeed, double effictiveWheelDiameter, double pNormV0, double pNormP0, double pNormV1, double pNormP1, const std::string &vehicelFuelType, std::vector< std::vector< double > > &matrixFC, std::vector< std::string > &headerLinePollutants, std::vector< std::vector< double > > &matrixPollutants, std::vector< std::vector< double > > &matrixSpeedRotational, std::vector< std::vector< double > > &normedDragTable, double idlingFC, std::vector< double > &idlingPollutants)
 
double GetCO2Emission (double _FC, double _CO, double _HC, Helpers *VehicleClass)
 
double GetDecelCoast (double speed, double acc, double gradient)
 
const double & getDrivingPower () const
 
double GetEmission (const std::string &pollutant, double power, double speed, Helpers *VehicleClass)
 
const std::string & getFuelType () const
 
const bool & getHeavyVehicle () const
 
double GetMaxAccel (double speed, double gradient)
 
const double & getNormalizingPower () const
 
const NormalizingTypegetNormalizingTypeX () const
 
const double & getRatedPower () const
 
double GetRotationalCoeffecient (double speed)
 
void setDrivingPower (const double &value)
 
void setRatedPower (const double &value)
 

Protected Attributes

double _auxPower
 
double _axleRatio
 
std::vector< double > _cepCurveFC
 
std::map< std::string, std::vector< double > > _cepCurvePollutants
 
std::map< std::string, std::vector< double > > _cepNormalizedCurvePollutants
 
double _crossSectionalArea
 
double _cWValue
 
std::vector< double > _dragNormTable
 
double _effectiveWheelDiameter
 
double _engineIdlingSpeed
 
double _engineRatedSpeed
 
std::vector< double > _gearTransmissionCurve
 
double _idlingValueFC
 
std::map< std::string, double > _idlingValuesPollutants
 
double _massVehicle
 
std::vector< double > _nNormTable
 
std::vector< double > _normailzedPowerPatternPollutants
 
std::vector< double > _normalizedPowerPatternFC
 
std::vector< double > _normedCepCurveFC
 
double _pNormP0
 
double _pNormP1
 
double _pNormV0
 
double _pNormV1
 
std::vector< double > _powerPatternFC
 
std::vector< double > _powerPatternPollutants
 
double _resistanceF0
 
double _resistanceF1
 
double _resistanceF2
 
double _resistanceF3
 
double _resistanceF4
 
std::vector< double > _speedCurveRotational
 
std::vector< double > _speedPatternRotational
 
double _vehicleLoading
 
double _vehicleMassRot
 

Private Member Functions

void FindLowerUpperInPattern (int &lowerIndex, int &upperIndex, std::vector< double > &pattern, double value)
 
double GetPMaxNorm (double speed)
 
void InitializeInstanceFields ()
 
double Interpolate (double px, double p1, double p2, double e1, double e2)
 

Private Attributes

double _drivingPower
 
std::string _fuelType
 
bool _heavyVehicle
 
double _normalizingPower
 
NormalizingType _normalizingType
 
double _ratedPower
 

Detailed Description

Definition at line 39 of file CEP.h.

Member Enumeration Documentation

◆ NormalizingType

Enumerator
NormalizingType_RatedPower 
NormalizingType_DrivingPower 

Definition at line 63 of file CEP.h.

Constructor & Destructor Documentation

◆ CEP()

PHEMlightdll::CEP::CEP ( bool  heavyVehicle,
double  vehicleMass,
double  vehicleLoading,
double  vehicleMassRot,
double  crossArea,
double  cWValue,
double  f0,
double  f1,
double  f2,
double  f3,
double  f4,
double  axleRatio,
std::vector< double > &  transmissionGearRatios,
double  auxPower,
double  ratedPower,
double  engineIdlingSpeed,
double  engineRatedSpeed,
double  effictiveWheelDiameter,
double  pNormV0,
double  pNormP0,
double  pNormV1,
double  pNormP1,
const std::string &  vehicelFuelType,
std::vector< std::vector< double > > &  matrixFC,
std::vector< std::string > &  headerLinePollutants,
std::vector< std::vector< double > > &  matrixPollutants,
std::vector< std::vector< double > > &  matrixSpeedRotational,
std::vector< std::vector< double > > &  normedDragTable,
double  idlingFC,
std::vector< double > &  idlingPollutants 
)

Member Function Documentation

◆ CalcEngPower()

double PHEMlightdll::CEP::CalcEngPower ( double  power)

Definition at line 218 of file CEP.cpp.

References _powerPatternFC.

◆ CalcPower()

◆ FindLowerUpperInPattern()

void PHEMlightdll::CEP::FindLowerUpperInPattern ( int &  lowerIndex,
int &  upperIndex,
std::vector< double > &  pattern,
double  value 
)
private

Definition at line 369 of file CEP.cpp.

Referenced by GetDecelCoast(), GetEmission(), and GetRotationalCoeffecient().

◆ GetCO2Emission()

double PHEMlightdll::CEP::GetCO2Emission ( double  _FC,
double  _CO,
double  _HC,
Helpers VehicleClass 
)

◆ GetDecelCoast()

◆ getDrivingPower()

const double & PHEMlightdll::CEP::getDrivingPower ( ) const

Definition at line 191 of file CEP.cpp.

References _drivingPower.

◆ GetEmission()

double PHEMlightdll::CEP::GetEmission ( const std::string &  pollutant,
double  power,
double  speed,
Helpers VehicleClass 
)

◆ getFuelType()

const std::string & PHEMlightdll::CEP::getFuelType ( ) const

Definition at line 171 of file CEP.cpp.

References _fuelType.

Referenced by HelpersPHEMlight::compute().

◆ getHeavyVehicle()

const bool & PHEMlightdll::CEP::getHeavyVehicle ( ) const

Definition at line 167 of file CEP.cpp.

References _heavyVehicle.

◆ GetMaxAccel()

double PHEMlightdll::CEP::GetMaxAccel ( double  speed,
double  gradient 
)

◆ getNormalizingPower()

const double & PHEMlightdll::CEP::getNormalizingPower ( ) const

Definition at line 187 of file CEP.cpp.

References _normalizingPower.

Referenced by CEP().

◆ getNormalizingTypeX()

const CEP::NormalizingType & PHEMlightdll::CEP::getNormalizingTypeX ( ) const

Definition at line 175 of file CEP.cpp.

References _normalizingType.

◆ GetPMaxNorm()

double PHEMlightdll::CEP::GetPMaxNorm ( double  speed)
private

Definition at line 426 of file CEP.cpp.

References _pNormP0, _pNormP1, _pNormV0, _pNormV1, and Interpolate().

Referenced by GetMaxAccel().

◆ getRatedPower()

const double & PHEMlightdll::CEP::getRatedPower ( ) const

Definition at line 179 of file CEP.cpp.

References _ratedPower.

◆ GetRotationalCoeffecient()

double PHEMlightdll::CEP::GetRotationalCoeffecient ( double  speed)

◆ InitializeInstanceFields()

◆ Interpolate()

double PHEMlightdll::CEP::Interpolate ( double  px,
double  p1,
double  p2,
double  e1,
double  e2 
)
private

Definition at line 411 of file CEP.cpp.

Referenced by GetDecelCoast(), GetEmission(), GetPMaxNorm(), and GetRotationalCoeffecient().

◆ setDrivingPower()

void PHEMlightdll::CEP::setDrivingPower ( const double &  value)

Definition at line 195 of file CEP.cpp.

References _drivingPower.

◆ setRatedPower()

void PHEMlightdll::CEP::setRatedPower ( const double &  value)

Definition at line 183 of file CEP.cpp.

References _ratedPower.

Field Documentation

◆ _auxPower

double PHEMlightdll::CEP::_auxPower
protected

Definition at line 103 of file CEP.h.

Referenced by CalcPower(), CEP(), and InitializeInstanceFields().

◆ _axleRatio

double PHEMlightdll::CEP::_axleRatio
protected

Definition at line 102 of file CEP.h.

Referenced by CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _cepCurveFC

std::vector<double> PHEMlightdll::CEP::_cepCurveFC
protected

Definition at line 119 of file CEP.h.

Referenced by CEP(), and GetEmission().

◆ _cepCurvePollutants

std::map<std::string, std::vector<double> > PHEMlightdll::CEP::_cepCurvePollutants
protected

Definition at line 123 of file CEP.h.

Referenced by CEP(), and GetEmission().

◆ _cepNormalizedCurvePollutants

std::map<std::string, std::vector<double> > PHEMlightdll::CEP::_cepNormalizedCurvePollutants
protected

Definition at line 124 of file CEP.h.

Referenced by CEP().

◆ _crossSectionalArea

double PHEMlightdll::CEP::_crossSectionalArea
protected

Definition at line 95 of file CEP.h.

Referenced by CalcPower(), CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _cWValue

double PHEMlightdll::CEP::_cWValue
protected

Definition at line 96 of file CEP.h.

Referenced by CalcPower(), CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _dragNormTable

std::vector<double> PHEMlightdll::CEP::_dragNormTable
protected

Definition at line 129 of file CEP.h.

Referenced by CEP(), and GetDecelCoast().

◆ _drivingPower

double PHEMlightdll::CEP::_drivingPower
private

Definition at line 84 of file CEP.h.

Referenced by CEP(), getDrivingPower(), InitializeInstanceFields(), and setDrivingPower().

◆ _effectiveWheelDiameter

double PHEMlightdll::CEP::_effectiveWheelDiameter
protected

Definition at line 111 of file CEP.h.

Referenced by CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _engineIdlingSpeed

double PHEMlightdll::CEP::_engineIdlingSpeed
protected

Definition at line 110 of file CEP.h.

Referenced by CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _engineRatedSpeed

double PHEMlightdll::CEP::_engineRatedSpeed
protected

Definition at line 109 of file CEP.h.

Referenced by CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _fuelType

std::string PHEMlightdll::CEP::_fuelType
private

Definition at line 58 of file CEP.h.

Referenced by CEP(), GetCO2Emission(), GetEmission(), and getFuelType().

◆ _gearTransmissionCurve

std::vector<double> PHEMlightdll::CEP::_gearTransmissionCurve
protected

Definition at line 121 of file CEP.h.

Referenced by CEP(), and GetDecelCoast().

◆ _heavyVehicle

bool PHEMlightdll::CEP::_heavyVehicle
private

Definition at line 53 of file CEP.h.

Referenced by CEP(), getHeavyVehicle(), and InitializeInstanceFields().

◆ _idlingValueFC

double PHEMlightdll::CEP::_idlingValueFC
protected

Definition at line 125 of file CEP.h.

Referenced by CEP(), GetEmission(), and InitializeInstanceFields().

◆ _idlingValuesPollutants

std::map<std::string, double> PHEMlightdll::CEP::_idlingValuesPollutants
protected

Definition at line 126 of file CEP.h.

Referenced by CEP(), and GetEmission().

◆ _massVehicle

double PHEMlightdll::CEP::_massVehicle
protected

Definition at line 92 of file CEP.h.

Referenced by CalcPower(), CEP(), GetDecelCoast(), GetMaxAccel(), and InitializeInstanceFields().

◆ _nNormTable

std::vector<double> PHEMlightdll::CEP::_nNormTable
protected

Definition at line 128 of file CEP.h.

Referenced by CEP(), and GetDecelCoast().

◆ _normailzedPowerPatternPollutants

std::vector<double> PHEMlightdll::CEP::_normailzedPowerPatternPollutants
protected

Definition at line 116 of file CEP.h.

Referenced by CEP().

◆ _normalizedPowerPatternFC

std::vector<double> PHEMlightdll::CEP::_normalizedPowerPatternFC
protected

Definition at line 115 of file CEP.h.

Referenced by CEP().

◆ _normalizingPower

double PHEMlightdll::CEP::_normalizingPower
private

Definition at line 79 of file CEP.h.

Referenced by CEP(), getNormalizingPower(), and InitializeInstanceFields().

◆ _normalizingType

NormalizingType PHEMlightdll::CEP::_normalizingType
private

Definition at line 68 of file CEP.h.

Referenced by CEP(), getNormalizingTypeX(), and InitializeInstanceFields().

◆ _normedCepCurveFC

std::vector<double> PHEMlightdll::CEP::_normedCepCurveFC
protected

Definition at line 120 of file CEP.h.

Referenced by CEP().

◆ _pNormP0

double PHEMlightdll::CEP::_pNormP0
protected

Definition at line 105 of file CEP.h.

Referenced by CEP(), GetPMaxNorm(), and InitializeInstanceFields().

◆ _pNormP1

double PHEMlightdll::CEP::_pNormP1
protected

Definition at line 107 of file CEP.h.

Referenced by CEP(), GetPMaxNorm(), and InitializeInstanceFields().

◆ _pNormV0

double PHEMlightdll::CEP::_pNormV0
protected

Definition at line 104 of file CEP.h.

Referenced by CEP(), GetPMaxNorm(), and InitializeInstanceFields().

◆ _pNormV1

double PHEMlightdll::CEP::_pNormV1
protected

Definition at line 106 of file CEP.h.

Referenced by CEP(), GetPMaxNorm(), and InitializeInstanceFields().

◆ _powerPatternFC

std::vector<double> PHEMlightdll::CEP::_powerPatternFC
protected

Definition at line 114 of file CEP.h.

Referenced by CalcEngPower(), CEP(), and GetEmission().

◆ _powerPatternPollutants

std::vector<double> PHEMlightdll::CEP::_powerPatternPollutants
protected

Definition at line 117 of file CEP.h.

Referenced by CEP(), and GetEmission().

◆ _ratedPower

double PHEMlightdll::CEP::_ratedPower
private

◆ _resistanceF0

double PHEMlightdll::CEP::_resistanceF0
protected

Definition at line 97 of file CEP.h.

Referenced by CalcPower(), CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _resistanceF1

double PHEMlightdll::CEP::_resistanceF1
protected

Definition at line 98 of file CEP.h.

Referenced by CalcPower(), CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _resistanceF2

double PHEMlightdll::CEP::_resistanceF2
protected

Definition at line 99 of file CEP.h.

Referenced by CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _resistanceF3

double PHEMlightdll::CEP::_resistanceF3
protected

Definition at line 100 of file CEP.h.

Referenced by CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _resistanceF4

double PHEMlightdll::CEP::_resistanceF4
protected

Definition at line 101 of file CEP.h.

Referenced by CalcPower(), CEP(), GetDecelCoast(), and InitializeInstanceFields().

◆ _speedCurveRotational

std::vector<double> PHEMlightdll::CEP::_speedCurveRotational
protected

Definition at line 122 of file CEP.h.

Referenced by CEP(), and GetRotationalCoeffecient().

◆ _speedPatternRotational

std::vector<double> PHEMlightdll::CEP::_speedPatternRotational
protected

Definition at line 113 of file CEP.h.

Referenced by CEP(), GetDecelCoast(), and GetRotationalCoeffecient().

◆ _vehicleLoading

double PHEMlightdll::CEP::_vehicleLoading
protected

Definition at line 93 of file CEP.h.

Referenced by CalcPower(), CEP(), GetDecelCoast(), GetMaxAccel(), and InitializeInstanceFields().

◆ _vehicleMassRot

double PHEMlightdll::CEP::_vehicleMassRot
protected

Definition at line 94 of file CEP.h.

Referenced by CalcPower(), CEP(), GetMaxAccel(), and InitializeInstanceFields().


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