% % % Absorpt_Schalldaempf.m function Absorpt_Schalldaempf SD_type='Einfach_machbar_2'; switch SD_type case 'Erste_Version' % Stroemungsrechner: http://www.druckverlust.de/Online-Rechner/ % Siebrohr: https://www.hild-tuning.de/edelstahl-auspuff-siebrohr-38-mm.html da=120E-3; di=38E-3; % Durchlass: 35.6mm. Mit l=22cm, Rauhigkeit=1.5mm und dV/dt=83l/s => 11.85mbar. d_end=28E-3; % Durchmesser Endstueck. Wegen Muendungsdaempfung. l=22E-2; case 'Einfach_machbar_1' % Siebrohr: https://www.hild-tuning.de/edelstahl-auspuff-siebrohr-45-mm.html da=113E-3; % Kleinster Durchmesser des Orig.-Schalldaempfers. Herstellung: duennes Edelstahlblech darum herum biegen. di=45E-3; % Durchlass: 42.6mm. Mit l=20cm, Rauhigkeit=1.5mm und dV/dt=83l/s => 4.05mbar. d_end=23.5E-3; % Durchmesser Endstueck. Wegen Muendungsdaempfung. Konus 7°, 45mm -> 23.5mm, 83l/s => 5.6mbar l=20E-2; case 'Einfach_machbar_2' % Siebrohr: https://www.hild-tuning.de/edelstahl-auspuff-siebrohr-38-mm.html da=113E-3; % Kleinster Durchmesser des Orig.-Schalldaempfers. Herstellung: duennes Edelstahlblech darum herum biegen. di=38E-3; % Durchlass: 35.6mm. Mit l=25cm, Rauhigkeit=1.5mm und dV/dt=83l/s => 13.48mbar. d_end=37.6E-3; % Durchmesser Endstueck. Wegen Muendungsdaempfung. Wird in diesem Fall ganz weggelassen, weil kompliziert, und wegen Druckabfall. D.h. nur Innendurchm. des Siebrohrs. l=25E-2; % Ohne End-Konus kann der Daempfer laenger werden. end;%SWITCH d_end_orig=46.5E-3; % Endstueck-Durchmesser des Original-Schalldaempfers c=407.4; frq=logspace(log10(40), log10(990), 1000); %frq=[0:.01:15.995 logspace(log10(16), log10(100000), 10000) ]; H_muend=Muendungsdaempfung(d_end, c, frq)./Muendungsdaempfung(d_end_orig, c, frq); Habs=Absorpt_FreqResp(di, da, l, c, frq).*H_muend; plot(frq, 20*log10(Habs)); xlabel('Freq. [Hz]'); ylabel('Gain [dB]'); grid on grid minor % Save the result, if not aborted. act_path=fileparts(mfilename('fullpath')); DefaultName=fullfile(act_path, '_Messungen', ['SD_fresp_' SD_type '.mat']); [FileName,PathName] = uiputfile('*.mat', 'Save frequency response',DefaultName); if ~isequal(FileName,0) & ~isequal(PathName,0), save(fullfile(PathName, FileName), 'frq', 'Habs') end;%IF % ############################################################################# function Habs=Muendungsdaempfung(di, c, freq); % ############################################################################# % % Muendungsdaempfung. Siehe S. 125 in Handbuch Fahrzeugakustik: Grundlagen, Auslegung, Berechnung, Versuch. Peter Zeller. Springer-Verlag, 01.09.2009. % % di: Innendurchmesser der Muendung in m. % c: Schallgeschwindigkeit in m/s. % freq: Frequenz in Hz. % Habs: Betrag der Uebertragungsfunktion. D=10*log10(1+(c./(2*pi*freq.*di)).^2); Habs=10.^(-D/20); % ############################################################################# function Habs=Absorpt_FreqResp(di, da, l, c, freq) % ############################################################################# % % Frequenzgang eines Absorptionsschalldaempfers. % Siehe S. 128ff in Handbuch Fahrzeugakustik: Grundlagen, Auslegung, Berechnung, Versuch. Peter Zeller. Springer-Verlag, 01.09.2009. % % di: Aussendurchmesser des inneren Siebrohres in m. % da: Innendurchmesser der Aussenhuelle in m. % l: Laenge des Schalldaempfers in m. % c: Schallgeschwindigkeit. % freq: Frequenz in Hz. % Habs: Betrag der Uebertragungsfunktion. d=(da-di)/2; % Auskleidungstiefe r=di/2; lambda=d/r; % Normierte Auskleidungstiefe eta=2*r*freq/c; % Normierte Frequenz log10_Dh=get_norm_curve(lambda, log10(eta)); Dh=10.^log10_Dh; Da=Dh*(2*l/r); Habs=10.^(-Da/20); function test_curv % Nur Test. lambda=1.41; % Vary this parameter for testing. log10_eta=-2:.01:1; D=get_norm_curve(lambda, log10_eta); curv=measured_curves; plot(curv(1).xy(:,1), curv(1).xy(:,2) ... , curv(2).xy(:,1), curv(2).xy(:,2) ... , curv(3).xy(:,1), curv(3).xy(:,2) ... , log10_eta, D) % ############################################################################# function log10_Dh=get_norm_curve(lambda, log10_eta) % ############################################################################# % % Get normalized insertion loss curve in dB. % % Concept: the Parameter Lambda influences only the lower frequency slope of the frequency response. % Therefore, the lower frequency slope is stored separately, and then, the % lower slope and the rest of the frequency response are shifted against each other. % Then, the minimum of the 2 damping-curves is used. % % lambda: "normierte Auskleidungstiefe". % log10_eta: log10(eta), where eta is the frequency, normalised by the speed of sound and the inner diameter. % log10_Dh: log10(Dh), where Dh is the attenuation in dB normalised by length and inner diameter. curv(1).xy= ... [ -1.99894 -1.70078 ... ; -1.68023 -1.07428 ... ; -1.50505 -0.754545 ... ; -1.34566 -0.484223 ... ; -1.20073 -0.268516 ... ; -1.09531 -0.130797 ... ; -1.00436 -0.0372864 ... ; -0.914717 0.0328096 ... ; -0.823738 0.0898937 ... ; -0.749887 0.120989 ... ; -0.679982 0.139081 ... ; -0.594241 0.151941 ... ; -0.524325 0.157024 ... ; 0 0.176 ]; curv(2).xy= ... [ -1.0 0.148 ... ; -0.524325 0.157024 ... ; -0.425375 0.151649 ... ; -0.388429 0.143779 ... ; -0.334337 0.141083 ... ; -0.285522 0.138396 ... ; -0.214293 0.151282 ... ; -0.153618 0.164187 ... ; -0.112726 0.16932 ... ; -0.0784227 0.166658 ... ; -0.0348779 0.156175 ... ; 0.0574705 0.156015 ... ; 0.0851705 0.161171 ... ; 0.141899 0.161072 ... ; 0.173563-.005 0.158415 ... ; 0.178845-.005 0.153202 ... ; 0.193375-.005 0.132362 ... ; 1.0 -1.46443 ]; shift=0.30588*(1-log2(lambda)); D1=interp1(curv(1).xy(:,1)+shift, curv(1).xy(:,2), log10_eta, 'linear', 'extrap'); D2=interp1(curv(2).xy(:,1), curv(2).xy(:,2), log10_eta, 'linear', 'extrap'); log10_Dh=min(D1,D2); function curv=measured_curves % Dummy function, just a place to store the 3 curves % as measured from the picture in the book. curv(1).lambda=0.5; curv(1).xy= ... [ -1.53629 -2.00503 ... ; -1.29154 -1.51266 ... ; -1.03743 -1.01593 ... ; -0.850896 -0.667368 ... ; -0.715595 -0.44082 ... ; -0.626908 -0.310135 ... ; -0.531206 -0.1751 ... ; -0.451795 -0.0836456 ... ; -0.367659 -0.00964003 ... ; -0.274145 0.0599915 ... ; -0.159513 0.11215 ... ; -0.0823011 0.142561 ... ; 0.0347545 0.159833 ... ; 0.133115 0.15969 ... ; 0.165902 0.159643 ... ; 0.179985 0.146541 ... ; 0.194108 0.115997 ... ; 1.0011 -1.46802 ]; curv(2).lambda=1.0; curv(2).xy= ... [ -1.83594 -1.99612 ... ; -1.6023 -1.52587 ... ; -1.45745 -1.23414 ... ; -1.31023 -0.951133 ... ; -1.16999 -0.707355 ... ; -1.02974 -0.463576 ... ; -0.919853 -0.293838 ... ; -0.835648 -0.185071 ... ; -0.75143 -0.0850249 ... ; -0.685893 -0.0285294 ... ; -0.603963 0.0366394 ... ; -0.547781 0.0800808 ... ; -0.477509 0.106039 ... ; -0.395512 0.127603 ... ; -0.341619 0.136167 ... ; -0.268962 0.138 ... %0.135956 ... ; -0.198677 0.153194 ... ; -0.12136 0.170411 ... ; -0.0674535 0.170254 ... ; -0.0158772 0.161383 ... ; 0.0474112 0.156839 ... ; 0.127099 0.156607 ... ; 0.159912 0.156512 ... ; 0.178675 0.147736 ... ; 0.195129 0.117165 ... ; 1.00151 -1.46803 ]; curv(3).lambda=2.0; % curv(3).xy= ... % [ -1.99531 -1.69958 ... % ; -1.79609 -1.30828 ... % ; -1.67656 -1.06915 ... % ; -1.56172 -0.860488 ... % ; -1.42813 -0.608336 ... % ; -1.30859 -0.42581 ... % ; -1.19141 -0.260693 ... % ; -1.06016 -0.0956164 ... % ; -0.940625 0.0128901 ... % ; -0.865625 0.064922 ... % ; -0.790625 0.103892 ... % ; -0.701563 0.129758 ... % ; -0.626563 0.146957 ... % ; -0.558594 0.151113 ... % ; -0.5 0.150943 ... % ; -0.413281 0.146338 ... % ; -0.347656 0.141793 ... % ; -0.282031 0.137248 ... % ; -0.146094 0.162979 ... % ; -0.0945312 0.171537 ... % ; -0.0242188 0.162625 ... % ; 0.04375 0.153719 ... % ; 0.11875 0.157856 ... % ; 0.172656 0.153345 ... % ; 0.186719 0.135888 ... % ; 0.997656 -1.46443 ]; curv(3).xy= ... [ -1.99894 -1.70078 ... ; -1.68023 -1.07428 ... ; -1.50505 -0.754545 ... ; -1.34566 -0.484223 ... ; -1.20073 -0.268516 ... ; -1.09531 -0.130797 ... ; -1.00436 -0.0372864 ... ; -0.914717 0.0328096 ... ; -0.823738 0.0898937 ... ; -0.749887 0.120989 ... ; -0.679982 0.139081 ... ; -0.594241 0.151941 ... ; -0.524325 0.157024 ... ; -0.425375 0.151649 ... ; -0.388429 0.143779 ... ; -0.334337 0.141083 ... ; -0.285522 0.138396 ... ; -0.214293 0.151282 ... ; -0.153618 0.164187 ... ; -0.112726 0.16932 ... ; -0.0784227 0.166658 ... ; -0.0348779 0.156175 ... ; 0.0574705 0.156015 ... ; 0.0851705 0.161171 ... ; 0.141899 0.161072 ... ; 0.173563-.005 0.158415 ... ; 0.178845-.005 0.153202 ... ; 0.193375-.005 0.132362 ... ; 1.0 -1.46443 ]; %; 1.00217 -1.46401 ]; % dx=0*.30588; plot(curv(1).xy(:,1), curv(1).xy(:,2), curv(2).xy(:,1), curv(2).xy(:,2), curv(3).xy(:,1)+dx, curv(3).xy(:,2))