You are on page 1of 6

Blast pressure and equivalent wind speed calculation for the

Flare
The purpose of this spread sheet is to fit a curve to the given blast profile, and than based on
this curve calculate the equivalent wind speeds for the blast calculations.

Method: Several curves are fitted to the original data set, and then the one with larger correlation
is chosen for the blast profile.

Input data

Source: FPSO - Design Accidental Loads - HI39520 PERPLP - PG - 336 - 145, Table 4.5

Column 1 | Column 2
Height above | Blast Peak
base [m] | Overpressure [bar]

 25 0.076 
 (Note: top and bottom lines are added to complete the data set
 32.9 0.075  from top to bottom of flare tower)
 41.2 0.079 
 49.6 0.041

 
data :=  57.9 0.031 
 66.2 0.034 
 
 74.6 0.030 
 82.9 0.025 
 170 0.005 

〈0〉 〈1〉
X := data Y := data
b
Power fit function y = a⋅ x + c

2 
Guess :=  2 
Define a vector of guesses.  
0 
Fitted curve #1
 −3.76 × 103 
 
cpw := pwrfit( X , Y , Guess) cpw = 1.149 × 10− 5 

 
 3.761 × 103 
 

Define a function using these coefficients, then define a range variable over
which to graph the function.

cpw1
f1( x) := cpw ⋅ x + cpw x := min( X) .. max( X)
0 2

Data Correlation

( →
)
cor 1 := corr f1( X) , Y
150
cor 1 = 0.922

X
100
x

50

0
− 0.02 0 0.02 0.04 0.06 0.08
Y , f1( x)
Quadratic fit function

k := 2 z := regress( X , Y , k)

 3 
Fitted curve #2  3 
 
 2 
f2( x) := interp ( z , X , Y , x) z= 0.121 
 −3

 −1.703 × 10 
 −6 
 6.016 × 10 

Data Correlation

150
( →
)
cor 2 := corr f2( Y) , X

cor 2 = 0.829
X
100
x

50

0
0 0.02 0.04 0.06 0.08 0.1
Y , f2( x)
b⋅ x
Exponential curve fitting function ( f ( x) = a⋅ e + c)

 0.144 
 
efit := expfit( X , Y) efit =  −0.022 
 2.759 10− 4 
 × 
a := efit b := efit cc := efit
0 1 2

Fitted curve #3
b⋅ x
f3( x) := a⋅ e + cc

Data Correlation

( →
)
cor 3 := corr f3( X) , Y

cor 3 = 0.939
150

X
100
x

50

0
0 0.02 0.04 0.06 0.08
Y , f3( x)
Choosing the best fitting function ( )
max cor1 , cor2 , cor3 = 0.939

f_best_fit( x) := (
f1( x) if cor1 = max cor 1 , cor2 , cor 3 )
f2( x) if cor2 = max( cor 1 , cor2 , cor 3)

f3( x) otherwise

150

X
100
x

50

0
0 0.02 0.04 0.06 0.08
Y , f_best_fit( x)

Generating blast wind force profile


(of max Dynamic Peak Overpressure)

Main deck elevation (above Base) h deck := 32.624m


kg
Mass density of air ρair := 1.22
3
m
Wind profile function

2 ( f_best_fit( x) ) ⋅ bar
P_eq( x) :=
ρair
Equivalent Wind Speed as a function of Height [m/s]
180

162

144

126

108

x 90

72

54

36

18

0
0 50 100
P_eq( x)

Export to Excel
Range variables i := 1 .. trunc( max( X) + 2) zvar := i⋅ m
i
 zvar 
Udesign.var := P_eq
i
i  m 
R header := ( "Height_above_Base" "Height_above_MD" "Wind_speed_[m/s]" )

h deck Udesign.var
Wfinal := i i
i, 0 Wfinal := i − Wfinal :=
i, 1 m i, 2 m

( )
s
Outputcsv := stack R header , Wfinal

(
Write to CSV file LTD = WRITEPRN "API_wind.csv" , Outputcsv )
Excel export

Blast_WindProfile_Blast.xls

Outputcsv

You might also like