Gelöste Aufgaben/UEBC: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 11: | Zeile 11: | ||
Der Euler-Bernoulli-Balken ''AB'' wird durch eine vertikale Einzelkraft ''F'' belastet. Er ist in ''A'' fest eingespannt, in ''B'' gelenkig gelagert. | Der Euler-Bernoulli-Balken ''AB'' wird durch eine vertikale Einzelkraft ''F'' belastet. Er ist in ''A'' fest eingespannt, in ''B'' gelenkig gelagert. | ||
[[Gelöste Aufgaben/UEBD|UEBD]] ist eine Variante dieser Aufgabe. | |||
<onlyinclude> | <onlyinclude> | ||
[[Datei:UEBC-01.png|250px|left|mini|Lageplan]] | [[Datei:UEBC-01.png|250px|left|mini|Lageplan]] | ||
Zeile 19: | Zeile 19: | ||
== Lösung mit Maxima == | == Lösung mit Maxima == | ||
Beim Verfahren von Ritz arbeiten wir mit | Beim Verfahren von Ritz arbeiten wir mit | ||
Zeile 31: | Zeile 30: | ||
Damit können wir uns die Lösungen dieses Problems als Vielfaches der analytischen Lösung eines ähnlichen Problems denken. | Damit können wir uns die Lösungen dieses Problems als Vielfaches der analytischen Lösung eines ähnlichen Problems denken. | ||
<!--------------------------------------------------------------------------------> | |||
{{MyCodeBlock|title=Header | {{MyCodeBlock|title=Header | ||
|text= | |text=Wir lösen die Aufgabe mit Computer-Algebra - mit Maxima. | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
/*******************************************************/ | |||
/* 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 */ | |||
/* one polynomial trial-function */ | |||
/*******************************************************/ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Declarations | |||
|text= | |||
Zum Dimensionslos-Machen der Gleichungen wählen wir | Zum Dimensionslos-Machen der Gleichungen wählen wir | ||
<math>\begin{array}{ll}W &=\displaystyle \frac{F \ell^3}{48 EI}\cdot q,\\ x&=\xi\cdot \ell,\\ a&=\alpha\cdot \ell.\end{array}</math>. | ::<math>\begin{array}{ll}W &=\displaystyle \frac{F \ell^3}{48 EI}\cdot q,\\ x&=\xi\cdot \ell,\\ a&=\alpha\cdot \ell.\end{array}</math>. | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
1 | /* declare variables */ | ||
declare("Π", alphabetic); /* strain energy */ | |||
/* make equations of motion dim'less with load case #1 from Gross e.a. */ | |||
dimless: [W = F*l^3/(48*EI)*q, | |||
x=xi*l, | |||
a=alpha*l]; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Formfunctions | |||
|text= | |||
Gesucht ist hier ein Ansatz mit einer einzigen Trial Function, also | Gesucht ist hier ein Ansatz mit einer einzigen Trial Function, also | ||
<math>w(x) = W\cdot\phi(x)</math> | ::<math>w(x) = W\cdot\phi(x)</math> | ||
und dem gesuchten Koeffizienten ''W''. ϕ muss dabei alle geometrischen Randbedingungen erfüllen: | und dem gesuchten Koeffizienten ''W''. ϕ muss dabei alle geometrischen Randbedingungen erfüllen: | ||
<math>\begin{array}{ll}w(0) &= 0,\\w'(0) &= 0,\\w(l) &= 0.\end{array}</math> | ::<math>\begin{array}{ll}w(0) &= 0,\\w'(0) &= 0,\\w(l) &= 0.\end{array}</math> | ||
Die Funktionen müssen nicht die Randbedingungen für das Moment an den Rändern ''A'' und ''B'' erfüllen! | Die Funktionen müssen nicht die Randbedingungen für das Moment an den Rändern ''A'' und ''B'' erfüllen! | ||
Zeile 71: | Zeile 81: | ||
Diese Funktion zu konstruieren ist nicht ganz trivial. Wir multiplizieren dafür einzelne Terme der Form ''(x-x<sub>0</sub>)'', die die gewünschte Nullstelle für ''x=x<sub>0</sub>'' erzeugen. An der Stelle ''x=0'' benötigen wir eine doppelte Nullstelle, damit auch die Ableitung an dieser Stelle Null ist, also | Diese Funktion zu konstruieren ist nicht ganz trivial. Wir multiplizieren dafür einzelne Terme der Form ''(x-x<sub>0</sub>)'', die die gewünschte Nullstelle für ''x=x<sub>0</sub>'' erzeugen. An der Stelle ''x=0'' benötigen wir eine doppelte Nullstelle, damit auch die Ableitung an dieser Stelle Null ist, also | ||
<math>w(\xi) = C \cdot \left( \xi-0 \right)^2 \cdot \left(\xi-1\right) \text {mit }\xi = \displaystyle\frac{x}{\ell}</math>. | ::<math>w(\xi) = C \cdot \left( \xi-0 \right)^2 \cdot \left(\xi-1\right) \text {mit }\xi = \displaystyle\frac{x}{\ell}</math>. | ||
Den freien Koeffizienten ''C'' wählen wir so, dass wir ihn anschaulich "denken" können - wir wählen die gesuchte Auslenkung an der Kraft-Einleitungsstelle ''x=a'' aus [[Gelöste Aufgaben/W8Zu|W8Zu]], also | Den freien Koeffizienten ''C'' wählen wir so, dass wir ihn anschaulich "denken" können - wir wählen die gesuchte Auslenkung an der Kraft-Einleitungsstelle ''x=a'' aus [[Gelöste Aufgaben/W8Zu|W8Zu]], also | ||
<math>\displaystyle w(a) = q\cdot \hat{w} \;\;\text{ mit der Referenz-Lösung }\;\; \hat{w} = \frac{F\;\ell^3}{48\; EI} </math>. | ::<math>\displaystyle w(a) = q\cdot \hat{w} \;\;\text{ mit der Referenz-Lösung }\;\; \hat{w} = \frac{F\;\ell^3}{48\; EI} </math>. | ||
Mit der neuen, dimensionslosen Koordinate ''q'' ist | Mit der neuen, dimensionslosen Koordinate ''q'' ist | ||
<math>\displaystyle C = \frac{q\cdot \hat{w}}{\alpha^3-\alpha}</math>, | ::<math>\displaystyle C = \frac{q\cdot \hat{w}}{\alpha^3-\alpha}</math>, | ||
und damit | und damit | ||
<math>\displaystyle w(x) = \underbrace{\frac{F \ell^3}{48 EI }\cdot q}_{\displaystyle =W} \cdot \underbrace{\frac{{{\xi}^{3}}-{{\xi}^{2}}}{{{\alpha}^{3}}-{{\alpha}^{2}}}}_{\displaystyle =\phi(\xi)}</math>.< | ::<math>\displaystyle w(x) = \underbrace{\frac{F \ell^3}{48 EI }\cdot q}_{\displaystyle =W} \cdot \underbrace{\frac{{{\xi}^{3}}-{{\xi}^{2}}}{{{\alpha}^{3}}-{{\alpha}^{2}}}}_{\displaystyle =\phi(\xi)}</math>. | ||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
/* derive trial-function(s) */ | |||
trial: w(x) = sum(c[i]*x^i,i,0,3); | |||
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]; | |||
C: makelist(c[i],i,0,3); | |||
sol[1] : solve(GBC,C)[1]; | |||
trial: ratsimp(subst(sol[1],trial)); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Potential Energy | |||
|text= | |||
Für die Gleichgewichtsbedingungen setzten wir ''Π'' und ''A'' in ''U'' ein und schreiben die skalare Gleichung allgemein in Matrizenform an. Dabei müssen wir | Für die Gleichgewichtsbedingungen setzten wir ''Π'' und ''A'' in ''U'' ein und schreiben die skalare Gleichung allgemein in Matrizenform an. Dabei müssen wir | ||
<math>\displaystyle \frac{d\phi}{x} = \frac{d\phi}{\xi}\cdot\underbrace{\displaystyle\frac{d\xi}{x}}_{\displaystyle = \frac{1}{\ell}}</math> | ::<math>\displaystyle \frac{d\phi}{x} = \frac{d\phi}{\xi}\cdot\underbrace{\displaystyle\frac{d\xi}{x}}_{\displaystyle = \frac{1}{\ell}}</math> | ||
berücksichtigen und erhalten | berücksichtigen und erhalten | ||
<math>U = \displaystyle \frac{1}{2} \cdot \displaystyle \underline{Q}^T \cdot \underline{\underline{A}}\cdot \underline{Q} - \underline{Q}^T\cdot \underline{b} </math>. | ::<math>U = \displaystyle \frac{1}{2} \cdot \displaystyle \underline{Q}^T \cdot \underline{\underline{A}}\cdot \underline{Q} - \underline{Q}^T\cdot \underline{b} </math>. | ||
Weil wir in | Weil wir in | ||
<math>\underline{Q} = \left(q\right)</math> | ::<math>\underline{Q} = \left(q\right)</math> | ||
nur eine Unbekannte ''q'' haben, können wir es uns hier etwas einfacher machen, ''U'' lautet: | nur eine Unbekannte ''q'' haben, können wir es uns hier etwas einfacher machen, ''U'' lautet: | ||
<math>\displaystyle U=\frac{\left( \left( -24\cdot {{\alpha}^{6}}+48\cdot {{\alpha}^{5}}-24\cdot {{\alpha}^{4}}\right) \cdot {{\ell}^{3}}\cdot q+{{\ell}^{3}}\cdot {{q}^{2}}\right) \cdot {{F}^{2}}}{\left( 1152\cdot {{\alpha}^{6}}-2304\cdot {{\alpha}^{5}}+1152\cdot {{\alpha}^{4}}\right) \cdot \mathit{EI}}</math>. | ::<math>\displaystyle U=\frac{\left( \left( -24\cdot {{\alpha}^{6}}+48\cdot {{\alpha}^{5}}-24\cdot {{\alpha}^{4}}\right) \cdot {{\ell}^{3}}\cdot q+{{\ell}^{3}}\cdot {{q}^{2}}\right) \cdot {{F}^{2}}}{\left( 1152\cdot {{\alpha}^{6}}-2304\cdot {{\alpha}^{5}}+1152\cdot {{\alpha}^{4}}\right) \cdot \mathit{EI}}</math>. | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
1 | /* 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)]; | |||
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); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Equilibrium Conditions | |||
|text= | |||
Diese Gleichung erfüllt die Gleichgewichtsbedingungen | Diese Gleichung erfüllt die Gleichgewichtsbedingungen | ||
<math>\displaystyle \frac{dU}{dW} \stackrel{!}{=} 0</math>, | ::<math>\displaystyle \frac{dU}{dW} \stackrel{!}{=} 0</math>, | ||
wenn | wenn | ||
<math>\displaystyle \frac{\left( -12\cdot {{\alpha}^{4}}+24\cdot {{\alpha}^{5}}-12\cdot {{\alpha}^{6}}+q\right) \cdot F}{12\cdot {{\alpha}^{6}}-24\cdot {{\alpha}^{5}}+12\cdot {{\alpha}^{4}}}=0</math>. | ::<math>\displaystyle \frac{\left( -12\cdot {{\alpha}^{4}}+24\cdot {{\alpha}^{5}}-12\cdot {{\alpha}^{6}}+q\right) \cdot F}{12\cdot {{\alpha}^{6}}-24\cdot {{\alpha}^{5}}+12\cdot {{\alpha}^{4}}}=0</math>. | ||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
/* equilibrium condition */ | |||
equcon: 'diff(U,W) = 0; | |||
equcon: subst(PMPE,equcon); | |||
equcon: ev(equcon,nouns); | |||
equcon: subst(dimless,equcon); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
== | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Solving | |||
|text= | |||
Diese Gleichgewichtsbedingung erfüllt | |||
::<math>q=12\cdot {{\alpha}^{6}}-24\cdot {{\alpha}^{5}}+12\cdot {{\alpha}^{4}}</math>. | |||
<math>q=12\cdot {{\alpha}^{6}}-24\cdot {{\alpha}^{5}}+12\cdot {{\alpha}^{4}}</math>. | |||
|code= | |code= | ||
<syntaxhighlight lang="lisp" line start=1> | <syntaxhighlight lang="lisp" line start=1> | ||
/* solve for dim'less coordinate q */ | |||
sol[2] : solve(equcon,q); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
= | <!--------------------------------------------------------------------------------> | ||
{{MyCodeBlock|title=Post-Processing | |||
|text= | |||
[[Datei:UEBC-11.png|mini|Auslenkung ''w(x)'']]Wir schauen uns zunächst die Absenkung des Kraftangriffspunktes ''w(a)'' für verschiedene Werte von ''a (α)'' an: | [[Datei:UEBC-11.png|mini|Auslenkung ''w(x)'']]Wir schauen uns zunächst die Absenkung des Kraftangriffspunktes ''w(a)'' für verschiedene Werte von ''a (α)'' an: | ||
Zeile 162: | Zeile 186: | ||
Aufgabe [[Gelöste Aufgaben/UEBD|UEBD]] zeigt, wie wir zu einer besseren Approximation kommen. | Aufgabe [[Gelöste Aufgaben/UEBD|UEBD]] zeigt, wie wir zu einer besseren Approximation kommen. | ||
{{MyTip|title=Schnittmomenten-Verlauf|text=Probieren Sie aus, wie gut der Ritz-Ansatz den Verlauf des Schnittmoments approximiert!}} | {{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> | ||
1 | /* displacement at w(a) */ | ||
preamble: "set yrange [] reverse"; | |||
plot2d(subst(sol[2],q),[alpha,0,1], | |||
[legend, "w(a)"], | |||
[xlabel, "α →"], | |||
[ylabel, "W/(F l^3/(3 EI)) →"], | |||
[gnuplot_preamble, preamble], | |||
[style, [lines,3]]); | |||
/* displacement at w(x) for different alphas*/ | |||
toPlot : ratsimp(subst(sol[2],subst(dimless,subst(trial,w(x)/subst([q=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]]); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
<hr /> | <hr /> |
Aktuelle Version vom 14. April 2021, 10:34 Uhr
Aufgabenstellung
Der Euler-Bernoulli-Balken AB wird durch eine vertikale Einzelkraft F belastet. Er ist in A fest eingespannt, in B gelenkig gelagert.
UEBD ist eine Variante dieser Aufgabe.
Gesucht ist eine Lösung für die Biegelinie w(x) mit dem Ansatz von Rayleigh-Ritz und einer Trial-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 maximale Auslenkung
.
Damit können wir uns die Lösungen dieses Problems als Vielfaches der analytischen Lösung eines ähnlichen Problems denken.
Header
Wir lösen die Aufgabe mit Computer-Algebra - mit Maxima.
/*******************************************************/
/* 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 */
/* one polynomial trial-function */
/*******************************************************/
Declarations
Zum Dimensionslos-Machen der Gleichungen wählen wir
- .
/* declare variables */
declare("Π", alphabetic); /* strain energy */
/* make equations of motion dim'less with load case #1 from Gross e.a. */
dimless: [W = F*l^3/(48*EI)*q,
x=xi*l,
a=alpha*l];
Formfunctions
Gesucht ist hier ein Ansatz mit einer einzigen Trial Function, also
und dem gesuchten Koeffizienten W. ϕ muss dabei alle geometrischen Randbedingungen erfüllen:
Die Funktionen müssen nicht die Randbedingungen für das Moment an den Rändern A und B 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, also
- .
Den freien Koeffizienten C wählen wir so, dass wir ihn anschaulich "denken" können - wir wählen die gesuchte Auslenkung an der Kraft-Einleitungsstelle x=a aus W8Zu, also
- .
Mit der neuen, dimensionslosen Koordinate q ist
- ,
und damit
- .
/* derive trial-function(s) */
trial: w(x) = sum(c[i]*x^i,i,0,3);
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];
C: makelist(c[i],i,0,3);
sol[1] : solve(GBC,C)[1];
trial: ratsimp(subst(sol[1],trial));
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
- .
Weil wir in
nur eine Unbekannte q haben, können wir es uns hier etwas einfacher machen, U lautet:
- .
/* 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)];
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
- .
/* equilibrium condition */
equcon: 'diff(U,W) = 0;
equcon: subst(PMPE,equcon);
equcon: ev(equcon,nouns);
equcon: subst(dimless,equcon);
Solving
Diese Gleichgewichtsbedingung erfüllt
- .
/* solve for dim'less coordinate q */
sol[2] : solve(equcon,q);
Post-Processing
Wir schauen uns zunächst die Absenkung des Kraftangriffspunktes w(a) für verschiedene Werte von a (α) an: Die maximale Auslenkung des Kraftangriffspunktes ist hier bei α=2/3 erreicht. Das ist nicht identisch mit der größten Absenkung der Querschnitte im Gebiet!
Dafür schauen wir uns den Verlauf der approximierten Biegelinie an - und zwar für verschiedene Werte von α:
Sie sehen, dass für α=6/10 die Auslenkung dieses Systems nur ein Viertel der maximalen Auslenkung eines beidseitig gelenkig gelagerten Balkens beträgt - jedenfalls in unserer Approximation mit einer Trial-Funktion.
Aufgabe UEBD zeigt, wie wir zu einer besseren Approximation kommen.
✔ Schnittmomenten-Verlauf: |
Probieren Sie aus, wie gut der Ritz-Ansatz den Verlauf des Schnittmoments approximiert! |
/* displacement at w(a) */
preamble: "set yrange [] reverse";
plot2d(subst(sol[2],q),[alpha,0,1],
[legend, "w(a)"],
[xlabel, "α →"],
[ylabel, "W/(F l^3/(3 EI)) →"],
[gnuplot_preamble, preamble],
[style, [lines,3]]);
/* displacement at w(x) for different alphas*/
toPlot : ratsimp(subst(sol[2],subst(dimless,subst(trial,w(x)/subst([q=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
- ...