Professional Documents
Culture Documents
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)
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