Gelöste Aufgaben/Kw52: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Category:Gelöste Aufgaben]]
[[Category:Gelöste Aufgaben]]
[[Category:Dimensionslose Schreibweise]]
[[Category:Dimensionslose Schreibweise]]
Zeile 19: Zeile 17:


Dies ist eine Näherungslösung zu [[Gelöste Aufgaben/Kw50|Kw50]].
Dies ist eine Näherungslösung zu [[Gelöste Aufgaben/Kw50|Kw50]].
</onlyinclude>
</onlyinclude>Ermitteln Sie die genäherten Verläufe der Schnittgrößen und Verschiebungen im Balken für diese Parameter:
Ermitteln Sie die genäherten Verläufe der Schnittgrößen und Verschiebungen im Balken für diese Parameter:


<math>\begin{array}{ll}K_C =&\displaystyle  5 \frac{E\,I}{\ell_0}\\m_A =&\displaystyle \frac{m_B}{5}  \end{array}</math>
<math>\begin{array}{ll}K_C =&\displaystyle  5 \frac{E\,I}{\ell_0}\\m_A =&\displaystyle \frac{m_B}{5}  \end{array}</math>


==tmp==
== Lösung mit Maxima ==
<!-------------------------------------------------------------------------------->
In dieser Aufgabe berechnen wir eine Näherungslösung nach dem [[Werkzeuge/Gleichgewichtsbedingungen/Arbeitsprinzipe der Analytischen Mechanik/Prinzip der virtuellen Verrückungen|Prinzip der virtuellen Verrückungen]].
{{MyCodeBlock|title=Title
Alle Überlegungen zur Geometrie des Systems übernehmen wir aus [[Gelöste Aufgaben/Kw50|Kw50]].
|text=Text
|code=
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
}}
 
==tmp==
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Title
|text=Text
|code=
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
}}


==tmp==
<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Title
{{MyCodeBlock|title=Für die Lösung nutzen wir direkt die Elemente aus der [[Sources/Anleitungen/FEM-Formulierung für den Euler-Bernoulli-Balken|FEM-Formulierung für den Euler-Bernoulli-Balken]].
|text=Text
|text=Text
|code=
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
}}
==tmp==
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Title
|text=Text
|code=
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
}}
==tmp==
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Title
|text=Text
|code=
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
}}
==tmp==
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Title
|text=Text
|code=
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
}}
==tmp==
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Title
|text=Text
|code=
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
}}
<hr/>
'''Links'''
* [[Gelöste Aufgaben/Kw50|Aufgabe Kw50]] (analytische Lösung dieser Aufgabe)
* [[Gelöste Aufgaben/Kw52|Aufgabe Kw52]] (Lösung dieser Aufgabe mit dem Ansatz von Rayleigh-Ritz und Lagrange-Multiplikator)
* [[Gelöste Aufgaben/Kw53|Aufgabe Kw53]] (Lösung dieser Aufgabe mit dem Ansatz von Rayleigh-Ritz)
'''Literature'''
* ...
<!--------------------------------------------------------->
[[Category:Gelöste Aufgaben]]
[[Category:Dimensionslose Schreibweise]]
[[Category:Numerische Lösung]]
[[Category:Randwertproblem]]
[[Category:Biege-Belastung]]
[[Category:Euler-Bernoulli-Balken]]
[[Category:Rayleigh-Ritz-Prinzip]]
[[Category:Maxima‎]]
==Aufgabenstellung==
Eine Brücke ''ABC'' der Masse ''m<sub>B</sub>'' und homogener Biegesteifigkeit ''EI'' ist in ''C'' gelenkig gelagert und in ''A'' sowie ''B'' mit einem Seil verbunden. Das undehnbare Seil wird dabei über eine kleine Rolle (Radius ''r ≪ ℓ'') in ''D'' haftungsfrei geführt. In Punkt C ist die Brücke über eine Drehfeder der Steifigkeit ''K<sub>C</sub>'' mit dem Lager verbunden. In A steht eine Person der Masse ''m<sub>A</sub>''.
<onlyinclude>
[[Datei:Kw50-01.png|300px|left|mini|Lageplan (wie [[Gelöste Aufgaben/Kw50|Kw50]])]]
Geben Sie die Lösung für ein Euler-Bernoulli-Modell der Brücke mit dem Verfahren von [[Randwertprobleme/Methoden zur Lösung von Randwertproblemen/Verfahren von Rayleigh-Ritz (EBB)|Rayleigh-Ritz (EBB)]] an - hier mit [https://de.wikipedia.org/wiki/Lagrange-Multiplikator Lagrange-Multiplikator] für die geometrische Zwangsbedingung.
Dies ist eine Näherungslösung zu [[Gelöste Aufgaben/Kw50|Kw50]].
</onlyinclude>
Ermitteln Sie die genäherten Verläufe der Schnittgrößen und Verschiebungen im Balken für diese Parameter:
<math>\begin{array}{ll}K_C =&\displaystyle  5 \frac{E\,I}{\ell_0}\\m_A =&\displaystyle \frac{m_B}{5}  \end{array}</math>
== Lösung mit Maxima ==
In dieser Aufgabe berechnen wir eine Näherungslösung nach dem Verfahren von [[Randwertprobleme/Methoden zur Lösung von Randwertproblemen/Verfahren von Rayleigh-Ritz (EBB)|Rayleigh-Ritz (EBB)]] zu [[Gelöste Aufgaben/Kw50|Kw50]].
Alle Überlegungen zur Geometrie des Systems übernehmen wir.
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Header
|text=
Für die Lösung nutzen wir hier das Ritz-Verfahren mit einer Variante:
* die geometrische Zwangsbedingung für die Punkte ''A, B'' durch das Seil erfassen wir durch einen [https://de.wikipedia.org/wiki/Lagrange-Multiplikator Lagrange-Multiplikator].
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
Zeile 149: Zeile 35:
/* author: Andreas Baumgart                            */
/* author: Andreas Baumgart                            */
/* last updated: 2019-02-12                            */
/* last updated: 2019-02-12                            */
/* ref: TM-C, Labor 1, dimensionless representation    */
/* ref: TM-C, Labor 4, FEM-solution                    */
/* description: finds the rayleigh-ritz with Lagragian */
/* description: finds the FEM solution for            */
/*              Multiplyers for lab problem #3        */
/*              lab problem with geometric constraints */
/*******************************************************/
/*******************************************************/
</syntaxhighlight>
</syntaxhighlight>
Zeile 157: Zeile 43:


<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Declarations
{{MyCodeBlock|title=Declarations
|text=
|text=
Wir arbeiten mit den selben Parametern und Bezugslängen, wie in [[Gelöste Aufgaben/Kw50|Kw50]].
Wir arbeiten mit den selben Parametern und Bezugslängen, wie in [[Gelöste Aufgaben/Kw50|Kw50]].
Insbesondere gilt auch hier wieder
::<math>\displaystyle W_B = -\frac{W_A}{\sqrt{3}}</math>.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
/* declare variational variables - see 6.3 Identifiers */
/* declare variational variables - see 6.3 Identifiers */
declare("Δs", alphabetic);
declare( "δW", alphabetic);
declare( "ϕ", alphabetic); /* = dw/dx*/
declare( "δΦ", alphabetic);
declare( "Π", alphabetic); /* elastic potential */
declare(  "Φ", alphabetic);
declare( "", alphabetic);
declare( "δw", alphabetic);  
declare( "λ", alphabetic);
declare( "δϕ", alphabetic);
declare( "Λ", alphabetic);
declare( "δΠ", alphabetic); /* elastic potential */
 
declare( "ϕ" , alphabetic);
assume(ℓ[0]>0);
declare( "Δs", alphabetic);
declare( "" , alphabetic);


/* system parameters                                  */
/* system parameters                                  */
Zeile 186: Zeile 68:
geometry: [alpha[A] = 30*%pi/180,
geometry: [alpha[A] = 30*%pi/180,
           alpha[B] = 60*%pi/180,
           alpha[B] = 60*%pi/180,
           ℓ[0]    = ℓ[1]+ℓ[2],
           ℓ[1]    = ℓ[0]-ℓ[2],
           Δs[A]    = W[A]*sin(alpha[A]),
           Δs[A]    = W[A]*cos(%pi/2-alpha[A]),
           Δs[B]    = W[B]*sin(alpha[B]),
           Δs[B]    = W[B]*cos(%pi/2-alpha[B]),
           tan(alpha[B]) = H/ℓ[2],
           tan(alpha[B]) = H/ℓ[2],
           tan(alpha[A]) = H/ℓ[0],
           tan(alpha[A]) = H/ℓ[0],
Zeile 199: Zeile 81:
</syntaxhighlight>
</syntaxhighlight>
}}
}}


<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
Zeile 204: Zeile 87:
{{MyCodeBlock|title=Formfunctions
{{MyCodeBlock|title=Formfunctions
|text=
|text=
Nach "Ritz" wählen wir Trial-Functions über die gesamte Stablänge und müssen uns überlegen, welchen Aufwand wir dafür treiben wollen.
Wir nutzen zwei Finite Elemente für die Brücke und setzen dafür die klassischen Hermite-Polynome, i.e. Polynome dritten Grades, an.
 
Intuitiv wählen wir  für jeden Punkt ''A, B, C'' jeweils eine Koordinate, hier
 
::<math>\begin{array}{l}w(0) = W_A\\w(\ell_1) = W_B\\\displaystyle \frac{dw}{dx}|_{x=\ell} = \Phi_C\end{array}</math>.
 
und brauchen - zusammen der geometrischen Randbedingung ''w(ℓ)=0'' ein Polynom mit vier freien Parametern - also ein Polynom dritten Grades.


Mit dem Ansatz für die Formfunktion
An den drei Knotenpunkten ''A, B'' und ''C'' haben wir also zusammen die Koordinaten


::<math>\displaystyle \tilde{w}(x) = \sum_{i=0}^3 C_i\cdot x^i</math>
::<math>\underline{Q} = \left( \begin{array}{c} W_A\\ \Phi_A \\ W_B\\ \Phi_B \\W_C\\ \Phi_C\end{array} \right)</math>.
 
kommt aus den Bedingungen oben dann
 
::<math>\displaystyle \tilde{w}( \xi) = \sum_{i=1}^3 Q_i \cdot \phi_i(\xi)</math>
 
mit
 
::<math>\underline{Q} = \left(\begin{array}{c}W_A\\W_B\\\Phi_C \end{array}\right)</math>.[[Datei:Kw51.png|mini|Trial-Functions]]Und so sehen sie aus, unsere drei [[Sources/Lexikon/Trial-Function|Trial-Functions]]:
 
Für die Formfunktion gilt aber immer die geometrische Zwangsbedingung:
 
::<math>\displaystyle W_B = -\frac{W_A}{\sqrt{3}}</math>.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
/* coordinates                                        */
/******************************************************/
Q : [W[A],W[B],Phi[C],λ];
/* Boundary Value Problem                            */
/* raw trial function                                */
/* FEM Formulation                                    */
v(x) := sum(C[i]*x^i,i,0,3);


/* formfunctions                                      */
ϕ : [(xi−1)^2*(2*xi+1),
const: [subst([x= 0  ],      v(x) ) = W[A],
    ℓ[i]*xi*(xi−1)^2,
        subst([x=ℓ[1]],      v(x) ) = W[B],
     xi^2*(3−2*xi),
        subst([x=ℓ[0]], diff(v(x),x))= Phi[C],
    ℓ[i]*xi^2*(xi−1)];
        subst([x=ℓ[0]],     v(x) ) =  0  ];
trials : expand(subst(solve(subst(geometry,const), makelist(C[i],i,0,3))[1],v(x)));
phi : makelist(ratsimp(coeff(trials,Q[i])),i,1,3);
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Zeile 247: Zeile 108:
{{MyCodeBlock|title=Equilibrium Conditions
{{MyCodeBlock|title=Equilibrium Conditions
|text=
|text=
Die Potentiale aus Elastischer Energien und Arbeitsfunktion der Gewichtskräfte sind
Für die Gleichgewichtsbedingung


::<math>\begin{array}{lll} =& &\displaystyle \frac{1}{2}\cdot \int_0^\ell E I\; w''^2 \; dx + \frac{1}{2}\cdot K_C \cdot \Phi_C^2\\    &-&\displaystyle \int_0^\ell q_0 \; w \; dx - m_A\,g\; W_A \end{array}</math>.
::<math>\begin{array}{lll}\delta W&=&\delta W^a - \delta\Pi\\&\stackrel{!}{=}&0\end{array}</math>


Nach dem Prinzip vom Minimum der Potentiellen Energie ist das System im Gleichgewicht, wenn das Potential ''U'' des Systems
konstruieren wir - ohne Berücksichtung der geometrischen Zwangsbedingungen -


::<math>\displaystyle \frac{dU}{dQ_i} = 0 \text{ für } Q_i \in \left( W_A, W_B, \Phi_C\right)</math>
::<math>\delta\Pi = \delta\underline{Q}^T \cdot \underline{\underline{K}}_0 \cdot \underline{Q} + K_C\; \Phi_C \; \delta\Phi_C</math>


erfüllt. Und sich zusätzlich an die Zwangsbedingung hält!
mit
 
::<math>\underline{\underline{K}}_0 = EI \cdot \begin{pmatrix}\frac{12}{{{\ell}_{1}^{3}}} & \frac{6}{{{\ell}_{1}^{2}}} & -\frac{12}{{{\ell}_{1}^{3}}} & \frac{6}{{{\ell}_{1}^{2}}} & 0 & 0\\ \frac{6}{{{\ell}_{1}^{2}}} & \frac{4}{{\ell_1}} & -\frac{6}{{{\ell}_{1}^{2}}} & \frac{2}{{\ell_1}} & 0 & 0\\ -\frac{12}{{{\ell}_{1}^{3}}} & -\frac{6}{{{\ell}_{1}^{2}}} & \frac{12 {{\ell}_{2}^{3}}+12 {{\ell}_{1}^{3}}}{{{\ell}_{1}^{3}}\, {{\ell}_{2}^{3}}} & -\frac{6 {{\ell}_{2}^{2}}-6 {{\ell}_{1}^{2}}}{{{\ell}_{1}^{2}}\, {{\ell}_{2}^{2}}} & -\frac{12}{{{\ell}_{2}^{3}}} & \frac{6}{{{\ell}_{2}^{2}}}\\ \frac{6}{{{\ell}_{1}^{2}}} & \frac{2}{{\ell_1}} & -\frac{6 {{\ell}_{2}^{2}}-6 {{\ell}_{1}^{2}}}{{{\ell}_{1}^{2}}\, {{\ell}_{2}^{2}}} & \frac{4 {\ell_2}+4 {\ell_1}}{{\ell_1}\, {\ell_2}} & -\frac{6}{{{\ell}_{2}^{2}}} & \frac{2}{{\ell_2}}\\ 0 & 0 & -\frac{12}{{{\ell}_{2}^{3}}} & -\frac{6}{{{\ell}_{2}^{2}}} & \frac{12}{{{\ell}_{2}^{3}}} & -\frac{6}{{{\ell}_{2}^{2}}}\\ 0 & 0 & \frac{6}{{{\ell}_{2}^{2}}} & \frac{2}{{\ell_2}} & -\frac{6}{{{\ell}_{2}^{2}}} & \frac{4}{{\ell_2}}\end{pmatrix}</math>
 
und
 
::<math>\delta W^a = \delta\underline{Q}^T \cdot \underline{P}_0 + m_A\,g\; W_A \; \delta W_A</math>
 
mit
 
::<math>\displaystyle \underline{P}_0 = \frac{{q_0}\, {\ell_1}}{2} \cdot \begin{pmatrix}\frac{2 {m_A} g+{q_0}\, {\ell_1}}{{q_0}\, {\ell_1}}\\ \frac{{\ell_1}}{6}\\ \frac{{\ell_2}+{\ell_1}}{{\ell_1}}\\ \frac{{{\ell}_{2}^{2}}-{{\ell}_{1}^{2}}}{6 {\ell_1}}\\ \frac{{\ell_2}}{{\ell_1}}\\ -\frac{{{\ell}_{2}^{2}}}{6 {\ell_1}}\end{pmatrix}</math>.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
/******************************************************/
/* Virtual Strain Energie and Virtual Work of Gravitational Loads  */
/* Boundary Value Problem Formulation                */
K[i] : EI/ℓ[i]^3*makelist(makelist(integrate(diff(ϕ[i],xi,2)*diff(ϕ[j],xi,2),xi,0,1),j,1,4),i,1,4);
/* elastic and gravitational potential                */
P[i] : q[0]*ℓ[i]*makelist(integrate(ϕ[i],xi,0,1),i,1,4);
 
K[0] : zeromatrix(6,6);
P[0] : zeromatrix(6,1);
for ele: 1 thru 2 do
  (ref : 2*(ele-1),
  for row :1 thru 4 do
      (P[0][ref+row]: P[0][ref+row] + subst([i=ele],P[i][row]),
      for col :1 thru 4 do
          K[0][ref+row][ref+col] : K[0][ref+row][ref+col] + subst([i=ele],K[i][row][col])));
K[0][6,6] : K[0][6,6] + K[C];
 
Q[0] : [[ W[A], Φ[A], W[B], Φ[B], W[C], Φ[C]],
        [δW[A],δΦ[A],δW[B],δΦ[B],δW[C],δΦ[C]]];


PMPE : [Π[P] = 1/2*integrate(EI*'diff(w(x),x,2)^2, x,0,ℓ[0]) + 1/2*K[C]*Phi[C]^2,
δW[0] : Q[0][2].P[0] - Q[0][2].K[0].transpose(Q[0][1]);
        A[P] =  integrate(q[0]*w(x), x,0,ℓ[0]) + m[A]*g*W[A]];
</syntaxhighlight>
</syntaxhighlight>
}}
}}


<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Geometric Constraints
{{MyCodeBlock|title=Geometric Constraints
|text=
|text=
Das können wir mit dem Konzept der Lagrange-Multiplikatoren erfassen. Dafür schreiben wir
Die Bewegung unserer Brücke in durch zwei geometrische Zwangs-Bedingungen behindert:


::<math>\Lambda (\underline{Q}= U + \lambda\cdot \underbrace{\left( \Delta s_A + \Delta s_B\right)}_{\displaystyle \equiv \sqrt{3}\, W_B+W_A} </math>
<ol>
<li>durch das Lager in C:<br/>
<math>W_C=0 \text{ bzw. } \delta W_C=0</math> sowie</li>
<li>durch das Seil über die Umlenkrolle in D:<br/>
<math>W_A = -\sqrt{3} \; W_B \text{ bzw. } \delta W_A = -\sqrt{3} \; \delta W_B</math>.</li>
</ol>


mit dem Lagrange-Multiplikator ''λ''. Die neuen Gleichgewichtsbedingungen lauten nun
Diese Bedingungen arbeiten wir in die virtuellen Arbeiten des Systems ein und erhalten dann mit den verbleibenden gesuchten Größen


::<math>\displaystyle \frac{d\Lambda}{dQ_i} = 0 \text{ für alle } Q_i </math>
::<math>\underline{\tilde{Q}} = \left( \begin{array}{c} \Phi_A \\ W_B\\ \Phi_B \\ \Phi_C\end{array} \right)</math>


und wir erhalten die vier Gleichungen
das Gleichungssystem


::<math>\begin{array}{cc} \displaystyle \frac{\lambda }{2}-\frac{49 {m_B} g}{120}-\frac{17 {{\Phi}_C}\, EI}{{\ell_{0}^{2}}}-\frac{108 {W_B}\, EI}{{\ell_{0}^{3}}}+\frac{19 {W_A}\, EI}{{\ell_{0}^{3}}}&=0\\ \displaystyle \frac{\sqrt{3} \lambda }{2}-\frac{9 {m_B} g}{8}+\frac{135 {{\Phi}_C}\, EI}{{\ell_{0}^{2}}}+\frac{729 {W_B}\, EI}{{\ell_{0}^{3}}}-\frac{108 {W_A}\, EI}{{\ell_{0}^{3}}}&=0\\
::<math>\mathit{EI} \begin{pmatrix}-\frac{6}{{\ell_0}} & \frac{{{3}^{\frac{7}{2}}}+27}{2 {{\ell}_{0}^{2}}} & -\frac{3}{{\ell_0}} & 0\\ \frac{{{3}^{\frac{7}{2}}}+27}{2 {{\ell}_{0}^{2}}} & -\frac{{{3}^{\frac{9}{2}}}+486}{{{\ell}_{0}^{3}}} & \frac{{{3}^{\frac{7}{2}}}-81}{2 {{\ell}_{0}^{2}}} & -\frac{54}{{{\ell}_{0}^{2}}}\\ -\frac{3}{{\ell_0}} & \frac{{{3}^{\frac{7}{2}}}-81}{2 {{\ell}_{0}^{2}}} & -\frac{18}{{\ell_0}} & -\frac{6}{{\ell_0}}\\ 0 & -\frac{54}{{{\ell}_{0}^{2}}} & -\frac{6}{{\ell_0}} & -\frac{17}{{\ell_0}}\end{pmatrix} \begin{pmatrix}{{\Phi }_A}\\ {W_B}\\ {{\Phi }_B}\\ {{\Phi }_C}\end{pmatrix}  =  {m_B}\,g \begin{pmatrix}-\frac{{\ell_0}}{27}\\ -\frac{5 \sqrt{3}-16}{10 \sqrt{3}}\\ \frac{{\ell_0}}{36}\\ \frac{{\ell_0}}{108}\end{pmatrix}
\displaystyle -\frac{{\ell_0}\, {m_B} g}{12}+\frac{33 {{\Phi}_C}\, EI}{{\ell_0}}+\frac{135 {W_B}\, EI}{{\ell_{0}^{2}}}-\frac{17 {W_A}\, EI}{{\ell_{0}^{2}}}&=0\\
</math>.
\displaystyle \frac{\sqrt{3}\, {W_B}}{2}+\frac{{W_A}}{2}&=0 \end{array}</math>.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
/* gemetric constraints                              */
/* Geometric Constraints  */
trials: w(x) = sum(Q[i]*phi[i],i,1,3);
constraint : append(solve(subst(geometry,Δs[A]+Δs[B]=0), W[A]),[W[C]=0]);
print('phi = expand(subst([x=[0]*xi],phi)))$
constraint : append(constraint, subst([W[A]=δW[A],W[B]=δW[B],W[C]=δW[C]],constraint));


plot2d(ratsimp(subst([x = xi*ℓ[0]],phi)*[1,1,1/ℓ[0]]), [xi,0,1],
δW[0] : expand(subst(constraint,δW[0]))$
            [legend, "W[A]","W[B]","Φ[C]"], [xlabel, "x/ℓ →"], [ylabel, "ϕ[i] →"]);


PMPE: subst(trials, PMPE);
Q[M] : [[ Φ[A], W[B], Φ[B], Φ[C]],
PMPE: ev(PMPE,nouns);
        [δΦ[A],δW[B],δΦ[B],δΦ[C]]];


U: expand(subst(PMPE,Π[P] - A[P]));
eom : makelist(coeff(δW[0],Q[M][2][i]),i,1,length(Q[M][2]));
K[M] : funmake('matrix,makelist(makelist(coeff(eom[i],Q[M][1][j],1),j,1,length(Q[M][1])),i,1,length(eom)));
P[M] : -transpose(expand(funmake('matrix,[eom]) - transpose(K[M].transpose(Q[M][1]))));


/* Lagrange-Function                                  */
K[M] : subst(params, subst(geometry, K[M]));
Λ : U + subst(geometry,λ*(Δs[A]+Δs[B]));
P[M] : subst(params, subst(geometry, P[M]));


/* Equilibrium Conditions                            */
print(EI,ratsimp(K[M]/EI),transpose(Q[M][1])," = ",m[B]*g, ratsimp(P[M]/(m[B]*g)))$
eom : subst(params,makelist( diff(Λ,Q[i])=0, i,1,4));
 
c : (EI/ℓ[0]^3);
K[M] : ratsimp(K[M]/c);
P[M] : ratsimp(P[M]/c);
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Solving
{{MyCodeBlock|title=Solving
Zeile 310: Zeile 203:
Das Lösen des Gleichungssystems liefert dann
Das Lösen des Gleichungssystems liefert dann


::<math>\displaystyle \left(\begin{array}{c} W_A\\W_B\\\Phi_C\\\lambda \end{array}\right) = \frac{m_B\, g\, \ell_0^3}{3 \; E I}  \left(\begin{array}{l}-3.78 10^{-5}\\+2.18 10^{-5}\\\displaystyle +0.00747 \frac{1}{\ell_0}\\\displaystyle +2.71 \frac{EI}{\ell_0^3} \end{array} \right)</math>.
<math>\displaystyle \left(\begin{array}{c} W_A\\ \Phi_A\\W_B\\\Phi_B\\W_C\\\Phi_C \end{array}\right) = \frac{m_B\, g\, \ell_0^3}{3 \; E I}  \left(\begin{array}{l} +0.00291 \\ +0.01169 \frac{1}{\ell_0}\\ -0.00168 \\ -0.00704 \frac{1}{\ell_0}\\ +0\\ +0.006198 \frac{1}{\ell_0} \end{array} \right)</math>.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
/* Solving                                           */
/* Solving ....... */
sol: float(solve(eom,Q)[1]);
sol: expand(float(linsolve_by_lu(K[M],P[M])))[1];
sol : makelist( Q[M][1][i] = sol[i][1],i,1,length(Q[M][1]));
sol : makelist( Q[0][1][i] = subst(sol,subst(constraint,subst([W[C]=0],Q[0][1][i]))),i,1,length(Q[0][1]));
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Zeile 322: Zeile 217:
|text=
|text=
Und die Ergebnisse können wir uns anschauen ...
Und die Ergebnisse können wir uns anschauen ...
==== ... für w(x): ====
[[Datei:Kw51-11.png|mini|Auslenkung ''w(x)''|alternativtext=|ohne]]


==== ... für ''Φ(x)'': ====
===== ... für ''w(x)'': =====
[[Datei:Kw51-12.png|mini|Kippwinkel ''Φ(x)''|alternativtext=|ohne]]
[[Datei:Kw52-11.png|mini|Auslenkung ''w(x)''|alternativtext=|ohne]]
 
===== ... für ''Φ(x)'': =====
[[Datei:Kw52-12.png|mini|Kippung der Querschnitte ''Φ(x)''|ohne]]


==== ... für M(x): ====
===== ... für ''M(x)'': =====
[[Datei:Kw51-13.png|mini|Biegemoment ''M(x)''|alternativtext=|ohne]]
[[Datei:Kw52-13.png|mini|Moment ''M(x)''|ohne]]


==== ... für Q(x): ====
===== ... für ''Q(x)'': =====
[[Datei:Kw51-14.png|mini|Querkraft ''Q(x)''|alternativtext=|ohne]]
[[Datei:Kw52-14.png|mini|Querkraft ''Q(x)''|ohne]]
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
/* Post-Processing                                   */
/* Post-Processing                                       */
w : subst([x=xi*ℓ[0]],subst(geometry,subst(sol, sum(Q[j]*phi[j],j,1,3))));
w : subst(geometry,
                  subst(sol,[subst([i=1],sum(Q[0][1][  j]*ϕ[j],j,1,4)),
                              subst([i=2],sum(Q[0][1][2+j]*ϕ[j],j,1,4))] ));


fcts: [        w             ,
fcts: [        w     ,
           diff(w,xi  )/ℓ[0] ,
           diff(w,xi  )/[ℓ[1],ℓ[2]],
       -EI*diff(w,xi,2)/ℓ[0]^2,
       -EI*diff(w,xi,2)/[ℓ[1]^2,ℓ[2]^2],
       -EI*diff(w,xi,3)/ℓ[0]^3];
       -EI*diff(w,xi,3)/[ℓ[1]^3,ℓ[2]^3]];
fcts: float(subst(geometry,expand(fcts)))$  
fcts: float(subst(geometry,expand(fcts)))$  
facts: [1/ℓ[Bez], ℓ[0]/ℓ[Bez], 1/(m[B]*g*ℓ[0]), 1/(m[B]*g)];
facts: [1/ℓ[Bez], ℓ[0]/ℓ[Bez], 1/(m[B]*g*ℓ[0]), 1/(m[B]*g)];
   
   
textlabels : ["← w(x)/ℓ[Bez]", "← w'(x)/(ℓ[Bez]/ℓ[0]) →", "M(x)/(m[B]*g*ℓ) →", "Q(x)/(m[B]g →"];
textlabels : ["← w(x)/ℓ[Bez]", "← w'(x)/(ℓ[Bez]/ℓ[0]) →", "M(x)/(m[B]*g*ℓ) →", "Q(x)/(m[B]g →"];
r : subst(geometry,xi[1]);
for i: 1 thru 4 do(
for i: 1 thru 4 do(
   f : expand(subst(dimless,facts[i]*fcts[i])),
   f : expand(subst(dimless,facts[i]*fcts[i])),
   preamble: if i<=2 then "set yrange [] reverse" else "set yrange []",
   preamble: if i<=2 then "set yrange [] reverse" else "set yrange []",
   plot2d(f, [xi,0,1], [legend, false],
   plot2d([[parametric,      r*t, subst(t,xi,f[1]), [t,0,1]],
                      [gnuplot_preamble, preamble],
          [parametric, r+(1-r)*t, subst(t,xi,f[2]), [t,0,1]]],
                      [xlabel, "x/ℓ →"],
                            [legend, "elem. I", "elem. II"],
                      [ylabel, textlabels[i]]))$
                            [gnuplot_preamble, preamble],
                            [xlabel, "x/ℓ →"],
                            [ylabel, textlabels[i]]))$
</syntaxhighlight>
</syntaxhighlight>
}}
}}

Aktuelle Version vom 31. März 2021, 06:05 Uhr


Aufgabenstellung

Eine Brücke ABC der Masse mB und homogener Biegesteifigkeit EI ist in C gelenkig gelagert und in A sowie B mit einem Seil verbunden. Das undehnbare Seil wird dabei über eine kleine Rolle (Radius r ≪ ℓ) in D haftungsfrei geführt. In Punkt C ist die Brücke über eine Drehfeder der Steifigkeit KC mit dem Lager verbunden. In A steht eine Person der Masse mA.


Lageplan (wie Kw50)

Geben Sie die Lösung für ein Euler-Bernoulli-Modell der Brücke mit dem Ansatz der Finiten Elemente an.

Dies ist eine Näherungslösung zu Kw50. Ermitteln Sie die genäherten Verläufe der Schnittgrößen und Verschiebungen im Balken für diese Parameter:

Lösung mit Maxima

In dieser Aufgabe berechnen wir eine Näherungslösung nach dem Prinzip der virtuellen Verrückungen. Alle Überlegungen zur Geometrie des Systems übernehmen wir aus Kw50.

Für die Lösung nutzen wir direkt die Elemente aus der FEM-Formulierung für den Euler-Bernoulli-Balken.

Text


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 18.10.1                           */
/* author: Andreas Baumgart                            */
/* last updated: 2019-02-12                            */
/* ref: TM-C, Labor 4, FEM-solution                    */
/* description: finds the FEM solution for             */
/*              lab problem with geometric constraints */
/*******************************************************/




Declarations

Wir arbeiten mit den selben Parametern und Bezugslängen, wie in Kw50.


/* declare variational variables - see 6.3 Identifiers */
declare( "δW", alphabetic); 
declare( "δΦ", alphabetic); 
declare(  "Φ", alphabetic); 
declare( "δw", alphabetic); 
declare( "δϕ", alphabetic);
declare( "δΠ", alphabetic); /* elastic potential */
declare( "ϕ" , alphabetic);
declare( "Δs", alphabetic);
declare( "ℓ" , alphabetic);

/* system parameters                                  */
params: [K[C]     = kappa*EI/ℓ[0],
         q[0]     = m[B]*g/ℓ[0],
         m[A]     = theta*m[B],
         theta    = 1/5,
         kappa    = 5];

geometry: [alpha[A] = 30*%pi/180,
           alpha[B] = 60*%pi/180,
           ℓ[1]     = ℓ[0]-ℓ[2],
           Δs[A]    = W[A]*cos(%pi/2-alpha[A]),
           Δs[B]    = W[B]*cos(%pi/2-alpha[B]),
           tan(alpha[B]) = H/ℓ[2],
           tan(alpha[A]) = H/ℓ[0],
           xi[1]    = ℓ[1]/ℓ[0],
           xi[2]    = ℓ[2]/ℓ[0]];
geometry: ratsimp(solve(geometry,[alpha[A],alpha[B],ℓ[1],ℓ[2],Δs[A],Δs[B],H,xi[1],xi[2]])[1]);

/* reference length selected:                         */
dimless : ℓ[Bez] = 1/3*m[B]*g*ℓ[0]^3/(EI); /*cantilevered*/





Formfunctions

Wir nutzen zwei Finite Elemente für die Brücke und setzen dafür die klassischen Hermite-Polynome, i.e. Polynome dritten Grades, an.

An den drei Knotenpunkten A, B und C haben wir also zusammen die Koordinaten

.

/******************************************************/
/* Boundary Value Problem                             */
/* FEM Formulation                                    */

ϕ : [(xi−1)^2*(2*xi+1),
     ℓ[i]*xi*(xi−1)^2,
     xi^2*(3−2*xi),
     ℓ[i]*xi^2*(xi−1)];




Equilibrium Conditions

Für die Gleichgewichtsbedingung

konstruieren wir - ohne Berücksichtung der geometrischen Zwangsbedingungen -

mit

und

mit

.

/* Virtual Strain Energie and Virtual Work of Gravitational Loads  */
K[i] : EI/ℓ[i]^3*makelist(makelist(integrate(diff(ϕ[i],xi,2)*diff(ϕ[j],xi,2),xi,0,1),j,1,4),i,1,4);
P[i] : q[0]*ℓ[i]*makelist(integrate(ϕ[i],xi,0,1),i,1,4);

K[0] : zeromatrix(6,6);
P[0] : zeromatrix(6,1);
for ele: 1 thru 2 do
  (ref : 2*(ele-1),
   for row :1 thru 4 do
      (P[0][ref+row]: P[0][ref+row] + subst([i=ele],P[i][row]),
       for col :1 thru 4 do
           K[0][ref+row][ref+col] : K[0][ref+row][ref+col] + subst([i=ele],K[i][row][col])));
K[0][6,6] : K[0][6,6] + K[C]; 

Q[0] : [[ W[A], Φ[A], W[B], Φ[B], W[C], Φ[C]],
        [δW[A],δΦ[A],δW[B],δΦ[B],δW[C],δΦ[C]]];

δW[0] : Q[0][2].P[0] - Q[0][2].K[0].transpose(Q[0][1]);




Geometric Constraints

Die Bewegung unserer Brücke in durch zwei geometrische Zwangs-Bedingungen behindert:

  1. durch das Lager in C:
    sowie
  2. durch das Seil über die Umlenkrolle in D:
    .

Diese Bedingungen arbeiten wir in die virtuellen Arbeiten des Systems ein und erhalten dann mit den verbleibenden gesuchten Größen

das Gleichungssystem

.

/* Geometric Constraints  */
constraint : append(solve(subst(geometry,Δs[A]+Δs[B]=0), W[A]),[W[C]=0]);
constraint : append(constraint, subst([W[A]=δW[A],W[B]=δW[B],W[C]=δW[C]],constraint));

δW[0] : expand(subst(constraint,δW[0]))$

Q[M] : [[ Φ[A], W[B], Φ[B], Φ[C]],
        [δΦ[A],δW[B],δΦ[B],δΦ[C]]];

eom : makelist(coeff(δW[0],Q[M][2][i]),i,1,length(Q[M][2]));
K[M] : funmake('matrix,makelist(makelist(coeff(eom[i],Q[M][1][j],1),j,1,length(Q[M][1])),i,1,length(eom)));
P[M] : -transpose(expand(funmake('matrix,[eom]) - transpose(K[M].transpose(Q[M][1]))));

K[M] : subst(params, subst(geometry, K[M]));
P[M] : subst(params, subst(geometry, P[M]));

print(EI,ratsimp(K[M]/EI),transpose(Q[M][1])," = ",m[B]*g, ratsimp(P[M]/(m[B]*g)))$

c : (EI/ℓ[0]^3);
K[M] : ratsimp(K[M]/c);
P[M] : ratsimp(P[M]/c);




tmp

Solving

Das Lösen des Gleichungssystems liefert dann

.


/* Solving ....... */
sol: expand(float(linsolve_by_lu(K[M],P[M])))[1];
sol : makelist( Q[M][1][i] = sol[i][1],i,1,length(Q[M][1]));
sol : makelist( Q[0][1][i] = subst(sol,subst(constraint,subst([W[C]=0],Q[0][1][i]))),i,1,length(Q[0][1]));




Post-Processing

Und die Ergebnisse können wir uns anschauen ...

... für w(x):
Auslenkung w(x)
... für Φ(x):
Kippung der Querschnitte Φ(x)
... für M(x):
Moment M(x)
... für Q(x):
Querkraft Q(x)

/* Post-Processing                                        */
w : subst(geometry,
                   subst(sol,[subst([i=1],sum(Q[0][1][  j]*ϕ[j],j,1,4)),
                              subst([i=2],sum(Q[0][1][2+j]*ϕ[j],j,1,4))] ));

fcts: [         w     ,
           diff(w,xi  )/[ℓ[1],ℓ[2]],
       -EI*diff(w,xi,2)/[ℓ[1]^2,ℓ[2]^2],
       -EI*diff(w,xi,3)/[ℓ[1]^3,ℓ[2]^3]];
fcts: float(subst(geometry,expand(fcts)))$ 
facts: [1/ℓ[Bez], ℓ[0]/ℓ[Bez], 1/(m[B]*g*ℓ[0]), 1/(m[B]*g)];
 
textlabels : ["← w(x)/ℓ[Bez]", "← w'(x)/(ℓ[Bez]/ℓ[0]) →", "M(x)/(m[B]*g*ℓ) →", "Q(x)/(m[B]g →"];
r : subst(geometry,xi[1]);
for i: 1 thru 4 do(
  f : expand(subst(dimless,facts[i]*fcts[i])),
  preamble: if i<=2 then "set yrange [] reverse" else "set yrange []",
  plot2d([[parametric,       r*t, subst(t,xi,f[1]), [t,0,1]],
          [parametric, r+(1-r)*t, subst(t,xi,f[2]), [t,0,1]]],
                             [legend, "elem. I", "elem. II"],
                             [gnuplot_preamble, preamble],
                             [xlabel, "x/ℓ →"],
                             [ylabel, textlabels[i]]))$





Links

  • Aufgabe Kw50 (analytische Lösung dieser Aufgabe)
  • Aufgabe Kw52 (Lösung dieser Aufgabe mit dem Ansatz von Rayleigh-Ritz und Lagrange-Multiplikator)
  • Aufgabe Kw53 (Lösung dieser Aufgabe mit dem Ansatz von Rayleigh-Ritz)

Literature

  • ...