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#
Mittels einer Reihenschaltung von Federdämpfer-Systemen lässt sich ein einfaches zweidimensionales Modell einer Highline erstellen.
Modellbeschreibung#

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
Angenommen jeder Massepunkt hat die Masse
Diese Gleichungen lassen sich in eine kompaktere Matrixschreibweise bringen. Dazu führen wir folgende Bezeichungen ein:
an, nur dass die Koeffizienten
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
Bei einer Highlinelänge von
Mit
Demnach lassen sich die Verschiebungen der Massepunkte im stationären Lastfall berechnen, indem das lineare Gleichungssytem
gelöst wird. Die Verschiebungen
Aufgabe 1 - Durchhang der Highline ohne Zusatzgewicht#
Lösen Sie das Gleichungssystem S\b
und berechnen Sie anschließend die Verschiebung der Massepunkte
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.
Show 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
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
[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 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
ist das Schnellste der sechs iterativen Verfahren schneller als das klassische LU-Verfahren?
Tipp
Verwenden Sie die Matlabbefehle
tic
undtoc
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.

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
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.