.. _AA-usage: Using the Aeroacoustics Model in AeroDyn ======================================== A live version of this documentation is available at https://openfast.readthedocs.io/. To run the aeroacoustics model, the flag **CompAA** needs to be set to **True** at line 14 of the AeroDyn main input file in the inputs block **General Options**. When the flag is set to **True**, the following line must include the name of the file containing the inputs to the aeroacoustics model, which is discussed in :numref:`aa-sec-MainInput`. Currently, this module cannot be used with an MHK turbine. .. container:: :name: aa-tab:AeroDyn .. literalinclude:: example/AeroDyn.ipt :linenos: :language: none .. _aa-sec-MainInput: Main Input File --------------- The aeroacoustics main input file comprises a series of inputs and flags that should be set appropriately depending on the analysis that should be run. These are split into the subfields General Options, Aeroacoustics Models, Observer Input, and Outputs. Starting from the General Options, these are: - **Echo** – True/False: option to rewrite the input file with the correct template - **DT_AA** – Float: time step of the aeroacoustics computations. Only multiples of the time step **DTAero** of AeroDyn can be used. If set to default, the time step DTAero is adopted. - **AAStart** – Float: time after which the AeroAcoustics module is run. - **BldPrcnt** – Float: percentage value of blade span measured from blade tip that contributes to the noise emissions; 100% corresponds to the entire blade from tip to root. The field Aeroacoustics Models lists all the flags for the actual noise models: - **TIMod** – Integer 0/1/2: flag to set the turbulent inflow noise model; 0 turns it off, 1 corresponds to the Amiet model discussed in :numref:`aa-amiet`, and 2 corresponds to the Simplified Guidati model presented in :numref:`aa-guidati`. - **TICalcMeth** – Integer 1/2: flag to set the calculation method for the incident turbulence intensity. When set to 1, incident turbulence intensity is user-defined. When set to 2, incident turbulence intensity is estimated from the time history of the incident flow. - **TI** – Float: user-defined value of :math:`TI`, which is the rotor-incident turbulence intensity used in the Amiet model. - **avgV** – Float: value of the average wind speed used to scale :math:`TI` and convert it to a blade section incident turbulence intensity. - **Lturb** – Float: value of :math:`L_{turb}` used to estimate the turbulent lengthscale used in the Amiet model. - **TBLTEMod** – Integer 0/1/2: flag to set the TBL-TE noise model; 0 turns off the model, 1 uses the Brooks-Pope-Marcolini (BPM) airfoil noise model (see :numref:`aa-turb-TE-bpm`), and 2 uses the TNO model described in :numref:`aa-turb-TE-tno`. - **BLMod** – Integer 1/2: flag to set the calculation method for the boundary layer characteristics; 1 uses the simplified equations from the BPM model, 2 loads the files as described in :numref:`aa-sec-BLinputs`. Only used if **TBLTEMod** is different than zero. - **TripMod** – Integer 0/1/2: if BLMod is set to 1, different semiempirical parameters are used for a nontripped boundary layer (**TRipMod=0**), heavily tripped boundary layer (**TRipMod=1**), or lightly tripped boundary layer (**TRipMod=2**); 2 is typically used for operational wind turbines, whereas 1 is often used for wind tunnel airfoil models. - **LamMod** – Integer 0/1: flag to activate the laminar boundary layer – vortex shedding model, presented in :numref:`aa-laminar-vortex`. - **TipMod** – Integer 0/1: flag to activate the tip vortex model, presented in :numref:`aa-tip-vortex`. - **RoundedTip** – True/False: if **TipMod=1**, this flag switches between a round tip (True) and a square tip (False), see :numref:`aa-tip-vortex`. - **Alprat** – Float: value of the slope of the lift coefficient curve at blade tip; see :numref:`aa-tip-vortex`. - **BluntMod** – Integer 0/1: flag to activate (**BluntMod=1**) the trailing-edge bluntness – vortex shedding model, see :numref:`aa-TE-vortex`. If the flag is set to 1, the trailing-edge geometry must be specified in the files as described in :numref:`aa-sec-BLinputs`. The field Observer Locations contains the path to the file where the number of observers (NrObsLoc) and the respective locations are specified; see :numref:`aa-sec-ObsPos`. Finally, the set Outputs contains a few options for the output data: - **AWeighting** – True/False: flag to set whether the sound pressure levels are reported with (True) or without (False) the A-weighting correction; see :numref:`aa-sec-ModelUsage`. - **NAAOutFile** – Integer 1/2/3/4: flag to set the desired output file. When set to 1, a value of overall sound pressure level at every **DT_AA** time step per observer is printed to file. When set to 2, the first output is accompanied by a second file where the total sound pressure level spectrum is printed per time step per observer. When set to 3, the two first output files are accompanied by a third file where the sound pressure level spectrum per noise mechanism is printed per time step per observer. When set to 4, a fourth file is generated with the values of overall sound pressure levels per node, per blade, per observer, and per time step. - The following line, **AAOutFile**, contains the root name for the files used to store the outputs. If set to "default", the default output file root name will be used. The file name is appended with a 1, 2, 3, and 4 flag based on the **NAAOutFile** options. The file must be closed by an END command. .. container:: :name: aa-tab:AeroAcousticsInput .. literalinclude:: example/AeroAcousticsInput.dat :linenos: :language: none .. _aa-sec-BLinputs: Boundary Layer Inputs and Trailing Edge Geometry ------------------------------------------------ When the flag **BLMod** is set equal to 2, pretabulated properties of the boundary layer must be provided and are used by the turbulent boundary layer – trailing-edge noise models. The file name is to be specified in the field BL_file among the inputs of the file with the airfoil polar coefficients. One airfoil file must be specified per aerodynamic station. .. container:: :name: aa-tab:AFtab .. literalinclude:: example/AFtab.dat :linenos: :language: none The file, in this example named **AF20_BL.txt**, contains 8 inputs, which are tabulated for a given number of Reynolds numbers, ReListBL, and a given number of angles of attack, aoaListBL. The inputs, which are defined nondimensionally and must be provided for the suction and pressure side of the airfoil above and below the trailing edge, are: - **Ue_Vinf** – flow velocity at the top of the boundary layer - **Dstar** – :math:`\delta^{*}`, boundary layer displacement thickness - **Delta** – :math:`\delta`, nominal boundary layer thickness - **Cf** – friction coefficient. In the following example, the file was generated thanks to a Python script [4]_ that runs the boundary layer solver, XFoil. Notably, XFoil, by default, does not return :math:`\delta`, but the boundary layer momentum thickness, :math:`\theta`. :math:`\delta` can be reconstructed using the expression from :cite:`aa-Drela:1987`: .. math:: \delta = \theta \bullet \left( 3.15 + \frac{1.72}{H - 1} \right) + \delta^{*} :label: eq:35 where :math:`H` is the kinematic shape factor, which is also among the standard outputs of XFoil. Because it is usually impossible to obtain these values for the whole ranges of Reynolds numbers and angles of attack, the code is set to adopt the last available values and print to screen a warning. When the flag **BluntMod** is set to 1, the detailed geometry of the trailing edge must also be defined along the span. Two inputs must be provided, namely the angle, :math:`\Psi` between the suction and pressure sides of the profile, right before the trailing-edge point, and the height, :math:`h`, of the trailing edge. :math:`\Psi` must be defined in degrees, while :math:`h` is in meters. Note that the BPM trailing-edge bluntness model is very sensitive to these two parameters, which, however, are often not easy to determine for real blades. :numref:`aa-fig:GeomParamTE` shows the two inputs. .. figure:: media/NoiseN011.png :alt: Geometric parameters of the trailing-edge bluntness :name: aa-fig:GeomParamTE :width: 100.0% Geometric parameters :math:`\mathbf{\Psi}` and :math:`\mathbf{h}` of the trailing-edge bluntness One value of :math:`\Psi` and one value of :math:`h` per file must be defined. These values are not used if the flag **BluntMod** is set to 0. .. container:: :name: aa-tab:AF20_BL .. literalinclude:: example/AF20_BL.txt :linenos: :language: none .. _aa-sec-ObsPos: Observer Positions ------------------ The number and position of observers is set in the file ObserverLocations, which is explained in :numref:`aa-sec-MainInput`. The positions must be specified in the OpenFAST global inertial frame coordinate system, which is located at the tower base and has the x-axis pointing downwind, the y-axis pointing laterally, and the z-axis pointing vertically upward. A scheme of the coordinate system for the observers is shown in :numref:`aa-fig:ObsRefSys`. .. figure:: media/NoiseN010.png :alt: Reference system for the observers :name: aa-fig:ObsRefSys :align: center :width: 40.0% Reference system for the observers The International Energy Agency Wind Task 37 land-based reference wind turbine, which is shown in :numref:`tab:ref-turb`, has a hub height of 110 meters and a rotor radius of 65 meters, and has the International Electrotechnical Commission 61400-11 standards compliant observer located at: x = 175 [m] y = 0 [m] z = 0 [m]. An example of a file listing four observers located at a 2-meter height is shown here: .. container:: :name: aa-tab:observer .. literalinclude:: example/Observer.txt :linenos: :language: none .. [4] https://github.com/OpenFAST/python-toolbox