Voraussetzungen

  • Matrizen-Grundlagen

  • dynamische Kräfte-Gleichgewichte

Lerninhalte

  • Lösung bekannter Modellgleichungen mithilfe von räumlicher Diskretisierung als Modellannahme

  • Vergleich und Bewertung iterativer Gleichungssystemlöser

Modellierung einer Highline#

- Hinweis: Dieses Video ist von YouTube aus eingebunden und nicht Teil des frei lizenzierten Materials! -

Mittels einer Reihenschaltung von Federdämpfer-Systemen lässt sich ein einfaches zweidimensionales Modell einer Highline erstellen.

Modellbeschreibung#

../_images/bridge.png
Abbildung 1: Die Highline wird als eine Kette von N Massepunkten modelliert, die jeweils mit Feder- und Dämpferelementen in horizontaler und vertikaler Richtung miteinader verbunden sind.

Kräftebilanzierung#

Gehen Sie von einem “Urzustand” aus, in dem alle Massepunkte auf einer Linie liegen. Durch die Schwerkraft und das Einwirken äußerer Kräfte entstehen Verschiebungen zi=[xi(t)yi(t)] der Massepunkte weg von diesem Urzustand. Die Verschiebungen der Ankerpunkte seien konstant Null, z0=zN+1=[00].

Angenommen jeder Massepunkt hat die Masse m und die Federdämpferelemente haben die Steifigkeiten k und Dämpfungskoeffizienten d. Durch Freischneiden und Kraftbilanzierung lassen sich für alle Massepunkte die Bewegungsgleichungen aufstellen. Sei Fi,extR2 die externe Kraft, die auf den Massepunkt mit Index i wirkt. Dann gilt

mz¨0=0mz¨1=kz1dz˙1k(z1z2)d(z˙1z˙2)+F1,extmz¨i=k(zi1zi)+d(z˙i1z˙i)k(zizi+1)d(z˙iz˙i+1)+Fi,ext,für i=2,...,N1mz¨N=kzNdz˙N+k(zN1zN)+d(z˙N1z˙N)+FN,extmz¨N+1=0

Diese Gleichungen lassen sich in eine kompaktere Matrixschreibweise bringen. Dazu führen wir folgende Bezeichungen ein:

z=[z1zN]R2N,Fext=[F1,extFN,ext]R2N,M=[m000m000m]R2N×2Nund
S=[2010002011020010201000102]R2N×2N.

M ist die Massematrix, K=kS die Steifigkeitsmatrix und D=dS die Dämpfungsmatrix des gekoppelten Systems. Die oben bereits hergeleiteten Bewegungsgleichungen nehmen die bekannte Form eines gedämpften, angetriebenen harmonischen Oszillators

Mz¨+Dz˙+Kz=Fext

an, nur dass die Koeffizienten M,D und K nun matrixwertig sind und die unbekannte Verschiebungsfunktion z(t) vektorwertig mit 2N Einträgen ist: Ein Eintrag pro Raumrichtung und beweglichem Massepunkt der Highline.

Ein stationärer Lastfall#

Es soll zunächst der stationäre Lastfall untersucht werden, bei dem nur die Schwerkraft auf die Highline wirkt, d.h. Sie gehen von einer konstanten Kraft Fi,ext=[0mg] mit g=9.81m/s2 sowie z¨=z˙=0 aus. Dies entspricht dem Zustand, der sich nach langer Zeit aufgrund der Dämpfung einstellt. Die Differentialgleichung vereinfacht sich in diesem Fall zu einem linearen Gleichungssystem

Kz=Fext.

Bei einer Highlinelänge von L=50m, einem Gesamtgewicht von mges=3.15kg, sowie einer Gesamtsteifigkeit von kges=145.5N/m ergeben sich für die Einzelmassen und Einzelsteifigkeiten

m=mgesN und k=Nkges.

Mit b=[010101]TR2N lässt sich das lineare Gleichungssystem schreiben als

Kz=FextkSz=mgbNkgesSz=mgesgNbS(N2kgesmgesgz):=z~=b

Demnach lassen sich die Verschiebungen der Massepunkte im stationären Lastfall berechnen, indem das lineare Gleichungssytem

Sz~=b

gelöst wird. Die Verschiebungen z erhält man aus der entdimensionalisierten Lösung z~ des Gleichunssystemes mittels

z=mgesgN2kgesz~.

Aufgabe 1 - Durchhang der Highline ohne Zusatzgewicht#

Lösen Sie das Gleichungssystem Sz~=b mit SR2N×2N und bR2N für verschiedene Werte für N mit Hilfe des Backslash-Operators S\b und berechnen Sie anschließend die Verschiebung der Massepunkte z. Erzeugen Sie S dazu im Sparse-Matrix-Format, wie in der vorherigen Übung beschrieben.

Hinweis

Klappen Sie die Codebox aus, um auf den Code für plot_highline zuzugreifen. Wenn Sie Ihren Code online ausführen, brauchen Sie die Funktion nicht initialisieren, da sie dem Kernel als Datei hinterlegt ist.

Hide code cell source
function handle = plot_highline(z, L)
    % plots the highline according to the (x,y)-coordinates stored in the flat
    % vector z = [x1,y1, x2, y2, x3, y3, ...] and the length L of the highline.

    N = length(z)/2;

    if N - floor(N) > 1e-15
        error("The length of the input vector z must be divisble by 2!");
    end

    positions_x = z(1:2:end)' + L*linspace(1/(N+1), 1 - 1/(N+1), N);
    positions_y = z(2:2:end)';

    positions_x = [0 positions_x L];
    positions_y = [0 positions_y 0];

    handle = plot(positions_x, positions_y);

    xlabel('x [m]')
    ylabel('y [m]')
    title('highline displacement')

end
% space for the solution

% S = ...
% b = ...


% z = ...

% plot the displacement of the slackline based on the solution vector z as well as the length of the slackline L
% (the function plot_highline is provided for you, you do not need to implement this)
plot_highline(z, L)

% uncomment the following line to have equal spacing along the x- and y-axis
%axis equal
  • Wie stark hängt die Highline an der tiefsten Stelle durch?

  • Wie hoch muss die Auflösung N Ihrer Ansicht nach mindestens sein, um dem Ergebnis vertrauen zu können? Begründen Sie Ihre Antwort mit konkreten Zahlen!

Aufgabe 2 - Vergleich iterativer Gleichungssystemlöser#

Ab einer bestimmten Größe des Gleichungssystems sind iterative Verfahren zum Lösen von linearen Gleichungssystem besser geeignet als direkte Lösungsverfahren wie das LU-Verfahren.

Prominente Vertreter iterativer Verfahren für lineare Gleichungssysteme sind das konjugierte Gradientenverfahren (Matlab: cgs), das Minres-Verfahren (Matlab: minres) sowie das BiCGstab-Verfahren (Matlab: bicgstab).

Die Konvergenzgeschwindigkeit der iterativen Verfahren lässt sich durch Vorkonditionierung, z.B. mittels unvollständiger LU-Zerlegung, verbessern. Für das BiCGstab-Verfahren sieht der Befehl so aus:

% construct preconditioner 
option.thresh = 0.01;
[L,U,P] = ilu(S,option);

% calculate solution using preconditioned bicgstab
zt = bicgstab(S,P*b,[],maxit,L,U);

Vergleichen Sie die zur Lösung des linearen Gleichungssystems Sz~=b benötigte Rechenzeit des klassischen LU-Verfahrens

[L, U, P] = lu(S);
y  = L\P*b;
zt = U\y; 

mit denen der drei iterativen Verfahren, jeweils mit und ohne Vorkonditionierung und für unterschiedliche N. Verwenden Sie das Speicherformat für dünnbesetzte Matrizen. Erstellen Sie zwei Tabellen, in denen Sie jeweils die benötigte Rechenzeit bzw. das Residuum res = max(abs(b-S*zt)) eintragen:

Verfahren/N

5

50

500

LU

cgs

minres

bicgstab

prec. cgs

prec. minres

prec. bicgstab

  • Ab welcher Auflösung N ist das Schnellste der sechs iterativen Verfahren schneller als das klassische LU-Verfahren?

Tipp

  • Verwenden Sie die Matlabbefehle tic und toc für die Zeitmessung.

  • Unter Umständen müssen Sie die maximal erlaubte Anzahl an Iterationen für die iterativen Verfahren anpassen.

  • Denken Sie daran, die Konstruktion des Vorkonditionierers in der Rechenzeit zu berücksichtigen!

% space for the solution

Aufgabe 3 - Simulation der Slacklinerin#

In einer sogenannten quasistatischen Simulation wird ein zeitabhängiger Prozess so simuliert, dass in jedem Zeitschritt ein stationärer Zustand berechnet wird. So wird die Dynamik (z.B. Oszillation der Slackline) vernachlässigt, was die Berechnung deutlich vereinfacht. Schließlich muss keine Differentialgleichung gelöst werden, es reicht eine Abfolge von linearen Gleichungssystemen zu lösen.

Slackline Animation
Abbildung 2: Animation der Slacklinerin und des Durchhangs des Seils beim Überqueren der Highline.

Simulieren Sie, wie eine Slacklinerin die Highline von links nach rechts traversiert. Berechnen Sie dazu die statische Verschiebung der Slackline für unterschiedliche Positionen der Slacklinerin entlang der Highline. Gehen Sie von einem Gewicht von 70 kg aus.

  • Treffen Sie eine angemessene Wahl für

    • die räumliche Diskretisierung N der Slackline, sowie der Schrittweite der Slacklinerin;

    • das Lösungsverfahren für das lineare Gleichungssystem;

    • das Speicherformat der Matrix

    und begründen Sie Ihre Antwort.

  • Plotten Sie die Kurve, die von den Füßen der Slacklinerin durchlaufen wird (Rote Linie in der Animation in Abbildung 2). Wie stark hängt die Slackline am tiefsten Punkt durch?

% space for the solution

Es geht weiter mit der Highline

Um die Highline dynamisch zu simulieren, sehen Sie sich die Übung Modellierung einer Highline - Zeitliche Auflösung an.