Gelöste Aufgaben/UEBI

Aus numpedia
Zur Navigation springen Zur Suche springen


Aufgabenstellung

Der Euler-Bernoulli-Balken AB wird durch seine Gewichtskraft belastet. Er ist in A fest eingespannt und hat eine konstante Breite b sowie eine zwischen A und B linear veränderliche Höhe h.

In UEBF haben wir eine Näherungslösung für dieses Problem berechnet.


Lageplan

Gesucht ist die analytische Lösung des Problems.

Gegeben sind für den Balken:

  • Länge , Breite b,
  • E-Modul E, Dichte ρ und
  • die Höhe h0=b und h1 jeweils in A und B; dazwischen ist die Höhe linear veränderlich.

Lösung mit Maxima

Um zur analytischen Lösung zukommen, müssen wir berücksichtigen, dass

.

Wir müssen also hier die Abhängigkeit der Querschnittseigenschaften von "x" in der Differentialbeziehung berücksichtigen. Das macht die Sache deutlich komplizierter als vorher.

Header

Wir haben die Differential-Beziehungen

für die Querkraft Q, das Moment M, die Verkippung der Querschnitte ϕ und die Auslenkung w. Dabei ist die ortsabhängige Streckenlast

Die Höhe des Balkens ist linear veränderlich, nämlich

.

/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 18.10.1                           */
/* author: Andreas Baumgart                            */
/* last updated: 2019-09-30                            */
/* ref: TM-C, Balken mit linear-veränderlicher Höhe    */
/* description: finds the analytic solution for        */
/*              problem                                */
/*******************************************************/

/* declare variational variables - see 6.3 Identifiers */
declare( "ℓ", alphabetic);
declare( "ϕ", alphabetic);




Declarations

Diese Abkürzungen führen wir ein:

,
.

Für die Ergebnisse setzten wir dann exemplarisch

an - sonst werden die Ausdrücke zu umfangreich.


/* make equations of motion dim'less with load case #6 */
reference : [Phi[ref] = W[ref]/ℓ, W[ref] = q[ref]*ℓ^4/(8*E I[ref]), 
             M[ref] = m*g*ℓ, Q[ref] = m*g, 
             q[ref] = m*g/ℓ, EI[ref]=E*b*((H[0]+H[1])/2)^3/12];

/* system parameters                                  */
params: [q[0]  = A(xi)*rho*g,
         A(xi) = b*h(xi),
         I(xi) = b*h(xi)^3/12,
         h(xi) = H[0]*(1-xi)+ H[1]*xi];
params: append(params,
               solve((H[0]+H[1])/2*b*ℓ*rho=m, rho));

geometry : [alpha=1/2];

dimless: [x = xi*ℓ, H[0]=b, H[1]=alpha*b];

sections: [%c4=C[0], %c3=C[1], %c2=C[2], %c1=C[3]];




Dimensionless Form of Differential Equations

Beim Aufintegrieren der Differentialgleichungen stören die vielen dimensionsbehafteten Parameter. Viel einfacher werden die Gleichungen, wenn wir sie in dimensionsloser Form - mit dimensionsloser Auslenkung, Kippwinkel, Biegemoment und Querkraft anschreiben, also

.

Wir wählen dazu als Referenzlösung den Kragbalken mit konstantem Querschnitt unter konstanter Streckenlast, mit der maximalen Auslenkung

.

Als Referenz-Werte für die Streckenlast wählen wir hier die Werte unseres Balkens in x=ℓ/2, demnach

.

Die Differentialgleichungen werden dadurch und mit der dimensionslosen Ortskoordinate

viel einfacher, nämlich

.

Damit es übersichtlicher wird, lassen wir die Tilden über den gesuchten dimensionslosen Funktionen gleich wieder weg.


/******************************************************/
/* Boundary Value Problem Formulation                 */
/* field                                              */

dgl : [        Q[ref]*diff(Q(xi),xi)/ℓ = - q(xi),
               M[ref]*diff(M(xi),xi)/ℓ = + Q[ref]*Q(xi),
       E*I(xi)*diff(Phi[ref]*ϕ(xi),xi)/ℓ = - M[ref]*M(xi),
               diff(W[ref]*w(xi),xi)/ℓ = + Phi[ref]*ϕ(xi)];

dgl: subst(reference,dgl);




Integration Of Differential Equation

Die Differentialbeziehungen lösen wir nun sukzessive zu

,
.

Bis hier ist alles wie gehabt - aber jetzt steht das ortsveränderliche Flächenmoment I(ξ) im Nenner. Maxima liefert

und im nächsten Schritt schließlich

.

Darin enthalten sind die unbekannten - also gesuchten - Integrationskonstanten

.

/******************************************************/
/* integrate differential equations                   */
displ : ratsimp(integrate(subst(dimless,ratsimp(subst(params,solve(dgl[1],Q(xi))))),xi));
displ : append(displ, ratsimp(integrate(subst(displ,solve(dgl[2],M(xi))),xi)));
displ : append(displ, ratsimp(
  integrate(
    ratsimp(subst(dimless,subst(geometry,subst(displ, subst(params,solve(dgl[3],'diff(ϕ(xi),xi))))))),xi
        )));
displ : append(displ, ratsimp(
    integrate(
      subst(displ,
        solve(dgl[4],w(xi))
        ),
      xi)));

displ : ratsimp(subst(sections, subst(geometry,displ)));




Boundary Conditions

Diese Unbekannten bestimmen wir aus den Randbedingungen, nämlich

und damit

.

/******************************************************/
/* part II: boundary conditions                       */
node[A]: [ w(0) = 0,
           ϕ(0) = 0];
node[B]: [ Q(1) = 0,
           M(1) = 0];

BCs : [subst(node[B],subst([xi=1],displ[1])),
       subst(node[B],subst([xi=1],displ[2])),
       subst(node[A],subst([xi=0],displ[3])),
       subst(node[A],subst([xi=0],displ[4]))];
scale: [3, 9, 8, 4];
BCs : expand(ratsimp(scale*BCs));




Solving

Zum Lösen bringen wir die Gleichungen in die Form

,

die wir lösen zu

.

/* integration constants = unknowns */
X : [C[0],C[1],C[2],C[3]];
ACM: augcoefmatrix(BCs,X);
/* system matrix and rhs */
AA :   submatrix(ACM,5);
bb : - col(ACM,5);
/* print OLE */
print(subst(params,AA),"*",transpose(X),"=",subst(params,bb))$

/******************************************************/
/* 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(X[i] = cc[i][1],i,1,4)$




Post-Processing

Die Ergebnisse schauen wir uns in dimensionsloser Form an, wobei wir die Standard-Lösungen für den Balken unter konstanter Streckenlast ansetzen.

Für

finden wir

  • ... für w(ξ):
    Auslenkung w(x)
  • ... für ϕ(ξ):
    Querschnitts-Kippung w'(x)
  • ... für M(ξ):
    Momentenverlauf M(x)
  • ... für Q(ξ):
    Querkraftverlauf Q(x)

/******************************************************/
/* post-processing                                    */

/* bearing forces and moments */
reactForces: [M[A] = M[ref]*M(0),
              Q[z] = Q[ref]*Q(0)];
reactForces: ratsimp(subst(sol, subst(subst([xi=0],displ),subst(reference,reactForces))));
 
/* plot displacements */
 
fcts: [ w (xi),
        ϕ (xi),
        M (xi),
        Q (xi)];

textlabels : ["← w(x)/w[rez]", "← w'(x)/ϕ[ref]", "M(x)/(m*g*ℓ) →", "Q(x)/(m g) →"];

for i: 1 thru 4 do(
  f : ratsimp(subst(geometry,subst(sol, subst(geometry,subst(dimless,subst(displ,subst(params,fcts[i]))))))),
  preamble: if i<=2 then "set yrange [] reverse" else "set yrange []",
  plot2d(f, [xi,0,1], [legend, false],
                      [gnuplot_preamble, preamble],
                      [xlabel, "x/ℓ →"],
                      [ylabel, textlabels[i]]) )$

/******************************************************/
/* print tabular values                                             */

for i: 1 thru 4 do(
  f : ratsimp(subst(geometry,subst(sol, subst(geometry,subst(dimless,subst(displ,subst(params,fcts[i])))))*facts[i])),
  N :100,
  print("table for",textlabels[i]),
  for j: 0 thru N do (
    t : j/N,
    print(float(t),";",expand(float(subst([xi=t],f))))
      ))$




Plot Data

Datenpunkte der Auslenkung w(ξ)
Die Tabelle enthält die Werte ξ und w(ξ) zum Herunterladen.

data
toggle: data listing →

0.92 ; 0.4517025229634247 
0.93 ; 0.4591915289818366 
0.94 ; 0.4666842273215563 
0.95 ; 0.4741797096282359 
0.96 ; 0.4816771779554077 
0.97 ; 0.4891759543576916 
0.98 ; 0.4966754912143446 
0.99 ; 0.5041753823419752 
1.0 ; 0.5116753749604923



Links

Literature

  • ...