Skip to content

Commit

Permalink
Merge pull request #63 from octue/noise
Browse files Browse the repository at this point in the history
Add working noise implementation
  • Loading branch information
thclark authored Apr 23, 2024
2 parents 7bb197b + 024a404 commit 49340d7
Show file tree
Hide file tree
Showing 5 changed files with 388 additions and 179 deletions.
1 change: 1 addition & 0 deletions docs/generate_terms.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
"properties.power_curves.properties.modes.items.properties.cp",
"properties.power_curves.properties.modes.items.properties.ct",
"properties.power_curves.properties.modes.items.properties.overrides",
"properties.power_curves.properties.modes.items.properties.acoustic_emissions",
]


Expand Down
33 changes: 29 additions & 4 deletions docs/terms.rst
Original file line number Diff line number Diff line change
Expand Up @@ -715,7 +715,8 @@ cut in/out action [s]
power_curves.modes.parameters
+++++++++++++++++++++++++++++

Independent parameters for which the power curve is described
Independent parameters for which the power and thrust curves are
described


A slugified string key used to identify the parameter (e.g.
Expand Down Expand Up @@ -752,9 +753,9 @@ described in 'Parameters'
power_curves.modes.overrides
++++++++++++++++++++++++++++

Allows override of certain data in the `turbine` section, where that
data conflicts with requirements of a mode. For example, some operating
modes may reduce rated power, or require a more restrictive range of hub
Override of certain data in the `turbine` section, where that data
conflicts with requirements of a mode. For example, some operating modes
may reduce rated power, or require a more restrictive range of hub
heights for structural reasons

Examples:
Expand Down Expand Up @@ -786,3 +787,27 @@ Examples:
"rated_rpm": 11.8
}
power_curves.modes.acoustic_emissions
+++++++++++++++++++++++++++++++++++++

Specify the noise (Sound Pressure Level) emitted by the turbine in this
mode of operation


Weighting filter that has been applied to sound pressure level
measurements (see IEC 61672:2003 for definitions of curves).


Array of wind speed values, referred to hub height, for which the Sound
Pressure Levels are given. The length of this array must match the
leading dimension of the Sound Pressure Level matrix and the length of
hte total_sound_pressure_level array.


The sound pressure level [db], specified as a matrix for a range of wind
speeds and frequencies.


The total sound pressure level [db], summated across the frequency range
using the specified weighting, for each wind speed

224 changes: 222 additions & 2 deletions power-curve-schema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,41 @@
"exclusiveMinimum": 0
},
"examples": [[50], [50, 60]]
},
"acoustic_emissions_margin": {
"title": "Margin",
"description": "A recommended margin of error [dB] which may be added to the given sound pressure levels for practical use.",
"type": "number",
"examples": [0, 2],
"minimum": 0
},
"acoustic_emissions_weighting": {
"title": "Weighting",
"description": "Weighting filter that has been applied to sound pressure level measurements (see IEC 61672:2003 for definitions of curves).",
"type": "string",
"enum": ["A", "B", "C", "D", "None"],
"default": "None"
},
"acoustic_emissions_wind_speed": {
"title": "Wind speed",
"description": "Array of wind speed values, referred to hub height, for which the Sound Pressure Levels are given. The length of this array must match the leading dimension of the Sound Pressure Level matrix and the length of the total_sound_pressure_level array. The range of wind speeds should span the operating region of the power curve.",
"type": "array",
"items": {
"type": "number",
"minimum": 0
},
"minItems": 1,
"additionalItems": true
},
"acoustic_emissions_frequency": {
"title": "Frequency",
"description": "Array of center-band frequency values for full-octave or one-third-octave band locations, for which the Sound Pressure Levels are given. The length of this array must match the second dimension of the Sound Pressure Level matrix.",
"type": "array",
"items": {
"type": "number",
"exclusiveMinimum": 0
},
"uniqueItems": true
}
},
"required": ["document", "turbine", "design_bases", "power_curves"],
Expand Down Expand Up @@ -836,7 +871,7 @@
"parameters": {
"type": "array",
"title": "Parameters",
"description": "Independent parameters for which the power curve is described",
"description": "Independent parameters for which the power and thrust curves are described",
"additionalItems": true,
"items": {
"type": "object",
Expand Down Expand Up @@ -1081,9 +1116,194 @@
}
]
},
"acoustic_emissions": {
"title": "Acoustic emissions",
"description": "Specify the noise (Sound Pressure Level) emitted by the turbine in this mode of operation",
"type": "object",
"$comment": "The acoustic_emissions property is not strictly required, in order to facilitate backward compatibility (entering data from existing power curve data sheets which may not contain this data). OEMs should treat this as required, however, and future versions of the standard should consider moving to requiring this field.",
"examples": [
{
"$comment": "One third octave example, truncated in the wind speed dimension for brevity",
"margin": 2,
"weighting": "A",
"wind_speed": [5, 6, 7],
"frequency": [
25, 31, 40, 50, 63, 80, 100, 125, 160, 200, 250, 315, 400,
500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000,
6300, 8000, 10000, 12500, 16000, 20000
],
"sound_pressure_level": [
[
8.3, 13.6, 18.4, 45.6, 53.4, 62.2, 71.4, 71.2, 75.1, 80,
84.5, 88.3, 90.7, 92.5, 93.1, 93.8, 93.2, 92.2, 90.6,
88.1, 85.8, 83.5, 80.3, 77.6, 52.9, 51.9, 50.5, 48.7,
46.4, 43.7
],
[
8.3, 13.6, 18.4, 48.3, 55.8, 62.9, 75.2, 76, 79.3, 84.4,
88.7, 92.2, 94.1, 96, 96.1, 96.3, 95.7, 94.7, 93.3,
91.1, 89, 87.2, 84.3, 80.5, 52.9, 51.9, 50.5, 48.7,
46.4, 43.7
],
[
8.3, 13.6, 18.4, 49.2, 57.2, 64.6, 76.6, 77.9, 81.4,
85.9, 90, 93.3, 95, 96.9, 96.8, 96.9, 96.4, 95.6, 94.3,
91.8, 89.8, 88, 85.3, 82, 52.9, 51.9, 50.5, 48.7, 46.4,
43.7
]
]
},
{
"$comment": "Full octave example, truncated in the wind speed dimension for brevity",
"margin": 2,
"weighting": "A",
"frequency": [
16, 31.5, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000
],
"wind_speed": [5, 6, 7],
"sound_pressure_level": [
[
5.2, 19.7, 62.8, 77.7, 90.2, 97.0, 97.9, 93.4, 85.9,
56.6, 51.5
],
[
5.3, 19.8, 63.8, 82.0, 94.3, 100.3, 100.4, 96.3, 89.6,
56.6, 51.3
],
[
5.4, 19.8, 65.4, 83.9, 95.5, 101.1, 101.1, 97.1, 90.5,
56.6, 51.5
]
]
},
{
"$comment": "Total SPL example, truncated in the wind speed dimension for brevity",
"margin": 2,
"weighting": "A",
"wind_speed": [5, 6, 7],
"sound_pressure_level": [101.7, 104.7, 105.5]
}
],
"required": [
"margin",
"sound_pressure_level",
"weighting",
"wind_speed"
],
"oneOf": [
{
"title": "Emissions at one-third-octave intervals",
"properties": {
"margin": {
"$ref": "#/definitions/acoustic_emissions_margin"
},
"weighting": {
"$ref": "#/definitions/acoustic_emissions_weighting"
},
"wind_speed": {
"$ref": "#/definitions/acoustic_emissions_wind_speed"
},
"frequency": {
"$ref": "#/definitions/acoustic_emissions_frequency",
"description": "Array of frequency values at one-third-octave band locations for which the Sound Pressure Levels are given. The length of this array must match the second dimension of the Sound Pressure Level matrix. The frequency range should span at least 20 bands and be sufficient that error in summation of frequency sources to total SPL is negligible for the intended purpose.",
"$comment": "At full band, 20 values is sufficient, whilst at one-third octave the opposite is true, so 20 items is used as a cutoff criterion between one-third and full-band definitions.",
"examples": [
[
25, 31, 40, 50, 63, 80, 100, 125, 160, 200, 250,
315, 400, 500, 630, 800, 1000, 1250, 1600, 2000,
2500, 3150, 4000, 6300, 8000, 10000, 12500, 16000,
20000
]
],
"minItems": 20
},
"sound_pressure_level": {
"title": "Sound Pressure Level (one-third octave intervals)",
"description": "The sound pressure level [db], specified as a matrix for the given ranges of wind speed and frequency. Total sound pressure level can be derived by summation along the frequency dimension using the logarithmic method.",
"$comment": "The sound_pressure_level property is not strictly required for the same reason that its parent, the `acoustic_emissions` property is not required (some existing power curves provide total sound pressure level only). It is however strongly recommended, again for the same reason.",
"type": "array",
"items": {
"type": "array",
"items": {
"minItems": 20,
"type": "number"
}
},
"minItems": 1
}
}
},
{
"title": "Emissions at full-octave intervals",
"properties": {
"margin": {
"$ref": "#/definitions/acoustic_emissions_margin"
},
"weighting": {
"$ref": "#/definitions/acoustic_emissions_weighting"
},
"wind_speed": {
"$ref": "#/definitions/acoustic_emissions_wind_speed"
},
"frequency": {
"$ref": "#/definitions/acoustic_emissions_frequency",
"description": "Array of frequency values at full-octave band locations for which the Sound Pressure Levels are given. The length of this array must match the second dimension of the Sound Pressure Level matrix. The frequency range should span less than 20 bands and be sufficient that error in summation of frequency sources to total SPL is negligible for the intended purpose.",
"$comment": "The schema team determined that at full band, 20 values is more than enough to span the range, whilst at one-third octave the opposite is true, so 20 items is used as a cutoff criterion for one-third and full-band definitions.",
"examples": [
[
16, 31.5, 63, 125, 250, 500, 1000, 2000, 4000, 8000,
16000
]
],
"maxItems": 19
},
"sound_pressure_level": {
"title": "Sound Pressure Level (one-third octave intervals)",
"description": "The sound pressure level [db], specified as a matrix for the given ranges of wind speed and frequency. Total sound pressure level can be derived by summation along the frequency dimension using the logarithmic method.",
"$comment": "The sound_pressure_level property is not strictly required for the same reason that its parent, the `acoustic_emissions` property is not required (some existing power curves provide total sound pressure level only). It is however strongly recommended, again for the same reason.",
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 19,
"minItems": 1
},
"minItems": 1
}
}
},
{
"title": "Total emissions",
"properties": {
"margin": {
"$ref": "#/definitions/acoustic_emissions_margin"
},
"weighting": {
"$ref": "#/definitions/acoustic_emissions_weighting"
},
"wind_speed": {
"$ref": "#/definitions/acoustic_emissions_wind_speed"
},
"sound_pressure_level": {
"title": "Sound Pressure Level (total)",
"description": "The total sound pressure level [db], specified for each value of wind speed. Total sound pressure level can be derived by summation along the frequency dimension using the logarithmic method.",
"$comment": "Providing total sound pressure levels is not recommended, in favour of one-third band (which covers all users cases), but is provided to enable legacy power curve documents containing only Total SPL information to be encoded.",
"type": "array",
"items": {
"type": "number",
"minimum": 0
},
"minItems": 1
}
}
}
]
},
"overrides": {
"title": "Mode-Specific Overrides",
"description": "Allows override of certain data in the `turbine` section, where that data conflicts with requirements of a mode. For example, some operating modes may reduce rated power, or require a more restrictive range of hub heights for structural reasons",
"description": "Override of certain data in the `turbine` section, where that data conflicts with requirements of a mode. For example, some operating modes may reduce rated power, or require a more restrictive range of hub heights for structural reasons",
"type": "object",
"required": [],
"examples": [
Expand Down
Loading

0 comments on commit 49340d7

Please sign in to comment.