Gelöste Aufgaben/TkPb

Aus numpedia
Version vom 9. April 2021, 09:30 Uhr von Mechaniker (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


Aufgabenstellung

Ein Stabwerk aus 5 Stäben wird durch eine Kraft F belastet. Alle Stäbe haben die Länge a.

Hier soll eine einfache Stabwerksaufgabe gelöste werden - aber im Hintergrund geht es eigentlich darum, wie dieser Lösungsprozess in einer Software - hier Maxima - umgesetzt wird.


Lageplan

Gesucht sind die Stab- und Lagerreaktionskräfte des Systems nach dem Knotenpunktverfahren.


Lösung "per Hand" und mit Maxima

Beide Lösungsansätz verfolgen wir parallel - bis wir zur Lösung des Gleichungssystems kommen.

Header

Hier steht nur die Maxima-Headerdatei. Sie soll später helfen, die richtige Versionsnummer der Software zu finden und Ansprechpartner für Nachfragen zu identifizieren.


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 15.08.2                           */
/* author: Andreas Baumgart                            */
/* last updated: 2016-09-18                            */
/* ref: Ma-2, Unterricht zu Linearer Algebra           */
/* description: solves the linear system of equs       */
/*              for the od forces                      */
/*******************************************************/




Declarations

Knoten und Stäbe nummerieren.

Wir nummerieren zunächst die Knoten und Stäbe, damit wir sie im weiteren Lösungsverlauf eindeutig ansprechen können.

Und ein bischen Geometrie Geometrie müssen wir auch ansetzen, um die sin- und cos-Beziehungen von α zu bekommen:

Geometrie-Zusammenhänge.

Wir setzen also

.


Knoten I
Knoten II
Knoten III
Knoten IV

/* ---------------------------------------------------- */
/* geometry */
geom : [cos(alpha) = 1/2, sin(alpha) = 1/2*sqrt(3)];




Equilibrium Conditions

Die Gleichgewichtsbedingungen ...

Wir schreiben je Knoten die zwei Gleichgewichtsbedingungen an, die Koeffizienten schreiben wir dabei schon mal so an, wie sie hinterher in der System-Matrix auftauchen sollen:

... formuliert in Maxima.

/* ---------------------------------------------------- */
/* equilibrium conditions at nodes */
equs : [+ A[y] + S[1]*sin(alpha) = 0,
        + S[1]*cos(alpha) + S[2] = 0,
        - S[1]*sin(alpha) - S[3]*sin(alpha) - F = 0,
        - S[1]*cos(alpha) + S[3]*cos(alpha) + S[4] = 0, 
        + S[3]*sin(alpha) + S[5]*sin(alpha) = 0,
        - S[2] - S[3]*cos(alpha) + S[5]*cos(alpha) = 0,
        - S[5]*sin(alpha) + B[y] = 0,
        - S[4] - S[5]*cos(alpha) + B[x] = 0];

/* unknowns */
x : [ A[y], S[1], S[2], S[3], S[4], S[5], B[y], B[x]];




Check for Solvability

Haben wir genug Gleichungen für alle Unbekannten?

Ja - so sieht es aus.


/* assertain: number of unknowns = number of equations */
length(x)=length(equs), pred;




Solving

Effiziente Löser für Systeme linearer Gleichungen implementieren gewöhnlich eine LU-Faktorisierung. Für dieses Mini-Beispiel können wir uns das anschauen:

LU-Faktorisierung von A

Und die Lösung ist

Lösung aus Maxima.

/* ---------------------------------------------------- */
/* solve */
C : augcoefmatrix(equs,x);
A : submatrix(C,9);
b : -col(C,9);

s : linsolve_by_lu(A,b);

[ P, L, U] : get_lu_factors(lu_factor(A));

/* print results */
subst(geom,s[1]);




Post-Processing

Existieren Winkel von α, so dass keine Lösung möglich ist?

Nur für die WInkel α=0, 90° - und die sind physikalisch nicht sinnvoll.

Also:Nein!


/* ---------------------------------------------------- */
D : determinant(A);





Links

  • ...

Literature

  • ...