Gelöste Aufgaben/FEAB: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
Statt zwei Freiheitsgraden wie in [[Gelöste_Aufgaben/FEAA|FEAA]] haben wir jetzt - bei einem Kontinuum - unendlich viele.
Statt zwei Freiheitsgraden wie in [[Gelöste_Aufgaben/FEAA|FEAA]] haben wir jetzt - bei einem Kontinuum - unendlich viele.
<onlyinclude>
<onlyinclude>
[[Datei:FEAB-01.png|mini|198x198px|Lageplan]]
[[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]].
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>
</onlyinclude>
Zeile 14: Zeile 14:
<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Header
{{MyCodeBlock|title=Header
|text=Text
|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=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+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>
</syntaxhighlight>
}}
}}


<!-------------------------------------------------------------------------------->Für Maxima brauchen wir einige Deklarationen.
<!-------------------------------------------------------------------------------->{{MyCodeBlock|title=Declarations
|text=
Für Maxima brauchen wir einige Deklarationen.


Der maximale Exponent des Ansatz-Polynoms ist drei - dann fällt die Näherungslösung mit der analytischen Lösung zusammen.
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
Hier wählen wir


<math>I=2</math>{{MyCodeBlock|title=Declarations
::<math>I=2</math> (im Maxima-Skipt ''I=3'')
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+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>
</syntaxhighlight>
}}
}}


<!-------------------------------------------------------------------------------->Für die Formfunktionen wählen wir  
<!-------------------------------------------------------------------------------->{{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>> ,
:: <math>\displaystyle u(x) = \sum_{i=1}^{I} U_i\cdot \left(\frac{x}{\ell}\right)^i</math>> ,


also für I=2
also für I=2


<math>\displaystyle u(x) = U_1 \frac{x}{l} + U_2 \left(\frac{x}{l}\right)^2</math>
:: <math>\displaystyle u(x) = U_1 \frac{x}{l} + U_2 \left(\frac{x}{l}\right)^2</math>


und entsprechend
und entsprechend


<math>\displaystyle \delta u(x) = \delta U_1 \frac{x}{l} + \delta U_2 \left(\frac{x}{l}\right)^2</math> .{{MyCodeBlock|title=Formfuctions
:: <math>\displaystyle \delta u(x) = \delta U_1 \frac{x}{l} + \delta U_2 \left(\frac{x}{l}\right)^2</math> .
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+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>
</syntaxhighlight>
}}
}}


<!-------------------------------------------------------------------------------->Die Gleichgewichtsbedingung
<!-------------------------------------------------------------------------------->{{MyCodeBlock|title=Equilibrium Conditions
|text=
Die Gleichgewichtsbedingung


<math>\begin{array}{ll}\delta W &= \delta W^a - \delta \Pi\\ &\stackrel{!}{=}0\end{array}</math>
::<math>\begin{array}{ll}\delta W &= \delta W^a - \delta \Pi\\ &\stackrel{!}{=}0\end{array}</math>


liefert
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>.{{MyCodeBlock|title=Equilibrium Conditions
::<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>.
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/* Equilibrium */
δΠ : E*A*integrate(diff(u,x)*diff(δu,x),x,0,l);
δA : integrate(rho*g*A*δu, x,0,l);
</syntaxhighlight>
</syntaxhighlight>
}}
}}


<!-------------------------------------------------------------------------------->Die Glechgewichtsbedingungen folgen daraus zu
<!-------------------------------------------------------------------------------->{{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>
::<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
und somit


<math>\displaystyle {{U}_{1}}=\frac{g\,{{\ell}^{2}}\rho}{E},\;\;\;{{U}_{2}}=-\frac{g\,{{\ell}^{2}}\rho}{2E}</math>{{MyCodeBlock|title=Solving
::<math>\displaystyle {{U}_{1}}=\frac{g\,{{\ell}^{2}}\rho}{E},\;\;\;{{U}_{2}}=-\frac{g\,{{\ell}^{2}}\rho}{2E}</math>
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
eom : makelist(-coeff(expand(δA-δΠ),c)=0,c,δQ);
sol: solve(eom, Q)[1];
</syntaxhighlight>
</syntaxhighlight>
}}
}}


<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Post-Processing
|text=
Und wir tragen die Ergebnisse auf für die numerische Näherungslösung
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>
::<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>}}
 
 
 
 
 


gegen die exakte Lösung auf:[[Datei:FEAB-Ergebnisplot.png|mini|Verschiebung der Stab-Querschnitte.]]{{MyCodeBlock|title=Post-Processing
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+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>
</syntaxhighlight>
}}
}}

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.

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 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:

Verschiebung der Stab-Querschnitte.
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

  • ...