#include <HelpersHarmonoise.h>
The stored values compute the recepted noise of either passenger or heavy duty vehicles for a distance of 10m from the noise source.
Definition at line 50 of file HelpersHarmonoise.h.
Static Public Member Functions | |
| static SUMOReal | computeNoise (SUMOEmissionClass c, double v, double a) throw () |
| Returns the noise produced by the a vehicle of the given type at the given speed. | |
| static SUMOReal | sum (SUMOReal val) throw () |
| Computes the resulting noise. | |
Static Private Attributes | |
| static double | myAOctaveBandCorrection [27] |
| A-weighted correction for octave bands. | |
vehicle class noise emission coefficients | |
| static double | myR_A_C1_Parameter [27] = { 69.9, 69.9, 69.9, 74.9, 74.9, 74.9, 77.3, 77.5, 78.1, 78.3, 78.9, 77.8, 78.5, 81.9, 84.1, 86.5, 88.6, 88.2, 87.6, 85.8, 82.8, 80.2, 77.6, 75.0, 72.8, 70.4, 67.9 } |
| rolling component, light vehicles, alpha | |
| static double | myR_A_C3_Parameter [27] = { 80.5, 80.5, 80.5, 82.5, 83.5, 83.5, 86.5, 88.3, 88.7, 88.3, 91.4, 92.2, 96.0, 98.1, 97.8, 98.4, 97.2, 94.6, 95.9, 90.5, 87.1, 85.1, 83.2, 81.3, 81.3, 81.3, 81.3 } |
| rolling component, heavy vehicles, alpha | |
| static double | myR_B_C1_Parameter [27] = { 33.0, 33.0, 33.0, 15.2, 15.2, 15.2, 41.0, 41.2, 42.3, 41.8, 38.6, 35.5, 31.7, 21.5, 21.2, 23.5, 29.1, 33.5, 34.1, 35.1, 36.4, 37.4, 38.9, 39.7, 39.7, 39.7, 39.7 } |
| rolling component, light vehicles, beta | |
| static double | myR_B_C3_Parameter [27] = { 33.0, 33.0, 33.0, 30.0, 30.0, 30.0, 41.0, 41.2, 42.3, 41.8, 38.6, 35.5, 31.7, 21.5, 21.2, 23.5, 29.1, 33.5, 34.1, 35.1, 36.4, 37.4, 38.9, 39.7, 39.7, 39.7, 39.7 } |
| rolling component, heavy vehicles, beta | |
| static double | myT_A_C1_Parameter [27] = { 90.0, 92.0, 89.0, 91.0, 92.4, 94.8, 90.8, 86.8, 86.2, 84.5, 84.5, 84.8, 83.5, 81.8, 81.4, 79.0, 79.2, 81.4, 85.5, 85.8, 85.2, 82.9, 81.0, 78.2, 77.2, 75.2, 74.2 } |
| traction component, light vehicles, alpha | |
| static double | myT_A_C3_Parameter [27] = { 97.7, 97.3, 98.2, 103.3, 109.5, 104.3, 99.8, 100.2, 98.9, 99.5, 100.7, 101.2, 100.6, 100.2, 97.4, 97.1, 97.8, 97.3, 95.8, 94.9, 92.7, 90.6, 89.9, 87.9, 85.9, 83.8, 82.2 } |
| traction component, heavy vehicles, alpha | |
| static double | myT_B_C1_Parameter [27] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4 } |
| traction component, light vehicles, beta | |
| static double | myT_B_C3_Parameter [27] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7 } |
| traction component, heavy vehicles, beta | |
| SUMOReal HelpersHarmonoise::computeNoise | ( | SUMOEmissionClass | c, | |
| double | v, | |||
| double | a | |||
| ) | throw () [static] |
Returns the noise produced by the a vehicle of the given type at the given speed.
| [in] | c | The vehicle emission class |
| [in] | v | The vehicle's current velocity |
| [in] | a | The vehicle's current acceleration |
Definition at line 110 of file HelpersHarmonoise.cpp.
References SUMOReal, SVE_HDV_12_12, SVE_HDV_3_1, and SVE_ZERO_EMISSIONS.
Referenced by MSVehicle::getHarmonoise_NoiseEmissions(), ROEdge::getNoiseEffort(), traci::TraCIServer::handleVehicleDomain(), MSMeanData_Harmonoise::MSLaneMeanDataValues::isStillActive(), and TraCIServerAPI_Vehicle::processGet().
00110 { 00111 double *alphaT, *betaT, *alphaR, *betaR; 00112 double ac = 0; 00113 if (c>=SVE_HDV_3_1 && c<=SVE_HDV_12_12) { 00114 alphaT = myT_A_C3_Parameter; 00115 betaT = myT_B_C3_Parameter; 00116 alphaR = myR_A_C3_Parameter; 00117 betaR = myR_B_C3_Parameter; 00118 ac = 5.6; 00119 } else if (c!=SVE_ZERO_EMISSIONS) { 00120 alphaT = myT_A_C1_Parameter; 00121 betaT = myT_B_C1_Parameter; 00122 alphaR = myR_A_C1_Parameter; 00123 betaR = myR_B_C1_Parameter; 00124 ac = 4.4; 00125 } else { 00126 return 0; 00127 } 00128 // 00129 double L_low = 0; 00130 double L_high = 0; 00131 v = v * 3.6; 00132 double s = -30.;// 00133 for (unsigned int i=0; i<27; ++i) { 00134 double crc_low = alphaR[i] + betaR[i]*log10(v/70.) + 10.*log10(.8);// + mySurfaceCorrection[i]; 00135 double ctc_low = alphaT[i] + betaT[i]*((v-70.)/70.) + a*ac + 10.*log10(.2); 00136 double Li_low = 10. * log10(pow(10., (crc_low/10.)) + pow(10., (ctc_low/10.))); 00137 Li_low += s; 00138 double crc_high = alphaR[i] + betaR[i]*log10(v/70.) + 10.*log10(.2);// + mySurfaceCorrection[i]; 00139 double ctc_high = alphaT[i] + betaT[i]*((v-70.)/70.) + a*ac + 10.*log10(.8); 00140 double Li_high = 10. * log10(pow(10., (crc_high/10.)) + pow(10., (ctc_high/10.))); 00141 Li_high += s; 00142 L_low += pow(10., (Li_low+myAOctaveBandCorrection[i])/10.); 00143 L_high += pow(10., (Li_high+myAOctaveBandCorrection[i])/10.); 00144 } 00145 L_low = (10. * log10(L_low)); 00146 L_high = (10. * log10(L_high)); 00147 SUMOReal v1 = (SUMOReal)(10. * log10(pow(10., L_low/10.) + pow(10., L_high/10.))); 00148 return v1; 00149 }
| static SUMOReal HelpersHarmonoise::sum | ( | SUMOReal | val | ) | throw () [inline, static] |
Computes the resulting noise.
| [in] | val | The sum of converted vehicle noises ( pow(10., (<NOISE>/10.)) ) |
Definition at line 67 of file HelpersHarmonoise.h.
References SUMOReal.
Referenced by MSMeanData_Harmonoise::MSLaneMeanDataValues::addTo(), MSLane::getHarmonoise_NoiseEmissions(), TraCIServerAPI_Edge::processGet(), and MSMeanData_Harmonoise::MSLaneMeanDataValues::update().
00067 { 00068 return SUMOReal(10. * log10(val)); 00069 }
double HelpersHarmonoise::myAOctaveBandCorrection [static, private] |
Initial value:
{ -44.7, -39.4, -34.6, -30.2, -26.2, -22.5, -19.1, -16.1, -13.4,
-10.9, -8.6, -6.6, -4.8, -3.2, -1.9, -0.8, 0.0, +0.6,
+1.0, +1.2, +1.3, +1.2, +1.0, +0.5, -0.1, -1.1, -2.5
}
Definition at line 103 of file HelpersHarmonoise.h.
double HelpersHarmonoise::myR_A_C1_Parameter = { 69.9, 69.9, 69.9, 74.9, 74.9, 74.9, 77.3, 77.5, 78.1, 78.3, 78.9, 77.8, 78.5, 81.9, 84.1, 86.5, 88.6, 88.2, 87.6, 85.8, 82.8, 80.2, 77.6, 75.0, 72.8, 70.4, 67.9 } [static, private] |
double HelpersHarmonoise::myR_A_C3_Parameter = { 80.5, 80.5, 80.5, 82.5, 83.5, 83.5, 86.5, 88.3, 88.7, 88.3, 91.4, 92.2, 96.0, 98.1, 97.8, 98.4, 97.2, 94.6, 95.9, 90.5, 87.1, 85.1, 83.2, 81.3, 81.3, 81.3, 81.3 } [static, private] |
double HelpersHarmonoise::myR_B_C1_Parameter = { 33.0, 33.0, 33.0, 15.2, 15.2, 15.2, 41.0, 41.2, 42.3, 41.8, 38.6, 35.5, 31.7, 21.5, 21.2, 23.5, 29.1, 33.5, 34.1, 35.1, 36.4, 37.4, 38.9, 39.7, 39.7, 39.7, 39.7 } [static, private] |
double HelpersHarmonoise::myR_B_C3_Parameter = { 33.0, 33.0, 33.0, 30.0, 30.0, 30.0, 41.0, 41.2, 42.3, 41.8, 38.6, 35.5, 31.7, 21.5, 21.2, 23.5, 29.1, 33.5, 34.1, 35.1, 36.4, 37.4, 38.9, 39.7, 39.7, 39.7, 39.7 } [static, private] |
double HelpersHarmonoise::myT_A_C1_Parameter = { 90.0, 92.0, 89.0, 91.0, 92.4, 94.8, 90.8, 86.8, 86.2, 84.5, 84.5, 84.8, 83.5, 81.8, 81.4, 79.0, 79.2, 81.4, 85.5, 85.8, 85.2, 82.9, 81.0, 78.2, 77.2, 75.2, 74.2 } [static, private] |
double HelpersHarmonoise::myT_A_C3_Parameter = { 97.7, 97.3, 98.2, 103.3, 109.5, 104.3, 99.8, 100.2, 98.9, 99.5, 100.7, 101.2, 100.6, 100.2, 97.4, 97.1, 97.8, 97.3, 95.8, 94.9, 92.7, 90.6, 89.9, 87.9, 85.9, 83.8, 82.2 } [static, private] |
double HelpersHarmonoise::myT_B_C1_Parameter = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4, 9.4 } [static, private] |
double HelpersHarmonoise::myT_B_C3_Parameter = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7, 11.7 } [static, private] |
1.5.6