Maple Services

Beam Analysis

© 1997 Waterloo Maple Inc.

NOTE: This worksheet solves for the deflection, slope, bending moment, shear forces of an elastic beam.

Introduction

restart:

This application solves for the deflection, slope, bending moment, shear forces of an elastic beam. A Beam Analysis program is provided which is very general and accomodates a wide variety of support conditions. It uses the principles of MacCauley or singularity functions. The program also demonstrates the power of the Maple programming language.

[Maple OLE 2.0 Object]

Some Useful Macros

The following maps common names to appropriate singularity functions and simplify the definition of boundary conditions.
dist_force := (x) -> Heaviside(x): # distributed force
conc_force := (x) -> Dirac(x): # concentrated force
conc_moment := (x) -> Dirac(1,x): # concentrated moment
D2 := (x) -> D(D(x)): # short form for 2nd derivative
D1 := (x) -> D(x): # short form for 1st derivative

The beam_analyze program

The following subroutine solves for the deflection, slope, bending moment, shear forces of an elastic beam. The algorithm formulates the governing 4th order boundary value problem with McCauley forcing functions as the loading conditions, and appropriate boundary conditions for the supports. The BVP is then solved analytically using the method of superposition.

Inputs:
       a set of loading conditions using the concept of MacCauley functions
       a set of boundary conditions that specifies beam supports

Output:
       a table containing the desired solutions.

beam_analyze := proc(loadset,bcset)
       local N,i,yy,th,m,v,q,de,outab;
       # Form differential equation
       de := EI*diff(y(x),x$4) = sum(loadset[i],i=1..nops(loadset)):
      
       dsolve({de} union bcset,y(x)): # Solve boundary value problem
       yy := rhs(%): # Extract deflection
       th := diff(yy,x): # Extract slope
       m := diff(yy,x$2): # Extract moment
       v := diff(yy,x$3): # Extract shear
      
       print(`Boundary Value Problem to Solve is`);
       print(lhs(de)=op(loadset),bcset);
       outab[`deflection`]:= simplify(yy):
       outab[`slope`] := simplify(th):
       outab[`moment`] := simplify(m):
       outab[`shear`] := simplify(v):
       outab:
end:

Using the beam Program

Problem Statement

The beam is simply supported and is loaded with a uniform distributed load across the whole beam, a distributed load beginning at x = a , a concentrated force at x = b, and a concentrated moment at x = c. Use the subroutine beam_analyze to solve this problem.

Loading and Supports

Define loading and supports (simply supported).

loads := {-w*dist_force(x-a), -v*conc_force(x-b), m*conc_moment(x-c)}:
supports := {D2(y)(0) = 0, D2(y)(L)=0,y(L)=0,y(0)=0}:

Parameter Values

External Load Locations and Magnitutes

Distributed force starts at x = a and spans beam
       Concentrated force at x = b
       Concentrated moment at x = c
       Distributed load: w N/m
       Concentrated load: v N
       Concentrated moment: m N.m
       Material Stiffness: EI N.m^2

L:=10: a:=0: b:=2: c:=4: v:=500: w:=500: m:=10000: EI:=10^6:

Solve the problem:

sol := beam_analyze(loads,supports):

[Maple Math]

[Maple Math]
[Maple Math]

newsol:=convert(sol,table):

Post-Processing

Deflection Diagram

plot(newsol[deflection], x=0..L, title=`Beam Deflection`, axes=BOXED);

[Maple Plot]

Shear Force Diagram

plot(newsol[shear], x=0..L, title=`Shear Force Diagram`, axes=BOXED);

[Maple Plot]

Bending Moment Diagram

plot(newsol[moment], x=0..L, title=`Bending Moment Diagram`, axes=BOXED);

[Maple Plot]

3D Stiffness Analysis

Define Stiffness Relationship and Parameter Range

L:=10: a:=0: b:=2: c:=4: v:=500: w:=500: m:=10000: unassign('EI'):

sol := beam_analyze(loads,supports):

[Maple Math]

[Maple Math]
[Maple Math]

stiff:=convert(sol,table):

EIrange := 1e5 .. 2e6;

[Maple Math]

Deflection versus Stiffness

plot3d(stiff[deflection],x=0..10,EI=EIrange,axes=BOXED);

[Maple Plot]

Bending Moments versus Stiffness

plot3d(stiff[moment],x=0..10,EI=EIrange,axes=BOXED);

[Maple Plot]

Example Analysis Problems

Variable Distributed Load Analysis

Change the external distributed load to be linearly dependent upon the location with the following criteria:
       Distributed load: LHS=200 and RHS=1000
       Concentrated load: 5500 at x=2 m
       Concentrated moment: none

PLOT the deflection and shear force diagrams:

L:=10: a:=0: b:=2: c:=0: v:=5500: w:=200+80*x: m:=0: EI:=10^6:

sol:=beam_analyze(loads,supports):

[Maple Math]

[Maple Math]
[Maple Math]

newsol:=convert(sol,table):

plot(newsol[deflection],x=0..L,title=`Beam Shear`,axes=BOXED);

[Maple Plot]

plot(newsol[shear],x=0..L,title=`Beam Deflection`,axes=BOXED);

[Maple Plot]

3D Concentrated Load Analysis

Observe the variation in deflection if the concentrated load varies from 0 to 10000. Remove the distributed load i.e. w=0.

newsol:=convert(eval(op(subs(L=10,a=0,b=2,c=0,w=0,m=0,EI=10^6,op(sol)))),table):

L:=10: a:=0: b:=2: c:=0: w:=0: m:=0: EI:=10^6: unassign('v'):

sol:=beam_analyze(loads,supports):

[Maple Math]

[Maple Math]
[Maple Math]

newsol:=convert(sol,table):

plot3d(newsol[deflection],x=0..10,v=0..10000,axes=BOXED);

[Maple Plot]

Example Design Problems

Find Maximum Distributed Force allowing 1% Deflection

Given the following loading conditions:
       Distributed Load : starting at x = 0 to x = 10

defl:=convert(eval(op(subs(L=10,a=0,b=0,c=0,v=0,m=0,EI=10^6,op(sol)))),table):

L:=10: a:=0: b:=0: c:=0: v:=0: m:=0: EI:=10^6: unassign('w'):

sol:=beam_analyze(loads,supports):

[Maple Math]

[Maple Math]
[Maple Math]

defl:=convert(sol,table):

maxdefl:=defl[slope]=0;

[Maple Math]

Max deflection will occur at mid span x = 5.

newdefl:=simplify(subs(x=5,defl[deflection])=-0.01*L);

[Maple Math]

maxforce:=eval(solve(newdefl,w)) * N;

[Maple Math]

Find Maximum Width of Beam for Given Height and Loads

Given the following loading conditions:
       Concentrated Load: 500 N at mid-span
       Max deflection: 1% of length occurs at mid-span
       height: 0.1 m

Find the Cross Sectional Square Area for an aluminum beam that will support a 1% deflection

cross:=convert(eval(op(subs(L=10,a=0,b=5,c=0,v=500,m=0,w=0,EI=Youngs*(base*height^3)/12,op(sol)))),table):

L:=10: a:=0: b:=5: c:=0: v:=500: m:=0: w:=0: EI:=Youngs*(base*height^3)/12:

sol:=beam_analyze(loads,supports):

[Maple Math]

[Maple Math]
[Maple Math]

cross:=convert(sol,table):

maxhgt:=solve(simplify(subs(x=5,height=.1,Youngs=69E9,cross[deflection])=-.01*L),base);

[Maple Math]

Change Beam Boundary conditions to Clamped-Clamped and resolve the previous design

Re-run the Beam_Analyze macro in order to determine the new general solution.

New support conditions are indicated as follows.

supports := {D(y)(0) = 0, D(y)(L)=0,y(L)=0,y(0)=0};

[Maple Math]

L:=10: a:=0: b:=5: c:=0: v:=500: m:=0: w:=0: EI:=Youngs*(base*height^3)/12:

Solve the problem

clamped := beam_analyze(loads,supports):

[Maple Math]

[Maple Math]
[Maple Math]

cross:=convert(clamped,table):

maxhgt:=solve(simplify(subs(x=5,height=.1,Youngs=69E9,cross[deflection])=-.01*L),base);

[Maple Math]

Maple Services