A weight function for an engine source sound level empirical equation
Those days I tried to spend some time on making a COMSOL model for calculating the tailpipe radiated noise. One of the first thing to do this is to build up an engine source strength model in to COMSOL. There is already some empirical equation one could get (for example the empirical source strength equation used in the software called SIDLAB).
However during the process I encountered a relatively difficult issue -The empirical equation only give values as the input frequency is a engine firing frequency. If one inputs a random frequency between two engine firing frequencies, one gets a really high and unrealistic value.
In order to make the model of source strength better, a new empirical function is needed, which can considerably drop the sound level between each firing frequencies. To form this new function, I need to develop a weighting function in order to make the empirical engine source sound level equation (upper plot left) to shape more like a real results (upper plot right). Hopefully in the end the original function multiplying the weight_function will give me a good engine source strength model.
In order to achieve this, I started doing some manipulation on a cosine function. Detailed function shaping process can be seen on those pics:
In the end, the weight function can be written as:
W(freq) = 1+(COS(2*Pi*(freq/F1 – 1)) -1) / ( n_low+1+freq/F1*n_fast);
which looks like the following pattern if one uses n_low=4 and n_fast=2, with F1=90;
n_low: define how deep weight function can go. Must above 0, recommend 3, 4 or 5, the larger the value, the less deep it goes. In the beginning of the weight function, the first drop can go down from 1 by -2/(n_low+1). In our previous plot case, where n_low=4, this means the early drop of the function can go down to (1-2/(4+1) ) = 0.6.
n_fast: define how fast the weight function disappears (stop oscillating and become as one), must above 1, recommend use 2, the larger the faster it disappears.
In the end, by putting the weight function on the original function (upper plot left), a “nice” looking function is generated (upper plot right).
In the future I will have to take some real engine source data measurement and compare with the output of the function. By tuning n_low and n_fast and other engine parameters used in the original empirical equation, one should be able to get a simple but averagely nicely fitted empirical function.
We will see…