Gelöste Aufgaben/TC12: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „h“)
 
Keine Bearbeitungszusammenfassung
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
h
[[Category:Gelöste Aufgaben]]
[[Category:Analytische Lösung]]
[[Category:Biege-Belastung]]
[[Category:Euler-Bernoulli-Balken]]
[[Category:Geometrische Zwangsbedingung]]
[[Category:Maxima‎]]
 
==Aufgabenstellung==
Ein Stab ''ABC'' (E-Modul: ''E'') besteht aus zwei Sektionen mit den Längen ''ℓ<sub>1</sub>'' bzw. ''ℓ<sub>2</sub>'' sowie den Flächenmomenten ''I<sub>1</sub>'' bzw. ''I<sub>2</sub>''. Die Sektionen haben jeweils einen quadratischen Querschnitt, Sektion ''AB'' ist durch eine konstante Streckenlast ''q<sub>0</sub>'' belastet, in ''B'' wirkt das Moment ''M<sub>B0</sub>''. Der Stab ist in ''A'' durch ein gelenkiges Festlager gelagert. In ''C'' ist das Stabende fest mit dem Umfang einer Rolle vom Radius ''r'' verbunden, die in ''D'' frei drehbar gelagert ist. In ''B'' sind die beiden Sektionen fest miteinander verbunden. Die Feder in ''B'' ist eine Translationsfeder mit der Steifigkeit ''<sub> </sub>k<sub>B</sub>''.
 
Interessant ist die kinematische Randbedingung aus der Rolle.
 
<onlyinclude>
[[Datei:TC12-01.png|300px|left|mini|Lageplan]]
Gesucht ist die Analytische Lösung für den [[Sources/Lexikon/Euler-Bernoulli-Balken|Euler-Bernoulli-Balken]] und die Verläufe der Schnittgrößen.
</onlyinclude>[[Datei:TC12-02.png|mini|Parameter]]
Ermitteln Sie für ein Euler-Bernoulli-Modell die analytischen Verläufe der Schnittgrößen und Verschiebungen im Balken für diese Parameter:
 
Erstellen Sie dazu ein Programm, mit einem Euler-Bernoulli-Modell für die Berechnung der analytischen Verläufe der Schnittgrößen und Verschiebungen im Balken. Bestimmen Sie Querschnitts-Abmessungen der Sektionen so, dass die maximale Auslenkung des Systems ''10 mm'' beträgt.
 
== Lösung mit Maxima ==
Die Aufgabe ist ein klassisches Randwertproblem:
 
<ol>
<li>zwei Gebiete, in denen ein Euler-Bernoulli-Balken in ''AB'' und ''BC'' durch eine Streckenlast ''q'' belastet ist (in Bereich II ist die Streckenlast allerdings Null) und somit durch die Differentialbeziehung<br/>
<math>E\; I_i w_i^{IV}(x_i) = q(x_i) ,\;\; i=\{1,2\}</math> berschrieben wird.</li>
<li>Rand- und Übergangsbedingungen in den Punkten ''A, B, C''</li>
</ol>
 
Wir verwenden ''x<sub>i</sub>'' und ''ξ<sub>i</sub>'' als Koordinaten je Bereich, in der Übersicht sieht das Randwertproblem so aus:
 
<table class="wikitable" style="background-color:white;">
<tr><th>Rand<br/>A</th><th>Bereich I</th><th>Übergang<br/>B</th><th>Bereich II</th><th>Rand<br/>C</th></tr>
<tr><td></td><td>[[Datei:TC12-11AB.png|rahmenlos|alternativtext=|250x250px]]</td><td></td><td>[[Datei:TC12-11BC.png|rahmenlos|alternativtext=|150x150px]]</td><td></td></tr>
<tr><td>[[Datei:TC12-11A.png|77x77px|rahmenlos|alternativtext=]]</td><td></td><td>[[Datei:TC12-11B.png|rahmenlos|alternativtext=|100x100px]]</td><td></td><td>[[Datei:TC12-11C1.png|rahmenlos|alternativtext=|116x116px]]<br/>
[[Datei:TC12-11C2.png|rahmenlos|alternativtext=|116x116px]]
</td></tr>
</table>
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Header
|text=Wir lösen die Feld-Differentialgleichung exakt und passen die Integrationskonstanten an die Rand- und Übergangsbedingungen an.
|code=
<syntaxhighlight lang="lisp" line start=1>
/*******************************************************/
/* MAXIMA script                                      */
/* version: wxMaxima 15.08.2                          */
/* author: Andreas Baumgart                            */
/* last updated: 2018-02-08                            */
/* ref: TM-C, Labor 1                                  */
/* description: analytic solution for EBB with        */
/*              two sections                          */
/*******************************************************/
</syntaxhighlight>
}}
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Declarations
|text=Wir definieren zunächst die bekannten Parameter zu
 
::<math>\begin{array}{ll}{{\mathit{E I}}_{2}}&=2\cdot {{\mathit{E I}}_{1}}\\{{\ell}_{2}}&\displaystyle =\frac{{{\ell}_{1}}}{2}\\ r&=\displaystyle \frac{{{\ell}_{1}}}{4}\\ {{M}_{B}}&={{q}_{0}}\cdot {{\ell}_{1}^{2}}\\{{k}_{B}}&\displaystyle =\frac{3\cdot {{\mathit{E I}}_{1}}}{{{\ell}_{1}^{3}}}\\w_{max}&=90 \text{mm}\end{array}</math>.
Weitere brauchen nicht.
|code=
<syntaxhighlight lang="lisp" line start=1>
/* parameter */
params : [EI[2]= 2*EI[1],
          l[2] = l[1]/2,
          r=l[1]/4,
          M[B] = q[0]*l[1]^2,
          k[B] = 3*EI[1]/l[1]^3];
</syntaxhighlight>
}}
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Generic Solutions for Euler-Bernoulli-Beam
|text=
In Bereich I und II gilt dieselbe Bewegungs-Differentialgleichung
 
::<math>E\; I_i w_i^{IV}(x_i) = q(x_i) ,\;\; i=\{1,2\} \text{ mit } q(x_i) = q_0\cdot\phi_0(\xi) + q_1\cdot\phi_1(\xi)</math>,
 
die wir durch Integration lösen und dann bereichsweise anpassen.
 
So gilt für Bereich II: ''q<sub>0</sub> = 0''.
 
Die allgemeine Lösung ist mit
 
... für Bereich I:
 
::<math>\begin{array}{l} {{w}_{1}}\left( x\right) := \frac{24\cdot {{C}_{1,0}}+24\cdot {{C}_{1,1}}\cdot x+12\cdot {{C}_{1,2}}\cdot {{x}^{2}}+4\cdot {{C}_{1,3}}\cdot {{x}^{3}}+{{q}_{0}}\cdot {{x}^{4}}}{24\cdot {{\mathit{EI}}_{1}}}  \\ {{\phi}_{1}}\left( x\right) := \frac{24\cdot {{C}_{1,1}}+24\cdot {{C}_{1,2}}\cdot x+12\cdot {{C}_{1,3}}\cdot {{x}^{2}}+4\cdot {{q}_{0}}\cdot {{x}^{3}}}{24\cdot {{\mathit{EI}}_{1}}}\\ {{M}_{1}}\left( x\right) :=-\frac{24\cdot {{C}_{1,2}}+24\cdot {{C}_{1,3}}\cdot x+12\cdot {{q}_{0}}\cdot {{x}^{2}}}{24}\\ {{Q}_{1}}\left( x\right) := -\frac{24\cdot {{C}_{1,3}}+24\cdot {{q}_{0}}\cdot x}{24}\end{array}</math>
 
... für Bereich II:
 
::<math>\begin{array}{l} {{w}_{2}}\left( x\right) :=\frac{120\cdot {{l}_{2}}\cdot {{C}_{2,0}}+120\cdot {{l}_{2}}\cdot {{C}_{2,1}}\cdot x+60\cdot {{l}_{2}}\cdot {{C}_{2,2}}\cdot {{x}^{2}}+20\cdot {{l}_{2}}\cdot {{C}_{2,3}}\cdot {{x}^{3}}}{120\cdot {{l}_{2}}\cdot {{\mathit{EI}}_{2}}}\\ {{\phi}_{2}}\left( x\right) :=\frac{120\cdot {{l}_{2}}\cdot {{C}_{2,1}}+120\cdot {{l}_{2}}\cdot {{C}_{2,2}}\cdot x+60\cdot {{l}_{2}}\cdot {{C}_{2,3}}\cdot {{x}^{2}}}{120\cdot {{l}_{2}}\cdot {{\mathit{EI}}_{2}}}\\ {{M}_{2}}\left( x\right) :=-\frac{120\cdot {{l}_{2}}\cdot {{C}_{2,2}}+120\cdot {{l}_{2}}\cdot {{C}_{2,3}}\cdot x}{120\cdot {{l}_{2}}}\\ {{Q}_{2}}\left( x\right) :=-{{C}_{2,3}} \end{array}</math>.
|code=
<syntaxhighlight lang="lisp" line start=1>
/* solve partial differential equation ....*/
dgl : EI[i]*diff(w(x),x,4) = q[0];
 
/* generic solution */
displ : solve(integrate(integrate(integrate(integrate(dgl,x),x),x),x),w(x));
sections: [[i=1, %c4=C[1,0], %c3=C[1,1], %c2=C[1,2], %c1=C[1,3]          ],
          [i=2, %c4=C[2,0], %c3=C[2,1], %c2=C[2,2], %c1=C[2,3], q[0]= 0  ]];
 
/* section I */
define(  w[1](x),  subst(sections[1],subst(displ,w(x))));
define(Phi[1](x),  diff(w[1](x),x  ));
define(  M[1](x), -EI[1]*diff(w[1](x),x,2));
define(  Q[1](x), -EI[1]*diff(w[1](x),x,3));
 
/* section II */
define(  w[2](x),  subst(sections[2],subst(displ,w(x))));
define(Phi[2](x),  diff(w[2](x),x  ));
define(  M[2](x), -EI[2]*diff(w[2](x),x,2));
define(  Q[2](x), -EI[2]*diff(w[2](x),x,3));
</syntaxhighlight>
}}
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Boundary Conditions
|text=Für die 2*4 = 8 Integrationskonstanten
 
::<math>\left[ C_{1,0},C_{1,1},C_{1,2},C_{1,3},C_{2,0},C_{2,1},C_{2,2},C_{2,3}\right]</math>
 
suchen wir jetzt die passenden Gleichungen aus Rand- und Übergangsbedingungen.
 
Zur besseren Übersicht nennen wir die Schnitt-Momente und -Kräfte nach den jeweiligen Knotenpunkten ''A, B, C'' und fügen als Index ein + / - hinzu, um die Seite (+: rechts vom Knoten, -: links vom Knoten) zu kennzeichnen, wenn diese unterschiedlich sind.
 
====Aus Rand "A"====
<table class="wikitable" style="background-color:white;">
<tr><td>[[Datei:TC12-11A.png|rahmenlos|alternativtext=|90x90px]]
</td><td>''Geometrische Randbedingungen''
# <math>w_1(0)=0</math>
 
''Kraft- und Momenten-Randbedingungen''
 
#<math>M_{A} = 0 \text{ mit } M_{A} = - EI_1\cdot w''(x)|_{x=0}</math>
</td></tr>
</table>
 
====Aus Übergang "B"====
<table class="wikitable" style="background-color:white;">
<tr><td>[[Datei:TC12-11B.png|rahmenlos|alternativtext=|120x120px]]
</td><td>''Geometrische Randbedingungen''
# <math>w_1(\ell_1)=w_2(\ell_1)</math>
# <math>\phi_1(\ell_1) = \phi_2(\ell_1)</math>
 
''Kraft- und Momenten-Randbedingungen''
 
#<math>-M_{B,-} - M_{B0} + M_{B,+} = 0</math>
#<math>-Q_{B,-}-k_B\cdot w_B + -Q_{B,+} = 0</math>
</td></tr>
</table>
 
====Aus Rand "C"====
<table class="wikitable" style="background-color:white;">
<tr><td>[[Datei:TC12-11C2.png|rahmenlos|alternativtext=|150px]]<br/>
&nbsp;&nbsp;&nbsp;&nbsp;[[Datei:TC12-11C1.png|rahmenlos|alternativtext=|130px]]
</td><td>''Geometrische Randbedingungen''
#<math>w_C = r\cdot\Phi_C \text{ mit } \Phi_C = - \phi_2(l_2)</math>
 
''Kraft- und Momenten-Randbedingungen''
 
#<math>r\cdot Q_{C} + M_C = 0</math>
</td></tr>
</table>
 
Einsetzen liefert 8 Gleichungen
 
::<math>\begin{array}{rl} \displaystyle \frac{{{C}_{1,0}}}{{{\mathit{EI}}_{1}}}&=0\\ \displaystyle  -{{C}_{1,2}}&=0\\ \displaystyle  \frac{{{l}_{1}^{3}}\cdot {{C}_{1,3}}}{6\cdot {{\mathit{EI}}_{1}}}+\frac{{{l}_{1}^{2}}\cdot {{C}_{1,2}}}{2\cdot {{\mathit{EI}}_{1}}}+\frac{{{l}_{1}}\cdot {{C}_{1,1}}}{{{\mathit{EI}}_{1}}}+\frac{{{C}_{1,0}}}{{{\mathit{EI}}_{1}}}+\frac{{{q}_{0}}\cdot {{l}_{1}^{4}}}{24\cdot {{\mathit{EI}}_{1}}}&=\frac{{{C}_{2,0}}}{{{\mathit{EI}}_{2}}}\\ \displaystyle  \frac{{{l}_{1}^{2}}\cdot {{C}_{1,3}}}{2\cdot {{\mathit{EI}}_{1}}}+\frac{{{l}_{1}}\cdot {{C}_{1,2}}}{{{\mathit{EI}}_{1}}}+\frac{{{C}_{1,1}}}{{{\mathit{EI}}_{1}}}+\frac{{{q}_{0}}\cdot {{l}_{1}^{3}}}{6\cdot {{\mathit{EI}}_{1}}}&=\frac{{{C}_{2,1}}}{{{\mathit{EI}}_{2}}}\\ \displaystyle  -\frac{{{C}_{2,0}}\cdot {{k}_{B}}}{{{\mathit{EI}}_{2}}}-{{C}_{2,3}}+{{C}_{1,3}}+{{q}_{0}}\cdot {{l}_{1}}&=0\\ \displaystyle  -{{C}_{2,2}}+{{l}_{1}}\cdot {{C}_{1,3}}+{{C}_{1,2}}+\frac{{{q}_{0}}\cdot {{l}_{1}^{2}}}{2}&={{M}_{B}}\\ \displaystyle  -\frac{{{l}_{2}^{2}}\cdot {{C}_{2,3}}\cdot r}{2\cdot {{\mathit{EI}}_{2}}}-\frac{{{l}_{2}}\cdot {{C}_{2,2}}\cdot r}{{{\mathit{EI}}_{2}}}-\frac{{{C}_{2,1}}\cdot r}{{{\mathit{EI}}_{2}}}&=\displaystyle\frac{{{l}_{2}^{3}}\cdot {{C}_{2,3}}}{6\cdot {{\mathit{EI}}_{2}}}+\frac{{{l}_{2}^{2}}\cdot {{C}_{2,2}}}{2\cdot {{\mathit{EI}}_{2}}}+\frac{{{l}_{2}}\cdot {{C}_{2,1}}}{{{\mathit{EI}}_{2}}}+\frac{{{C}_{2,0}}}{{{\mathit{EI}}_{2}}}\\ \displaystyle  -{{C}_{2,3}}\cdot r-{{l}_{2}}\cdot {{C}_{2,3}}-{{C}_{2,2}}&=0 \end{array}
</math>
 
für die Integrationskonstanten.
|code=
<syntaxhighlight lang="lisp" line start=1>
/* boundary conditions */
node[A]: [ w[1](0) = 0,
          M[1](0) = 0];
node[B]: [ w[1](l[1]) = w[2](0),
          Phi[1](l[1]) = Phi[2](0),
          -Q[1](l[1]) -k[B]*w[2](0) +Q[2](0) = 0,
          -M[1](l[1])              +M[2](0) = M[B]];
node[C]: [-Phi[2](l[2])*r = w[2](l[2]),
          r*Q[2](l[2]) +  M[2](l[2]) = 0];
BCs : expand(append(node[A],node[B],node[C]));       
ICs : [C[1,0],C[1,1],C[1,2],C[1,3],C[2,0],C[2,1],C[2,2],C[2,3]];   
</syntaxhighlight>
}}
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Prepare for Solver
|text=
Das Gleichungssystem wollen wir als
 
::<math>\underline{\underline{A}}\cdot\underline{x}= \underline{b}</math>
 
schreiben, also
 
::<math>\begin{pmatrix}\frac{1}{{{\mathit{EI}}_{1}}} & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0\\ \frac{1}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}}}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}^{2}}}{2\cdot {{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}^{3}}}{6\cdot {{\mathit{EI}}_{1}}} & -\frac{1}{{{\mathit{EI}}_{2}}} & 0 & 0 & 0\\ 0 & \frac{1}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}}}{{{\mathit{EI}}_{1}}} & \frac{{{\ell}_{1}^{2}}}{2\cdot {{\mathit{EI}}_{1}}} & 0 & -\frac{1}{{{\mathit{EI}}_{2}}} & 0 & 0\\ 0 & 0 & 0 & 1 & -\frac{{{k}_{B}}}{{{\mathit{EI}}_{2}}} & 0 & 0 & -1\\ 0 & 0 & 1 & {{\ell}_{1}} & 0 & 0 & -1 & 0\\ 0 & 0 & 0 & 0 & -\frac{1}{{{\mathit{EI}}_{2}}} & -\frac{{{\ell}_{2}}+r}{{{\mathit{EI}}_{2}}} & -\frac{{{\ell}_{2}^{2}}+2\cdot {{\ell}_{2}}\cdot r}{2\cdot {{\mathit{EI}}_{2}}} & -\frac{{{\ell}_{2}^{3}}+3\cdot {{\ell}_{2}^{2}}\cdot r}{6\cdot {{\mathit{EI}}_{2}}}\\ 0 & 0 & 0 & 0 & 0 & 0 & -1 & -r-{{\ell}_{2}}\end{pmatrix}\cdot\begin{pmatrix}{{C}_{1,0}}\\ {{C}_{1,1}}\\ {{C}_{1,2}}\\ {{C}_{1,3}}\\ {{C}_{2,0}}\\ {{C}_{2,1}}\\ {{C}_{2,2}}\\ {{C}_{2,3}}\end{pmatrix}=\begin{pmatrix}0\\ 0\\ -\frac{{{q}_{0}}\cdot {{\ell}_{1}^{4}}}{24\cdot {{\mathit{EI}}_{1}}}\\ -\frac{{{q}_{0}}\cdot {{\ell}_{1}^{3}}}{6\cdot {{\mathit{EI}}_{1}}}\\ -{{q}_{0}}\cdot {{\ell}_{1}}\\ {{M}_{B}}-\frac{{{q}_{0}}\cdot {{\ell}_{1}^{2}}}{2}\\ 0\\ 0\end{pmatrix}</math>.
 
Die Matrix-Elemente sind für die Koeffizientenmatrix
 
::<math>\begin{array}{l} a_{1,1} = 1/EI_{1}\\ a_{2,3} = -1\\ a_{3,1} = 1/EI_{1}\\ a_{3,2} = \ell_{1}/EI_{1}\\ a_{3,3} = \ell_{1}^2/(2\cdot EI_{1})\\ a_{3,4} = \ell_{1}^3/(6\cdot EI_{1})\\ a_{3,5} = -1/EI_{2}\\ a_{4,2} = 1/EI_{1}\\ a_{4,3} = \ell_{1}/EI_{1}\\ a_{4,4} = \ell_{1}^2/(2\cdot EI_{1})\\ a_{4,6} = -1/EI_{2}\\ a_{5,4} = 1\\ a_{5,5} = -k_B/EI_{2}\\ a_{5,8} = -1\\ a_{6,3} = 1\\ a_{6,4} = \ell_{1}\\ a_{6,7} = -1\\ a_{7,5} = -1/EI_{2}\\ a_{7,6} = -(r+\ell_{2})/EI_{2}\\ a_{7,7} = -(2\cdot \ell_{2}\cdot r+\ell_{2}^2)/(2\cdot EI_{2})\\ a_{7,8} = -(3\cdot \ell_{2}^2\cdot r+\ell_{2}^3)/(6\cdot EI_{2})\\ a_{8,7} = -1\\ a_{8,8} = -r-\ell_{2}\\ \end{array}</math>
 
und für die rechte Seite
 
::<math>\begin{array}{l} b_{1} = 0\\ b_{2} = 0\\ b_{3} = -(q_0\cdot\ell_{1}^4)/(24\cdot EI_{1})\\ b_{4} = -(q_0\cdot\ell_{1}^3)/(6\cdot EI_{1})\\ b_{5} = -q_0\cdot\ell_{1}\\ b_{6} = M_B-(q_0\cdot\ell_{1}^2)/2\\ b_{7} = 0\\ b_{8} = 0 \end{array}</math>.
|code=
<syntaxhighlight lang="lisp" line start=1>
/* rewrite equations for integration constants IC in matrix form */
ACM: augcoefmatrix(BCs,ICs);
AA :  submatrix(ACM,9);
bb : - col(ACM,9);
/* display ... */
print(AA,"*",transpose(ICs),"=",bb)$
 
/* print coefficients of inhomogenous linear equations */
for i: 1 thru 8 do
  print(simplode(["b[",i,"] = ", string(bb[i][1])]))$
for i: 1 thru 8 do
  for j: 1 thru 8 do
      if not AA[i][j] = 0 then
          print(simplode(["A[",i,",",j,"] = ", string(AA[i][j])]))$
</syntaxhighlight>
}}
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Solving
|text=
Das Lösen des Gleichungssystems liefert
 
::<math>\begin{array}{ll} \displaystyle {{C}_{1,0}}&\displaystyle =0\\ \displaystyle {{C}_{1,1}}&\displaystyle =-\frac{{{q}_{0}}\cdot {{\ell}_{1}^{3}}}{56}\\ \displaystyle {{C}_{1,2}}&\displaystyle =0\\ \displaystyle {{C}_{1,3}}&\displaystyle =-\frac{{{q}_{0}}\cdot {{\ell}_{1}}}{7}\\ \displaystyle {{C}_{2,0}}&\displaystyle =0\\ \displaystyle {{C}_{2,1}}&\displaystyle =\frac{13\cdot {{q}_{0}}\cdot {{\ell}_{1}^{3}}}{84}\\ \displaystyle {{C}_{2,2}}&\displaystyle =-\frac{9\cdot {{q}_{0}}\cdot {{\ell}_{1}^{2}}}{14}\\ \displaystyle {{C}_{2,3}}&\displaystyle =\frac{6\cdot {{q}_{0}}\cdot {{\ell}_{1}}}{7} \end{array}</math>.
|code=
<syntaxhighlight lang="lisp" line start=1>
/* solving */
D : ratsimp(determinant(AA))$
[ P, L, U] : ratsimp(get_lu_factors(lu_factor(AA)))$
cc : ratsimp(linsolve_by_lu(AA,bb)[1])$
sol : makelist(ICs[i] = cc[i][1],i,1,8)$
</syntaxhighlight>
}}
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Post-Processing
|text=
Zum Auftragen der Ergebnisse nutzen wir die  Standard-Lösungen - Lastfall 3 mit der maximalen Auslenkung
 
::<math>W^* = \displaystyle \frac{5\;\ell_1^4\cdot q_0}{384 \; EI_1}</math>
 
und dem Winkel
 
::<math>\displaystyle \Phi^* = \frac{q_0\;\ell_1^3}{24\;EI_1}</math>
 
Die Ergebnisse sind dann ...
 
==== ... für w(x): ====
[[Datei:TC12-21.png|mini|Biegelinie ''w(x)''|alternativtext=|ohne]]
 
==== ... für ''Φ(x)'': ====
[[Datei:TC12-22.png|mini|Kippung ''w'(x)''|alternativtext=|ohne]]
 
==== ... für M(x): ====
[[Datei:TC12-23.png|mini|Biegemoment M(x)|alternativtext=|ohne]]
 
==== ... für Q(x): ====
[[Datei:TC12-24.png|mini|Querkraft ''Q(x)''|alternativtext=|ohne]]
 
==== ... für die Lager-Reaktionskräfte ====
::<math>\begin{array}{l}\displaystyle {{A}_{z}}=\frac{{{q}_{0}}\cdot {{\ell}_{1}}}{7}\\ \displaystyle {{F}_{B}}=0\\ \displaystyle {{Q}_{C}}=-\frac{6\cdot {{q}_{0}}\cdot {{\ell}_{1}}}{7}\\ \displaystyle {{M}_{C}}=\frac{3\cdot {{q}_{0}}\cdot {{l}_{1}^{2}}}{14}\end{array}</math>.
 
Die Querschnitts-Parameter für Sektion 1 erhalten wir aus
 
::<math>W^* \stackrel{!}{=} 10\text{mm}</math>.
 
Die maximale Auslenkung kommt für Sektion I aus der Bedingung
 
::<math>\Phi_I(x_I^*) \stackrel{!}{=} 0</math> zu <math>x_I^*\simeq 0.67\cdot\ell_1</math>.
 
Hier ist
 
::<math>\displaystyle W^* \simeq \frac{0.01073\cdot {{q}_{0}}\cdot {{\ell}_{1}^{4}}}{{{\mathit{E\;I_{1}}}}}</math>
 
und damit ist das erforderliche Flächenmoment
 
::<math>\displaystyle {{I}_{1}^*} \simeq 53646\text{ mm}^4</math> und damit <math>h^* \simeq 28\text{mm}.</math>.
|code=
<syntaxhighlight lang="lisp" line start=1>
/* plot displacements */
fcts : [[ w [1](x), w [2](x-l[1])],
        [Phi[1](x),Phi[2](x-l[1])],
        [ M [1](x), M [2](x-l[1])],
        [ Q [1](x), Q [2](x-l[1])]];
fcts : subst(params,subst(sol,fcts));
facts: [384*EI[1]/(5*l[1]^4*q[0]),24*EI[1]/(l[1]^3*q[0]),1/(l[1]^2*q[0]),1/(l[1]^1*q[0])];
 
textlabels : [" w(x)/W*) →", "w'(x)/Φ* →", "M(x)/M[B] →", "Q(x)/(q[0] l[1]) →"];
for i: 1 thru 4 do(
  f : expand(subst(params,subst(xi*l[1],x,facts[i]*[subst(sol, fcts[i][1]),
                                                    subst(sol, fcts[i][2])]))),
  f1 : f[1],  f2 : f[2],
  toplot : [if xi<=1 then f1 else 0,
            if xi < 1 then 0 else f2],
  yRange : if i<=2 then "set yrange [] reverse" else "set yrange []",
  plot2d(toplot,[xi,0,1+subst(params,l[2]/l[1])], [legend, "sec. I", "sec. II"],
                            [gnuplot_preamble, yRange],
                            [xlabel, "x/l[1] ->"],
                            [ylabel, textlabels[i]]))$
 
/* bearing forces and moments */
reactForces: [A[z] = Q[1](0),
              F[B] = k[B]*w[2](0),
              Q[C] = Q[2](l[2]),
              M[C] = M[2](l[2])];
 
print(ratsimp(expand(subst(params,subst(sol, reactForces)))));
 
/****************************************/
/* required cross sectional properties: */
max: ratsimp(solve(subst(params,subst(sol,Phi[1](x)))=0,x)[3]);
W : float(ratsimp(subst(params,subst(sol,subst(max,w[1](x))))));
post: solve(subst([EI[1] = E*I[1], E=2*10^11*N/(1000*mm)^2, l[1]=1000*mm, q[0]=10*N/mm],-W=90*mm),I[1]);
solve(subst(post,h*h^3/12 = I[1]),h)[4];
</syntaxhighlight>
}}
 
<hr />
'''Links'''
* ...
 
'''Literature'''
* ...

Aktuelle Version vom 26. April 2021, 06:53 Uhr


Aufgabenstellung

Ein Stab ABC (E-Modul: E) besteht aus zwei Sektionen mit den Längen 1 bzw. 2 sowie den Flächenmomenten I1 bzw. I2. Die Sektionen haben jeweils einen quadratischen Querschnitt, Sektion AB ist durch eine konstante Streckenlast q0 belastet, in B wirkt das Moment MB0. Der Stab ist in A durch ein gelenkiges Festlager gelagert. In C ist das Stabende fest mit dem Umfang einer Rolle vom Radius r verbunden, die in D frei drehbar gelagert ist. In B sind die beiden Sektionen fest miteinander verbunden. Die Feder in B ist eine Translationsfeder mit der Steifigkeit  kB.

Interessant ist die kinematische Randbedingung aus der Rolle.


Lageplan

Gesucht ist die Analytische Lösung für den Euler-Bernoulli-Balken und die Verläufe der Schnittgrößen.

Parameter

Ermitteln Sie für ein Euler-Bernoulli-Modell die analytischen Verläufe der Schnittgrößen und Verschiebungen im Balken für diese Parameter:

Erstellen Sie dazu ein Programm, mit einem Euler-Bernoulli-Modell für die Berechnung der analytischen Verläufe der Schnittgrößen und Verschiebungen im Balken. Bestimmen Sie Querschnitts-Abmessungen der Sektionen so, dass die maximale Auslenkung des Systems 10 mm beträgt.

Lösung mit Maxima

Die Aufgabe ist ein klassisches Randwertproblem:

  1. zwei Gebiete, in denen ein Euler-Bernoulli-Balken in AB und BC durch eine Streckenlast q belastet ist (in Bereich II ist die Streckenlast allerdings Null) und somit durch die Differentialbeziehung
    berschrieben wird.
  2. Rand- und Übergangsbedingungen in den Punkten A, B, C

Wir verwenden xi und ξi als Koordinaten je Bereich, in der Übersicht sieht das Randwertproblem so aus:

Rand
A
Bereich IÜbergang
B
Bereich IIRand
C

Header

Wir lösen die Feld-Differentialgleichung exakt und passen die Integrationskonstanten an die Rand- und Übergangsbedingungen an.


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 15.08.2                           */
/* author: Andreas Baumgart                            */
/* last updated: 2018-02-08                            */
/* ref: TM-C, Labor 1                                  */
/* description: analytic solution for EBB with         */
/*              two sections                           */
/*******************************************************/




Declarations

Wir definieren zunächst die bekannten Parameter zu

.

Weitere brauchen nicht.


/* parameter */
params : [EI[2]= 2*EI[1],
          l[2] = l[1]/2,
          r=l[1]/4,
          M[B] = q[0]*l[1]^2,
          k[B] = 3*EI[1]/l[1]^3];




Generic Solutions for Euler-Bernoulli-Beam

In Bereich I und II gilt dieselbe Bewegungs-Differentialgleichung

,

die wir durch Integration lösen und dann bereichsweise anpassen.

So gilt für Bereich II: q0 = 0.

Die allgemeine Lösung ist mit

... für Bereich I:

... für Bereich II:

.

/* solve partial differential equation ....*/
dgl : EI[i]*diff(w(x),x,4) = q[0];

/* generic solution */
displ : solve(integrate(integrate(integrate(integrate(dgl,x),x),x),x),w(x));
sections: [[i=1, %c4=C[1,0], %c3=C[1,1], %c2=C[1,2], %c1=C[1,3]           ],
           [i=2, %c4=C[2,0], %c3=C[2,1], %c2=C[2,2], %c1=C[2,3], q[0]= 0  ]];

/* section I */
define(  w[1](x),  subst(sections[1],subst(displ,w(x))));
define(Phi[1](x),  diff(w[1](x),x  ));
define(  M[1](x), -EI[1]*diff(w[1](x),x,2));
define(  Q[1](x), -EI[1]*diff(w[1](x),x,3));

/* section II */
define(  w[2](x),  subst(sections[2],subst(displ,w(x))));
define(Phi[2](x),  diff(w[2](x),x  ));
define(  M[2](x), -EI[2]*diff(w[2](x),x,2));
define(  Q[2](x), -EI[2]*diff(w[2](x),x,3));




Boundary Conditions

Für die 2*4 = 8 Integrationskonstanten

suchen wir jetzt die passenden Gleichungen aus Rand- und Übergangsbedingungen.

Zur besseren Übersicht nennen wir die Schnitt-Momente und -Kräfte nach den jeweiligen Knotenpunkten A, B, C und fügen als Index ein + / - hinzu, um die Seite (+: rechts vom Knoten, -: links vom Knoten) zu kennzeichnen, wenn diese unterschiedlich sind.

Aus Rand "A"

Geometrische Randbedingungen

Kraft- und Momenten-Randbedingungen

Aus Übergang "B"

Geometrische Randbedingungen

Kraft- und Momenten-Randbedingungen

Aus Rand "C"


    

Geometrische Randbedingungen

Kraft- und Momenten-Randbedingungen

Einsetzen liefert 8 Gleichungen

für die Integrationskonstanten.


/* boundary conditions */
node[A]: [ w[1](0) = 0,
           M[1](0) = 0];
node[B]: [ w[1](l[1]) = w[2](0),
           Phi[1](l[1]) = Phi[2](0),
          -Q[1](l[1]) -k[B]*w[2](0) +Q[2](0) = 0,
          -M[1](l[1])               +M[2](0) = M[B]];
node[C]: [-Phi[2](l[2])*r = w[2](l[2]),
          r*Q[2](l[2]) +  M[2](l[2]) = 0];
BCs : expand(append(node[A],node[B],node[C]));         
ICs : [C[1,0],C[1,1],C[1,2],C[1,3],C[2,0],C[2,1],C[2,2],C[2,3]];




Prepare for Solver

Das Gleichungssystem wollen wir als

schreiben, also

.

Die Matrix-Elemente sind für die Koeffizientenmatrix

und für die rechte Seite

.

/* rewrite equations for integration constants IC in matrix form */
ACM: augcoefmatrix(BCs,ICs);
AA :   submatrix(ACM,9);
bb : - col(ACM,9);
/* display ... */
print(AA,"*",transpose(ICs),"=",bb)$

/* print coefficients of inhomogenous linear equations */
for i: 1 thru 8 do
   print(simplode(["b[",i,"] = ", string(bb[i][1])]))$
for i: 1 thru 8 do
   for j: 1 thru 8 do
      if not AA[i][j] = 0 then
          print(simplode(["A[",i,",",j,"] = ", string(AA[i][j])]))$




Solving

Das Lösen des Gleichungssystems liefert

.

/* solving */
D : ratsimp(determinant(AA))$
[ P, L, U] : ratsimp(get_lu_factors(lu_factor(AA)))$
cc : ratsimp(linsolve_by_lu(AA,bb)[1])$
sol : makelist(ICs[i] = cc[i][1],i,1,8)$




Post-Processing

Zum Auftragen der Ergebnisse nutzen wir die  Standard-Lösungen - Lastfall 3 mit der maximalen Auslenkung

und dem Winkel

Die Ergebnisse sind dann ...

... für w(x):

Biegelinie w(x)

... für Φ(x):

Kippung w'(x)

... für M(x):

Biegemoment M(x)

... für Q(x):

Querkraft Q(x)

... für die Lager-Reaktionskräfte

.

Die Querschnitts-Parameter für Sektion 1 erhalten wir aus

.

Die maximale Auslenkung kommt für Sektion I aus der Bedingung

zu .

Hier ist

und damit ist das erforderliche Flächenmoment

und damit .

/* plot displacements */
fcts : [[ w [1](x), w [2](x-l[1])],
        [Phi[1](x),Phi[2](x-l[1])],
        [ M [1](x), M [2](x-l[1])],
        [ Q [1](x), Q [2](x-l[1])]];
fcts : subst(params,subst(sol,fcts));
facts: [384*EI[1]/(5*l[1]^4*q[0]),24*EI[1]/(l[1]^3*q[0]),1/(l[1]^2*q[0]),1/(l[1]^1*q[0])];

textlabels : [" w(x)/W*) →", "w'(x)/Φ* →", "M(x)/M[B] →", "Q(x)/(q[0] l[1]) →"];
for i: 1 thru 4 do(
  f : expand(subst(params,subst(xi*l[1],x,facts[i]*[subst(sol, fcts[i][1]),
                                                    subst(sol, fcts[i][2])]))),
  f1 : f[1],  f2 : f[2],
  toplot : [if xi<=1 then f1 else 0,
            if xi < 1 then 0 else f2],
  yRange : if i<=2 then "set yrange [] reverse" else "set yrange []",
  plot2d(toplot,[xi,0,1+subst(params,l[2]/l[1])], [legend, "sec. I", "sec. II"],
                             [gnuplot_preamble, yRange],
                             [xlabel, "x/l[1] ->"],
                             [ylabel, textlabels[i]]))$

/* bearing forces and moments */
reactForces: [A[z] = Q[1](0),
              F[B] = k[B]*w[2](0),
              Q[C] = Q[2](l[2]),
              M[C] = M[2](l[2])];

print(ratsimp(expand(subst(params,subst(sol, reactForces)))));

/****************************************/
/* required cross sectional properties: */
max: ratsimp(solve(subst(params,subst(sol,Phi[1](x)))=0,x)[3]);
W : float(ratsimp(subst(params,subst(sol,subst(max,w[1](x))))));
 
post: solve(subst([EI[1] = E*I[1], E=2*10^11*N/(1000*mm)^2, l[1]=1000*mm, q[0]=10*N/mm],-W=90*mm),I[1]);
solve(subst(post,h*h^3/12 = I[1]),h)[4];





Links

  • ...

Literature

  • ...