Gelöste Aufgaben/UEBC: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 19: Zeile 19:
== Lösung mit Maxima ==
== 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.


==tmp==
Wir lösen die Aufgabe mit Computer-Algebra - mit Maxima.<!-------------------------------------------------------------------------------->


<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Header
{{MyCodeBlock|title=Header
|text=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>
1+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>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
 
{{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>.
 
{{MyCodeBlock|title=Declarations
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
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>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
 
{{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));




{{MyCodeBlock|title=Formfunctions
|text=Text
|code=
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
 
{{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>.
 
{{MyCodeBlock|title=Potential Energy
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
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>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
 
{{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>.
 
 
{{MyCodeBlock|title=Equilibrium Conditions
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/* equilibrium condition */
equcon: 'diff(U,W) = 0;
equcon: subst(PMPE,equcon);
equcon: ev(equcon,nouns);
equcon: subst(dimless,equcon);
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
 
{{MyCodeBlock|title=Solving
Diese Gleichgewichtsbedingung ist erfüllt , wenn
|text=
 
Diese Gleichgewichtsbedingung erfüllt
<math>q=12\cdot {{\alpha}^{6}}-24\cdot {{\alpha}^{5}}+12\cdot {{\alpha}^{4}}</math>.<!-------------------------------------------------------------------------------->
 


{{MyCodeBlock|title=Solving
::<math>q=12\cdot {{\alpha}^{6}}-24\cdot {{\alpha}^{5}}+12\cdot {{\alpha}^{4}}</math>.
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/* solve for dim'less coordinate q */
sol[2] : solve(equcon,q);
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
{{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!}}
{{MyCodeBlock|title=Post-Processing
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
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>
}}
}}

Version vom 14. April 2021, 08:37 Uhr


Aufgabenstellung

Der Euler-Bernoulli-Balken AB wird durch eine vertikale Einzelkraft F belastet. Er ist in A fest eingespannt, in B gelenkig gelagert.


Lageplan

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

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

Auslenkung w(x)

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!

Parameter-Studie für α

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

  • ...