function Aufgabe32_3

% Parameter (global definiert, damit Wertaenderung nur an einer Stelle erforderlich):
global mM mF mT mue c k n Omega cT
mM = 50 ; mF = 100 ; mT = 75 ; mue = 0.1*0.01 ; c = 2.6e5 ; k = 3.75e3 ; n = 400/60 ; 
Omega = 2*pi*n ;
cT    = mT*Omega^2 ;

x0    = [0 ; 0 ; 0 ; 0 ; 0 ; 0] ;   % Anfangswerte
tspan = [0  1.5] ;                  % Zeitintervall

% Integration des Anfangswertproblems:
options = odeset('MaxStep' , 0.1) ; 
[t xx]  = ode45 (@RechteSeite , tspan , x0 , options) ;

% Grafische Ausgabe, zunaechst "Sortieren der Ergebnisse":
x   = xx (:,1) ;  
x1  = xx (:,3) ;   
x2  = xx (:,4) ;   
v1  = xx (:,5) ;   
v2  = xx (:,6) ;   

subplot(2,2,1) ; plot (t , x)  , grid on , title  ('x(t): Bewegung ohne Tilger')
subplot(2,2,2) ; plot (t , x1) , grid on , title  ('x1(t): Motor mit Tilger')
subplot(2,2,3) ; plot (t , x2) , grid on , title  ('x2(t): Tilgerbewegung')
subplot(2,2,4) ; plot (t , v1 ,'-r' , t , v2 ,'-b') , grid on ,
       title  ('v1(t), v2(t): Motor, Tilger') , legend ('v1','v2')

% ============================================================
% Funktion, die die "rechte Seite" des Dgl.-Systems definiert: 
function f = RechteSeite (t , xx)

global mM mF mT mue c k n Omega cT

x   = xx(1) ;  
v   = xx(2) ;  
x1  = xx(3) ;   
x2  = xx(4) ;   
v1  = xx(5) ;   
v2  = xx(6) ;   

xp   = v ;  
vp   = (mue*Omega^2*cos(Omega*t) - k*v - c*x)/(mF+mM) ;  
x1p  = v1 ;   
x2p  = v2 ;   
v1p  = (mue*Omega^2*cos(Omega*t) - k*v1 - c*x1 + cT*(x2-x1))/(mF+mM) ;   
v2p  = -cT*(x2-x1)/mT ;   

f = [xp ; vp ; x1p ; x2p ; v1p ; v2p] ;