next up previous adam-math, MATmatcc, MMKOMP MMkomp2 Adam WILEY-VCH MATLAB-Filme Projekte und M-Files Stefan Adam privat Mail to stefan.r.a.adam@gmail.com MMkomp ed1 Adam
Nächste Seite: Flugrouten Aufwärts: MMkomp2 Filmserie Vorherige Seite: Umstülpung eines Tetraeder-Rings

Oszillator mit Dämpfung

Die Differentialgleichung für einen gedämpften Oszillator wird mit verschieden starken Dämpfungsfaktoren mehrmals numerisch gelöst. Die resultierenden Schwingungen werden im Fortschreiten zu immer stärkerer Dämpfung gezeigt.

%function voidbk = dmposcfilms(varargin)
voidbk = 0;
% dmposcfilms.m animierte Simulation eines
%   ged\"ampften Oszillators mit variabler D\"ampfung
% uses ode45 and dmposcpar
figure(1); clf
yin = [0 8.5]';
global EFREQ
global OSCDAMP
EFREQ = 1.59;
hdax = plot([-10 10], [0  0],'k');
axis([-10 10 -10 10]);
hold on; 
axis off
hdtxdm = text(-8.5, 9.5,'Daempfungs-Wirkung', ...
    'FontUnits','points','FontSize',16 , ...
   'Fontweight','demi');
%
dmp = [    0.004 ,   0.012, 0.03,  0.04, 0.06, 0.08, 0.1, ...
         0.15, 0.2 ,0.3,  0.4, 0.6, 0.8, 1.1,  1.6, 2.1,  3.2,  6.4,   12];
oldhd = 0;
voldhd = 0;
%
OSCDAMP = 0;
[tsol, ysol] = ode45('dmposcpar', 20 , yin);
hdnodmp = plot(tsol-10,ysol(:,2),'k');
%
xhd = 0; 
for k=1:19
  OSCDAMP = dmp(k);
% diag k;
  [tsol, ysol] = ode45('dmposcpar', 20 , yin);
%  nhd = plot(tsol-10,ysol(:,2),'r');
  if k>2
    delete(zhd)
  end
% Farbwechsel
  if k>1
    delete(olhd)
    xhd = plot(tol-10,yol(:,2),'b','LineWidth',2);
  end
  nhd = plot(tsol-10,ysol(:,2),'r', 'LineWidth',2);
  zhd = xhd;
  tol = tsol; yol = ysol;
  olhd = nhd;
  pause(0.6)
end

% deriv = dmposcpar(t,yac) Ableitung gedaempfter Oszillator
% EFREQ  und OSCDAMP ausserhalb vordefinieren   
function deriv = dmposcpar(t,yac)
global EFREQ ; global OSCDAMP
w = EFREQ;  d = OSCDAMP;
deriv = zeros(2,1);
deriv(1) = yac(2);
deriv(2) = -d*yac(2) -w*w*yac(1) ;



2018-09-15