2.6. Example¶
The purpose of this example is to demonstrate how to solve a cantilevered pipe problem using standard engineering strength of materials formulations and using PSI’s finite element capabilities.
Problem
A 10 feet long, 10” schedule 40 cantilevered pipe is anchored at one end with a 1000 lbf force (P) acting on the other. Determine the tip deflection at the end with the force? What is the reaction force (R) at the fixed end?
Methodology
The deflections and reaction forces are derived using strength of materials formulations and calculated using the formulas in Figure 1.
Acceptance Criteria
ASME B&PV B31.1 Power Piping Code 1967 Edition
Assumptions
The pipe is made of Standard Steel with a Young’s Modulus of 2.9e7 psi.
Shear deflection effects are negligible.
Inputs
L = 10 ft - Pipe length
E = 2.9e7 psi - Young’s modulus of pipe material
P = 1000 lbf - Force applied at the end
Analysis
The applied end force results in:
a downward deflection at the tip and zero deflection at the anchor point
an upward reaction force and clockwise moment at the fixed end. See the internal force and moment diagram.
Where:
Plugging into the formulas from Figure 1 and solving for the deflection (1), shear (2), and max moment (3) gives:
Mmax = 10000 foot * force_pound
Source Code
The PSI code listing below is used to solve the cantilevered beam pipe example above.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #! /usr/bin
# parameters
L = 10 * 12
# create model
mdl = Model('demo')
# define properties
pipe1 = Pipe.from_file('pipe1', '10', '40')
mat1 = Material.from_file('mat1', 'A53A', 'B31.1')
# create geometry
pt10 = Point(10)
run20 = Run(20, L)
# assign supports
anc1 = Anchor('A1', 10)
anc1.apply([run20])
# define loads for operating case 1
w1 = Weight('W1', 1)
w1.apply([run20])
p1 = Pressure('P1', 1, 250)
p1.apply([run20])
# define a loadcase
l1 = LoadCase('l1', 'sus', [Weight, Pressure], [1, 1])
# code
b311 = B311('B31.1')
b311.apply([run20])
# run the analysis
mdl.analyze()
# postprocess
disp = Movements('r1', [l1])
disp.to_screen()
reac = Reactions('r2', [l1])
reac.to_screen()
stress = Stresses('r3', [l1])
stress.to_screen()
|
Results
Under Construction!
References
AISC ASD 9th Edition
ASME B&PV B31.1 Power Piping Code 1967 Edition