NMPB08 shared libraries
|
00001 00008 #ifndef CALCUL_ROADEMISSION_H 00009 #define CALCUL_ROADEMISSION_H 00010 00011 #include "RoadEmissionNMPB08.h" 00012 #include "RoadSurfaceDescription.h" 00013 #include <vector> 00014 #include <math.h> 00015 #include <map> 00016 using namespace std; 00017 using namespace RoadSurfaceDescriptionNMPB; 00018 00019 namespace CalculRoadEmissionNMPB 00020 { 00042 bool DefineRoadSurfaceType(int idRoadSurface, 00043 double AVL, double BVL, double Vref_VL, 00044 double APL, double BPL, double Vref_PL, 00045 double const* spectrum); 00046 00050 class CalculRoadEmission 00051 { 00052 public: 00056 CalculRoadEmission(void); 00057 00065 CalculRoadEmission(RoadSpectrumType specType, RoadSurfaceType surfType); 00066 00074 double* SoundPowerLevelPerMeter (RoadTraffic* roadTraffic) ; 00075 00083 double* Lwm_rolling (RoadTraffic* roadTraffic) ; 00084 00092 double* Lwm_traction (RoadTraffic* roadTraffic) ; 00093 00107 double* Lw_rolling (RoadVehicleType vtype, 00108 double vehicleSpeed, 00109 RoadSurfaceType surfaceType, 00110 double surfaceAge) ; 00111 00125 double* Lw_traction (RoadVehicleType vtype, 00126 double vehicleSpeed, 00127 RoadFlowType flowType, 00128 double ramp) ; 00129 00130 private: 00134 double _Lw_VL; 00138 double _Lw_PL; 00142 double _Lw_rolling_VL; 00146 double _Lw_rolling_PL; 00150 double _Lw_traction_VL; 00154 double _Lw_traction_PL; 00158 double _QVL; 00162 double _QPL; 00166 int _bandsNumber; 00170 bool _specA; 00174 double* _Lw_band; 00178 const int* _usedFrequencies; 00179 00183 map<int, double> _linearCorrection; 00184 00188 double _output_values[18] ; 00189 00194 void FillLinearCorrectionMap(); 00195 00201 void FillRoadSurfaceDescriptionMap(RoadSurfaceType surfType); 00202 00212 double* SpectralDistribution(double powerValue, RoadSurfaceType surfaceType); 00213 00229 double LwTotal(double LwVL, double QVL, double LwPL, double QPL); 00230 00244 double Lw_rolling_VL (double vehicleSpeed, RoadSurfaceType surfaceType, double surfaceAge); 00245 00259 double Lw_rolling_PL (double vehicleSpeed, RoadSurfaceType surfaceType, double surfaceAge); 00260 00270 double Lw_traction_VL(double vehicleSpeed, RoadFlowType flowType); 00271 00283 double Lw_traction_PL(double vehicleSpeed, RoadFlowType flowType, double ramp); 00284 00300 double Lw_startStop(RoadVehicleType vtype, double ramp, RoadFlowType flowType, double surfaceAge); 00308 void FillRollingAndTractionFromStartStop(double lwStartStop, RoadVehicleType vtype); 00309 00321 double EnergeticAddition(double val1, double val2); 00322 }; 00323 } 00324 00325 #endif