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 h 0 =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
E I ( x ) ⋅ d 2 d x 2 w ( x ) = − M ( x ) .
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.
Wir haben die Differential-Beziehungen
Q ′ = − q M ′ = + Q E I ⋅ ϕ ′ = − M w ′ = + ϕ
für die Querkraft Q , das Moment M , die Verkippung der Querschnitte ϕ und die Auslenkung w . Dabei ist die ortsabhängige Streckenlast
q ( x ) = A ( x ) ρ g mit A ( x ) = b ⋅ h ( x ) .
Die Höhe des Balkens ist linear veränderlich, nämlich
h ( x ) = h 0 ( 1 − ξ ) + h 1 ξ mit ξ = x ℓ .
📑 toggle code
/*******************************************************/
/* 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:
m = ρ h 0 + h 1 2 b ℓ g ,
h 1 = α h 0 .
Für die Ergebnisse setzten wir dann exemplarisch
α = 1 2
an - sonst werden die Ausdrücke zu umfangreich.
📑 toggle code
/* 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
w = W r e f ⋅ w ~ ϕ = Φ r e f ⋅ ϕ ~ M = M r e f ⋅ M ~ Q = Q r e f ⋅ Q ~ .
Wir wählen dazu als Referenzlösung den Kragbalken mit konstantem Querschnitt unter konstanter Streckenlast , mit der maximalen Auslenkung
W r e f = q r e f ℓ 4 8 E I r e f .
Als Referenz-Werte für die Streckenlast wählen wir hier die Werte unseres Balkens in x=ℓ/2 , demnach
q r e f = A r e f ρ g mit A r e f = b ⋅ h ( ℓ 2 ) I r e f = b ⋅ h ( ℓ 2 ) 3 1 2 .
Die Differentialgleichungen werden dadurch und mit der dimensionslosen Ortskoordinate
ξ = x ℓ
viel einfacher, nämlich
∂ ∂ ξ Q ~ = − 4 − 2 ξ 3 ∂ ∂ ξ M ~ = + Q ~ ∂ ∂ ξ ϕ ~ = − 8 I ( ξ ) I r e f ⋅ M ~ mit I ( ξ ) I r e f = ( α + 1 ) 3 8 ( ( α − 1 ) ξ + 1 ) 3 ∂ ∂ ξ w ~ = + ϕ ~ .
Damit es übersichtlicher wird, lassen wir die Tilden über den gesuchten dimensionslosen Funktionen gleich wieder weg.
📑 toggle code
/******************************************************/
/* 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
Q ( ξ ) = ξ 2 − 4 ξ + 3 C 3 3 ,
M ( ξ ) = ξ 3 − 6 ξ 2 + 9 C 3 ξ + 9 C 2 9 .
Bis hier ist alles wie gehabt - aber jetzt steht das ortsveränderliche Flächenmoment I(ξ) im Nenner. Maxima liefert
ϕ ( ξ ) ) = 6 ξ 3 + ( 2 C 1 − 2 4 ) ξ 2 + ( − 5 4 C 3 − 8 C 1 + 9 6 ) ξ + 5 4 C 3 − 2 7 C 2 + 8 C 1 − 9 6 2 ξ 2 − 8 ξ + 8
und im nächsten Schritt schließlich
w ( ξ ) = 3 ξ 3 + ( 2 C 1 − 6 ) ξ 2 + ( ( 7 2 − 5 4 C 3 ) ln ( − ξ − 2 2 ) − 4 C 1 + 2 C 0 ) ξ + ( 1 0 8 C 3 − 1 4 4 ) ln ( − ξ − 2 2 ) + 5 4 C 3 + 2 7 C 2 − 4 C 0 − 4 8 2 ξ − 4 .
Darin enthalten sind die unbekannten - also gesuchten - Integrationskonstanten
C 0 , C 1 , C 2 , C 3 .
📑 toggle code
/******************************************************/
/* 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
w ( 0 ) = 0 ϕ ( 0 ) = 0 M ( 1 ) = 0 Q ( 1 ) = 0
und damit
0 = C 3 − 1 0 = 9 C 3 + 9 C 2 − 5 0 = 5 4 C 3 − 2 7 C 2 + 8 C 1 − 9 6 0 = − 5 4 C 3 − 2 7 C 2 + 4 C 0 + 4 8 .
📑 toggle code
/******************************************************/
/* 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
( 0 0 0 − 3 0 0 − 9 − 9 0 − 8 2 7 − 5 4 − 4 0 2 7 5 4 ) ⋅ ( C 0 C 1 C 2 C 3 ) = ( − 3 − 5 − 9 6 4 8 ) ,
die wir lösen zu
C 0 = − 3 2 , C 1 = + 1 5 4 , C 2 = − 4 9 , C 3 = + 1 .
📑 toggle code
/* 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
W r e f = q r e f ⋅ ℓ 4 8 E I r e f , Φ r e f = W r e f ℓ , M r e f = m ⋅ g ⋅ ℓ , Q r e f = m ⋅ g , q r e f = m ⋅ g / ℓ , E I r e f = E ⋅ b ⋅ ( ( H 0 + H 1 ) / 2 ) 3 1 2
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)
📑 toggle code
/******************************************************/
/* 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
Links
Literature