Lösung von Aufgabe 20
  
  - Alle Berechnungen können mit dem
    Matlab-Skript ex20.m ausgeführt
    werden.
 
  - ohne Tilger: 
    
      - Im Fall ohne Tilger vereinfacht sich die Bewegungsgleichung 
        zu 
        
      
 
      - Die entsprechende Systemfunktion incl. aller Parameter 
        ist schnell hingeschrieben: 
        
          - function dydt = f1d(t, y, m, b, 
            c, F, Om)
            % rechte Seite der DGL bei erzwungener Schwingung ohne Tilger
            x = y(1);
            v = y(2);
            dydt = [v; (F*cos(Om*t) - b*v - c*x)/m]; 
        
       
      - Für den Solver muss eine Hilfsfunktion eingeführt 
        werden, die nur von t und y abhängt: 
        
          - f1 = @(t,y) f1d(t,y,m1,b1,c1, F1, 
            Om);
 
        
       
      - Dann kann mit dem Standardsolver ode45 
        das Problem sofort gelöst werden: 
        
          - [t, y] = ode45(f1, [0 60], [0 0]);
            x = y(:,1); % Auslenkung
            v = y(:,2); % Geschwindigkeit
            plot(t, x);
            xlabel("t [s]","FontSize",12);
            ylabel("x [m]","FontSize",12); 
          
 
        
       
      - Der Plot zeigt, dass sich die Schwingung der Masse noch 
        aufschaukelt, man muss für die Dauerschwingung also länger simulieren. 
        Für t1 = 600 s erhält man 
        
      
 
      - Aus dem Bild kann man die erreichte Amplitude ungefähr 
        ablesen. Genauer geht es, indem man die Daten aus der Simulation direkt 
        verwendet. Dazu werden zunächst die Werte nach t = 500 s herausgefiltert, 
        dann unter diesen das Maximum herausgesucht: 
        
          - index = find(t >= 500);
            xSpaet = x(index);
            amplitude1d = max(abs(xSpaet)) 
        
       
      - Man erhält eine Amplitude von 7.0085 m. Bei genauerer 
        Betrachtung stellt man übrigens fest, dass die Amplitude immer noch 
        - wenn auch nur leicht - ansteigt!
 
    
   
  - mit Tilger: 
    
      - Im Fall mit Tilger hat man zwei Gleichungen jeweils zweiter 
        Ordnung, man braucht also einen Vektor mit insgesamt 4 Zustandsgrößen. 
        Am einfachsten definiert man 
        
      
 
      - Schreibt man die Matrix-Vektor-Multiplikationen komponentenweise 
        aus, kann man die Systemfunktion leicht hinschreiben: 
        
      
 
      - Eleganter und - spätestens bei größeren 
        Systemen - übersichtlicher wird es, wenn man y in Zweiervektoren 
        zerlegt und die Matrizen stehen lässt: 
        
      
 
      - In Matlab lautet die entsprechende Funktion dann einfach 
        
          - function dydt = f2d(t, y, M, B, 
            C, Fhat, Om)
            % rechte Seite der DGL bei erzwungener Schwingung mit Tilger
            x = y(1:2);
            v = y(3:4);
            dx = v;
            dv = inv(M)*(Fhat*cos(Om*t) - B*v - C*x);
            dydt = [dx; dv]; 
        
       
      - Das kann wieder leicht mit ode45 
        integriert werden, man erhält 
        
      
 
      - Spätestens ab t = 100 s ist die Dauerschwingung erreicht. 
        Wie oben erhält man eine Amplitude von 0.1413 m für den Schwinger 
        und von 0.9942 m für den Tilger. Das Maximum über alle 
        Tilgerauslenkungen zeigt, dass er in der Einschwingphase bis auf 1.4287 
        m ausgelenkt wird.