Gelöste Aufgaben/TC13

Aus numpedia
Version vom 9. April 2021, 06:42 Uhr von Mechaniker (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


Aufgabenstellung

Das System ist eine Variante von Aufgabe TC12. Hier ist eine Näherungslösung mit der Methode der Finiten Elemente gefragt. Das Sytem besteht aus zwei Sektionen mit den Längen 1 bzw. 2 sowie den Flächenmomenten I1 bzw. I2. 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.


Lageplan

Gesucht ist die FEM-Lösung mit zwei Elementen für den Euler-Bernoulli-Balken.

Die Systemparameter sind die gleichen wie in TC12, das dort gesuchte Flächenmoment I1 übernehmen wir zu

I1=54000 mm4.

Lösung mit Maxima

Header

Wir suchen eine Lösung mit den Standard-Trial-Functions (Hermitesche-Polynome) für einen Euler-Bernoulli-Balken. Aufpassen müssen wir am Rand "C". Hier sind Verschiebung und Verdrehung durch die Rolle gekoppelt. Die Element-Steifigkeitsmatrix müssen wir passend umschreiben.


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 15.08.2                           */
/* author: Andreas Baumgart                            */
/* last updated: 2018-04-15                            */
/* ref: TM-C, Labor 4                                  */
/* description: finds the FE solution for              */
/*              lab problem #4                         */
/*******************************************************/

/* declare variational variables - see 6.3 Identifiers */
declare("δA", alphabetic);
declare("δΠ", alphabetic);
declare("δW", alphabetic);
declare("δΦ", alphabetic);
declare("δw", alphabetic);




Declarations

Wir übernehmen die Systemparameter aus TC12 zu

1=1000mm,2=12,r=14,E=210000.0Nmm2,I1=54000mm4,I2=2I1,kB=3I1E13,q0=10Nmm,MB=q012,

und wählen als Referenzgröße wref für die Auslenkung des Balkens die maximale Verschiebung eines Kragbalkens unter konstanter Streckenlast:

wref=qo148EI1.

/*** declarations ***/
assume(l[i]>0);

/* system parameter */
units  : [mm = m/1000, cm = m/100];
params : [l[1]=1000*mm, l[2] = l[1]/2, r=l[1]/4,
          E    = 2.1*10^5*N/mm^2,
          I[1] = 54000*mm^4, I[2]=2*I[1],
          k[B] = 3*E*I[1]/l[1]^3,
          q[0]=10*N/mm, M[B]=q[0]*l[1]^2];

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

/* kinematics of boundary condition at "C" */
kinematics : [W[2]=-r*Φ[2], δW[2] = -r*δΦ[2]];

/* max. displacement of cantilevered beam under load q[0] */
dimless : [w[ref] = q[0]*l[1]^4/(8*E*I[1])];
print(subst(params,dimless))$




Formfunctions

Die Trial-Functions je Element "i" zur Komposition der Form-Funktion kopieren wir aus Finite Elemente Methode zu

ϕ1=2ξ33ξ2+1,ϕ2=i(ξ32ξ2+ξ),ϕ3=3ξ22ξ3,ϕ4=i(ξ3ξ2),

die Koordinaten der Verschiebung sind

Qi=(Wi1Φi1WiΦi).

Damit ist

wi(xi)=Wi1(2ξ33ξ2+1)+Φi1i(ξ32ξ2+ξ)+Wi(3ξ22ξ3)+Φii(ξ3ξ2).

/**** define form functions ***/
/* coordinates */
coords : [[ W[i-1], Φ[i-1], W[i], Φ[i]],
          [δW[i-1],δΦ[i-1],δW[i],δΦ[i]]];

/* tial-functions */
phi : [ 2*xi^3-3*xi^2+1,
       (xi^3-2*xi^2+xi)*l[i],
        3*xi^2-2*xi^3,
       (xi^3-xi^2)*l[i]];

/* form-function */
form : w(xi) = sum(coords[1][j]*phi[j],j,1,4);




Equilibrium Conditions

Die Gleichgewichtsbedingungen kommen aus dem Prinzip der virtuellen Verrückungen zu

δW=!0=δWaδΠ.

Wir sortieren die Elemente der virtuellen Arbeit nach den virtuellen Koordinaten und den Koordinaten des System und konstruieren daraus das gewöhnliche Gleichungssystem

K__Q_=P_.

Die Anteile an der gesamten virtuellen Arbeit kommen aus der virtuellen Formänderungsenergie δΠ und der virtuellen Arbeit der äußeren Lasten δWa.

Dabei ist für unsere zwei Elemente δΠ = δΠ1 + δΠ2' mit

δΠi=δQ_iTk__0Qi_

und der Element-Steifigkeitsmatrix

k__0=EIi3(126i126i6i4i26i2i2126i126i6i2i26i4i2).

Für Element 1 können wir diese Matrix direkt übernehmen, das heißt k1 = k0 für i=1.

Element 2 birgt eine Tücke: Hier sind Verschiebung W2 und Verdrehung Φ2 gekoppelt über die Kinematik der Rolle:

W2=rΦ2

Damit ist auch die Variation in diesen Koordinaten gekoppelt, also

δW2=rδΦ2.

Mit dieser Beziehung eliminieren wir demnach W2 aus der Formulierung der Gleichgewichtsbedingungen. Das Einsetzen der kinematischen Beziehungen in δΠ liefert nun als Element-Steifigkeitsmatrix

k__2=EI2l23(1262012r+6262422062r+222000012r+6262r+222012r2+122r+422),

bei der die Elemente der dritten Zeile (zu δWi) und der dritten Spalte (zu Wi) verschwinden.

Struktur der Steifigkeitsmatrix.

Wir setzen die Gesamt-Steifigkeitsmatrix K aus den beiden Element-Steifigkeitsmatrizen so zusammen:

Und das ist die anteilige Gesamt-Steifigkeitsmatrix der beiden Balken-Abschnitte:

K__=(12I1E136I1E1212I1E136I1E12006I1E124I1E16I1E122I1E10012I1E136I1E1212I2E23+12I1E136I2E226I1E12012I2rE23+6I2E226I1E122I1E16I2E226I1E124I2E2+4I1E106I2rE22+2I2E20000000012I2rE23+6I2E226I2rE22+2I2E2012I2r2E23+12I2rE22+4I2E2)

Auch die Feder ist ein elastisches Element und trägt damit eine virtuelle Formänderungsenergie, zu δΠ hinzu, nämlich

δΠ3=kBW1δW1

Diesen Beitrag müssen wir in Zeile 3, Spalte 3 hinzuaddieren, also mit der Anweisung

K3,3=K3,3+kB.

Auf der rechten Seite des Gleichungssystem bleiben die Beiträge der virtuellen Arbeiten äußerer Lasten stehen. Dies sind

δWa=1q0δw(x)dx+MBδΦ1,

wir erhalten

P_=(q012q01212q012MBq0121200).

Jetzt fehlen nur noch die Randbedingungen. Wir setzen

W0=0,

die kinematische Beziehung

W2=rΦ2

haben wir schon eingearbeit - bleibt also nur noch, die entsprechenden Spalten und Zeilen in den Matrizen K, Q und P zu eliminieren. Es bleibt das Gleichungssystem

(4I1E16I1E122I1E106I1E1212I2E23+12I1E13+kB6I2E226I1E1212I2rE23+6I2E222I1E16I2E226I1E124I2E2+4I1E16I2rE22+2I2E2012I2rE23+6I2E226I2rE22+2I2E212I2r2E23+12I2rE22+4I2E2)(Φ0W1Φ1Φ2)=(q01212q012MBq012120).

/**** equilibrium conditions ***/
/* generic stiffness matrix */
k[0] : E*I[i]/l[i]^3*makelist(makelist(
              integrate(
                      diff(phi[i],xi,2)*diff(phi[j],xi,2),
                                              xi,0,1),
                                               j,1,4),i,1,4);
k[0] : funmake('matrix,k[0]);

/* element stiffness matrices */
/* element 1 */
k[1] : subst([i=1],k[0]);
/* element 2 */
δΠ[2] : subst([i=2],coords[2].k[0].transpose(coords[1]));
δΠ[2] : expand(subst(kinematics, δΠ[2]));
k[2]  : funmake('matrix,makelist(makelist(coeff(coeff(δΠ[2],subst([i=2],coords[2])[m]),subst([i=2],coords[1])[n]),m,1,4),n,1,4));




/* compose system matrix */
NoN : 3; /* Number of Nodes*/
K : zeromatrix(2*NoN,2*NoN);

for m:1 thru 4 do
   for n:1 thru 4 do
      (K[  m,  n] : K[  m,  n] + k[1][m,n],
       K[2+m,2+n] : K[2+m,2+n] + k[2][m,n])$

/* add spring */
K[3,3] : K[3,3] + k[B]; /* W[1] */

/* compose righ-hand-side */
P : zeromatrix(6,1);
for m:1 thru 4 do
    P[m,1] : l[1]*integrate(q[0]*subst([i=1],phi[m]), xi,0,1);
P[4,1] : P[4,1] + M[B];


/* coordinates of displacement */
Q : matrix([W[0]],[Φ[0]],[W[1]],[Φ[1]],[W[2]],[Φ[2]]);


/* incorporate geometric boundary conditions */
/* eliminate rows / columns for W[0], Φ[2] (positions 1, 6) */
K : submatrix(1,submatrix(5,K,5),1);
Q : submatrix(1,submatrix(5,Q));
P : submatrix(1,submatrix(5,P));

print("k[1] = ", k[1])$
print("k[2] = ", k[2])$
print("K = ", K)$
print("Q = ", Q)$
print("P = ", P)$

print(K," * ",Q," = ",P)$




Solving

Auflösen nach Q liefert

Φ0=0.0157,W1=4.861018m,Φ1=+0.0682,Φ2=0.0262,

zusammen mit den Randbedingungen also

W0=0,Φ0=0.0157,W1=4.861018m,Φ1=+0.0682,W2=+0.00656 m,Φ2=0.0262.

/**** solve K Q = P ***/

sol[1] : linsolve_by_lu(subst(params,K),subst(params,P))[1]$
sol[1] : makelist(Q[i][1] = sol[1][i][1],i,1,4);
sol[1] : append(subst(params,[W[0]=0, W[2]=-r*subst(sol[1], Φ[2])]), sol[1]);




Post-Processing

Biegelinie w(x)

Die Auslenkung w(x) der Querschnitte tragen wir jetzt auf. Für die dimensionslose Darstellung wählen wir aus der analytischen Lösung für den Kragbalken unter konstanter Streckenlast

wref=q0148EI1=0.11 m

und tragen w(x)/wref auf:

Die maximale Auslenkung des Systems ist dann

wmax0.10.11 m11 mm,

und das entspricht der Vorgabe aus Aufgabe TC12.


/**** post-process  ***/
f1 : subst([xi=t],subst(params,subst(dimless,expand(subst(sol[1],subst([i=1],subst(form,w(xi)/w[ref])))))));
f2 : subst([xi=t],subst(params,subst(dimless,expand(subst(sol[1],subst([i=2],subst(form,w(xi)/w[ref])))))));
scale : subst(params,(l[2]/l[1]));

plot2d([[parametric,   t,       f1, [t, 0, 1]],
        [parametric, 1+t*scale, f2, [t, 0, 1]]],
       [gnuplot_preamble, "set yrange [] reverse"],
       [legend, "sec. I", "sec. II"],
       [xlabel, "x/l[1] →"], [ylabel, "w/w[ref] →"])$





Links

  • ...

Literature

  • ...