Question: Simple PASS FAIL Code file

Sorry file was not attached
 

ASME B31.3-2002 - Flexibility Analysis

This document considers the requirements for flexibility analysis of pipe work in accordance with standard ASME B31.3 2002 Edition.

 

 

Temperature Reduction for Swagelok fittings and tube.

 

Based on 316L Stainless steel fittings and tube, from Data Sheet MS-01-107 rev S and shown below a linear interpolation is used to determine the factor for operation at 100 and 130 centigrade.

with(Interpolation)

with(plots)

Temperature values from table. temp := [93, 204, 315, 426, 537]

Factor values from fable. fact := [1, .96, .85, .79, .76]

Graph of data points. pointplot(temp, fact)

 

facto := LinearInterpolation(temp, fact)

_m2344257169824

(1.1)

Factor for operation at 100 centigrade.facto(100) = HFloat(0.9974774774774775)NULL

Factor for operation at 130 centigrade. facto(130) = HFloat(0.9866666666666667)NULL

Swagelok compatability

 

From the B31.3 standard, Table 326.1 Component Standards, Swagelok fittings are not listed directly but it is considered that they are covered under the entry for Unified inch screw threads (UN and UNR thread form) with designation ASME B1.1. Stainless steel pipe is covered directly with designation ASME B36.19M.

Therefore the use of these parts is acceptable under the standard.

Specific Tube Sizes.

 

The initial specification suggests a DN15 tube size. This equates to 5/8", however the range of fittings in this size is limited. A preferred size would be to either go down to 1/2" or up to 3/4" tube. These will give an actual bore of ~10mm and ~15mm respectivly. In terms of the pressure and temperature specification the following information is provided from Swagelok data sheet MS-01-181.

1/2" x 0.049" wall pressure rating at 37C. TP05__37 := 3700*Unit('psi') = 3700*Units:-Unit(` psi `)NULL

3/4" x 0.065" wall pressure rating at 37C. TP75__37 := 3300*Unit('psi') = 3300*Units:-Unit(` psi `)NULL

Hence pressure ratings, converted to bar at 130C are:

TP05__130 := convert(TP05__37*facto(130), units, bar) = HFloat(251.70460624926636)*Units:-Unit(bar)NULL

TP75__130 := convert(TP75__37*facto(130), units, bar) = HFloat(224.49329746556185)*Units:-Unit(bar)NULL

Hence the tubing used in the design is acceptable.

Weld Fitting Specifications

 

There are several types of welded fittings as "Tee" "Reduceing Tee" and "Reducing Unions" and they have various pressure ratings.

A 3/4" tube butt weld "Tee" Tee75__37 := 2400*Unit('psi') = 2400*Units:-Unit(` psi `)NULL

The weld fittings have pressure rating at 130C of. Tee75__130 := convert(Tee75__37*facto(130), units, bar) = HFloat(163.2678527022268)*Units:-Unit(bar)NULL

Hence the weld fittings used in the design are acceptable.

``

Tube wall calculation

 

with(Units[Standard])

Determine the minimum wall thickness based on the design code.

Design pressure. P__D := 150*Unit('bar') = 150*Units:-Unit(bar)NULL

Outside diameter of nominal 3/4" tube. D__75 := 19.05*Unit('mm') = 19.05*Units:-Unit(mm)NULL

Quality factor. E := 1 = 1 for seamless stainless steel tube.

Allowable stress for 316L tube at 166C (300F). From B31.1 Table A1. S__allow := 115.14*Unit('MPa') = 115.14*Units:-Unit(MPa)NULL

Y__coeff := .4 = .4NULL

Miniumum wall thickness. t__min := P__D*D__75/(2*(E*S__allow+P__D*Y__coeff)) = 0.1179420505e-2*Units:-Unit(m)NULL

Actual wall thickness. W__75 := 1.65*Unit('mm') = 1.65*Units:-Unit(mm)NULL

if W__75 >= t__min then print(PASS) else print(FAIL) end if = PASSNULL``

NULLNULL

Conversions

 

From Appendix A

allowable stress for TP316L at 100C (212F).convert(16.7, units, ksi, MPa) = 115.1424468NULL

allowable stress for TP316L at room temperature.convert(25.0, units, ksi, MPa) = 172.3689323NULL

convert(18, units, m^3/h, L/minute) = 300NULL

convert(3300.0, units, psi, bar) = 227.5269907NULL

.58*% = 131.9656546NULL

convert(70.0, units, degF, degC) = 38.88888889NULL

convert(300.0, units, degF, degC) = 166.6666667NULL

convert(.117, units, Unit('dm'^3), Unit('L')) = .117NULL

with(ThermophysicalData:-Chemicals)

with(ThermophysicalData)

Property(MolarMass, He, useunits)

4.0026020*Units:-Unit(g/mol)

(3.1)

Property(density, Helium, temperature = 300*Unit(kelvin), pressure = 101325*Unit(Pa), source = CoolProp)

.1625153176*Units:-Unit(kg/m^3)

(3.2)

Helium flow rate. flow[he] := 300*Unit('L')/Unit('min')``

Determine molar flow rate. molflow[he] := .1625153176*flow[he]*Units[Unit](kg/m^3)/(4.0026020*Units[Unit](g/mol)) = .2030120876*Units:-Unit(mol/s)NULL

Determine mass flow rate. massflow[he] := 4.0026020*molflow[he]*Units[Unit](g/mol) = 0.8125765879e-3*Units:-Unit(kg/s)NULL

Property(MolarMass, CO2, useunits)

44.0095000*Units:-Unit(g/mol)

(3.3)

Property(density, CO2, temperature = 300*Unit(kelvin), pressure = 101325*Unit(Pa), source = CoolProp)

1.796636097*Units:-Unit(kg/m^3)

(3.4)

Property(MolarMass, Air, useunits)

28.9651159*Units:-Unit(g/mol)

(3.5)

Property(density, Air, temperature = 300*Unit(kelvin), pressure = 101325*Unit(Pa), source = CoolProp)

1.176995588*Units:-Unit(kg/m^3)

(3.6)

Determine the boiling point of water at 6 bar, the maxiumum pressure delivered by the cd90e unit.

boiling := Property(temperature, water, pressure = 6*Unit(bar), Q = 0)

431.9764773*Units:-Unit(K)

(3.7)

convert(boiling, temperature, Celsius)

158.8264773*Units:-Unit(`°C`)

(3.8)

evalf(convert(30, units, Unit('ft'^3/'min'), liters/s))

14.15842330

(3.9)

NULL

Input Parameters

 

Allowable stress for calculations. S[A] := evalf(f*(1.25*S[c]+.25*S[h]))`` = 219.82275*Units:-Unit(MPa)NULL

Allowable stress at minimum temperature. S[c] := 172.37*Unit('MPa')

Allowable stress at maximum temperature. S[h] := 115.14*Unit('MPa')

Stress reduction factor for N=7000 to 14000 cycles. f := .9

From Table C6 of standard, modulus of elasticity for stainless steel at room temperature.convert(28.3*10^6, units, psi, MPa) = 195121.6314NULL

Named as E[A] := 195121*Unit('MPa') = 195121*Units:-Unit(MPa)NULL

alpha[stst] := 16*10^(-6)*(Unit('m')*(1/(Unit('m')*Unit('K')))) = (1/62500)*Units:-Unit(1/K)NULL

Flexibility Stress

 

with(Units[Standard])

text##

S[E] := sqrt(S[b]^2+4*S[t]^2) =  = (S[b]^2+4*S[t]^2)^(1/2)NULL

Allowable stress factor for analysis requirement. K[allow] := 208000*S[A]/E[A] = 234.3321939NULL

Pipe diameter for 1/2" tube. D__A := 12.7*Unit('mm') = 12.7*Units:-Unit(mm)NULL

Pipe diameter for 3/4" tube. D__B := 19.05*Unit('mm') = 19.05*Units:-Unit(mm)NULL

Change in temperature. Delta[T] := 130*Unit('K') = 130*Units:-Unit(K)NULL

Section A1

Combined length of section A1.L[A1] := 110*Unit('mm')+119*Unit('mm') = 229*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[A1] := evalf(alpha[stst]*Delta[T]*L[A1]) = .4763200000*Units:-Unit(mm)NULL

U__A1 := 163*Unit('mm') = 163*Units:-Unit(mm)NULL

K[A1] := D__A*y[A1]/(L[A1]-U__A1)^2 = 0.1388719927e-2NULL

if K__A1 <= K__allow then print(PASS) else print(FAIL) end ifError, cannot determine if this expression is true or false: K__A1 <= K__allowNULL

Section A2

Combined length of section A2.L[A2] := 610*Unit('mm')+119*Unit('mm') = 729*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[A2] := evalf(alpha[stst]*Delta[T]*L[A2]) = 1.516320000*Units:-Unit(mm)NULL

U__A2 := 622*Unit('mm') = 622*Units:-Unit(mm)NULL

K[A2] := D__A*y[A2]/(L[A2]-U__A2)^2 = 0.1682004018e-2NULL

if K__A2 <= K__allow then print(PASS) else print(FAIL) end ifError, cannot determine if this expression is true or false: K__A2 <= K__allowNULL

Section A3

Combined length of section A3.L[A3] := 723*Unit('mm')+288*Unit('mm') = 1011*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[A3] := evalf(alpha[stst]*Delta[T]*L[A3]) = 2.102880000*Units:-Unit(mm)NULL

U__A3 := 778*Unit('mm') = 778*Units:-Unit(mm)NULL

K[A3] := D__A*y[A3]/(L[A3]-U__A3)^2 = 0.4919334672e-3NULL

if K__A3 <= K__allow then print(PASS) else print(FAIL) end ifError, cannot determine if this expression is true or false: K__A3 <= K__allowNULL

 

unwith(Units[Standard])

Length of section B. L[B] := 526*Unit('mm')`` = 526*Units:-Unit(mm) 

Length of section C. L[C] := 1331*Unit('mm') = 1331*Units:-Unit(mm) 

Length of section D. L[D] := 416*Unit('mm') = 416*Units:-Unit(mm) 

Length of section E. L[E] := 526*Unit('mm') = 526*Units:-Unit(mm) 

Length of section F. L[F] := 762*Unit('mm') = 762*Units:-Unit(mm) 

Length of section G. L[G] := 287*Unit('mm') = 287*Units:-Unit(mm) 

Length of section H. L[H] := 440*Unit('mm') = 440*Units:-Unit(mm) 

Length of section I. L[I] := 400*Unit('mm') = 400*Units:-Unit(mm)NULL

 

Length increase due to thermal expansion. y[B] := evalf(alpha[stst]*Delta[T]*L[B]) = 1.094080000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[C] := evalf(alpha[stst]*Delta[T]*L[C]) = 2.768480000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[D] := evalf(alpha[stst]*Delta[T]*L[D]) = .8652800000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[E] := evalf(alpha[stst]*Delta[T]*L[E]) = 1.094080000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[F] := evalf(alpha[stst]*Delta[T]*L[F]) = 1.584960000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[G] := evalf(alpha[stst]*Delta[T]*L[G]) = .5969600000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[H] := evalf(alpha[stst]*Delta[T]*L[H]) = .9152000000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[I] := evalf(alpha[stst]*Delta[T]*L[I]) = .8320000000*Units:-Unit(mm)NULL

``

K[B] := D[B]*y[B]/(L[B]-u[B])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[C] := D[C]*y[C]/(L[C]-u[C])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[D] := D[D]*y[D]/(L[D]-u[D])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[E] := D[E]*y[E]/(L[E]-u[E])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[F] := D[F]*y[F]/(L[F]-u[F])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[G] := D[G]*y[G]/(L[G]-u[G])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[H] := D[H]*y[H]/(L[H]-u[H])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[I] := D[I]*y[I]/(L[I]-u[I])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

unwith(Units[Standard])

Error, (in unwith) no package called `Units:-Standard' is currently bound

 

NULL

NULL

NULL

NULL


 

Download CALC-0191-Upload.mw

Please Wait...