for n=1:(SirenPeriod/dt);
if n<(SirenPeriod/dt)*(SirenTeeth/(SirenTeeth+MissingTeeth))
Anregung(n)=An_Amp*round(0.5+0.5*sin(2*pi*FE*Time(n:n)));
antiregung(n)=0;
else
Anregung(n)=0;
antiregung(n)=An_Amp*round(0.5+0.5*sin(2*pi*FE*Time(n:n)));
end
end
Anregung2=[];
antiregung2=[];
for n=1:(SirenPeriod/dt):(length(Time))
Anregung2=[Anregung2,Anregung];
antiregung2=[antiregung2,antiregung];
end
Anregung=Anregung2(:,1:length(Time));
Antiregung=antiregung2(:,1:length(Time));
for n=1:(length(Time)-1)
xpp=-gamma*xp-w0^2*x1(n)+Anregung(n);
dxp=xpp*dt;
dx=xp*dt;
xp=xp+dxp;
x1(n+1)=x1(n)+dx;
end
x1=x1';
x=0;
xp=0;
function [Ydot]=Oscl(t,Y,gamma,Anregung,w0,Time)
Anregung_now=interp1(Time,Anregung,t,'nearest');
Ydot=zeros(2,1);
Ydot(1)=Y(2);
Ydot(2)=-gamma*Y(2)-w0^2*Y(1)+Anregung_now;
end
[T,Y]=ode45(@(t,Y) Oscl(t,Y,gamma,Anregung,w0,Time),Time',[x xp]);
scrsz=get(0,'ScreenSize');
Freq_min=0.8*min(FE);
Freq_max=1.2*max(FE);
Time_cent_start=tstart+0.5*(Duration)-SirenPeriod;
Time_cent_end=tstart+0.5*(Duration)+SirenPeriod;
F1=figure('Position',[10 (scrsz(4)/2-20) scrsz(3)/2-20 (scrsz(4)/2-60)]);
F1S1=subplot(1,1,1,'Parent',F1);
plot(F1S1,Time,x1/max(x1),'DisplayName','Damped Oscillator')
hold on
plot(F1S1,Time,Anregung,'DisplayName','Damped Oscillator','Color','r');
axis([Time_cent_start Time_cent_end -1.1 1.1]);
xticks = get(F1S1,'XTick');
set(F1S1,'XTickLabel', sprintf('%.4f|',xticks))
grid(F1S1,'on')
legend(F1S1,'Pressure Amplitude','Driving Function','Location','NorthEast')
Fig1_title_pt1='Amplitude(t) Trap Integration method';
Fig1_title_pt2=['alpha=',num2str(sigma),'(1/s)',' ',...
'Driving Frequency=',num2str(min(FE)),'-',num2str(max(FE)),'Hz'];
title({Fig1_title_pt1; Fig1_title_pt2});
xlabel('time (s)')
ylabel('x(t)')
F2=figure('Position',[scrsz(3)/2+10 (scrsz(4)/2-20) scrsz(3)/2-20 (scrsz(4)/2-60)]);
F2S1=subplot(1,1,1,'Parent',F2);
plot(F2S1,T,Y/max(Y),'DisplayName','Damped Oscillator')
hold on
plot(F2S1,Time,Anregung,'DisplayName','Damped Oscillator','Color','r')
axis([Time_cent_start Time_cent_end -1.1 1.1]);
xticks = get(F2S1,'XTick');
set(F2S1,'XTickLabel', sprintf('%.4f|',xticks))
grid(F2S1,'on')
legend(F2S1,'Pressure Amplitude','Driving Function','Location','NorthEast')
Fig2_title_pt1='Amplitude(t) RungeKutta method';
Fig2_title_pt2=['alpha=',num2str(sigma),'(1/s)',' ',...
'Driving Frequency=',num2str(min(FE)),'-',num2str(max(FE)),'Hz'];
title({Fig2_title_pt1; Fig2_title_pt2});
xlabel('time (s)')
ylabel('x(t)')
end