Gelöste Aufgaben/Kw99
Aufgabenstellung
Ein Stab ABC ist durch eine lineare veränderliche Streckenlast q mit den Eckwerten qA in A und qB in B sowie dem Moment MB in B belastet. Der Stab (E-Modul: E) besteht aus zwei Sektionen mit den Längen l1 bzw. l2 sowie den Flächenmomenten I1 bzw. I2. Der Stab ist in A durch ein gelenkiges Festlager, in C durch eine Schiebehülse gelagert, in B sind die beiden Sektionen fest miteinander verbunden. Die Feder in A ist eine Drehfester mit Steifigkeit KA, die Federn in B und C sind Translationsfedern mit den Steifigkeiten kB, kC.

Gesucht ist die analytische Lösung für den Euler-Bernoulli-Balken. Im Vergleich zu Kw98 wird hier eine Lösung mit normierten Koordinaten verfolgt.
Ermitteln Sie für ein Euler-Bernoulli-Modell die analytischen Verläufe der Schnittgrößen und Verschiebungen im Balken für diese Parameter:
- .
Lösung mit Maxima
Die Aufgabe ist ein klassisches Randwertproblem:
- zwei Gebiete, in denen ein Euler-Bernoulli-Balken in AB und BC durch eine Streckenlast q belastet ist (in Bereich II ist die Streckenlast allerdings Null) und somit durch die Differentialbeziehungberschrieben wird.
- Rand- und Übergangsbedingungen in den Punkten A, B, C
Wir verwenden xi und ξi als Koordinaten je Bereich, in der Übersicht sieht das Randwertproblem so aus:
Rand A | Bereich I | Übergang B | Bereich II | Rand C |
---|---|---|---|---|
![]() | ![]() | |||
![]() | ![]() | ![]() |
Header
Diese Aufgabe wird mit der Methode der Finiten Elemente in KW96 gelöst. Und im Vergleich zu KW98 wird hier die analytische Lösung mit dimensionslosen Koordinaten angeschreiben.
/*******************************************************/
/* MAXIMA script */
/* version: wxMaxima 15.08.2 */
/* author: Andreas Baumgart */
/* last updated: 2017-09-06 */
/* ref: TM-C, Labor 1 - dimensionslos */
/* description: die Auslenkung w und die unabhängige */
/* Ortskoordinate werden dim'los gemacht */
/*******************************************************/
Declarations
Wir definieren die Formfunktionen für die Streckenlast
- .
/* system parameter */
params: [EI[2]=EI[1]/2,
K[A]=EI[1]/l[1],
k[B]=0,
k[C] = EI[1]/l[1]^3,
q[B]=4*q[A],
l[2]=l[1]/2,
M[B] = 5*q[A]*l[1]^2];
/* form - functions */
phi[0](xi) := 1 - xi;
phi[1](xi) := xi;
Integration of Differential Equation to Formfunction
In Bereich I und II gilt dieselbe Bewegungs-Differentialgleichung
- ,
die wir durch Integration lösen und dann bereichsweise an Rand- und Übergangsbedingungen anpassen. Diese Aufgabe wird etwas übersichtlicher, wenn wir die Auslenkung w und die Ortskoordinate x dimensionslos machen. So wählen wir:
und setzten für die Bezugslänge die Auslenkung eines Kragbalkens unter konstanter Streckenlast (hier qA) an. Diese Auslenkung findet man in Standard-Lösungen unter "Kragbalken mit Streckenlast" zu:
Zusätzlich wählen wir zwei unabhängige, dimensionslose Ortskoordinaten für die Bereich I und II, die ihren Ursprung jeweils in den Punkten A und B haben.
Mit
ist die allgemeine Lösung für
... für Bereich I:
... für Bereich II:
- .
/* solve ....*/
dimless : l[Bez] = q[A]*l[1]^4/(8*EI[1]);
dgl : EI[i]*l[Bez]*diff(w(xi),xi,4)/l[i]^4 = q[0]*phi[0](xi) + q[1]*phi[1](xi);
dgl: subst(dimless,dgl);
/* generic solution */
displ : solve(integrate(integrate(integrate(integrate(dgl,xi),xi),xi),xi),w(xi));
sections: [[i=1, %c4=C[1,0], %c3=C[1,1], %c2=C[1,2], %c1=C[1,3], q[0]=q[A], q[1]=q[B]],
[i=2, %c4=C[2,0], %c3=C[2,1], %c2=C[2,2], %c1=C[2,3], q[0]= 0 , q[1]= 0 ]];
/* section I */
define( w[1](xi), ratsimp(subst(sections[1],subst(displ,l[Bez]*w(xi)))));
define(Phi[1](xi), diff(w[1](xi),xi )/l[1]^1);
define( M[1](xi), -EI[1]*diff(w[1](xi),xi,2)/l[1]^2);
define( Q[1](xi), -EI[1]*diff(w[1](xi),xi,3)/l[1]^3);
/* section II */
define( w[2](xi), ratsimp(subst(sections[2],subst(displ,l[Bez]*w(xi)))));
define(Phi[2](xi), diff(w[2](xi),xi )/l[2]^1);
define( M[2](xi), -EI[2]*diff(w[2](xi),xi,2)/l[2]^2);
define( Q[2](xi), -EI[2]*diff(w[2](xi),xi,3)/l[2]^3);
Boundary Conditions
Für die 2*4 = 8 Integrationskonstanten
suchen wir jetzt die passenden Gleichungen aus Rand- und Übergangsbedingungen.
Zur besseren Übersicht nennen wir die Schnitt-Momente und -Kräfte nach den jeweiligen Knotenpunkten A, B, C und fügen als Index ein + / - hinzu, um die Seite (+: rechts vom Knoten, -: links vom Knoten) zu kennzeichnen.
Aus Rand "A"
![]() | Geometrische Randbedingungen
Kraft- und Momenten-Randbedingungen |
Aus Übergang "B"
![]() | Geometrische Randbedingungen
Kraft- und Momenten-Randbedingungen |
Aus Rand "C"
![]() | Geometrische Randbedingungen
Kraft- und Momenten-Randbedingungen |
Und das liefert das Gleichungssystem aus 8 Gleichungen
für die Integrationskonstanten.
/* boundary conditions */
node[A]: [ w[1](0) = 0,
K[A]*Phi[1](0)+M[1](0) = 0];
node[B]: [ w[1](1) = w[2](0),
Phi[1](1) = Phi[2](0),
-Q[1](1) -k[B]*w[2](0) +Q[2](0) = 0,
-M[1](1) -M[B]+M[2](0) = 0];
node[C]: [ Phi[2](1) = 0,
-Q[2](1) - k[C]*w[2](1) = 0];
BCs : expand(subst(dimless,append(node[A],node[B],node[C])));
scale: [EI[1]/l[1]^4, 1/l[1]^2, EI[1]/l[1]^4, EI[1]/l[1]^3,1/l[1], 1/l[1]^2, EI[2]/l[1]^3, 1/l[1]];
BCs : expand(scale*BCs);
Prepare for Solver
Das Gleichungssystem wollen wir als
schreiben, also - hier nach Einsetzen der System-Parameter
/* integration constants = unknowns */
ICs : [C[1,0],C[1,1],C[1,2],C[1,3],C[2,0],C[2,1],C[2,2],C[2,3]];
ACM: augcoefmatrix(BCs,ICs);
/* system matrix and rhs */
AA : submatrix(ACM,9);
bb : - col(ACM,9);
/* print OLE */
print(subst(params,AA),"*",x,"=",subst(params,bb));
Solving
Das Lösen des Gleichungssystems liefert
/* solving */
D : ratsimp(determinant(AA))$
[ P, L, U] : ratsimp(get_lu_factors(lu_factor(AA)))$
cc : ratsimp(linsolve_by_lu(AA,bb)[1])$
sol : makelist(ICs[i] = cc[i][1],i,1,8)$
Post-Processing
Und die Ergebnisse können wir uns anschauen ...
... für w(x):

... für Φ(x):

... für M(x):

... für Q(x):

... für die Lager-Reaktionskräfte:
/* bearing forces and moments */
reactForces: [A[z] = Q[1](0),
M[A] = K[A]*Phi[1](0),
B[z] = k[B]*w[2](0),
C[z] = k[C]*w[2](1),
M[C] = M[2](1)];
expand(subst(dimless,subst(params,subst(sol, reactForces))));
/* plot displacements */
fcts: [[ w [1](xi), w [2](xi)],
[Phi[1](xi),Phi[2](xi)],
[ M [1](xi), M [2](xi)],
[ Q [1](xi), Q [2](xi)]];
facts: [1/l[Bez], l[1]/l[Bez], 1/(q[A]*l[1]^2), 1/(q[A]*l[1])];
textlabels : ["w(x)/(M[B]*l^2/EI[1])→", "w'(x)/(M[B]*l/EI[1])→", "M(x)/M[B]→", "Q(x)/(M[B]/l[1]→"];
for i: 1 thru 4 do(
f : expand(subst(dimless,subst(params,facts[i]*[subst(sol, fcts[i][1]),
subst(sol, fcts[i][2])]))),
r : subst(params,l[2]/l[1]),
preamble: if i<=2 then "set yrange [] reverse" else "set yrange []",
plot2d([[parametric, t, subst(t,xi,f[1]), [t,0,1]],
[parametric, 1+r*t, subst(t,xi,f[2]), [t,0,1]]],
[legend, "sec. I", "sec. II"],
[gnuplot_preamble, preamble],
[xlabel, "x/l[1] ->"],
[ylabel, textlabels[i]]))$
Links
- ...
Literature
- ...