Gelöste Aufgaben/Kw50

Aus numpedia
Zur Navigation springen Zur Suche springen


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:

KC=5EI0mA=mB5

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
    EIiwiIV(x)=q0,i={1,2} 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

sin(30)=ΔsAWA.

Analog gilt für Punkt B

sin(60)=ΔsBWB.

Da das Seil undehnbar ist, gilt außerdem

ΔsA+ΔsB=0

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

q0=mBg0.
Geometrie
Geometrische Zusammenhänge müssen wir auch anschreiben, so für
=1+2tan(αB)=H2tan(αA)=H

mit

αA=30,αB=60.

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

Bez=mBg33EI

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

EIwiIV(x)=q0,i={1,2},

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:

w=Bezw~

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:

ξ=x

Mit den weiteren Gleichungen für

 die Verdrehung: ϕi(x)=dwi(x)dx das Biege-Moment: Mi(x)=EId2wi(x)dx2 die Querkraft: Qi(x)=EId3wi(x)dx3

finden wir für Bereich i:

wi(ξ):=1mBg(18q00Bezξ4+120Ci,3Bezξ3+1230Ci,2Bezξ2+30Ci,1Bezξ)+30Ci,0Bezϕi(ξ):=1mBg(12q0Bezξ3+123Ci,3Bezξ2+3Ci,2Bezξ+3Ci,1Bez)Mi(ξ):=EI20mBg(3q0Bezξ26Ci,3Bezξ6Ci,2Bez)Qi(ξ):=EI02mBg(3q0Bezξ3Ci,3Bez).

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

[C1,0,C1,1,C1,2,C1,3,C2,0,C2,1,C2,2,C2,3]

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

  1. mAgSsin(αA)+QA,+=0 mit QA,+=EIw(x)|x=0
  2. MA,+=0 mit MA,+=EIw(x)|x=0

Aus Übergang "B"

Geometrische Randbedingungen
  1. w1(1)=w2(1)
  2. ϕ1(1)=ϕ2(1)

Kraft- und Momenten-Randbedingungen

  1. MB,+MB,+=0
  2. QB,Ssin(αB)+QB,+=0

Aus Rand "C"

Geometrische Randbedingungen
  1. w2()=0

Kraft- und Momenten-Randbedingungen

  1. KCΦCMC,=0 mit MC,=EIw(x)|x=

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

Kinematische Verträglichkeit für das Abwickeln des Seils
  1. ΔsA+ΔsB=0

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

X_=(C1,0C1,1C1,2C1,3C2,0C2,1C2,2C2,3S)

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

A__X_=b_

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

(000100001200010000001232948112329481001232901232900000000032001230012300000111216000000567201+32131332237200000)(C1,0C1,1C1,2C1,3C2,0C2,1C2,2C2,3)=(gmB5000000gmB2404gmB30gmB3920).

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

(C1,0C1,1C1,2C1,3C2,0C2,1C2,2C2,3S)=mBg0(+9.716104+0.00389+0.00.250+0.03940.169+0.5201.03+0.9000).

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

MC=0.2270gmB,Cz=0.030gmB


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

  • ...