Gelöste Aufgaben/FEAB: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „a“) |
KKeine Bearbeitungszusammenfassung |
||
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
a | [[Category:Randwertproblem]] | ||
[[Category:Gelöste Aufgaben]] | |||
[[Category:Prinzip der virtuellen Verrückungen]] | |||
[[Category:Maxima]] | |||
==Aufgabenstellung== | |||
Statt zwei Freiheitsgraden wie in [[Gelöste_Aufgaben/FEAA|FEAA]] haben wir jetzt - bei einem Kontinuum - unendlich viele. | |||
<onlyinclude> | |||
[[Datei:FEAB-01.png|left|mini|198x198px|Lageplan]] | |||
Gesucht ist die Näherungslösung für die Auslenkung der Stab-Querschnitte mit dem Prinzip der Virtuellen Verrückungen. Wir verwenden polynomialen Ansatzfunktionen über die Gesamtlänge - also eine Mischung aus [[Randwertprobleme/Methoden zur Lösung von Randwertproblemen/Finite Elemente Methode|Finiten-Elemente-Methode]] und dem [[Randwertprobleme/Methoden zur Lösung von Randwertproblemen/Im Vergleich: das Verfahren von Ritz und die Methode der Finite Elemente|Rayleigh-Ritz-Verfahren]]. | |||
</onlyinclude> | |||
==Lösung mit Maxima== | |||
<!--------------------------------------------------------------------------------> | |||
{{MyCodeBlock|title=Header | |||
|text=In den Lageplan haben wir bereits den funktionalen Fireheitsgrad ''u(x)'' eingetragen, der Stab ist am oberen Ende befestigt und wird am unteren Ende mit der Zugkraft ''F'' belastet. | |||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
/*******************************************************/ | |||
/* MAXIMA script */ | |||
/* version: wxMaxima 16.04.2 */ | |||
/* author: Andreas Baumgart */ | |||
/* last updated: 2017-10-10 */ | |||
/* ref: FENV step 4 im Prozess: Ganzfeldansätze */ | |||
/* description: mit dem PvV werden die Bewegungsgl. */ | |||
/* für einen Stab unter Gewichtskraft erstellt*/ | |||
/*******************************************************/ | |||
</syntaxhighlight> | |||
}} | |||
<!-------------------------------------------------------------------------------->{{MyCodeBlock|title=Declarations | |||
|text= | |||
Für Maxima brauchen wir einige Deklarationen. | |||
Der maximale Exponent des Ansatz-Polynoms ist drei - dann nämlich fällt die Näherungslösung mit der analytischen Lösung zusammen. | |||
Hier wählen wir | |||
::<math>I=2</math> (im Maxima-Skipt ''I=3'') | |||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
/*******************************************************/ | |||
/* declare variational variables - see 6.3 Identifiers */ | |||
declare("δW", alphabetic); | |||
declare("δA", alphabetic); | |||
declare("δΠ", alphabetic); | |||
declare("δQ", alphabetic); | |||
declare("δu", alphabetic); | |||
/*******************************************************/ | |||
/* parameter */ | |||
I : 3; /* max: 3*/ | |||
</syntaxhighlight> | |||
}} | |||
<!-------------------------------------------------------------------------------->{{MyCodeBlock|title=Formfuctions | |||
|text= | |||
Für die Formfunktionen wählen wir | |||
:: <math>\displaystyle u(x) = \sum_{i=1}^{I} U_i\cdot \left(\frac{x}{\ell}\right)^i</math>> , | |||
also für I=2 | |||
:: <math>\displaystyle u(x) = U_1 \frac{x}{l} + U_2 \left(\frac{x}{l}\right)^2</math> | |||
und entsprechend | |||
:: <math>\displaystyle \delta u(x) = \delta U_1 \frac{x}{l} + \delta U_2 \left(\frac{x}{l}\right)^2</math> . | |||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
/* coordinates and their variations */ | |||
Q : makelist( U[i],i,1,I); | |||
δQ : makelist(δU[i],i,1,I); | |||
/* trial functions */ | |||
Phi : [(x/l)^1,(x/l)^2,(x/l)^3]; | |||
/* Ansatz */ | |||
u : sum( Q[i]*Phi[i],i,1,I); | |||
δu : sum(δQ[i]*Phi[i],i,1,I); | |||
</syntaxhighlight> | |||
}} | |||
<!-------------------------------------------------------------------------------->{{MyCodeBlock|title=Equilibrium Conditions | |||
|text= | |||
Die Gleichgewichtsbedingung | |||
::<math>\begin{array}{ll}\delta W &= \delta W^a - \delta \Pi\\ &\stackrel{!}{=}0\end{array}</math> | |||
liefert | |||
::<math>\displaystyle \delta W = \frac{\delta U_{2} A g \ell \rho}{3}+\frac{\delta U_{1} A g \ell \rho}{2} - \frac{4{{U}_{2}}\,{{\mathit{{\delta}U}}_{2}}AE}{3\ell}-\frac{{{U}_{1}}\,{{\mathit{{\delta}U}}_{2}}AE}{\ell}-\frac{{{\mathit{{\delta}U}}_{1}}\,{{U}_{2}}AE}{\ell}-\frac{{{U}_{1}}\,{{\mathit{{\delta}U}}_{1}}A E}{\ell}</math>. | |||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
/* Equilibrium */ | |||
δΠ : E*A*integrate(diff(u,x)*diff(δu,x),x,0,l); | |||
δA : integrate(rho*g*A*δu, x,0,l); | |||
</syntaxhighlight> | |||
}} | |||
<!-------------------------------------------------------------------------------->{{MyCodeBlock|title=Solving | |||
|text= | |||
Die Gleichgewichtsbedingungen folgen daraus zu | |||
::<math>\begin{array}{l}\displaystyle-\frac{A g \ell\rho}{2}+\frac{{{U}_{2}}AE}{\ell}+\frac{{{U}_{1}} A E}{\ell}=0, \\ \displaystyle -\frac{A g \ell \rho}{3}+\frac{4{{U}_{2}}AE}{3l}+\frac{{{U}_{1}}AE}{\ell}=0\end{array}</math> | |||
und somit | |||
::<math>\displaystyle {{U}_{1}}=\frac{g\,{{\ell}^{2}}\rho}{E},\;\;\;{{U}_{2}}=-\frac{g\,{{\ell}^{2}}\rho}{2E}</math> | |||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
eom : makelist(-coeff(expand(δA-δΠ),c)=0,c,δQ); | |||
sol: solve(eom, Q)[1]; | |||
</syntaxhighlight> | |||
}} | |||
<!--------------------------------------------------------------------------------> | |||
{{MyCodeBlock|title=Post-Processing | |||
|text= | |||
Und wir tragen die Ergebnisse auf für die numerische Näherungslösung | |||
::<math>\displaystyle u(x) = \frac{g \rho \ell^2}{E} \cdot \frac{x}{\ell} - \frac{g \rho \ell^{2}}{2E} \cdot \left(\frac{x}{\ell}\right)^2</math> | |||
gegen die exakte Lösung auf:[[Datei:FEAB-Ergebnisplot.png|mini|Verschiebung der Stab-Querschnitte.]] | |||
{{Template:MyTip|title=Spannungen im Stab|text=Tragen Sie auch die Spannungen im Stab über die Stablänge an! Berechnen Sie die Spannungen auf Basis der Dehnung | |||
::<math>\displaystyle \varepsilon = \frac{du}{dx}.</math>}} | |||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
/* plot results*/ | |||
toPlot: append([xi*(1-xi/2)], | |||
[ expand(subst(xi*l,x,subst(sol,sum(Q[i]*Phi[i],i,1,I)/(rho*g*l^2/E))))], | |||
makelist( subst(xi*l,x,subst(sol, Q[i]*Phi[i] /(rho*g*l^2/E))), i,1,I)); | |||
plot2d(toPlot, [xi,0,1], [xlabel, "xi→"], [ylabel, "u/((g*l^2*rho)/E)→"], | |||
[legend, "exact", "approximated", "first order", "second order", "third order"], | |||
[title, sconcat("I = ",I)]); | |||
</syntaxhighlight> | |||
}} | |||
'''Links''' | |||
*... | |||
'''Literature''' | |||
*... |
Aktuelle Version vom 9. März 2021, 11:16 Uhr
Aufgabenstellung
Statt zwei Freiheitsgraden wie in FEAA haben wir jetzt - bei einem Kontinuum - unendlich viele.
Gesucht ist die Näherungslösung für die Auslenkung der Stab-Querschnitte mit dem Prinzip der Virtuellen Verrückungen. Wir verwenden polynomialen Ansatzfunktionen über die Gesamtlänge - also eine Mischung aus Finiten-Elemente-Methode und dem Rayleigh-Ritz-Verfahren.
Lösung mit Maxima
Header
In den Lageplan haben wir bereits den funktionalen Fireheitsgrad u(x) eingetragen, der Stab ist am oberen Ende befestigt und wird am unteren Ende mit der Zugkraft F belastet.
/*******************************************************/
/* MAXIMA script */
/* version: wxMaxima 16.04.2 */
/* author: Andreas Baumgart */
/* last updated: 2017-10-10 */
/* ref: FENV step 4 im Prozess: Ganzfeldansätze */
/* description: mit dem PvV werden die Bewegungsgl. */
/* für einen Stab unter Gewichtskraft erstellt*/
/*******************************************************/
Declarations
Für Maxima brauchen wir einige Deklarationen.
Der maximale Exponent des Ansatz-Polynoms ist drei - dann nämlich fällt die Näherungslösung mit der analytischen Lösung zusammen.
Hier wählen wir
- (im Maxima-Skipt I=3)
/*******************************************************/
/* declare variational variables - see 6.3 Identifiers */
declare("δW", alphabetic);
declare("δA", alphabetic);
declare("δΠ", alphabetic);
declare("δQ", alphabetic);
declare("δu", alphabetic);
/*******************************************************/
/* parameter */
I : 3; /* max: 3*/
Formfuctions
Für die Formfunktionen wählen wir
- > ,
also für I=2
und entsprechend
- .
/* coordinates and their variations */
Q : makelist( U[i],i,1,I);
δQ : makelist(δU[i],i,1,I);
/* trial functions */
Phi : [(x/l)^1,(x/l)^2,(x/l)^3];
/* Ansatz */
u : sum( Q[i]*Phi[i],i,1,I);
δu : sum(δQ[i]*Phi[i],i,1,I);
Equilibrium Conditions
Die Gleichgewichtsbedingung
liefert
- .
/* Equilibrium */
δΠ : E*A*integrate(diff(u,x)*diff(δu,x),x,0,l);
δA : integrate(rho*g*A*δu, x,0,l);
Solving
Die Gleichgewichtsbedingungen folgen daraus zu
und somit
eom : makelist(-coeff(expand(δA-δΠ),c)=0,c,δQ);
sol: solve(eom, Q)[1];
Post-Processing
Und wir tragen die Ergebnisse auf für die numerische Näherungslösung
gegen die exakte Lösung auf:
✔ Spannungen im Stab: |
Tragen Sie auch die Spannungen im Stab über die Stablänge an! Berechnen Sie die Spannungen auf Basis der Dehnung
|
/* plot results*/
toPlot: append([xi*(1-xi/2)],
[ expand(subst(xi*l,x,subst(sol,sum(Q[i]*Phi[i],i,1,I)/(rho*g*l^2/E))))],
makelist( subst(xi*l,x,subst(sol, Q[i]*Phi[i] /(rho*g*l^2/E))), i,1,I));
plot2d(toPlot, [xi,0,1], [xlabel, "xi→"], [ylabel, "u/((g*l^2*rho)/E)→"],
[legend, "exact", "approximated", "first order", "second order", "third order"],
[title, sconcat("I = ",I)]);
Links
- ...
Literature
- ...