Gelöste Aufgaben/Kw55: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 23: Zeile 23:
Die Auslenkungen des Balkens in ''B'' und ''C'' bezeichnen wir mit
Die Auslenkungen des Balkens in ''B'' und ''C'' bezeichnen wir mit


* ''w<sub>B</sub>'' = w( ℓ)
* ''w<sub>B</sub>'' = ''w( ℓ)''
* '<nowiki/>''w<sub>C</sub>'''''<nowiki/>'<nowiki/>'''= w(2ℓ)
* ''w<sub>C</sub>'' = ''w(2ℓ)''


Wir schneiden beide Systemteile frei:
Wir schneiden beide Systemteile frei:


<table class="wikitable" style="background-color:white; float:left; margin-right:24px;>
<table class="wikitable" style="background-color:white; float:left; margin-right:24px;>
<tr><td>[[Datei:Kw55-12+.png|alternativtext=|rahmenlos]]
<tr><td>[[Datei:Kw55-12+.png|alternativtext=|rahmenlos|244x244px]]
</td></tr>
</td></tr>
<tr><td>[[Datei:Kw55-13+.png|rahmenlos]]
<tr><td>&nbsp;&nbsp;[[Datei:Kw55-13+.png|rahmenlos|alternativtext=|225x225px]]
</td></tr>
</td></tr>
</table>
</table>
Zeile 37: Zeile 37:
Als Schnittkräfte führen wir die beiden Stabkräfte  
Als Schnittkräfte führen wir die beiden Stabkräfte  


* ''F<sub>B</sub>'' und
<ul style="margin-left: 0;padding-left: 26px;">
* ''F<sub>C</sub>''
<li> ''F<sub>B</sub>'' und</li>
<li> ''F<sub>C</sub>''</li>
</ul>


ein, die zunächst unbekannt sind. Wir müssen überlegen, wo wir Bedingungen für diese beiden Größen herbekommen.
ein, die zunächst unbekannt sind. Wir müssen überlegen, wo wir Bedingungen für diese beiden Größen herbekommen.


Die Lösung der Teilaufgabe für den Euler-Bernoulli-Balken ist ein klassisches Randwertproblem mit
Die Lösung der Teilaufgabe für den [[Sources/Lexikon/Euler-Bernoulli-Balken|Euler-Bernoulli-Balken]] ist ein klassisches Randwertproblem mit


<ol>
<ol>
<li>zwei Gebieten, in denen ein Euler-Bernoulli-Balken in AB und BC durch eine Streckenlast ''q<sub>0</sub>'' belastet ist und somit durch die Differentialbeziehung
<li>zwei Gebieten, in denen ein Euler-Bernoulli-Balken in AB und BC durch eine Streckenlast ''q<sub>0</sub>'' belastet ist und somit durch die Differentialbeziehung<br/>
::<math>E\; I_i w_i^{IV}(x) = q_0,\;\; i=\{1,2\}</math> beschrieben wird;</li>
:::<math>E\; I_i w_i^{IV}(x) = q_0,\;\; i=\{1,2\}</math><br/>
beschrieben wird;</li>
<li>Rand- und Übergangsbedingungen in den Punkten A, B, C.</li>
<li>Rand- und Übergangsbedingungen in den Punkten A, B, C.</li>
</ol>
</ol>
Zeile 60: Zeile 63:
</td></tr>
</td></tr>
</table>
</table>


Zusätzlich zum "klassischen" Randwertproblem haben wir hier eine geometrische Zwangsbedingung durch die starren Stäbe.
Zusätzlich zum "klassischen" Randwertproblem haben wir hier eine geometrische Zwangsbedingung durch die starren Stäbe.


==tmp==
<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Header
{{MyCodeBlock|title=Header
|text=Text
|text=
In dieser Lösung arbeiten wir mit dimensionslosen Koordinaten für die unabhängige Koordinate ''x'' und die abhängige Koordinate ''w(x)''.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/*******************************************************/
/* MAXIMA script                                      */
/* version: wxMaxima 18.10.1                           */
/* author: Andreas Baumgart                            */
/* last updated: 2019-08-29                            */
/* ref: TM-C, Labor 1, klassische, dimensionsbehaftete */
/* Vorgehensweise                                      */
/* description: finds the analytic solution for        */
/*              lab problem #1                        */
/*******************************************************/
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Declarations
{{MyCodeBlock|title=Declarations
|text=Text
|text=
Die Streckenlast auf den Balken ist natürlich seine Gewichtskraft, also
 
::<math>\displaystyle q_0 = \frac{m\;g}{\ell}</math>.
 
Später werden wir noch die dimensionslose Koordinate
 
::<math>\xi = \displaystyle \frac{x}{\ell}</math>
 
gebrauchen.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/* declare variational variables - see 6.3 Identifiers */
declare( "ℓ", alphabetic);
declare( "ϕ", alphabetic);
 
/* system parameters                                  */
params: [q[0]    = m*g/ℓ];
 
dimless: [x = xi*ℓ];
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Integration Of Differential Equation
{{MyCodeBlock|title=Integration Of Differential Equation
|text=Text
|text=
In Bereich I und II gilt dieselbe Bewegungs-Differentialgleichung
 
::<math>E\,I\, w_i^{IV}(x) = q_0 ,\;\; i=\{1,2\}</math>,
 
die wir durch Integration lösen und dann bereichsweise an Rand- und Übergangsbedingungen anpassen. Die Bedeutung der gesuchten Auslenkung ''w'' und seiner Ableitungen sind
 
::<math>\begin{array}{ll} \ldots\text{ die Auslenkung: }&\displaystyle w_i(x) \\\ldots\text{ die Verdrehung: }&\displaystyle \phi_i(x) = \frac{d\,w_i(x)}{d\,x}\\ \ldots\text{ das Biege-Moment: }&\displaystyle M_i(x) = - E I \frac{d^2\,w_i(x)}{d\,x^2}\\ \ldots\text{ die Querkraft: }&\displaystyle Q_i(x) = - EI \frac{d^3\,w_i(x)}{d\,x^3} \end{array}</math>
 
Wir finden wir für Bereich ''i'':
 
::<math>\begin{array}{rcl}
EI \cdot w_i( x) &:=&\displaystyle  \frac{{q_0}\, {{x}^{4}}}{24}+\frac{{C_{2,3}}\, {{x}^{3}}}{6}+\frac{{C_{2,2}}\, {{x}^{2}}}{2}+{C_{2,1}} x+{C_{2,0}}\\
EI \cdot \phi_i( x) &:=&\displaystyle  \frac{{q_0}\, {{x}^{3}}}{6}+\frac{{C_{2,3}}\, {{x}^{2}}}{2}+{C_{2,2}} x+{C_{2,1}} \\
M_i(x) &:=&\displaystyle -\frac{{q_0}\, {{x}^{2}}}{2}-{C_{2,3}} x-{C_{2,2}}\\
Q_i(x) &:=&\displaystyle  -{q_0} x-{C_{2,3}}\\
\end{array}</math>.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/******************************************************/
/* part I : Boundary Value Problem Formulation        */
/******************************************************/
/*
/* field                                              */
dgl : EI*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]]];
/* section I */
define(  w[1](x), ratsimp(subst(sections[1],subst(displ,w(x)))));
define(  ϕ[1](x), ratsimp(    diff(w[1](x),x  )));
define(  M[1](x), ratsimp(-EI*diff(w[1](x),x,2)));
define(  Q[1](x), ratsimp(-EI*diff(w[1](x),x,3)));
/* section II */
define(  w[2](x), ratsimp(subst(sections[2],subst(displ,w(x)))));
define(  ϕ[2](x), ratsimp(    diff(w[2](x),x  )));
define(  M[2](x), ratsimp(-EI*diff(w[2](x),x,2)));
define(  Q[2](x), ratsimp(-EI*diff(w[2](x),x,3)));
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
 
<!-------------------------------------------------------------------------------->
{{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. Und zusätzlich - und das ist hier besonders - brauchen wir noch je eine Gleichung für die Stabkräfte ''F<sub>B</sub>'' und ''F<sub>C</sub>''.
 
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.
 
Die Normalkräfte ''N'' brauchen wir dabei nicht auszuwerten.


====Aus Rand "A"====
====Aus Rand "A"====
Zeile 127: Zeile 204:
</td><td>''Geometrische Randbedingungen''<blockquote><blockquote>keine</blockquote></blockquote>''Kraft- und Momenten-Randbedingungen''
</td><td>''Geometrische Randbedingungen''<blockquote><blockquote>keine</blockquote></blockquote>''Kraft- und Momenten-Randbedingungen''


#<math>-  M_{C,-} = 0</math>
# <math>-  M_{C,-} = 0</math>
# <math>-  Q_{C,-} - F_C = 0</math>
# <math>-  Q_{C,-} - F_C = 0</math>
</td></tr>
</td></tr>
Zeile 136: Zeile 213:
<tr><td>''Momentengleichgewicht''<br/>
<tr><td>''Momentengleichgewicht''<br/>
Für de starren Stäbe stellen wir die Summe aller Momente um "a" auf:
Für de starren Stäbe stellen wir die Summe aller Momente um "a" auf:
# <math>\displaystyle \ell \cdot \left( 2 m g + \frac{1}{2} m g +{F_B} \right) +2 \ell \cdot \left( \frac{1}{2}m g+F_C \right) =0<br/>
# <math>\displaystyle \ell \cdot \left( 2 m g + \frac{1}{2} m g +{F_B} \right) +2 \ell \cdot \left( \frac{1}{2}m g+F_C \right) =0</math><br/>
''Kinemtische Verträglichkeit''<br/>
''Kinemtische Verträglichkeit''<br/>
Eine Gleichung fehlt noch - und das ist die kinematische Zwangsbedingung aus dem Mechanismus der starren Stäbe, nämlich
Eine Gleichung fehlt noch - und das ist die kinematische Zwangsbedingung aus dem Mechanismus der starren Stäbe, nämlich
Zeile 149: Zeile 226:


Aber mit den Randbedingungen oben steht uns nun ein vollständiges Gleichungssystem für diese zehn Unbekannten - die Integrationskonstanten und die Stabkräfte - zur Verfügung.
Aber mit den Randbedingungen oben steht uns nun ein vollständiges Gleichungssystem für diese zehn Unbekannten - die Integrationskonstanten und die Stabkräfte - zur Verfügung.
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Boundary Conditions
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/******************************************************/
/* part II: boundary conditions                      */
node[A]: [ w[1](0) = 0,
          ϕ[1](0) = 0];
node[B]: [ w[1](ℓ) = w[2](ℓ),
          ϕ[1](ℓ) = ϕ[2](ℓ),
          -Q[1](ℓ) - F[B] + Q[2](ℓ) = 0,
          -M[1](ℓ) + M[2](ℓ) = 0];
node[C]: [ M[2](2*ℓ) = 0,
          -Q[2](2*ℓ) - F[C] = 0];
node[a]: [ ℓ*(F[B]+1/2*m*g+2*m*g) + 2*ℓ*(F[C]+1/2*m*g) = 0,
          w[1](ℓ) = w[2](2*ℓ)/2];
 
BCs : append(node[A],node[B],node[C],node[a]);       
scale: [EI, EI, EI, EI,
        1, 1, 1, 1,
        1/ℓ, EI];
BCs : subst(params,expand(scale*BCs));
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Prepare for Solver
{{MyCodeBlock|title=Prepare for Solver
|text=Text
|text=
Das Gleichungssystem wollen wir als
 
::<math>\underline{\underline{A}}\cdot\underline{X}= \underline{b}</math>
 
schreiben, also - hier nach Einsetzen der System-Parameter:
 
::<math>\begin{pmatrix}1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
1 & \ell & \frac{{{\ell}^{2}}}{2} & \frac{{{\ell}^{3}}}{6} & -1 & -\ell & -\frac{{{\ell}^{2}}}{2} & -\frac{{{\ell}^{3}}}{6} & 0 & 0\\
0 & 1 & \ell & \frac{{{\ell}^{2}}}{2} & 0 & -1 & -\ell & -\frac{{{\ell}^{2}}}{2} & 0 & 0\\
0 & 0 & 0 & 1 & 0 & 0 & 0 & -1 & -1 & 0\\
0 & 0 & 1 & \ell & 0 & 0 & -1 & -\ell & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & -1 & -2 \ell & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & -1\\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 2\\
1 & \ell & \frac{{{\ell}^{2}}}{2} & \frac{{{\ell}^{3}}}{6} & -\frac{1}{2} & -\ell & -{{\ell}^{2}} & -\frac{2 {{\ell}^{3}}}{3} & 0 & 0\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}}\\
{F_B}\\
{F_C}\end{pmatrix} = m g \cdot \begin{pmatrix}0\\
0\\
0\\
0\\
0\\
0\\
2 \ell\\
-2\\
\displaystyle -\frac{7}{2}\\
\displaystyle  \frac{7 {{\ell}^{3}}}{24}\end{pmatrix}</math>
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
Zeile 169: Zeile 292:
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Solving
{{MyCodeBlock|title=Solving
|text=Text
|text=
Das Lösen des Gleichungssystems liefert dann
 
::<math>\displaystyle \left( \begin{array}{c} C_{1,0}\\C_{1,1}\\C_{1,2}\\C_{1,3}\\C_{2,0}\\C_{2,1}\\C_{2,2}\\C_{2,3}\\F_B\\F_C \end{array}\right) = m\; g  \cdot \left(\begin{array}{c}
0\\
0\\
\displaystyle \frac{11 \ell}{2}\\
\displaystyle -\frac{29}{4}\\
\displaystyle -\frac{7 {{\ell}^{3}}}{6}\\
\displaystyle  \frac{7 {{\ell}^{2}}}{2}\\
\displaystyle  -\frac{3 \ell}{2}\\
\displaystyle -\frac{1}{4}\\
-7\\
\displaystyle  \frac{7}{4}
\end{array} \right)</math>.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/* integration constants = unknowns */
X : [C[1,0],C[1,1],C[1,2],C[1,3],C[2,0],C[2,1],C[2,2],C[2,3], F[B], F[C]];
ACM: augcoefmatrix(BCs,X);
/* system matrix and rhs */
AA :  submatrix(ACM,11);
bb : - col(ACM,11);
/* print OLE */
print(subst(params,AA),"*",transpose(X),"=",subst(params,bb))$
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
 
<!-------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Post-Processing
{{MyCodeBlock|title=Post-Processing
|text=Text
|text=
Die Ergebnisse plotten wir und nutzen dafür als Referenzgrößen die [[Sources/Lexikon/Standard-Lösungen|Standard-Lösungen]] für den Kragbalken unter Streckenlast mit
 
* <math>\displaystyle w_{ref} = \frac{q_0 \cdot (2 \ell)^4}{8} </math> und
* <math>\displaystyle \phi_{ref} = \frac{q_0 \cdot (2 \ell)^3}{6}</math>.
 
Damit sehen die Ergebnisse so aus ...
 
====... für w(x): ====
[[Datei:Kw55-21.png|mini|Biegelinie ''w(x)''|alternativtext=|ohne]]
====... für ''Φ(x)'':====
[[Datei:Kw55-22.png|mini|Kippwinkel ''w'(x)''|alternativtext=|ohne]]
====... für M(x):====
[[Datei:Kw55-23.png|mini|Biegemoment M(x)|alternativtext=|ohne]]
====... für Q(x):====
[[Datei:Kw55-24.png|mini|Querkraft ''Q(x)''|alternativtext=|ohne]]
 
====... für die Lager-Reaktionskräfte:====
::<math>\begin{array}{ll}
{Q_A}=&\displaystyle  m g \frac{29}{4},\\
{M_A}=&\displaystyle - m g \frac{11}{2} \ell
\end{array}</math>
 
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+1
/* bearing forces and moments */
reactForces: [Q[A] = Q[1](0),
              M[A] = M[1](0)];
subst(sol, reactForces);
/* plot displacements */
fcts: [[ w [1](x), w [2](x)],
      [ ϕ [1](x), ϕ [2](x)],
      [ M [1](x), M [2](x)],
      [ Q [1](x), Q [2](x)]];
facts: [1/(q[0]*(2*ℓ)^4/(8*EI)), 1/(q[0]*(2*ℓ)^3/(6*EI)), 1/(m*g*ℓ), 1/(2*m*g)]; /* aus Lastfall 6 */
textlabels : ["← w(x)/w[ref]]", "← w'(x)/ϕ[ref] →", "M(x)/(m[B]*g*ℓ) →", "Q(x)/(2 m g) →"];
 
for i: 1 thru 4 do(
  f : ratsimp(expand(float(subst(dimless, subst(params,facts[i]*[subst(sol, fcts[i][1]),
                                                                subst(sol, fcts[i][2])]))))),
  preamble: if i<=2 then "set yrange [] reverse" else "set yrange []",
  plot2d([[parametric, t, subst(t,xi,f[1]), [t,0,1]],
          [parametric, t, subst(t,xi,f[2]), [t,1,2]]],
                            [legend, "sec. I", "sec. II"],
                            [gnuplot_preamble, preamble],
                            [xlabel, "x/ℓ →"],
                            [ylabel, textlabels[i]]))$
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Zeile 193: Zeile 383:
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
</table>
</table>
[[Datei:Kw55-11A.png|rahmenlos]][[Datei:Kw55-11C.png|rahmenlos]]
[[Datei:Kw55-01.png|mini|Lageplan]]
[[Datei:Kw50-11AB.png|rahmenlos]]
[[Datei:Kw55-05.png|rahmenlos]][[Datei:Kw50-11BC.png|rahmenlos]]
[[Datei:Kw55-21.png|ohne|mini|Auslenkung ''w(x)'']]
[[Datei:Kw55-22.png|mini|''Kippwinkel ϕ(x)'']]
[[Datei:Kw55-23.png|mini|Moment ''M(x)'']]
[[Datei:Kw55-24.png|ohne|mini|Querkraft ''Q(x)'']]


<hr/>
<hr/>

Aktuelle Version vom 31. März 2021, 07:53 Uhr


Aufgabenstellung

Die parallelen Stäbe ABC und abc haben je die Länge 2ℓ. Sie sind jeweils in b-B und c-C gelenkig mit einem vertikalen Stab verbunden. Die Stäbe abc, bB und cC sind starr, Stab ABC hat die Biegesteifigkeit EI. Alle Stäbe haben eine Masse m je Länge , die Erdbeschleunigung ist g.


Lageplan

Gesucht ist die analytische Lösung für ein Euler-Bernoulli-Modell der Struktur.

Wir lösen das Gleichungssystem zur Bestimmung der Integrationskonstanten der Differentialgleichung des Euler-Bernoulli-Balkens und geben die grafischen Lösungen für w, w', M und Q an.

Gegeben: ℓ, EI, m, g

Lösung mit Maxima

Das System besteht aus den drei starren Stäben und dem elastischen Balken.

Koordinaten

Die Verschiebungen und Verbiegungen der Stäbe verstehen wir am besten, wenn wir uns das System einmal im ausgelenkten Zustand ansehen. Gleichgewichtsbedingungen für das starre System erhalten wir einfach wie in TM-1 aus einer Momentenbilanz um A, die Gleichgewichtsbedingungen für den Euler-Bernoulli-Balken ist die Feld-Differentialgleichung, deren Integrationsbedingungen wir aus den Randbedingungen erhalten.

Die Auslenkungen des Balkens in B und C bezeichnen wir mit

  • wB = w( ℓ)
  • wC = w(2ℓ)

Wir schneiden beide Systemteile frei:

  

Als Schnittkräfte führen wir die beiden Stabkräfte

  • FB und
  • FC

ein, die zunächst unbekannt sind. Wir müssen überlegen, wo wir Bedingungen für diese beiden Größen herbekommen.

Die Lösung der Teilaufgabe für den Euler-Bernoulli-Balken ist ein klassisches Randwertproblem mit

  1. zwei Gebieten, in denen ein Euler-Bernoulli-Balken in AB und BC durch eine Streckenlast q0 belastet ist und somit durch die Differentialbeziehung

    beschrieben wird;
  2. Rand- und Übergangsbedingungen in den Punkten A, B, C.

Die Biegesteifigkeit des Balkens ist konstant (also nicht von "x" abhängig), wir können als den Index "i" beim Flächenmoment also weglassen.

Wir verwenden ein x bzw. ξ als Koordinaten in beiden Gebieten, in der Übersicht sieht das Randwertproblem mit Kraft-Randbedingungen also so aus:

Rand
A
Bereich IÜbergang
B
Bereich IIRand
C
nur
"geometrische"
Randbedingungen.

Zusätzlich zum "klassischen" Randwertproblem haben wir hier eine geometrische Zwangsbedingung durch die starren Stäbe.


Header

In dieser Lösung arbeiten wir mit dimensionslosen Koordinaten für die unabhängige Koordinate x und die abhängige Koordinate w(x).


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 18.10.1                           */
/* author: Andreas Baumgart                            */
/* last updated: 2019-08-29                            */
/* ref: TM-C, Labor 1, klassische, dimensionsbehaftete */
/* Vorgehensweise                                      */
/* description: finds the analytic solution for        */
/*              lab problem #1                         */
/*******************************************************/




Declarations

Die Streckenlast auf den Balken ist natürlich seine Gewichtskraft, also

.

Später werden wir noch die dimensionslose Koordinate

gebrauchen.


/* declare variational variables - see 6.3 Identifiers */
declare( "ℓ", alphabetic);
declare( "ϕ", alphabetic);

/* system parameters                                  */
params: [q[0]     = m*g/ℓ];

dimless: [x = xi*ℓ];




Integration Of Differential Equation

In Bereich I und II gilt dieselbe Bewegungs-Differentialgleichung

,

die wir durch Integration lösen und dann bereichsweise an Rand- und Übergangsbedingungen anpassen. Die Bedeutung der gesuchten Auslenkung w und seiner Ableitungen sind

Wir finden wir für Bereich i:

.

/******************************************************/
/* part I : Boundary Value Problem Formulation        */
/******************************************************/
/* 
/* field                                              */
dgl : EI*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]]];
 
/* section I */
define(  w[1](x), ratsimp(subst(sections[1],subst(displ,w(x)))));
define(  ϕ[1](x), ratsimp(    diff(w[1](x),x  )));
define(  M[1](x), ratsimp(-EI*diff(w[1](x),x,2)));
define(  Q[1](x), ratsimp(-EI*diff(w[1](x),x,3)));
 
/* section II */
define(  w[2](x), ratsimp(subst(sections[2],subst(displ,w(x)))));
define(  ϕ[2](x), ratsimp(    diff(w[2](x),x  )));
define(  M[2](x), ratsimp(-EI*diff(w[2](x),x,2)));
define(  Q[2](x), ratsimp(-EI*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. Und zusätzlich - und das ist hier besonders - brauchen wir noch je eine Gleichung für die Stabkräfte FB und FC.

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.

Die Normalkräfte N brauchen wir dabei nicht auszuwerten.

Aus Rand "A"

Geometrische Randbedingungen
w(0) = 0
ϕ(0) = 0

Kraft- und Momenten-Randbedingungen

keine

Aus Übergang "B"

Geometrische Randbedingungen

Kraft- und Momenten-Randbedingungen

Aus Rand "C"

Geometrische Randbedingungen

keine

Kraft- und Momenten-Randbedingungen

Aus Rand a (Gelenk-Lager in a)

Momentengleichgewicht

Für de starren Stäbe stellen wir die Summe aller Momente um "a" auf:


Kinemtische Verträglichkeit
Eine Gleichung fehlt noch - und das ist die kinematische Zwangsbedingung aus dem Mechanismus der starren Stäbe, nämlich

Ein bisschen exotisch ist, dass wir nun zehn Unbekannte haben, nämlich

Aber mit den Randbedingungen oben steht uns nun ein vollständiges Gleichungssystem für diese zehn Unbekannten - die Integrationskonstanten und die Stabkräfte - zur Verfügung.


/******************************************************/
/* part II: boundary conditions                       */
node[A]: [ w[1](0) = 0,
           ϕ[1](0) = 0];
node[B]: [ w[1](ℓ) = w[2](ℓ),
           ϕ[1](ℓ) = ϕ[2](ℓ),
          -Q[1](ℓ) - F[B] + Q[2](ℓ) = 0,
          -M[1](ℓ) + M[2](ℓ) = 0];
node[C]: [ M[2](2*ℓ) = 0,
          -Q[2](2*ℓ) - F[C] = 0];
node[a]: [ ℓ*(F[B]+1/2*m*g+2*m*g) + 2*ℓ*(F[C]+1/2*m*g) = 0,
           w[1](ℓ) = w[2](2*ℓ)/2];

BCs : append(node[A],node[B],node[C],node[a]);        
scale: [EI, EI, EI, EI,
        1, 1, 1, 1,
        1/ℓ, EI];
BCs : subst(params,expand(scale*BCs));




Prepare for Solver

Das Gleichungssystem wollen wir als

schreiben, also - hier nach Einsetzen der System-Parameter:


1+1




Solving

Das Lösen des Gleichungssystems liefert dann

.

/* integration constants = unknowns */
X : [C[1,0],C[1,1],C[1,2],C[1,3],C[2,0],C[2,1],C[2,2],C[2,3], F[B], F[C]];
ACM: augcoefmatrix(BCs,X);
/* system matrix and rhs */
AA :   submatrix(ACM,11);
bb : - col(ACM,11);
/* print OLE */
print(subst(params,AA),"*",transpose(X),"=",subst(params,bb))$




Post-Processing

Die Ergebnisse plotten wir und nutzen dafür als Referenzgrößen die Standard-Lösungen für den Kragbalken unter Streckenlast mit

  • und
  • .

Damit sehen die Ergebnisse so aus ...

... für w(x):

Biegelinie w(x)

... für Φ(x):

Kippwinkel w'(x)

... für M(x):

Biegemoment M(x)

... für Q(x):

Querkraft Q(x)

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


/* bearing forces and moments */
reactForces: [Q[A] = Q[1](0),
              M[A] = M[1](0)];
 
subst(sol, reactForces);
 
/* plot displacements */
 
fcts: [[ w [1](x), w [2](x)],
       [ ϕ [1](x), ϕ [2](x)],
       [ M [1](x), M [2](x)],
       [ Q [1](x), Q [2](x)]];
facts: [1/(q[0]*(2*ℓ)^4/(8*EI)), 1/(q[0]*(2*ℓ)^3/(6*EI)), 1/(m*g*ℓ), 1/(2*m*g)]; /* aus Lastfall 6 */
 
textlabels : ["← w(x)/w[ref]]", "← w'(x)/ϕ[ref] →", "M(x)/(m[B]*g*ℓ) →", "Q(x)/(2 m g) →"];

for i: 1 thru 4 do(
  f : ratsimp(expand(float(subst(dimless, subst(params,facts[i]*[subst(sol, fcts[i][1]),
                                                                 subst(sol, fcts[i][2])]))))),
  preamble: if i<=2 then "set yrange [] reverse" else "set yrange []",
  plot2d([[parametric, t, subst(t,xi,f[1]), [t,0,1]],
          [parametric, t, subst(t,xi,f[2]), [t,1,2]]],
                             [legend, "sec. I", "sec. II"],
                             [gnuplot_preamble, preamble],
                             [xlabel, "x/ℓ →"],
                             [ylabel, textlabels[i]]))$





Links

  • ...

Literature

  • ...