Gelöste Aufgaben/UEBD: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 211: | Zeile 211: | ||
Aufgabe UEBC zeigt, welche Ergebnisse die Approximation mit einer Trial-Funktion liefert. | Aufgabe UEBC zeigt, welche Ergebnisse die Approximation mit einer Trial-Funktion liefert. | ||
{{MyTip| | {{MyTip|title=Schnittmomenten-Verlauf|text=Probieren Sie aus, wie gut der Ritz-Ansatz den Verlauf des Schnittmoments approximiert!}} | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> |
Aktuelle Version vom 14. April 2021, 11:05 Uhr
Aufgabenstellung
Der Euler-Bernoulli-Balken AB wird durch eine vertikale Einzelkraft F belastet. Er ist in A fest eingespannt, in B gelenkig gelagert.
UEBC ist eine Variante dieser Aufgabe.
Gesucht ist eine Lösung für die Biegelinie w(x) mit dem Ansatz von Rayleigh-Ritz und zweiTrial-Funktion.
Lösung mit Maxima
Beim Verfahren von Ritz arbeiten wir mit
- dem Prinzip vom Minimum der Potentiellen Energie und
- Ansatzfunktionen über die gesamte Länge des Balkens.
Um die Lösung dimensionslos zu machen, nutzen wir die analytische Lösung des beidseits gelenkig gelagerten Balkens unter einer mittigen Einzellast (vgl. W8Zu). Hier ist die Neigung des Querschnitts am rechten Rand und die maximale Auslenkung jeweils
- .
Damit können wir uns die Lösungen dieses Problems als Vielfaches der analytischen Lösung eines ähnlichen Problems denken.
Header
Das Vorgehen in dieser Aufgabe ist identisch zu UEBC - hier allerdings mit zwei Trial-Functions.
/*******************************************************/
/* MAXIMA script */
/* version: wxMaxima 15.08.2 */
/* author: Andreas Baumgart */
/* last updated: 2017-09-14 */
/* ref: TM-C, Labor 3 - aus Gross, Augf. TM 2,Biegestab*/
/* description: finds the approx. solution employing */
/* two polynomial trial-functions */
/*******************************************************/
Declarations
Zum Dimensionslos-Machen der Gleichungen brauchen wir später die Größen W, Φ, die wir hier bereits einführen:
- .
Daraus folgen später die dimensionslosen Koordinaten des Problems zu
- .
/* declare variables */
declare("Π", alphabetic); /* strain energy */
/* make dim'less with load case #1 from Gross e.a. */
dimless: [W = F*l^3/(48*EI)*q[w],
Phi = -F*l^2/(6*EI)*(1/2-(1/2)^3)*q[phi],
x=xi*l,
a=alpha*l];
Q : [q[w],q[phi]];
Formfunctions
Gesucht ist hier ein Ansatz mit zwei Trial Functions, also
und dem gesuchten Koeffizienten Wi. Die ϕi müssen dabei alle geometrischen Randbedingungen erfüllen:
Diese Funktion zu konstruieren ist nicht ganz trivial. Wir multiplizieren dafür einzelne Terme der Form (x-x0), die die gewünschte Nullstelle für x=x0 erzeugen. An der Stelle x=0 benötigen wir eine doppelte Nullstelle, damit auch die Ableitung an dieser Stelle Null ist.
Für die beiden Trial-Funktionen wählen wir
- ϕ1 so, dass sie am rechten Rand keine Steigung hat, aber eine Auslenkung am Kraftangriffspunkt, also und
- ϕ2 so, dass sie am rechten Rand eine Steigung hat, aber keine Auslenkung am Kraftangriffspunkt, also .
Die freien Koeffizienten Ci wählen wir so, dass wir sie anschaulich "denken" können - wir wählen
- die gesuchte Auslenkung an der Kraft-Einleitungsstelle x=a für 'ϕ1', also
und
- die gesuchte Neigung am rechten Rand für ϕ2 , also
.
aus W8Zu. Mit den neuen, dimensionslosen Koordinaten Q ist
- ,
und damit
- .
Für α=2/3 sehen die Trial-Funktionen so aus:
/* derive trial-function(s) */
trial: w(x) = sum(c[i]*x^i,i,0,4);
GBC: [subst([x=0],subst(trial,w(x)))=0,
subst([x=0],diff(subst(trial,w(x)),x))=0,
subst([x=l],subst(trial,w(x)))=0,
subst([x=a],subst(trial,w(x)))=W,
subst([x=l],diff(subst(trial,w(x)),x))=Phi];
C: makelist(c[i],i,0,4);
sol[1] : solve(GBC,C)[1];
trial: ratsimp(subst(sol[1],trial));
/* trial functions */
fcts: ratsimp([1,1/l]*subst(dimless,
makelist(coeff(expand(subst(trial,w(x))),[W,Phi][i]),i,1,2)));
plot2d(subst([alpha=2/3],fcts),[xi,0,1],
[title, "trial-fcts for α = 2/3"],
[legend, "w", "Φ"],
[xlabel, "α →"],
[ylabel, "w,ϕ →"],
[style, [lines,3]] );
Potential Energy
Für die Gleichgewichtsbedingungen setzten wir Π und A in U ein und schreiben die skalare Gleichung allgemein in Matrizenform an. Dabei müssen wir
berücksichtigen und erhalten
- .
/* define potential energy of system */
PMPE : [U = Π - A,
Π = 1/2*EI*'integrate('diff(w(x),x,2)^2,x,0,l),
A = F*w(a)];
/* equations of motion */
PMPE: subst(w(a) = subst(a,x,subst(trial,w(x))),
subst(trial,
subst(PMPE[3],subst(PMPE[2], PMPE[1]))));
PMPE : ev(PMPE,nouns);
Equilibrium Conditions
Diese Gleichung erfüllt die Gleichgewichtsbedingungen
- ,
wenn
- .
Das Gleichungssystem dazu ist
/* equilibrium condition */
equcon: ['diff(U,W) = 0,'diff(U,Phi) = 0];
equcon: subst(PMPE,equcon);
equcon: ev(equcon,nouns);
equcon: subst(dimless,equcon);
Solving
Diese Gleichgewichtsbedingung erfüllt
- .
/* solve for dim'less coordinates Q */
sol[2] : solve(equcon,Q)[1];
Post-Processing
Wir schauen uns zunächst die Absenkung des Kraftangriffspunktes w(a) und die Neigung w'(l) für verschiedene Werte von a (α) an:
Wie der Verlauf der approximierten Biegelinie aussieht, schauen wir uns jetzt an - und zwar für verschiedene Werte von α:
Sie sehen, dass für α=6/10 die Auslenkung dieses Systems nur knapp die Hälfte der maximalen Auslenkung eines beidseitig gelenkig gelagerten Balkens beträgt - hier in unserer Approximation mit zwei Trial-Funktion.
Aufgabe UEBC zeigt, welche Ergebnisse die Approximation mit einer Trial-Funktion liefert.
✔ Schnittmomenten-Verlauf: |
Probieren Sie aus, wie gut der Ritz-Ansatz den Verlauf des Schnittmoments approximiert! |
/* plot displacement of w(a) */
preamble: "set yrange [] reverse";
plot2d(subst(sol[2],Q),[alpha,0,1],
[legend, "w", "Φ"],
[xlabel, "α →"],
[ylabel, "w/W,w'/Φ →"],
[gnuplot_preamble, preamble],
[style, [lines,3]] );
/* plot displacement of w(xi) for different values of alpha */
toPlot : ratsimp(subst(sol[2],subst(dimless,
subst(trial,w(x)/subst([q[w]=1],subst(dimless,W))))));
toPlot : makelist(subst([alpha=i/10],toPlot), i,2,8,2);
leg : append([legend], makelist(simplode (["α = ",i,"/10"]),i,2,8,2));
plot2d(toPlot,[xi,0,1],
leg,
[xlabel, "x/l →"],
[ylabel, "w(x)/W →"],
[gnuplot_preamble, preamble],
[style, [lines,3]] );
Links
- ...
Literature
- ...