![](/user_photo/_userpic.png)
книги / Определение акустических характеристик звукопоглащающих конструкций на основе измерений в интерферометрах с применением программного обеспечения PULSE
..pdf![](/html/65386/197/html_IY8DNrwEUO.Ne_f/htmlconvd-ruLaA171x1.jpg)
3.3. Определение акустических характеристик ЗПК методом передаточной функции на основе двух микрофонов
Вданном разделе приведен пример программного кода
вMATLAB для определения акустических характеристик ЗПК по формулам, приведенным в «1.4. Метод передаточной функции на основе двух микрофонов». Программа состоит из двух функций:
1) main_tfm – главная функция пользователя, в которой выполнена реализация метода передаточной функции и из которой вызывается функция вычисления взаимных спектров сигналов;
2) fft_cross – функция пользователя, в которой вычисляются взаимные спектры сигналов.
Для использования функции вычисления взаимных спектров сигналов необходимо в папку с файлом главной функции main_tfm.m скопировать файл fft_cross.m (см. подраздел 3.2. «Перевод записанных сигналов в частотную область»).
Результатом работы программы будет построение графиков акустических характеристик испытанного образца ЗПК (рис. 75).
Рис. 75. Импеданс и коэффициент звукопоглощения образца однослойной локально-реагирующей ЗПК, определенные методом передаточной функции на основе двух микрофонов
71
|
Файл main_tfm.m |
|
close all |
|
|
clear all |
|
|
%------------------------------------------------------- |
|
|
% |
|
ЗАДАНИЕ ИСХОДНЫХ ДАННЫХ |
%------------------------------------------------------- |
|
|
c = 343; |
%скорость звука [м/с] |
|
z1 = |
0.0375; |
%координата микрофона, ближнего к ЗПК |
z2 = |
z1+0.02; |
%координата микрофона, дальнего от ЗПК |
n_ref = 2; |
%номер опорного микрофона |
|
Fmax |
= 6400; |
%верхний предел частотного диапазона |
Overlap = 0; |
%коэффициент перекрытия |
|
dt = |
6.1035E-05; %шаг по времени [с] |
|
df = |
8; |
%шаг, с которым делать fft [Гц] |
%------------------------------------------------------- |
|
|
% |
|
ОСНОВНАЯ ПРОГРАММА |
%------------------------------------------------------- |
|
|
load('2mic2_29'); %загрузка файла с сигналами |
||
%--- |
Считываем сигналы с микрофонов |
|
Signal(:,1) = Channel_1_Data(:,1); |
||
Signal(:,2) = Channel_2_Data(:,1); |
||
%--- |
Кросс-спектры |
|
Gxy = fft_cross(Signal,n_ref,dt,df,Overlap); |
||
%--- |
Передаточная функция |
|
if n_ref==1 |
|
|
H12 |
= Gxy(:,2)./Gxy(:,1); %если опорный микрофон 1 |
|
else |
|
|
H12 |
= Gxy(:,1)./Gxy(:,2); %если опорный микрофон 2 |
|
end |
|
|
N = length(H12); |
%число точек в спектре |
|
f = 0:df:(N-1)*df; %массив частот |
||
kv = |
2*pi*f'/c; |
%волновые числа |
%--- |
Коэффициент отражения |
R = ((H12-exp(-1i*kv*(z1- z2))).*exp(2i*kv*z1))./(exp(1i*kv*(z1-z2))-H12);
%--- Импеданс
Z = (1+R)./(1-R);
%--- Коэффициент звукопоглощения alpha = 1 - abs(R).^2;
72
% |
------------------------------------------------------- |
|
% |
ПОСТРОЕНИЕ |
ГРАФИКОВ |
%------------------------------------------------------- |
|
|
%--- |
Графики действительной и |
мнимой части импеданса |
Zr = real(Z); |
|
|
Zi = imag(Z); |
|
|
set (figure, 'Position', |
[300 400 300 200]); |
|
hold on; |
|
|
grid on; |
|
|
plot(f/1000,Zr,'r'); |
|
|
plot(f/1000,Zi,'b'); |
|
|
axis([500/1000 Fmax/1000 |
-6 6]); |
|
%--- |
График коэффициента |
звукопоглощения |
set (figure, 'Position', |
[620 400 300 200]); |
|
plot(f/1000,alpha,'b'); |
|
|
axis([500/1000 Fmax/1000 |
0 1]); |
|
grid on; |
|
3.4. Определение акустических характеристик ЗПК методом модальной декомпозиции на основе четырех микрофонов
В данном разделе приведен пример программного кода в MATLAB для определения акустических характеристик ЗПК по формулам, приведенным в «1.5. Метод модальной декомпозиции звукового поля». Программа состоит из трех функций:
1)main_mdm – главная функция пользователя, в которой выполнена реализация метода модальной декомпозиции и из которой вызывается функция вычисления взаимных спектров сигналов;
2)fft_auto – функция пользователя, в которой вычисляются автоспектры сигналов;
3)fft_cross – функция пользователя, в которой вычисляются взаимные спектры сигналов.
Для использования функции вычисления взаимных спектров сигналов необходимо в папку с файлом главной функции main_mdm.m скопировать файлы fft_auto.m, fft_cross.m (см. подраз-
дел 3.2. «Перевод записанных сигналов в частотную область»).
73
![](/html/65386/197/html_IY8DNrwEUO.Ne_f/htmlconvd-ruLaA174x1.jpg)
Результатом работы программы будет построение сглаженных кривых акустических характеристик образца ЗПК, определенных методом модальной декомпозиции на основе измерений по 4 микрофонам (рис. 76).
Рис. 76. Импеданс и коэффициент звукопоглощения образца однослойной локально-реагирующей ЗПК, определенные методом модальной декомпозиции на основе четырех микрофонов
|
|
Файл main_mdm.m |
|
close all |
|
||
clear all |
|
||
%------------------------------------------------------- |
|
|
|
% |
|
|
ЗАДАНИЕ ИСХОДНЫХ ДАННЫХ |
%------------------------------------------------------- |
|
|
|
c = 343; |
%скорость звука [м/с] |
||
R = 0.025; |
%радиус канала [м] |
||
z1 |
= |
0.058; |
%расстояние от ЗПК до микрофона 1 |
z2 |
= |
z1+0.0165; |
%расстояние от ЗПК до микрофона 2 |
z3 |
= |
z2+0.0165; |
%расстояние от ЗПК до микрофона 3 |
z4 |
= |
z3+0.0165; |
%расстояние от ЗПК до микрофона 4 |
n_ref = 1; |
%номер опорного микрофона |
||
Fmax |
= 6400; |
%верхний предел частотного диапазона |
|
Overlap = 0.667; |
%коэффициент перекрытия |
||
dt = |
6.1035E-05; |
%шаг по времени [с] |
|
df = |
4; |
%шаг, с которым делать fft [Гц] |
74
% |
------------------------------------------------------- |
% |
ОСНОВНАЯ ПРОГРАММА |
%------------------------------------------------------- |
|
load('7mic_41'); %загрузка файла с сигналами
%--- Считываем сигналы с микрофонов
Signal(:,1) = Channel_1_Data(:,1); Signal(:,2) = Channel_2_Data(:,1); Signal(:,3) = Channel_3_Data(:,1); Signal(:,4) = Channel_4_Data(:,1);
%--- Вычисляем авто- и кросс-спектры на основе fft
Gxx = fft_auto(Signal,dt,df,Overlap);
Gxy = fft_cross(Signal,n_ref,dt,df,Overlap); %--- Давление на микрофонах
p = sqrt(abs(Gxx)).*exp(1i*angle(Gxy)); %--- Решение системы линейных уравнений
N = length(p(:,1));
for j = 1:N %цикл по частотам f(j) = (j-1)*df;
kv = 2*pi*f(j)/c; kr00 = 0/R;
kr10 = 1.841/R;
kz00 = sqrt(kv^2-kr00^2); kz10 = sqrt(kv^2-kr10^2); Be00 = besselj(0,kr00*R); Be10 = besselj(1,kr10*R); %--- Коэффициенты матрицы
a11 = Be00*exp(1i*kz00*z1); a12 = Be00*exp(-1i*kz00*z1);
a13 = Be10*exp(1i*kz10*z1); a14 = Be10*exp(-1i*kz10*z1);
a21 = Be00*exp(1i*kz00*z2); a22 = Be00*exp(-1i*kz00*z2);
a23 = Be10*exp(1i*kz10*z2); a24 = Be10*exp(-1i*kz10*z2);
a31 = Be00*exp(1i*kz00*z3); a32 = Be00*exp(-1i*kz00*z3);
a33 = Be10*exp(1i*kz10*z3); a34 = Be10*exp(-1i*kz10*z3);
a41 = Be00*exp(1i*kz00*z4); a42 = Be00*exp(-1i*kz00*z4);
a43 = Be10*exp(1i*kz10*z4); a44 = Be10*exp(-1i*kz10*z4); A = [a11 a12 a13 a14; a21 a22 a23 a24; ...
a31 a32 a33 a34; a41 a42 a43 a44]; %--- Коэффициенты вектор-столбца
B = [p(j,1); p(j,2); p(j,3); p(j,4)];
%--- Решение системы уравнений для текущей частоты
X = A\B;
%--- Коэффициент отражения по нулевой моде
R00(j) = X(2)/X(1); end
75
%--- |
Импеданс |
Z = (1+R00)./(1-R00); |
|
%--- |
Коэффициент звукопоглощения |
alpha = 1 - abs(R00).^2; |
|
%------------------------------------------------------- |
|
% |
СГЛАЖИВАНИЕ |
%------------------------------------------------------- |
|
Zi(1:400) = smooth(imag(Z(1:400)),20);
Zr(1:400) = smooth(real(Z(1:400)),20);
Al(1:400) = smooth(alpha(1:400),20);
ds = 50; |
|
|
Zi(400:N-ds) |
= smooth(imag(Z(400:N-ds)),ds); |
|
Zr(400:N-ds) |
= smooth(real(Z(400:N-ds)),ds); |
|
Al(400:N-ds) |
= smooth(alpha(400:N-ds),ds*2); |
|
Zi(N-ds:N) = |
smooth(imag(Z(N-ds:N)),1); |
|
Zr(N-ds:N) = |
smooth(real(Z(N-ds:N)),1); |
|
Al(N-ds:N) = |
smooth(alpha(N-ds:N),1); |
|
% |
------------------------------------------------------- |
|
% |
|
ПОСТРОЕНИЕ ГРАФИКОВ |
%------------------------------------------------------- |
|
|
%--- |
Графики |
действительной и мнимой части импеданса |
set (figure, |
'Position', [300 400 300 200]); |
hold |
on; |
|
grid |
on; |
|
plot(f/1000,Zr,'r'); |
|
|
plot(f/1000,Zi,'b'); |
|
|
axis([500/1000 Fmax/1000 |
-6 6]); |
|
%--- |
График коэффициента |
звукопоглощения |
set (figure, 'Position', |
[620 400 300 200]); |
|
plot(f/1000,Al,'b'); |
|
|
axis([500/1000 Fmax/1000 |
0 1]); |
|
grid |
on; |
|
3.5.Определение акустических характеристик ЗПК по измерениям в интерферометре
скасательным падением волн
Рассмотрим программную реализацию в MATLAB определения импеданса ЗПК на основе результатов измерений образца в интерферометре с касательным падением волн. Математические основы используемого для этого подхода изложены в подразделе 1.5
76
«Метод модальной декомпозиции звукового поля». Программа состоит из трех функций:
1)main_pm – главная функция пользователя, в которой выполнена реализация нахождения волновых чисел методом Прони
сопределением импеданса ЗПК и из которой вызываются другие функции;
2)fft_auto – функция пользователя, в которой вычисляются автоспектры сигналов.
3)fft_cross – функция пользователя, в которой вычисляются взаимные спектры сигналов.
Для использования функций вычисления автоспектров и взаимных спектров сигналов необходимо в папку с файлом главной функции main_pm.m скопировать файлы fft_auto.m и fft_cross.m (см. подраздел 3.2. «Перевод записанных сигналов в частотную область»).
В результате работы программы в окно команд MATLAB выводятся числовые значения импеданса.
Файл main_pm.m
close all clear all
% |
------------------------------------------------------- |
% |
ЗАДАНИЕ ИСХОДНЫХ ДАННЫХ 1 |
%------------------------------------------------------- |
|
%1) Имя файла с исходными сигналами в формате *.mat name ='noise_130dB';
%2) Номер опорного сигнала, относительно которого
%вычисляется фаза
n_ref = 1;
%3) Число сигналов n_mic = 18;
%4) Шаг по времени [с] в записанных в PULSE сигналах dt = 6.1035*1e-05;
%5) Шаг, с которым делать fft [Гц]
df = 1;
% 6) Перекрытие выборок в долях от 0 до 1 в fft
Overlap = 0.667;
77
% |
------------------------------------------------------- |
|
|
|
|
|
% |
|
ЗАДАНИЕ ИСХОДНЫХ ДАННЫХ 2 |
||||
%------------------------------------------------------- |
|
|
|
|
|
|
%--- |
Координаты микрофонов |
|
|
|||
z = [0.2 0.22 |
0.24 |
0.26 |
0.28 |
0.3 0.32 0.34 0.36 ... |
||
|
0.38 0.4 |
0.42 |
0.44 |
0.46 |
0.48 |
0.50 0.52 0.54]; |
%--- |
Частоты , на которых проводим поиск импеданса |
|||||
f = [500 630 800 1000 1250 1600 2000 2500 3150]; |
H = 0.04; %высота канала [м] |
|
|
T = |
18.79; %температура среды |
в эксперименте [C] |
c = |
sqrt(1.4*287*(237.15+T)); |
%скорость звука [м/с] |
%------------------------------------------------------- |
|
% |
ОСНОВНАЯ ПРОГРАММА |
%------------------------------------------------------- |
|
Data |
= load(name); %загрузка файла с сигналом |
%--- |
Считываем сигналы |
for i = 1:n_mic
Signal(:,i) = getfield(Data, ['Channel_' int2str(i) ...
'_Data']); end
%--- Вычисляем авто- и кросс-спектры на основе fft
Gxx = fft_auto(Signal,dt,df,Overlap);
Gxy = fft_cross(Signal,n_ref,dt,df,Overlap);
%--- |
Вычисляем амплитуды и фазы на |
микрофонах |
||
Ampl |
= |
sqrt(abs(Gxx)); |
%амплитуда |
[Па] |
Faza |
= |
angle(Gxy); |
%фаза [рад] |
|
p = Ampl.*exp(1i*Faza); %давление на микрофоне [Па]
% |
------------------------------------------------------- |
% |
МЕТОД ПРОНИ |
%------------------------------------------------------- |
|
N = n_mic/2; %число учитываемых мод |
|
%--- |
Формирование матрицы S и вектора P |
for i = 1:length(f) %цикл по частотам for j=1:N
n = f(i)/df+1;
S(j,1:N) = p(n,N+j-1:-1:j); P(j,1) = p(n,N+j);
end
78
%--- Решение системы линейных алгебраических уравнений
D = S\-P;
%--- Нахождение корней полинома coeff(1) = 1;
coeff(2:N+1) = -D(1:N); Qn = roots(coeff);
%--- Определение волновых чисел kz = -1i*log(Qn);
kv = 2*pi*f(i)/c;
ky = sqrt(kv*kv-kz.^2);
%--- Определение импеданса
Z(:,i) = 1i*kv./(ky.*tan(ky*H));
end
Z %вывод значений импеданса в окно команд MATLAB
79
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1.Ingard U. On the theory and design of acoustic resonators // Journal of the Acoustical Society of America. – 1953. – Vol. 25, no 6. – P. 1037–1061.
2.Melling Т.H. The acoustic impedance of perforates at mediumand high sound pressure levels // Journal of Sound and Vibrations. – 1973. – Vol. 29, no. 1. – P. 1–65.
3.Guess A.W. Calculation of perforated plate liner parameters from specified acoustic resistance and reactance // Journal of Sound and Vibrations. – 1975. – Vol. 40, no. 1. – P. 119–137.
4.Hersh A.S., Walker B.E., Celano J.W. Semi-empirical Helmholtz resonator impedance model // AIAA Paper. – 1999. – No. 1825.
5.Boden H. Experimental investigation of harmonic interaction effects for perforates // AIAA Paper. – 2005. – No. 2896.
6.Соболев А.Ф. Полуэмпирическая теория однослойных сотовых звукопоглощающих конструкций с лицевой перфорированной панелью // Акустический журнал. – 2007. – Т. 53, № 6. – С. 861–872.
7.Yu J., Ruiz M., Kwan H.W. Validation of Goodrich perforate liner impedance model using NASA Langley test data // AIAA Paper. – 2008. – No. 2930.
8.Комкин А.И., Миронов М.А., Быков А.И. Поглощение звука резонатором Гельмгольца // Акустический журнал. – 2017. – Т. 63, № 4. – С. 356–363.
9. Schultz T., Liu F., Cattafesta L., Sheplak M., Jones M. A comparison study of normal-incidence acoustic impedance measurements of a perforate liner // AIAA Paper. – 2009. – No. 3301.
10.Ипатов М.С., Остроумов М.Н., Соболев А.Ф. Четырехмикрофонный метод определения импеданса образцов звукопоглощающих конструкций на интерферометре при нормальном падении звука // Труды ЦАГИ. – 2014. – Вып. 2739. – С. 58–68.
11.Сравнительный анализ акустических интерферометров на основе расчетно-экспериментальных исследований образцов
80