SLIDE 1
History matching real production and seismic data for the Norne field
EnKF Workshop 2018 Rolf J. Lorentzen, Tuhin Bhakta, Dario Grana, Xiaodong Luo, Randi Valestrand, Geir Nævdal, Ivar Sandø
SLIDE 2 Introduction
- The full norne model is history matched using real production and seismic data
- Initial ensemble generated using Gaussian random fields
- Updates PORO, PERMX, NTG, MULTZ, MULTFLT, MULTREGT, KRW/KRG, OWC
- Clay content defined as VCLAY = 1 - NTG
- Sequential assimilation (production → seismic)
- Seismic data inverted for acoustic impedance at four points in time
- Iterative ensemble smoother, RLM-MAC, used (Luo et. al, SPE-176023-PA)
- Sparse representation using wavelets (data reduced by 86 %)
- Correlation based localization
SLIDE 3 Seismic data inversion and transformation
Alfonzo et al. 2017
- Linearized Bayesian approach:
Buland and Omre, 2003: Sbase = Gybase + e
- Time to depth conversion:
Provided Norne velocity model
Petrel software
- Difference and averaging:
∆z
SLIDE 4 Petro-elastic model
- Estimate mineral bulk and shear moduli:
[Ks, Gs] ← Hashin − Shtrikman(Kquartz, Gquartz, Kclay, Gclay, Vclay)
- Dry rock bulk and shear moduli (empirical):
[Kdry, Gdry] ← f (p, pini, φ)
[Ksat, Gsat] ← Gassman(Kdry, Gdry, Ks, Gs)
- P-wave velocity and rock density:
[vp, ρsat] ← Mavko(Ksat, Gsat) zp = vp × ρsat
SLIDE 5 Sparse representation and image denoising
HHH HHL LHL LHH LLL LLH HLH
- 1. Transform seismic observations:
cS ← DWT(∆z
SLIDE 6 Sparse representation and image denoising
HHH HHL LHL LHH LLL LLH HLH
- 1. Transform seismic observations:
cS ← DWT(∆z
- p)
- 2. Estimate noise in each subband (MAD):
σS = median(|cS − median(cS)|)/0.6745
SLIDE 7 Sparse representation and image denoising
HHH HHL LHL LHH LLL LLH HLH
- 1. Transform seismic observations:
cS ← DWT(∆z
- p)
- 2. Estimate noise in each subband (MAD):
σS = median(|cS − median(cS)|)/0.6745
- 3. Compute standard deviation for coefficients:
ˆ σS = std(cS)
SLIDE 8 Sparse representation and image denoising
HHH HHL LHL LHH LLL LLH HLH
- 1. Transform seismic observations:
cS ← DWT(∆z
- p)
- 2. Estimate noise in each subband (MAD):
σS = median(|cS − median(cS)|)/0.6745
- 3. Compute standard deviation for coefficients:
ˆ σS = std(cS)
- 4. Compute truncation value (Bayesian shrinkage):
TS =
σ2
S
√
|σ2
S−ˆ
σ2
S|
SLIDE 9 Sparse representation and image denoising
HHH HHL LHL LHH LLL LLH HLH
- 1. Transform seismic observations:
cS ← DWT(∆z
- p)
- 2. Estimate noise in each subband (MAD):
σS = median(|cS − median(cS)|)/0.6745
- 3. Compute standard deviation for coefficients:
ˆ σS = std(cS)
- 4. Compute truncation value (Bayesian shrinkage):
TS =
σ2
S
√
|σ2
S−ˆ
σ2
S|
- 5. Apply hard thresholding:
cs → cs > TS, do = c(I)
SLIDE 10
Ensemble smoother
mi+1
j
= mi
j + Si m(Si d)T[Si d(Si d)T + γiCd]−1 × [do + ǫj − di j ]
↓ TSVD mi+1
j
= mi
j + ˜
K i∆˜ di
j
∆˜ di
j ∈ Rp×1, p ≤ N: Projected (“effective”) data innovation.
SLIDE 11 Correlation based localization
- 1. Compute sample correlation between parameters (k) and “effective” measurements (l):
ρkl ∈ RNm×p
SLIDE 12 Correlation based localization
- 1. Compute sample correlation between parameters (k) and “effective” measurements (l):
ρkl ∈ RNm×p
- 2. Transform all correlations for each observation (ρl), and return high-frequency
coefficients: cH
l
← DWT(ρl)
SLIDE 13 Correlation based localization
- 1. Compute sample correlation between parameters (k) and “effective” measurements (l):
ρkl ∈ RNm×p
- 2. Transform all correlations for each observation (ρl), and return high-frequency
coefficients: cH
l
← DWT(ρl)
- 3. Estimate noise in coefficients (MAD):
σl = median(|cH
l − median(cH l )|)/0.6745
SLIDE 14 Correlation based localization
- 1. Compute sample correlation between parameters (k) and “effective” measurements (l):
ρkl ∈ RNm×p
- 2. Transform all correlations for each observation (ρl), and return high-frequency
coefficients: cH
l
← DWT(ρl)
- 3. Estimate noise in coefficients (MAD):
σl = median(|cH
l − median(cH l )|)/0.6745
- 4. Compute truncation value (universal rule):
λl = max(
SLIDE 15 Correlation based localization
- 1. Compute sample correlation between parameters (k) and “effective” measurements (l):
ρkl ∈ RNm×p
- 2. Transform all correlations for each observation (ρl), and return high-frequency
coefficients: cH
l
← DWT(ρl)
- 3. Estimate noise in coefficients (MAD):
σl = median(|cH
l − median(cH l )|)/0.6745
- 4. Compute truncation value (universal rule):
λl = max(
- 2 ln n(ρl)σl)
- 5. Compute truncation matrix:
ξkl = 1, if|ρkl| ≥ λl, 0 otherwise
SLIDE 16 Correlation based localization
- 1. Compute sample correlation between parameters (k) and “effective” measurements (l):
ρkl ∈ RNm×p
- 2. Transform all correlations for each observation (ρl), and return high-frequency
coefficients: cH
l
← DWT(ρl)
- 3. Estimate noise in coefficients (MAD):
σl = median(|cH
l − median(cH l )|)/0.6745
- 4. Compute truncation value (universal rule):
λl = max(
- 2 ln n(ρl)σl)
- 5. Compute truncation matrix:
ξkl = 1, if|ρkl| ≥ λl, 0 otherwise
- 6. Updated Kalman gain matrix (see also Luo and Bhakta, 2017):
ˆ K = ξ ◦ ˜ K
SLIDE 17 Measurement operator
The observation operator G comprises several steps summarized as:
- 1. running the reservoir simulator using mj to compute dynamic variables (pressure and
saturation)
SLIDE 18 Measurement operator
The observation operator G comprises several steps summarized as:
- 1. running the reservoir simulator using mj to compute dynamic variables (pressure and
saturation)
- 2. running the PEM to compute the acoustic impedance, zp,j, at all survey times
SLIDE 19 Measurement operator
The observation operator G comprises several steps summarized as:
- 1. running the reservoir simulator using mj to compute dynamic variables (pressure and
saturation)
- 2. running the PEM to compute the acoustic impedance, zp,j, at all survey times
- 3. compute differences and average over formation layers to get ∆zp,j
SLIDE 20 Measurement operator
The observation operator G comprises several steps summarized as:
- 1. running the reservoir simulator using mj to compute dynamic variables (pressure and
saturation)
- 2. running the PEM to compute the acoustic impedance, zp,j, at all survey times
- 3. compute differences and average over formation layers to get ∆zp,j
- 4. applying the DWT to get cj
SLIDE 21 Measurement operator
The observation operator G comprises several steps summarized as:
- 1. running the reservoir simulator using mj to compute dynamic variables (pressure and
saturation)
- 2. running the PEM to compute the acoustic impedance, zp,j, at all survey times
- 3. compute differences and average over formation layers to get ∆zp,j
- 4. applying the DWT to get cj
- 5. using the leading indices I to get dj = cj(I)
SLIDE 22 Generate initial ensemble Assimilate production data Compute data dj = G(mj), j = 1 . . . N Compute tapering matrix ξcorr Update parame- ters m1, . . . , mN Compute wavelet coeff. co = DWT(∆z
Find indices for leading coeff. (I) Compute noise (Cd) and data do = co(I) Iterate
Figure: Workflow for assimilating seismic data.
SLIDE 23 Norne field
46 x 112 x 22 (113344)
44927
9 injectors, 27 producers
days
SLIDE 24
SLIDE 25
Initial Production Seismic
SLIDE 26
Initial Production Seismic
SLIDE 27
Initial Production Seismic
SLIDE 28
Initial Production Seismic
SLIDE 29
Top: real data. Middle: production. Bottom: seismic.
SLIDE 30
Initial Production Seismic
SLIDE 31
Initial Production Seismic
SLIDE 32
Initial Production Seismic
SLIDE 33 Summary / Conclusions
- A workflow for history matching real production and seismic data is presented
- Clay content and other petrophysical parameters updated
- Data match improved for both production and seismic data
- Updated static fields are geologically credible
- Potential for simulating infill wells or EOR strategies
SLIDE 34 Acknowledgments
We thank
- Schlumberger and CGG for providing academic software licenses to ECLIPSE and
HampsonRussell, respectively.
- Main financial support from Eni, Petrobras, and Total, as well as the Research Council
- f Norway (PETROMAKS2).
- Partial financial support from The National IOR Centre of Norway.