Gelöste Aufgaben/Kw98

Aus numpedia
Zur Navigation springen Zur Suche springen


Aufgabenstellung

Ein Stab ABC ist durch eine lineare veränderliche Streckenlast q mit den Eckwerten qA in A und qB in B sowie dem Moment MB in B belastet. Der Stab (E-Modul: E) besteht aus zwei Sektionen mit den Längen l1 bzw. l2 sowie den Flächenmomenten I1 bzw. I2. Der Stab ist in A durch ein gelenkiges Festlager, in C durch eine Schiebehülse gelagert, in B sind die beiden Sektionen fest miteinander verbunden. Die Feder in A ist eine Drehfester mit Steifigkeit KA, die Federn in B und C sind Translationsfedern mit den Steifigkeiten kB, kC.


Lageplan

Gesucht ist die analytische Lösung für den Euler-Bernoulli-Balken.

Systemparameter

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

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

Diese Aufgabe mit der Methode der Finiten Elemente in KW96 gelöst.


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 15.08.2                           */
/* author: Andreas Baumgart                            */
/* last updated: 2017-09-06                            */
/* ref: TM-C, Labor 1                                  */
/* description                                         */
/*                                                     */
/*******************************************************/




Declarations

Wir definieren die Parameter

qA=3⋅kNm,l1=7⋅m10,EI1=33600Nm2,l2=21m40,EI2=16800Nm2,KA=96kNm,kC=22kNm,kB=98kNm,qB=12Nmm,MB=1470Nm.

und die Formfunktionen für die Streckenlast

ϕ0(ξ):=1−ξϕ1(ξ):=ξ.

/* system parameter */
units  : [mm = m/1000, cm = m/100];
params : [q[A]=3*N/mm, l[1]=700*mm, EI[1] = 2.1*10^11*N/m^2 * 3*cm*(4*cm)^3/12];
simple : [l[2] = 3/4*l[1], EI[2] = EI[1]/2,
          K[A]=2*EI[1]/l[1], k[C] = 512/229*EI[1]/l[1]^3, k[B] = EI[1]/l[1]^3, 
          q[B] = 4*q[A], M[B] = q[A]*l[1]^2];

params : append(params,makelist(lhs(simple[i])=subst(params,rhs(simple[i])),i,1,length(simple)));
params : subst(units,params);

/* form - functions  */
phi[0](xi) := 1 - xi;
phi[1](xi) :=     xi;




Formfunctions

In Bereich I und II gilt dieselbe Bewegungs-Differentialgleichung

EIiwiIV(xi)=q(xi),i={1,2} mit q(xi)=q0⋅ϕ0(ξ)+q1⋅ϕ1(ξ),

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

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

Die allgemeine Lösung ist mit

ϕi(x)=dw(x)dx

... für Bereich I:

w1(x):=120⋅l1⋅C1,0+120⋅l1⋅C1,1⋅x+60⋅l1⋅C1,2⋅x2+20⋅l1⋅C1,3⋅x3+5⋅l1⋅x4⋅qA+x5⋅(qB−qA)120⋅l1⋅EI1ϕ1(x):=120⋅l1⋅C1,1+120⋅l1⋅C1,2⋅x+60⋅l1⋅C1,3⋅x2+20⋅l1⋅x3⋅qA+5⋅x4⋅(qB−qA)120⋅l1⋅EI1M1(x):=−120⋅l1⋅C1,2+120⋅l1⋅C1,3⋅x+60⋅l1⋅x2⋅qA+20⋅x3⋅(qB−qA)120⋅l1Q1(x):=−120⋅l1⋅C1,3+120⋅l1⋅x⋅qA+60⋅x2⋅(qB−qA)120⋅l1

... für Bereich II:

w2(x):=120⋅l2⋅C2,0+120⋅l2⋅C2,1⋅x+60⋅l2⋅C2,2⋅x2+20⋅l2⋅C2,3⋅x3120⋅l2⋅EI2ϕ2(x):=120⋅l2⋅C2,1+120⋅l2⋅C2,2⋅x+60⋅l2⋅C2,3⋅x2120⋅l2⋅EI2M2(x):=−120⋅l2⋅C2,2+120⋅l2⋅C2,3⋅x120⋅l2Q2(x):=−C2,3.

/* solve ....*/
dgl : EI[i]*diff(w(x),x,4) = q[0]*phi[0](x/l[i]) + q[1]*phi[1](x/l[i]);
/* 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], q[0]=q[A], q[1]=q[B]],
           [i=2, %c4=C[2,0], %c3=C[2,1], %c2=C[2,2], %c1=C[2,3], q[0]= 0  , q[1]= 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

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

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.

Aus Rand "A"

Geometrische Randbedingungen
  1. w1(0)=0

Kraft- und Momenten-Randbedingungen

  1. KA⋅ϕA+MA,+=0 mit MA,+=−EI1⋅w″(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+MB,+=0
  2. −QB,−−kB⋅wB+−QB,+=0

Aus Rand "C"

Geometrische Randbedingungen
  1. ϕ2(ℓ2)=0

Kraft- und Momenten-Randbedingungen

  1. −QC,−−kC⋅wC=0

Und das liefert das Gleichungssystem aus 8 Gleichungen

(C1,0EI1=0C1,1⋅KAEI1−C1,2=0ℓ14⋅qB120⋅EI1+ℓ14⋅qA30⋅EI1+ℓ13⋅C1,36⋅EI1+ℓ12⋅C1,22⋅EI1+ℓ1⋅C1,1EI1+C1,0EI1=C2,0EI2ℓ13⋅qB24⋅EI1+ℓ13⋅qA8⋅EI1+ℓ12⋅C1,32⋅EI1+ℓ1⋅C1,2EI1+C1,1EI1=C2,1EI2ℓ1⋅qB2−C2,0⋅kBEI2+ℓ1⋅qA2−C2,3+C1,3=0−MB+ℓ12⋅qB6+ℓ12⋅qA3−C2,2+ℓ1⋅C1,3+C1,2=0ℓ22⋅C2,32⋅EI2+ℓ2⋅C2,2EI2+C2,1EI2=0−ℓ23⋅C2,3⋅kC6⋅EI2−ℓ22⋅C2,2⋅kC2⋅EI2−ℓ2⋅C2,1⋅kCEI2−C2,0⋅kCEI2+C2,3=0)

für die Integrationskonstanten.


1+1




Prepare for Solver

Das Gleichungssystem wollen wir als

A__⋅x_=b_

schreiben, also

(1EI100000000KAEI1−1000001EI1ℓ1EI1ℓ122⋅EI1ℓ136⋅EI1−1EI200001EI1ℓ1EI1ℓ122⋅EI10−1EI2000001−kBEI200−1001ℓ100−10000001EI2ℓ2EI2ℓ222⋅EI20000−kCEI2−ℓ2⋅kCEI2−ℓ22⋅kC2⋅EI2−ℓ23⋅kC−6⋅EI26⋅EI2)⋅x_=(00−ℓ14⋅qB120⋅EI1−ℓ14⋅qA30⋅EI1−ℓ13⋅qB24⋅EI1−ℓ13⋅qA8⋅EI1−ℓ1⋅qB2−ℓ1⋅qA2MB−ℓ12⋅qB6−ℓ12⋅qA300)

Die Matrix-Elemente sind für die Koeffizientenmatrix

a1,1=1/EI1a2,2=KA/EI1a2,3=−1a3,1=1/EI1a3,2=ℓ1/EI1a3,3=ℓ12/(2⋅EI1)a3,4=ℓ13/(6⋅EI1)a3,5=−1/EI2a4,2=1/EI1a4,3=ℓ1/EI1a4,4=ℓ12/(2⋅EI1)a4,6=−1/EI2a5,4=1a5,5=−kB/EI2a5,8=−1a6,3=1a6,4=ℓ1a6,7=−1a7,6=1/EI2a7,7=ℓ2/EI2a7,8=ℓ22/(2⋅EI2)a8,5=−kC/EI2a8,6=−(ℓ2⋅kC)/EI2a8,7=−(ℓ22⋅kC)/(2⋅EI2)a8,8=−(ℓ23⋅kC−6⋅EI2)/(6⋅EI2)

und für die rechte Seite

b1=0b2=0b3=(−(ℓ14⋅qB)/(120⋅EI1))−(ℓ14⋅qA)/(30⋅EI1)b4=(−(ℓ13⋅qB)/(24⋅EI1))−(ℓ13⋅qA)/(8⋅EI1)b5=(−(ℓ1⋅qB)/2)−(ℓ1⋅qA)/2b6=MB−(ℓ12⋅qB)/6−(ℓ12⋅qA)/3b7=0b8=0.

/* augmented coeff matrix */
ACM: augcoefmatrix(BCs,ICs);
AA :   submatrix(ACM,9);
bb : - col(ACM,9);

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

C1,0=0,C1,1=246.1Nm2,C1,2=703.2Nm,C1,3=−2404.3N,C2,0=127.6Nm3,C2,1=224.7Nm2,C2,2=−979.8Nm,C2,3=2101.8N.

1+1




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:

Az=2404.3N,MA=703.2Nm,Bz=743.9N,Cz=2101.8N,MC=−123.7Nm

/* 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](l[2]),
              M[C] = M[2](l[2])];

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

/* 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])]];
facts: [EI[1]/(l[1]^4*q[A]),EI[1]/(l[1]^3*q[A]),1/(l[1]^2*q[A]),1/(l[1]^1*q[A])];
subst(M[B]/l[1]^2,q[A],facts);
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(simple,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],
  plot2d(toplot,[xi,0,1+subst(simple,l[2]/l[1])], [legend, "sec. I", "sec. II"],
                             [gnuplot_preamble, "set yrange [] reverse"] ,
                             [xlabel, "x/l[1] ->"],
                             [ylabel, textlabels[i]]))$





Links

  • ...

Literature

  • ...