Gelöste Aufgaben/TC12: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 154: Zeile 154:
====Aus Rand "C"====
====Aus Rand "C"====
<table class="wikitable" style="background-color:white;">
<table class="wikitable" style="background-color:white;">
<tr><td>[[Datei:TC12-11C2.png|rahmenlos|alternativtext=|160px]]<br/>
<tr><td>[[Datei:TC12-11C2.png|rahmenlos|alternativtext=|150px]]<br/>
&nbsp;&nbsp;&nbsp;&nbsp;[[Datei:TC12-11C1.png|rahmenlos|alternativtext=|130px]]
&nbsp;&nbsp;&nbsp;&nbsp;[[Datei:TC12-11C1.png|rahmenlos|alternativtext=|130px]]
</td><td>''Geometrische Randbedingungen''
</td><td>''Geometrische Randbedingungen''

Version vom 7. April 2021, 15:02 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<br/ 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

Fehler beim Parsen (Unbekannte Funktion „\begin{pmatrix}“): {\displaystyle \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{{{{MyCodeBlock|title=Prepare for Solver |text= Das Gleichungssystem wollen wir als ::<math>\underline{\underline{A}}\cdot\underline{x}= \underline{b}}

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)))));





Links

  • ...

Literature

  • ...