HelpersHarmonoise Class Reference

#include <HelpersHarmonoise.h>


Detailed Description

Helper methods for Harmonoise-based noise emission computation.

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

Member Function Documentation

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.

Parameters:
[in] c The vehicle emission class
[in] v The vehicle's current velocity
[in] a The vehicle's current acceleration
Returns:
The noise produced by the vehicle of the given class running with v and a

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.

Parameters:
[in] val The sum of converted vehicle noises ( pow(10., (<NOISE>/10.)) )
Returns:
The resulting sum

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     }


Field Documentation

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
                                                 }
A-weighted correction for octave bands.

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]

rolling component, light vehicles, alpha

Definition at line 77 of file HelpersHarmonoise.h.

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]

rolling component, heavy vehicles, alpha

Definition at line 83 of file HelpersHarmonoise.h.

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]

rolling component, light vehicles, beta

Definition at line 80 of file HelpersHarmonoise.h.

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]

rolling component, heavy vehicles, beta

Definition at line 86 of file HelpersHarmonoise.h.

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]

traction component, light vehicles, alpha

Definition at line 89 of file HelpersHarmonoise.h.

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]

traction component, heavy vehicles, alpha

Definition at line 95 of file HelpersHarmonoise.h.

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]

traction component, light vehicles, beta

Definition at line 92 of file HelpersHarmonoise.h.

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]

traction component, heavy vehicles, beta

Definition at line 98 of file HelpersHarmonoise.h.


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

Generated on Wed May 5 00:06:46 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6