Gelöste Aufgaben/Kw50: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 298: Zeile 298:
  {{C}_{2,2}}\\
  {{C}_{2,2}}\\
  {{C}_{2,3}}\\
  {{C}_{2,3}}\\
S\end{pmatrix} = \begin{pmatrix}-\frac{g\cdot {{m}_{B}}}{5\cdot {\ell_{0}}}\\ 0\\ 0\\ 0\\ 0\\ 0\\ -\frac{g\cdot {{m}_{B}}}{24\cdot {\ell_{0}}}\\ -\frac{4\cdot g\cdot {{m}_{B}}}{3\cdot {\ell_{0}}}\\ -\frac{g\cdot {{m}_{B}}}{{{3}^{\frac{9}{2}}}\cdot {\ell_{0}}}\end{pmatrix}</math>
\end{pmatrix} = \begin{pmatrix}-\frac{g\cdot {{m}_{B}}}{5\cdot {\ell_{0}}}\\ 0\\ 0\\ 0\\ 0\\ 0\\ -\frac{g\cdot {{m}_{B}}}{24\cdot {\ell_{0}}}\\ -\frac{4\cdot g\cdot {{m}_{B}}}{3\cdot {\ell_{0}}}\\ -\frac{g\cdot {{m}_{B}}}{{{3}^{\frac{9}{2}}}\cdot {\ell_{0}}}\end{pmatrix}
</math>.
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>

Version vom 31. März 2021, 09:21 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

Geben Sie die analytische Lösung für ein Euler-Bernoulli-Modell der Brücke in dimensiuonslosen Koordinaten an.

Ermitteln Sie für dabei die Verläufe der Schnittgrößen und Verschiebungen im Balken für diese Parameter:

Lösung mit Maxima

Die Aufgabe 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 (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 also so aus:

Rand
A
Bereich IÜbergang
B
Bereich IIRand
C

Zusätzlich zum "klassischen" Randwertproblem haben wir hier eine geometrische Zwangsbedingung: Durch die Umlenkrolle ist die vertikale Bewegung in den Punkten A und B gekoppelt!

Wie? Das machen wir uns an einem Bild klar:

Geometrische Zwangsbedingung

In linearer Näherung ist der Zusammenhang zwischen der Seil-Abwicklung ΔsA und der vertial-Verschibung WA in Punkt A

.

Analog gilt für Punkt B

.

Da das Seil undehnbar ist, gilt außerdem

Diese zusätzliche Bedingung ist das entscheidende Element dieser Aufgabe.

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-02-12                            */
/* ref: TM-C, Labor 1, dimensionless representation    */
/* description: finds the analytic solution for        */
/*              lab problem #1                         */
/*******************************************************/




Declarations

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

.
Geometrie
Geometrische Zusammenhänge müssen wir auch anschreiben, so für

mit

.

Und wir wählen noch eine Bezugslänge Bez zu

aus der tabellierten Lösung für einen Kragbalken der Länge und einer Endlast mB g. Das erscheint nicht sonderlich schlau - es gibt Standard -Lastfälle die besser passen würden. Aber dann schleppen wir die ganze Zeit Koeffizienten wie z.B. 5/384 mit durch die Rechnungen - das macht die Arbeit unübersichtlich.


/* declare variational variables - see 6.3 Identifiers */
declare("Δs", alphabetic);
declare( "ϕ", 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*/




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. Diese Aufgabe wird etwas übersichtlicher, wenn wir die Auslenkung w und die Ortskoordinate x dimensionslos machen. So wählen wir:

und setzten für die Bezugslänge die Auslenkung eines Kragbalkens unter konstanter Streckenlast (hier qA) an.

Zusätzlich wählen wir eine unabhängige, dimensionslose Ortskoordinaten für die Bereich I und II, die ihren Ursprung in den Punkt A hat:

Mit den weiteren Gleichungen für

finden wir für Bereich i:

.

/******************************************************/
/* Boundary Value Problem Formulation                 */
/* part I: field                                      */
dgl : EI*ℓ[Bez]*diff(w(xi),xi,4)/ℓ[0]^4 = q[0];
dgl: subst(dimless,dgl);
 
/* generic solution */
displ : solve(integrate(integrate(integrate(integrate(dgl,xi),xi),xi),xi),w(xi));
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](xi),  ratsimp(subst(sections[1],subst(displ,ℓ[Bez]*w(xi)))));
define(Phi[1](xi),      diff(w[1](xi),xi  )/ℓ[0]^1);
define(  M[1](xi), -EI*diff(w[1](xi),xi,2)/ℓ[0]^2);
define(  Q[1](xi), -EI*diff(w[1](xi),xi,3)/ℓ[0]^3);
 
/* section II */
define(  w[2](xi),  ratsimp(subst(sections[2],subst(displ,ℓ[Bez]*w(xi)))));
define(Phi[2](xi),      diff(w[2](xi),xi  )/ℓ[0]);
define(  M[2](xi), -EI*diff(w[2](xi),xi,2)/ℓ[0]^2);
define(  Q[2](xi), -EI*diff(w[2](xi),xi,3)/ℓ[0]^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 eine Gleichung für die Seilkraft S.

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
  • keine

Kraft- und Momenten-Randbedingungen

Aus Übergang "B"

Geometrische Randbedingungen

Kraft- und Momenten-Randbedingungen

Aus Rand "C"

Geometrische Randbedingungen

Kraft- und Momenten-Randbedingungen

Aus Rand "D" (Umlenkrolle für das Seil)

Kinematische Verträglichkeit für das Abwickeln des Seils

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

Aber mit den Randbedingungen oben steht uns nun ein vollständiges Gleichungssystem für neun Unbekannte - die Integrationskonstanten und S - zur Verfügung.


/******************************************************/
/* Boundary Value Problem Formulation                 */
/* part II: boundary conditions                       */
node[A]: [ Q[1](0)+m[A]*g-S*sin(alpha[A]) = 0,
           M[1](0) = 0];
node[B]: [ w[1](ℓ[1]/ℓ[0]) = w[2](ℓ[1]/ℓ[0]),
           Phi[1](ℓ[1]/ℓ[0]) = Phi[2](ℓ[1]/ℓ[0]),
          -Q[1](ℓ[1]/ℓ[0]) - S*sin(alpha[B]) +Q[2](ℓ[1]/ℓ[0]) = 0,
          -M[1](ℓ[1]/ℓ[0]) + M[2](ℓ[1]/ℓ[0]) = 0];
node[C]: [ w[2](1) = 0,
          -M[2](1) + K[C]*Phi[2](1) = 0];
node[D]: subst([W[A]=w[1](0), W[B]=w[1](ℓ[1]/ℓ[0])] ,subst(geometry,[Δs[A]+Δs[B] = 0]));

BCs : subst(dimless,append(node[A],node[B],node[C],node[D]));        
scale: [1/ℓ[0], -1/ℓ[0]^2, EI/ℓ[0]^4, EI/ℓ[0]^3,
        1, 1/ℓ[0]^2, EI/ℓ[0]^4, 1/ℓ[0]^2,
        EI/ℓ[0]^4];
BCs : subst(geometry,subst(params,expand(scale*BCs)));




Prepare for Solver

Das Gleichungssystem wollen wir als

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

Fehler beim Parsen (Unbekannte Funktion „\begin{pmatrix}“): {\displaystyle \begin{pmatrix} 0 & 0 & 0 & -1 & 0 & 0 & 0 & 0 & -\frac{1}{2\cdot {\ell_{0}}}\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 1 & \frac{2}{3} & \frac{2}{{{MyCodeBlock|title=Prepare for Solver |text= Das Gleichungssystem wollen wir als ::<math>\underline{\underline{A}}\cdot\underline{X}= \underline{b}}

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

.

/* integration constants = unknowns */
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]];
ACM: augcoefmatrix(BCs,ICs);
/* system matrix and rhs */
AA :   submatrix(ACM,9);
bb : - col(ACM,9);
/* print OLE */
print(subst(params,AA),"*",x,"=",subst(params,bb));




Solving

Das Lösen des Gleichungssystems liefert dann

.

/* 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

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

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


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

expand(subst(dimless,subst(params,subst(sol, reactForces))));

/* plot displacements */

fcts: [[ w [1](xi), w [2](xi)],
       [Phi[1](xi),Phi[2](xi)],
       [ M [1](xi), M [2](xi)],
       [ Q [1](xi), Q [2](xi)]];
facts: [1/l[Bez], l[1]/l[Bez], 1/(q[A]*l[1]^2), 1/(q[A]*l[1])];

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





Links

  • Aufgabe Kw51 (Lösung dieser Aufgabe mit dem Ansatz der Finiten Elemente)
  • 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

  • ...