Professional Documents
Culture Documents
MACAÉ - RJ
DEZEMBRO - 2016
INTERPRETAÇÃO DE TESTES DE PRESSÃO ASSISTIDA POR
COMPUTADOR PARA ESTIMATIVA DE PARÂMETROS DE
POÇO/RESERVATÓRIO
MACAÉ - RJ
DEZEMBRO - 2016
INTERPRETAÇÃO DE TESTES DE PRESSÃO ASSISTIDA POR
COMPUTADOR PARA ESTIMATIVA DE PARÂMETROS DE
POÇO/RESERVATÓRIO
Comissão Examinadora:
Entre setembro de 2014 e agosto de 2015, bolsista pelo CNPq (Conselho Nacional
de Desenvolvimento Científico e Tecnológico), realizando o programa de graduação
sanduíche do Ciência sem Fronteiras na Universidade de Manchester, no Reino Unido.
ii
Prefácio
A ideia foi originada do professor orientador Carlos Enrique Pico Ortiz D. Sc., a fim
de estudar a possibilidade, os efeitos e as implicações decorrentes da aplicação da
modelagem de “Fair” no âmbito da Engenharia de Reservatórios. O projeto se iniciou
na bolsa de iniciação científica do PRH-20 ANP/Petrobras (Programa de Recursos
Humanos da Agência Nacional de Petróleo, Gás Natural e Biocombustíveis - ANP).
iii
Dedicatória
iv
Agradecimentos
Agradeço:
Primeiramente a Deus.
À minha família pelo apoio, pela confiança em mim depositada e por compreender
os momentos de ausência devido a esse trabalho, principalmente a Maximiano Ferraz
Pereira e Carmem Cristina Kanda de Sá Rocha, que proporcionaram a mim tudo que
tenho até hoje.
Ao meu orientador, Carlos Enrique Pico Ortiz, pelo conhecimento que me passou,
pelo tempo doado ao trabalho e por sua disposição em me auxiliar nas dificuldades
que encontrava.
v
Epígrafe
" O homem científico não pretende alcançar um resultado imediato (...). Seus
trabalhos são como sementes para o futuro. Seu dever é lançar as bases para
aqueles que estão por vir e apontar o caminho." (Nikola Tesla)
vi
Sumário
Nomenclatura xv
Resumo xix
Abstract xx
1 Introdução 1
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Revisão Bibliográfica 6
2.2 Permeabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Formulação Matemática 23
3.2 Solução para reservatório radial infinito com poço cilíndrico, efeitos de
película e estocagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Solução para reservatório radial infinito com poço cilíndrico, efeitos de
película, estocagem e redistribuição de fases . . . . . . . . . . . . . . . 33
3.5.1 Notação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4 Formulação Computacional 47
5 Resultados e Análises 58
viii
Sumário
6 Considerações Finais 82
ix
Lista de Figuras
14 Interface do Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
xi
Lista de Figuras
xii
Lista de Tabelas
54 Ajuda do Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
xiii
Lista de Tabelas
3 Transformada de Laplace.. . . . . . . . . . . . . . . . . . . . . . . . . . 58
6 Dados do Caso 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8 Dados do Caso 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
A nomenclatura está dividida em: alfabeto latino, alfabeto grego, sub-índices, super-
índices, símbolos e acrônimos, sendo apresentada em ordem alfabética. As unidades
em que cada unidade pode ser encontrada está descrita no Apêndice C.
Alfabeto Latino
A Área
B Fator volume formação
C Coeficiente de estocagem, parâmetro de pressão de Fair
c Compressibilidade
d Derivada total
Ei Função exponencial integral
f, F Função
G Funcão F no campo de Laplace
h Espessura/Altura do reservatório, onde há fluxo formação/poço
I Função de Bessel modificada do primeiro tipo
J Matriz jacobiana
k Permeabilidade
K Função de Bessel modificada do segundo tipo
L Comprimento
m Massa
n Parâmetro do algoritmo de Stehfest
P Pressão, probabilidade
q Vazão
r Raio
S Fator de película (skin factor )
t Tempo
Nomenclatura
u Variável de Laplace
V Volume, coeficiente do algoritmo de Stehfest
x Variável dependente
y Variável independente
a, b, c, d, z Variáveis auxilares
Alfabeto Grego
Sub-índices
a Aparente
D Adimensional
e Pseudo
ef Efetivo, eficiência
eq Equivalente
f Fluxo, fratura
g Gás
i Inicial, iteração
l Líquido
np Número de parâmetros
xvi
Nomenclatura
p Pressão, produção
s Fator de película (skin factor )
sc Condições padrões (standard conditions)
sf Face da formação (Sand Face)
t Tempo, total
w Poço
whf Fluxo na cabeça do poço
wf Fluxo no fundo do poço
ws Estática no fundo do poço
Super-índices
−1 Inverso
T Transposta
¯ Função no espaço de Laplace
~ Vetor, matriz
Símbolos
∇ Gradiente
4 Diferencial, delta
L Transformada de Laplace
Acrônimos
xvii
Nomenclatura
xviii
INTERPRETAÇÃO DE TESTES DE PRESSÃO ASSISTIDA POR
COMPUTADOR PARA ESTIMATIVA DE PARÂMETROS DE
POÇO/RESERVATÓRIO
Resumo
xix
INTERPRETATION OF PRESSURE TESTS ASSISTED BY
COMPUTER TO ESTIMATE WELL/RESERVOIR PARAMETERS
Abstract
xx
1
1 Introdução
O presente trabalho trata de uma revisão e análise de testes de pressão para obter
permeabilidade, fator de película e coeficiente de estocagem de poço em reservató-
rios homogêneos, isotrópicos, modelados como tendo extensão infinita e com poços
verticais e cilíndricos. Em particular, o trabalho foca na modelagem de Fair (1981)
para poços com redistribuição de fases.
O modelo que contempla a redistribuição de fases foi descrito por Fair (1981). É
um modelo que leva em consideração o fenômeno de redistribuição das fases líquida
e gasosa do fluido produzido que ocorre dentro do poço no período inicial e final de
um teste de crescimento de pressão. Este fenômeno ocasiona um comportamento
anômalo da pressão medida no fundo do poço.
1.2 Objetivos
2 Revisão Bibliográfica
Estudos sobre ajustes com redistribuição multifásica no poço são mais escassos.
Stegemeier e Matthews (1958) foram os primeiros que estudaram o formato anômalo
do comportamento da pressão, analisando qualitativamente casos no Texas e afir-
mando que em reservatórios com baixa permeabilidade e em poços com presença de
packers, ocorre um maior distúrbio no comportamento da pressão. Fair (1981), ela-
borou um modelo que leva em consideração o fenômeno de redistribuição de fases
do fluido produzido. Esse fenômeno ocasiona comportamento anômalo da pressão,
derivado da variação do coeficiente de estocagem do poço. Hegeman et al. (1993)
elaboraram uma extensão a partir do modelo de Fair, desenvolvendo uma solução no
campo de Laplace para efeitos de estocagem crescentes ou decrescentes.
Kamal (2009) reforça que o único modelo que aborda a estocagem variável é o de
Fair (1981), com a extensão de Hegeman et al. (1993), mas sugere cautela na utiliza-
ção, pontuando que os métodos são empíricos e podem convergir para conjuntos de
soluções diferentes do real.
pressão original.
Pi − Pwf − ∆P skin
EF = (1)
Pi − Pwf
• “Falloff test”: Consiste em, após injeção de fluidos na formação, fechar o poço
de injeção. A pressão da formação é registrada após o fechamento do poço de
injeção. Ocorre um decréscimo da pressão, pois a formação tende a absorver
os fluidos que foram injetados.
10
2.2 Permeabilidade
A4P
q = −k (2)
µL
kh∆P skin
S= (3)
C2 qBµ
4Pskin = Pw0 − Pw
Quando o poço é aberto para produção, ocorre uma liberação inicial de fluidos
estocados no poço fechado. A liberação é causada pela expansão dos fluidos. O
fluxo mássico no canhoneado aumenta gradativamente conforme a descompressão
dos fluidos ocorre, segundo Ezekwe (2010).
C = cf Vw (4)
14
tp + 4t
tHorner = (5)
4t
abcissas), efeitos da fronteira são sentidos. A linha reta identificada entre estes efeitos
é descrita pela equação abaixo (Rosa e Correa, 1987):
!
qBµ tp + 4t
Pwf = Pi − C 2 ln (6)
kh 4t
qBµ
k = C2 (7)
mh
" #
P1hr − Pwf f k
S = 1, 151 − log − 0, 3514 (8)
m φµct rw2
A seguir são listados os autores de curvas-tipo mais utilizadas, segundo Lee (1982):
• Ramey, no artigo Agarwal et al. (1970): A Fig. 7 mostra uma típica curva-tipo
de Ramey. Plota-se (Pi − Pwf ) vs. t para um teste de fluxo e (Pws − Pwf f ) vs.
tp 4t
4te para testes de crescimento de pressão onde 4te = tp +4t
. Se o teste pos-
suir uma inclinação unitária (45º), calcula-se o coeficiente de estocagem (Eq.(9))
a partir de qualquer ponto dessa linha reta. Assim, utiliza-se a curva de CD
que melhor se ajusta aos dados. Com o gráfico localizado na posição que me-
lhor ajusta, observa-se os valores correspondentes de um ponto (Pi − Pwf , PD );
(t, tD ) para inferir a permeabilidade (Eq. (10)).
!
qB t
C= (9)
24 Pi − Pwf
!
qBµ PD
k = C2 (10)
h Pi − Pwf match
17
CD e2S
!
1
S = ln (12)
2 CD
d4Ps d4Ps
= 4te (13)
d [ln (4te )] d [4te ]
18
dPwf dPwf
= −t (14)
d [log (t)] d [(t)]
ti+j ti−k
ti+j
∂P
!
∂P
!
log ti
∆P i+j log t2i
∆Pi log ∆Pi−k
ti−k ti
t = =
ti+j
ti+j
+
ti+j
−
ti+j
∂t i
∂logt i
log log log log ti
log ti
log
ti ti−k ti ti−k ti−k ti−k
(15)
−t
P φ = Cφ 1 − e α (16)
O modelo obtido por Fair foi validado em seu artigo ao comparar resultados da
inversão numérica com os de Agarwal et al. (1970), ao se considerar Cφ = 0.
3 Formulação Matemática
h ih i
Balanço de Massa (tempo): π (r + 4r)2 h − πr2 h ρ(t+4t) φ(t+4t) − ρ(t) φ(t)
∂ (ρφ) 1 ∂(ρvr)
− = (18)
∂t r ∂r
2. Lei de Darcy (Transporte de Massa):
q k ∂P
v= =− (19)
A µ ∂r
∂ 2P 1 ∂P φµct ∂P
2
+ = , com ct = cf + cR (22)
∂r r ∂r k ∂t
Para que a EDH seja descrita por variáveis adimensionais, são definidos rD , tD ,
CD e PD nas equações (23), (24) e (25), respectivamente. Os valores das constantes
C1 , C2 e C3 estão presentes no Apêndice C.
r
rD = (23)
rw
C1 kt
tD = (24)
φµct rw2
kh4P
PD = (25)
C2 qBµ
1 ∂PD ∂ 2 PD ∂PD
+ 2
= (26)
rD ∂rD ∂rD ∂tD
Para ser resolvida, a EDH necessita de duas condições de contorno para cada
dimensão espacial (por conter derivada parcial de segunda ordem) e uma condição em
relação ao tempo. Segundo Rosa e Correa (1987), “a condição em relação ao tempo
é denominada condição inicial, pois expressa a configuração do perfil das pressões
do reservatório em t = 0”. Em t = 0, é considerado que o reservatório se encontra em
repouso, portanto, a condição inicial (C.I.) é dada por:
P (t = 0, r) = Pi , r>0
P (t, r → ∞) = Pi , t>0
26
dρ
qsf ρsf − qρ = Vw (30)
dt
∂ρ ∂ρsf ∂ρ ∂ρ ∂P
Considerando que ∂t
= ∂t
e utilizando a regra da cadeia, ∂t
= ∂P ∂t
, a Eq. (30)
se torna:
dρsf dP
qsf ρsf = qρ + Vw (31)
dP dt
1 ∂ρ
Considerando a definição de compressibilidade, cf = ρ ∂P
, divide-se toda a equa-
ção por ρsf :
qρ dPw
qsf = + Vw cf (32)
ρsf dt
ρ
Com C = Vw cf e o fator volume-formação B = ρsf
, a equação se torna:
dPw
qsf = qB + C (33)
dt
C2 kh ∂P
qsf = (r )r=rw (34)
µ ∂r
Portanto,
27
kh ∂P dPw
(r )r=rw − C = qB, (35)
C2 µ ∂r dt
! !
∂PD dPwD
−rD = 1 − CD . (36)
∂rD rD =1
dtD
C3 C
CD = (37)
φhct rw2
qµ C2 kh
Como 4Pskin = C2 kh
S, e utilizando a lei de Darcy q = µ
(r ∂P )
∂r r=rw
, obtém-se a
pressão no poço na forma adimensional:
" ! #
∂PD
PwD = P (tD , rD ) − rD S (39)
∂rD rD =1
O método escolhido para se obter a solução da EDH, que é uma equação diferen-
cial parcial de segunda ordem, foi obtendo sua transformada de Laplace, pois existe
solução analítica neste domínio para o modelo de poço-reservatório escolhido.
Z∞
0
L [f (t)] = f 0 (t)e−ut dt = uF̄ (u) − F (t = 0) (41)
0
28
1 ∂ P̄D ∂ 2 P̄D
+ 2
= uP̄D − PD (tD = 0, rD ) (42)
rD ∂rD ∂rD
1 ∂ P̄D 1 ∂ 2 P̄D
+ 2
− P̄D = 0 (43)
urD ∂rD u ∂rD
√
Rearranjando a equação utilizando w = rD u , e aplicando a regra da cadeia
∂ P̄D ∂w ∂ P̄D
∂w ∂rD
= ∂rD
na Eq. (43), têm-se:
1 ∂ P̄D ∂ 2 P̄D
+ − P̄D = 0 (44)
w ∂w ∂w2
A Eq. (44) tem solução pois é análoga à equação diferencial ordinária (EDO)
abaixo, que é a equação de Bessel modificada:
d2 y dy 2
x2 + x − x + ν 2
y=0 (45)
dx2 dx
√ √
P̄D = AI0 (rD u) + BK0 (rD u) (47)
• ν, a ordem da função.
4
I0
I1
3.5
K0
K1
3
2.5
Iv(X), Kv(X)
1.5
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5 4
X
Para o modelo em que o raio do poço não é deprezível (caso da fonte cilíndrica),
utilizando-se a C.C.E, é possível determinar A:
√ √
0 = AI0 (rD u) + BK0 (rD u) (49)
√
P̄D = BK0 (rD u) (50)
∂ P¯D
! ! !
dPwD ∂PD 1
L CD − rD = 1 = CD uP̄wD −CD uPwD (tD = 0)−rD =
dtD ∂rD rD =1
∂rD rD =1
u
(51)
∂ P̄D √ √
Utilizando a derivada da Eq. (25), ∂rD
= −B uK1 ( urD ):
√ √ 1
CD uP̄wD + B uK1 ( u) = (52)
u
!
∂ P̄D
P̄wD = P̄D (rD = 1, tD ) − S rD (53)
∂rD rD =1
√ √ √
P̄wD = BK0 ( urD )rD =1 + BS uK1 ( urD )rD =1 (54)
h √ 3 √ i−1
B = CD u2 K0 ( u) + u 2 (uCD S + 1) K1 ( u) (55)
√ √ √
K0 ( u) + K1 ( u) S u
PwD = √ √ √ (56)
u[uCD K0 ( u) + uK1 ( u)(1 + uCD S)]
C1 k
αt = (57)
φµct rw2
kh
αp = (58)
C2 qBµ
Então, tem-se:
tD = αt t (59)
De acordo com a Eq. (60), e seguindo a propriedade de Laplace L{af (t)} = aF̄ (u),
é possível afirmar que:
!
1
4Pwf = PwD (62)
αp
1 u
L{PwD (αt t)} = PwD ( ) (63)
αt αt
Juntando as equações (62) e (63), tem-se que a solução da pressão com dimen-
sões é:
!
1 u
4Pwf = PwD (64)
αp αt αt
Aplicando a Eq. (64) na Eq. (56), tem-se a Eq. (65), a solução da pressão com
dimensões:
32
q q q
u u u
K0 ( bk
) + K(
bk 1 bk
)S
4Pwf = u
q
u
q
u
q
u
q
u udCS
(65)
aku[ bk dCK0 ( bk
) + K(
bk 1 bk
) + K1 ( bk
) bk )]
Sendo,
h
a= (66)
C2 qBµ
C1
b= (67)
φµct rw2
C3
d= (68)
φhct rw2
∂4Pwf −ad 2 2
= u 4Pwf (69)
∂C b
q q
u u
∂4Pwf bk
) K(
bk 1 ad
= q q q q (1 − u2 C4Pwf ) (70)
∂S u u u u u udCS
aku[ bk dCK0 ( bk ) + bk K1 ( bk ) + K1 ( bk ) bk )] b
hq q q q q q i
u u u u u u
∂4Pwf − K2
bk 0 bk
+ K2
bk 1 bk
(2S − 1) + 2K0 bk
K1 bk
= q q q q (71)
∂k 2au u 2
k [ u
dCK0 ( u
) + K1 ( u
) 1+ u
dCS ]2
bk bk bk bk bk
33
∂ 2 PD 1 ∂PD ∂PD
2
+ = (72)
∂rD rD ∂rD ∂tD
Nota-se que a condição inicial (C.I.) e a condição de contorno externa (C.C.E.) não
se alteraram. Contudo, a condição de contorno interna (C.C.I.) sofre uma significativa
alteração. Para descrever os efeitos de redistribuição de fases, nem toda mudança
de pressão pode ser atribuída à estocagem pura, pois parte da mudança é causada
pela própria redistribuição, conforme discutido na seção 2.7. Então, é necessário
acrescentar um termo correspondente à alteração de pressão devido à redistribuição
de fases, Pφ , na Eq. (33):
" #
d4Pwf dPφ
qsf = qB + C − + (75)
dt dt
Em termos adimensionais:
34
!
qsf dPwD dPφD
= 1 − CD − (76)
qB dtD dtD
A Eq. (76) pode ser desenvolvida para a C.C.I. ao se utilizar a lei de Darcy no lado
q
sf
esquerdo da equação ( qB ):
! !
∂PD dPwD dPφD
− = 1 − CD − (77)
∂rD rD =1
dtD dtD
Esta equação também pode ser escrita na forma da Eq. (33) ao se definir um
pseudo-coeficiente de estocagem, dada pela Eq. (79):
qsf dPwD
= 1 − CeD (78)
qB dtD
dPφD
dtD
CeD = CD 1 − dPwD
(79)
dtD
Nessa forma, é nítido que a redistribuição de fases no poço influencia nos efeitos
dPφD
de estocagem, pois quando dtD
> 0, o efeito de redistribuição de fases causa uma
queda no coeficiente de estocagem.
A Eq. (80) supõe o modelo para a função Pφ e a Eq. (81), sua forma adimensional,
conforme explicado na seção 2.7.
−t
P φ = Cφ 1 − e α (80)
−tD
PφD = CφD 1 − e αD (81)
C2 khPφ
PφD = (82)
qBµ
35
C2 khCφ
CφD = = akCφ (83)
qBµ
C1 kα
αD = = bkα (84)
φµct rw2
√ √
P̄D = AI0 (rD u) + BK0 (rD u) (85)
√
P̄D = BK0 (rD u) (86)
√ √ √
PwD = BK0 ( u) + BS uK1 ( u) (87)
! " # " #
∂PD dPwD dPφD
L − = L [1] − L CD + L CD (88)
∂rD rD =1
dtD dtD
√ √ 1
B uK1 u = − CD uPwD − CD uPwD (tD = 0) + CD uPφD − CD uPφD (tD = 0) (89)
u
√ √ 1
B uK1 u = − CD uPwD + CD uPφD (90)
u
PwD é definido pela Eq. (54) e PφD pode ser calculado transformando a Eq. (81):
−tD
PφD = L [CφD ] − L CφD e αD (91)
36
CφD CφD
PφD = − (92)
u u − α1D
2 1 1
1 + CD CφD u − u u+ α1
B= √ √ √ D
√ √ (93)
u { uK1 ( u) + uCD [K0 ( u) + S uK1 ( u)]}
h √ i
√Ko ( √u)
+S 1 + C D C φD u 2 1
− 1
uK1 ( u) u u+ α1
D
PwD = h √ i (94)
u 1 + uCD √Ko ( √u)
+S
uK1 ( u)
h q q q i
u u u ad 1 1
K0 ( bk
) + K(
bk 1 bk
)S 1+ b
CCφ u2 u
− 1
u− α
4Pwf = q q q q q q (95)
u
K(
bk 1
u
bk
)aku K1 ( u
bk
) + √ udCu √ u K0 ( u
bk
) + u
K(
bk 1
u
bk
)S
bk bk
K1 ( bk
)
q
u
Criando as variáveis auxiliares z = bk
e γ = K0 (z) + zK1 (z)S e aplicando-as na
Eq. (95), simplifica-se para:
b uα
adu
+ CCφ 1 − uα+1
4Pwf = bkzK1 (z)
(96)
dγ
+ uC
C uα
∂4Pwf Cφ − uα+1
φ
− u4Pwf
= bkzK1 (z)
(97)
∂C dγ
+ uC
37
h i
zK0 (z) zK1 (z)
∂4Pwf −4Pwf K1 (z) + 2
− γ
(K1 (z) + zK0 (z)S)
= (99)
∂k kK1 (z) + ud
bz
γC
∂4Pwf C
= h i (100)
∂Cφ (uα + 1) bkzK
dγ
1 (z)
+ uC
∂4Pwf −uCCφ
= 2
h i (101)
∂α (uα + 1) bkzK
dγ
1 (z)
+ uC
1 1 CφD
= − (102)
CaD CD αD
Em termos dimensionais:
C
Ca = b Cφ
(103)
1+ C2 qB α
Segundo Rosa et al. (2006), o algoritmo é amplamente utilizado por sua simplici-
dade e perfomance satisfatória, considerando a seguinte condição: que seja aplicado
em funções suaves (não oscilatórias). O funcionamento do algoritmo de Stehfest é
descrito a seguir.
n
!
ln 2 X ln 2
f (t0 ) = Vi F i (105)
t0 i=1 t0
min(i, n ) n
i+ n
X 2
K 1+ 2 (2K)!
Vi = (−1) 2 (106)
K=int( i+1
)
n
2
− K ! (K!)2 (i − K)! (2K − i)!
2
3.5.1 Notação
x1
..
~x =
.
(108)
xn
40
y1
..
~y =
.
(109)
yn
α1
..
α
~=
.
(110)
αnp
~
~r (α) = ~r = ~y − f (α) (112)
∂f (x1 ,~
α) ...... ∂f (x1 ,~
α)
∂α1
... ∂αm
~
∂f ~~
......
= J(α) = ... (113)
∂~
α
∂f (xn ,~
α) ...... ∂f (xn ,~
α)
∂α1
... ∂αm
~
∂r ~
∂f ~
=− = −J~ (114)
∂~
α ∂~
α
No caso, ela será utilizada da seguinte forma: A função f será a função modelo da
pressão, com as variáveis α1 , α2 , α3 sendo os parâmetros a serem determinados pela
regressão não linear: permeabilidade, fator de pelicula e coeficiente de estocagem.
Assim, o Jacobiano do programa será dado pelas equações (115) e (116), para os
casos com e sem redistribuição de fases respectivamente:
n n
1X 1
α, xi )]2 = ri2 = ~rT ~r
X
E(~
α) = [yi − f (~ (117)
i=1 2 i=1 2
Portanto, o valor de α
~ que minimiza o valor da função E será o vetor que melhor
ajusta as observações {xi , yi } à função-modelo, f . Assim, o método dos mínimos
quadrados consiste em minimizar a função-objetivo E, dada por:
n
[Pmedido (ti ) − Pcalculado (ti , k, S, C)]2
X
E= (118)
i=1
1 ~~
α)T .~g +
E ∗ = E |α~0 + (4~ α )T H
(4~ (4~
α) (119)
2
Onde:
• T o transposto.
∂ 2E
( ! )
~~
H = {hjm } = (120)
∂αj δαm α0
n
∂ 2F
( ! )
X ∂F ∂F
hjm = −2 − + [yi − F (~
α, xi )] (121)
i=1 ∂αm ∂αj ∂αm ∂αj α~0
42
n
( ! )
h i ∂F
yi − F δ α~0 , xi
X
gj = −2 (123)
i=1 ∂αj α~0
j = m = 1, 2, ..., np (124)
∂E ∗
=0 (126)
∂4~
α
Resultando em:
~~
H4~α = −~g (127)
~ = α~0 + 4~
α α (128)
h i
~K − α
max | α ~ K−1 | ≤ ε (129)
n
" #
X ∂F ∂F
hjm = 2 (130)
i=1 ∂αm ∂αj α~0
~~ ~T~
H = J~ J~ (131)
~T
~g = J~ ~r (132)
~~ ~T~ ~
H = J~ J~ + λI~
~ ~
H~n + λI~ (4~
α)n = −g~n (133)
~ = α~0 + ρ4~
α α (134)
(4α)
nj
α)n = {4αn } =
(4~ q (135)
h
jj
" #−1
~T~ ~~ ~T
~ = α~0 − J~ J~ + λdiag(H)
α − J~ ~r (136)
!
∂PD
rD = −1, tD>0 (139)
∂rD rD →0
2
rD
y= (140)
4tD
dPD d 2 PD
(1 + y) +y =0 (141)
dy dy 2
PD (y → ∞) = 0 (142)
!
dPD
2y = −1 (143)
dy rD →0
dPD
Definindo que PD0 (y) = dy
, tem-se:
dPD0
(1 + y)PD0 + y =0
dy
Cuja solução é:
r2
!
1
PD (rD , tD ) = − Ei − D (144)
2 4tD
Para pequenos argumentos ( rtD2 > 10), a função integral exponencial pode ser
D
aproximada para Ei(−x) = ln(x) + 0, 5772. Além disso, em longos tempos, quando
tD > 50, a solução para a pressão no poço é :
1
PwD (tD ) = PD (tD , 1) = [ln(tD ) + 0, 80907] (145)
2
Após a inclusão dos efeitos de película, conforme Eq. (3), a equação se torna:
PwD (tD ) = PD (tD , 1) = 21 [ln(tD ) + 0, 80907 + 2S]
h i h i
PwDs (tp + 4t)D = PwD (tp + 4t)D − PwDs [4tD ] (146)
!
kh 1 tp + 4t
(Pi − Pws ) = ln (147)
C2 qBµ 2 4t
" ! !#
kh 1 4tpD tp + 4t
(Pws − Pwf f ) = ln − ln +S (148)
C2 qBµ 2 0, 5772 4t
tp +4t
Para se alcançar e Eq. (8), toma-se 4t = 1 e log tp
= 0, quando tp é muito
maior que 1.
47
4 Formulação Computacional
5. Comparação dos resultados obtidos com o programa criado com os valores reais
dos dados da literatura, gerando gráficos diagnósticos;
48
O Matlab (Matrix Laboratory ) pode ser descrito como “um software interativo de
alta performance voltado para o cálculo numérico”. O software trabalha com análise
numérica e foco em processamento de dados em termos de vetores e matrizes de
números. Integra computação e visualização gráfica em um ambiente flexível e ami-
gável, provendo grande quantidade de funções auxiliares já construídas e disponíveis
na sua biblioteca (como análise de Fourier, sistemas lineares, integração e diferenci-
ação, importação de dados de arquivos de diferentes extensões). A capacidade de
personalização e gerenciamento de gráficos é ampla, trabalhando-se com gráficos
log-log, semi-log, 3D, subplots, eixos, cores, formatos e pontos modificáveis.
51
• Magrab et al. (2007), que contém temas mais aprofundados de regressão li-
near e não-linear de dados, métodos de display na tela e geração de gráficos
personalizados, aplicação de equações diferencias ordinárias e parciais e outros
assuntos relacionados à solução de problemas específicos de engenharia.
A interface do Matlab é ilustrada na Fig. 14. É possivel notar que a interface é com-
posta por vários módulos. O módulo “Editor ” é o que contém linhas individuais de
código, sendo editável e debugável. O módulo “Command Window” é interativo e é
possível definir variáveis, solicitar informações sobre determinados assuntos (“ajuda
do Matlab”), executar comandos e mostra resultados. O módulo “Workspace” contém
informações sobre as variáveis definidas e criadas, englobando seu tipo, tamanho, va-
lor máximo e mínimo, todas as suas informações no momento atual de execução. A
aba “Current Directory ” permite a mudança de pasta de execução no explorer.
52
O programa tem funcionalidades opcionais, que não são vitais para a interpreta-
ção de testes de pressão, porém, são interessantes para uma avaliação qualitativa do
comportamento da pressão em função do tempo. Segue abaixo uma lista com funcio-
nalidades possíveis de realização com o programa. Os dados para a construção dos
53
3500
3400
3300
∆P (psi)
3200
3100
3000
2900
2800
0 10 20 30 40 50 60
t (horas)
600
500
400
∆P (psi)
300
200
100
0 0 1 2
10 10 10
∆tp
3
10
2
10
∆P (psi)
1
10
0
10 −3 −2 −1 0 1 2
10 10 10 10 10 10
∆te
3
10
Dados Reais
Derivada dos Dados
2
10
∆P (psi)
1
10
0
10 −3 −2 −1 0 1 2
10 10 10 10 10 10
t (horas)
1
Valor
−1
−2
−3
−4
0 2 4 6 8 10 12 14 16
Vstehfest
k
S
600 C
Cφ
α
500
400
300
200
100
5 10 15 20
Figura 20: Exemplo de variação dsa estimativa dos parâmetros durante iterações.
5 Resultados e Análises
dos pelo código (círculos), se sobrepõem ao valor esperado (linha contínua), validando
o algoritmo. Os dados de tempo foram retirados de um teste de fluxo de Lee (1982).
Os testes foram:
1
• Teste 1: u
↔ 1;
1
• Teste 2: u−a
↔ eat , a=0,001;
n!
• Teste 3: un+1
↔ tn , n=2;
u
• Teste 4: u2 +a2
↔ cos(at);
n!
• Teste 5: c un+1 ↔ ctn , n=3, c=0,01;
• Teste 6: 1c F u
c
= 1
2 + u
2 ↔ f (ct) = sen(bt) + cos(bt), n=3;
b( ub ) +1 b( ub ) +1
1.1
Função Invertida Real
1.08 Função Invertida pelo Algoritmo
1.06
1.04
F(x) invertida
1.02
0.98
0.96
0.94
0.92
0.9
0 5 10 15 20 25 30 35 40 45
x
Figura 23: Validação do algoritmo de Stehfest, utilizando funções com inversões co-
1
nhecidas. Teste 1: u
↔ 1.
60
1.045
1.035
1.03
F(x) invertida
1.025
1.02
1.015
1.01
1.005
1
0 5 10 15 20 25 30 35 40 45 50
x
Figura 24: Validação do algoritmo de Stehfest, utilizando funções com inversões co-
1
nhecidas. Teste 2: u−a
↔ eat .
2500
Função Invertida Real
Função Invertida pelo Algoritmo
2000
F(x) invertida
1500
1000
500
0
0 5 10 15 20 25 30 35 40 45 50
x
Figura 25: Validação do algoritmo de Stehfest, utilizando funções com inversões co-
n!
nhecidas. Teste 3: un+1
↔ tn , n=2.
61
1.0001
Função Invertida Real
1 Função Invertida pelo Algoritmo
0.9999
0.9998
F(x) invertida
0.9997
0.9996
0.9995
0.9994
0.9993
0.9992
0.9991
0 5 10 15 20 25 30 35 40 45 50
x
Figura 26: Validação do algoritmo de Stehfest, utilizando funções com inversões co-
u
nhecidas. Teste 4: u2 +a2
↔ cos(at).
8
x 10
2
Função Invertida Real
1.8 Função Invertida pelo Algoritmo
1.6
1.4
F(x) invertida
1.2
0.8
0.6
0.4
0.2
0
0 5 10 15 20 25 30 35 40 45 50
x
Figura 27: Validação do algoritmo de Stehfest, utilizando funções com inversões co-
n!
nhecidas. Teste 5: c un+1 ↔ ctn , n=3.
62
1.4
Função Invertida Real
Função Invertida pelo Algoritmo
1.35
1.3
F(x) invertida
1.25
1.2
1.15
1.1
1.05
1
0 5 10 15 20 25 30 35 40 45 50
x
Figura 28: Validação do algoritmo de Stehfest, utilizando funções com inversões co-
nhecidas. Teste 6: 1c F u
c
= 1
2 + u
2 ↔ f (ct) = sen(bt) + cos(bt), n=3.
b( ub ) +1 b( ub ) +1
!
f Real − f T este
η = 1 − 100 | | (149)
f Real
Para testes, foi escrito um algoritmo de regressão não linear que utiliza o método
de Levenberg-Marquardt. Para validação do algoritmo de regressão não linear de-
senvolvido, foi implementado o código “TesteRNL.m”. O código compara resultados
obtidos da regressão pelo programa desenvolvido (“GaussMarquardt.m”) e pelos mé-
todos “lsqnonlin” e “lsqcurvefit”, próprios do software Matlab. Os métodos “lsqnonlin” e
“lsqcurvefit” foram configurados para utilizar o método de Levenberg-Marquardt. Para
a validação, foram criadas funções não lineares simples, com 3 parâmetros (incóg-
nitas) a serem determinados. A equivalência das estimativas garante a validação do
método “GaussMarquardt”.
• Teste 2: F = kCetS ;
5
F(x)
lsqnonlin
4
Algoritmo Implementado
lsqcurvefit
3
1
0 0.5 1 1.5 2 2.5
x
lsqnonlin
7 Algoritmo Implementado
lsqcurvefit
5
F(x)
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Apesar do método de regressão não linear de dados criado ter sido validado, na
versão final do programa é utilizada a função “lsqcurvefit”, própria do Matlab. Esta
função é robusta, otimizada e possui opção de se escolher o método de regressão
não linear a ser utilizado. Com ela foram obtidos resultados melhores nos estudos de
caso.
65
0
u=0.1
u=0.2
−50
u=0.3
u=0.4
−100 u=0.5
∂Pwf/∂k
u=0.6
−150 u=0.7
u=0.8
u=0.9
−200 u=1.0
−250
−300
0 20 40 60 80 100 120 140 160 180 200
k (md)
300
u=0.1
250 u=0.2
u=0.3
200 u=0.4
u=0.5
∂Pwf/∂S
u=0.6
150 u=0.7
u=0.8
100 u=0.9
u=1.0
50
0
0 2 4 6 8 10 12 14 16 18 20
S
0
u=0.1
−500 u=0.2
u=0.3
−1000 u=0.4
u=0.5
−1500
∂Pwf/∂C
u=0.6
−2000 u=0.7
u=0.8
−2500 u=0.9
u=1.0
−3000
−3500
−4000
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
C (bbl/psi)
O teste por diferenças finitas consiste em receber a função da pressão e, por meio
da fórmula geral de derivada abaixo, aplicar os valores assumidos de cada parâmetro
para (h − 4h) e (h + 4h). Foi utilizado a derivada centrada, conforme Eq. 150. 4h é
a variação do passo para cada variável.
F (h + 4h) − F (h − 4h)
F 0 (h) = (150)
24h
0
u=0.1
−20 u=0.2
u=0.3
u=0.4
−40 u=0.5
∂Pwf/∂k
u=0.6
u=0.7
−60 u=0.8
u=0.9
u=1.0
−80
−100
20 40 60 80 100 120 140 160 180 200
k (md)
300 u=0.1
u=0.2
250 u=0.3
u=0.4
200 u=0.5
∂Pwf/∂S
u=0.6
150 u=0.7
u=0.8
u=0.9
100
u=1.0
50
0
2 4 6 8 10 12 14 16 18 20
S
0
u=0.1
−500 u=0.2
u=0.3
−1000 u=0.4
u=0.5
−1500
∂Pwf/∂C
u=0.6
u=0.7
−2000
u=0.8
−2500 u=0.9
u=1.0
−3000
−3500
−4000
0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
C (bbl/psi)
0 u=0.1
u=0.1
u=0.2
−2000 u=0.2
u=0.3
u=0.3
u=0.4
−4000
∂Pwf/∂k
u=0.4
u=0.5
u=0.5
u=0.6
−6000
u=0.6
u=0.7
u=0.7
−8000 u=0.8
u=0.8
u=0.9
u=0.9
−10000
0 2 4 6 8 10 12 14 16 18 20 u=1.0
u=1.0
k (md)
300 u=0.1
u=0.1
u=0.2
250 u=0.2
u=0.3
u=0.3
200 u=0.4
∂Pwf/∂S
u=0.4
u=0.5
150 u=0.5
u=0.6
100 u=0.6
u=0.7
u=0.7
50 u=0.8
u=0.8
u=0.9
0 u=0.9
0 2 4 6 8 10 12 14 16 18 20 u=1.0
S u=1.0
0 u=0.1
u=0.1
−500 u=0.2
u=0.2
−1000 u=0.3
u=0.3
−1500 u=0.4
∂Pwf/∂C
u=0.4
u=0.5
−2000
u=0.5
u=0.6
−2500 u=0.6
u=0.7
−3000 u=0.7
u=0.8
−3500 u=0.8
u=0.9
−4000 u=0.9
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 u=1.0
C (bbl/psi) u=1.0
0 u=0.1
u=0.1
u=0.2
u=0.2
−1000 u=0.3
u=0.3
u=0.4
u=0.4
−2000
∂Pwf/∂k
u=0.5
u=0.5
u=0.6
u=0.6
−3000 u=0.7
u=0.7
u=0.8
u=0.8
−4000 u=0.9
u=0.9
u=1.0
u=1.0
−5000
0 20 40 60 80 100 120 140 160 180 200
k (md)
500 u=0.1
u=0.1
u=0.2
u=0.2
400 u=0.3
u=0.3
u=0.4
u=0.4
∂Pwf/∂S
300 u=0.5
u=0.5
u=0.6
u=0.6
200 u=0.7
u=0.7
u=0.8
u=0.8
100 u=0.9
u=0.9
u=1.0
u=1.0
0
0 2 4 6 8 10 12 14 16 18 20
S
0
u=0.1
u=0.1
−2000
u=0.2
u=0.2
−4000 u=0.3
u=0.3
−6000 u=0.4
∂Pwf/∂C
u=0.4
−8000 u=0.5
u=0.5
−10000 u=0.6
u=0.6
u=0.7
−12000
u=0.7
u=0.8
−14000 u=0.8
u=0.9
−16000 u=0.9
u=1.0
−18000 u=1.0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
C (bbl/psi)
1.4 u=0.1
u=0.1
1.2 u=0.2
u=0.2
u=0.3
1 u=0.3
u=0.4
∂Pwf/∂Cφ
u=0.4
0.8
u=0.5
u=0.5
0.6 u=0.6
u=0.6
u=0.7
0.4 u=0.7
u=0.8
u=0.8
0.2
u=0.9
u=0.9
0 u=1.0
0 200 400 600 800 1000 1200 1400 1600 1800 2000 u=1.0
Cφ (psi)
0
u=0.1
u=0.1
−50 u=0.2
u=0.2
u=0.3
−100 u=0.3
u=0.4
∂Pwf/∂α
−150 u=0.4
u=0.5
u=0.5
−200 u=0.6
u=0.6
u=0.7
−250
u=0.7
u=0.8
−300 u=0.8
u=0.9
u=0.9
−350 u=1.0
0 1 2 3 4 5 6 7 8 9 10
α (horas)
u=1.0
3
10
2
10
∆P (psi)
1
10
Dados de campo
Derivada dados de campo
Função modelo
Derivada função modelo
0
10 −1 0 1
10 10 10
t (horas)
de campo. Pontua-se que foi testado a inserção dos valores de referência na função
modelo, não ocorrendo um ajuste aos dados de campo.
3
10
2
10
∆P (psi)
1
10
Dados de campo
Derivada dados de campo
Função modelo
Derivada função modelo
0
10 −1 0 1 2
10 10 10 10
t (horas)
2
10
∆P (psi)
Dados de campo
Derivada dados de campo
1
10 Função modelo
Derivada função modelo
−1 0 1 2
10 10 10 10
t (horas)
Dados de campo
Derivada dados de campo
Função modelo
Derivada função modelo
2
10
∆P (psi)
1
10
−1 0 1 2
10 10 10 10
t (horas)
700
Dados de campo
Função Modelo
600
500
∆P (psi)
400
300
200
100
0 −3 −2 −1 0 1
10 10 10 10 10
∆tp
700
Dados de campo
600
Função Modelo
500
∆P (psi)
400
300
200
100
0 −3 −2 −1 0 1
10 10 10 10 10
∆tp
6 Considerações Finais
Pontua-se que a aplicação do modelo de Fair deve ser realizada somente para
sistemas poço-reservatório em que se aplica a redistribuição de fases dentro do poço,
não em casos de parada de produção através de fechamento do fluxo de fluidos no
fundo do poço (downhole shut-in), ou em reservatórios extremamente permeáveis.
Se faz necessário constante verificação e acompanhamento de produção, revisando
dados e parâmetros previamente calculados.
Estudos subsequentes com o mesmo tema poderão ser realizados, como a incor-
poração de novas funcionalidades no software:
• Testes com outros algoritmos de inversão para o campo real, diferentes do algo-
ritmo de Stehfest;
Referências
ABBASZADEH, M.; KAMAL, M. Automatic type curve matching for well test analysis.
SPE formation evaluation, Society of Petroleum Engineers, v. 3, n. 3, p. 567–577,
1988.
BOURDET, D.; AYOUB, J. A.; PIRARD, Y. M. Use of pressure derivative in well test
interpretation. SPE Formation Evaluation, Society of Petroleum Engineers, v. 4, n. 2,
p. 293–302, 1989.
OZKAN, E.; RAGHAVAN, R. S. Some strategies to apply the Stehfest algorithm for a
tabulated set of numbers. Society of Petroleum Engineering Journal, v. 2, n. 03, p.
363-372, 1997.
HEGEMAN, P. S.; HALLFORD, D. L.; JOSEPH, J. A. Well test analysis with changing
85
KAMAL, M. M. Transient Well Testing. SPE Monograph Series Vol. 23. Society of
Petroleum Engineers, 2009.
LEE, J.; ROLLINS, J. B.; SPIVEY, J. P. Pressure transient testing. Henry L. Doherty
Memorial Fund of Aime Society of Petroleum Engineers, 2003.
MAGRAB, E. B.; AZARM, S.; BALACHANDRAN, B.; DUNCAN, J.; HEROLD, K.;
WALSH, G. Engineers guide to matlab. Prentice Hall Press, 2007.
MATTHEWS, C. S.; RUSSELL, D. G. Pressure buildup and flow tests in wells. Society
of petroleum engineers of AIME, 1967.
ROSA, A.; HORNE, R. Automated type-curve matching in well test analysis using
Laplace space determination of parameter gradients. In: SPE Annual Technical
Conference and Exhibition, 1983.
• Configuração do programa;
– “PressaoXTempo.jpg” ;
90
– “PressaoXTempo-Horner-Semilog.jpg”;
– “PressaoXTempo-Agarwal-LogLog.jpg”;
– “PressaoXTempo-Bourdet-LogLog.jpg” ;
• Criação de Função:
– Criar uma função para cada modelo e para cada derivada, no formato
pré-estabelecido de variáveis de entrada e saída;
r e g i s t r a d o r = dlmread ( a r q u i v o R e g i s t r a d o r ) ; %L e i t u r a do a r q u i v o de t e x t o
t = registrador (: ,1) ’; %Pega toda a coluna e f a z a t r a n s p o s t a para s e r v e t o r l i n h a
p = registrador (: ,2) ’;
v a r i a v e i s = load ( arquivoVariaveis ) ;
sistema = f g e t l ( fopen ( a r q u i v o V a r i a v e i s ) ) ;
B = variaveis (3) ;
phi = variaveis (4) ;
ct = variaveis (5) ;
visc = variaveis (6) ;
rw = v a r i a v e i s ( 7 ) ;
pwf= v a r i a v e i s ( 8 ) ;
tp=variaveis (9) ;
a = h / ( c2 * q * B * v i s c ) ;
b = c1 / ( p h i * v i s c * c t * rw * rw ) ;
d = c3 / ( p h i * h * c t * rw * rw ) ;
d e l t a t ( l e n g t h ( t ) −1)=0; %Pré−alocação
pws ( l e n g t h ( t ) −1)=0; %Pré−alocação
i f ( t p ==0)
tp= d e l t a t ( length ( d e l t a t ) ) ;
end
end
i f ( pws ( 1 ) >pwf )
f o r i = 2 : ( l e n g t h ( d e l t a t ) −1)
d e l t a t L ( i −1) = l o g ( d e l t a t ( i ) / d e l t a t ( i −1) ) ;
d e l t a t R ( i −1) = l o g ( d e l t a t ( i +1) / d e l t a t ( i ) ) ;
f o r j = 1 : 1 : ( i −1)
i f ( d e l t a t L ( i −1)<L )
d e l t a t L ( i −1) = l o g ( d e l t a t ( i ) / d e l t a t ( i−j ) ) ;
end
end
f o r j = 1 : 1 : ( l e n g t h ( d e l t a t )−i )
i f ( d e l t a t R ( i −1)<L )
d e l t a t R ( i −1) = l o g ( d e l t a t ( i + j ) / d e l t a t ( i ) ) ;
end
end
d e l t a p L ( i −1) = pws ( i ) − pws ( i −1) ;
deltapR ( i −1) = pws ( i +1) − pws ( i ) ;
d e r i v ad a p ( i −1) = ( ( d e l t a t R ( i −1) * d e l t a p L ( i −1) / d e l t a t L ( i −1) ) + . . .
( d e l t a t L ( i −1) * deltapR ( i −1) / d e l t a t R ( i −1) ) ) / ( d e l t a t L ( i −1)+ d e l t a t R ( i −1) ) ;
end
end
i f ( pws ( 1 ) <pwf )
f o r i = 2 : ( l e n g t h ( d e l t a t ) −1)
d e l t a t L ( i −1) = l o g ( d e l t a t ( i ) / d e l t a t ( i −1) ) ;
d e l t a t R ( i −1) = l o g ( d e l t a t ( i +1) / d e l t a t ( i ) ) ;
f o r j = 1 : 1 : ( i −1)
i f ( d e l t a t L ( i −1)<L )
d e l t a t L ( i −1) = l o g ( d e l t a t ( i ) / d e l t a t ( i−j ) ) ;
end
96
end
f o r j = 1 : 1 : ( l e n g t h ( d e l t a t )−i )
i f ( d e l t a t R ( i −1)<L )
d e l t a t R ( i −1) = l o g ( d e l t a t ( i + j ) / d e l t a t ( i ) ) ;
end
end
d e l t a p L ( i −1) = pws ( i ) − pws ( i −1) ;
deltapR ( i −1) = pws ( i +1) − pws ( i ) ;
d e r i v ad a p ( i −1) = ( ( d e l t a t R ( i −1) * d e l t a p L ( i −1) / d e l t a t L ( i −1) ) + . . .
( d e l t a t L ( i −1) * deltapR ( i −1) / d e l t a t R ( i −1) ) ) / ( d e l t a t L ( i −1)+ d e l t a t R ( i −1) ) ;
end
end
deltate = tp * d e l t a t . / ( tp+ d e l t a t ) ;
i f ( t p == d e l t a t ( l e n g t h ( d e l t a t ) ) )
deltate=deltat ;
end
figure ;
p l o t 4 = l o g l o g ( d e l t a t e , ( pws−pwf ) , ’ ob ’ , ’ LineWidth ’ , 2 ) ;
%t i t l e ( ’ Pressao Vs . Tempo de Agarwal − Escala Log−Log ’ ) ;
x l a b e l ( ’ \ D e l t a t _ e ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ \ DeltaP ( p s i ) ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ; %legend ( ’ Dados Reais ’ ) ;
saveas ( p l o t 4 , ’ PressaoXTempo−Agarwal−LogLog . jpg ’ )
end
% d e l t a t Dados de tempo
% f t r an s fo r ma d a i n v e r s a de F ( u )
f ( l e n g t h ( d e l t a t ) ) =0; %Pré−alocação
for j =1:1: length ( d e l t a t )
soma=0;
f o r i = 1 : 1 : l e n g t h (V)
u = i * log (2) / d e l t a t ( j ) ;
soma = soma+V( i ) * f c t ( k , s , C, Cphi , alpha , a , b , d , u ) ;
end
f ( j ) = ( l o g ( 2 ) / d e l t a t ( j ) ) * soma ;
end
V = coeficientestehfest (n) ;
f T e s t e = s t e h f e s t s i m p l e s ( @testeAlgoritmo1 , V , d e l t a t , k , s , C, a , b , d ) ;
f R e a l = ones ( s i z e ( d e l t a t ) ) ;
figure ;
p l o t ( d e l t a t , f T e s t e , ’−r ’ , d e l t a t , fReal , ’ ob ’ , ’ LineWidth ’ , 2 )
axis ( [ 0 d e l t a t ( length ( d e l t a t ) ) 0.9 1 . 1 ] ) ;
axis ( [ 0 d e l t a t ( length ( d e l t a t ) ) 0.9 1 . 1 ] ) ;
x l a b e l ( ’ x ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ F ( x ) i n v e r t i d a ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Função I n v e r t i d a Real ’ , ’ Função I n v e r t i d a p e l o A l g o r i t m o ’ ) ;
e f 1 =max ( abs ( ( f T e s t e−f R e a l ) * 1 0 0 . / f R e a l ) ) ;
f T e s t e = s t e h f e s t s i m p l e s ( @testeAlgoritmo2 , V , d e l t a t , k , s , C, a , b , d ) ;
f R e a l = exp ( a * d e l t a t ) ;
figure ;
p l o t ( d e l t a t , f T e s t e , ’−r ’ , d e l t a t , fReal , ’ ob ’ , ’ LineWidth ’ , 2 )
x l a b e l ( ’ x ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ F ( x ) i n v e r t i d a ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Função I n v e r t i d a Real ’ , ’ Função I n v e r t i d a p e l o A l g o r i t m o ’ ) ;
e f 2 =max ( abs ( ( f T e s t e−f R e a l ) * 1 0 0 . / f R e a l ) ) ;
f T e s t e = s t e h f e s t s i m p l e s ( @testeAlgoritmo3 , V , d e l t a t , k , s , C, a , b , d ) ;
fReal = d e l t a t . ^ 2 ;
figure ;
p l o t ( d e l t a t , f T e s t e , ’−r ’ , d e l t a t , fReal , ’ ob ’ , ’ LineWidth ’ , 2 )
x l a b e l ( ’ x ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ F ( x ) i n v e r t i d a ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Função I n v e r t i d a Real ’ , ’ Função I n v e r t i d a p e l o A l g o r i t m o ’ ) ;
e f 3 =max ( abs ( ( f T e s t e−f R e a l ) * 1 0 0 . / f R e a l ) ) ;
% f T e s t e = s t e h f e s t s i m p l e s ( @testeAlgoritmo4 , V , d e l t a t , k , s , C, a , b , d ) ;
% fReal = sin ( a* d e l t a t ) ;
% figure ;
% p l o t ( d e l t a t , f T e s t e , ’−r ’ , d e l t a t , fReal , ’ ob ’ , ’ LineWidth ’ , 2 )
% x l a b e l ( ’ x ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ F ( x ) i n v e r t i d a ’ , ’ FontSize ’ , 2 0 ) ;
% s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
% legend ( ’ Função I n v e r t i d a p e l o A l g o r i t m o ’ , ’ Função I n v e r t i d a Real ’ ) ;
e f 4 =max ( abs ( ( f T e s t e−f R e a l ) * 1 0 0 . / f R e a l ) ) ;
f T e s t e = s t e h f e s t s i m p l e s ( @testeAlgoritmo5 , V , d e l t a t , k , s , C, a , b , d ) ;
f R e a l = cos ( a * d e l t a t ) ;
figure ;
p l o t ( d e l t a t , f T e s t e , ’−r ’ , d e l t a t , fReal , ’ ob ’ , ’ LineWidth ’ , 2 )
x l a b e l ( ’ x ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ F ( x ) i n v e r t i d a ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Função I n v e r t i d a Real ’ , ’ Função I n v e r t i d a p e l o A l g o r i t m o ’ ) ;
e f 5 =max ( abs ( ( f T e s t e−f R e a l ) * 1 0 0 . / f T e s t e ) ) ;
% f T e s t e = s t e h f e s t s i m p l e s ( @testeAlgoritmo6 , V , d e l t a t , k , s , C, a , b , d ) ;
% f R e a l = exp ( 0 . 0 1 * d e l t a t ) . * exp ( a * d e l t a t ) ;
% figure ;
% p l o t ( d e l t a t , f T e s t e , ’−r ’ , d e l t a t , fReal , ’ ob ’ , ’ LineWidth ’ , 2 )
% x l a b e l ( ’ x ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ F ( x ) i n v e r t i d a ’ , ’ FontSize ’ , 2 0 ) ;
% s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
98
f T e s t e = s t e h f e s t s i m p l e s ( @testeAlgoritmo7 , V , d e l t a t , k , s , C, a , b , d ) ;
fReal = b . * ( d e l t a t . ^ 3 ) ;
figure ;
p l o t ( d e l t a t ( 1 : l e n g t h ( d e l t a t ) ) , f T e s t e ( 1 : l e n g t h ( d e l t a t ) ) , ’−r ’ , d e l t a t ( 1 : l e n g t h ( d e l t a t ) ) , f R e a l ( 1 : l e n g t h ( d e l t a t ) ) , ’ ob ’ , ’
LineWidth ’ , 2 )
x l a b e l ( ’ x ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ F ( x ) i n v e r t i d a ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Função I n v e r t i d a Real ’ , ’ Função I n v e r t i d a p e l o A l g o r i t m o ’ ) ;
e f 7 =max ( abs ( ( f T e s t e−f R e a l ) * 1 0 0 . / f R e a l ) ) ;
b=0.01;
f T e s t e = s t e h f e s t s i m p l e s ( @testeAlgoritmo8 , V , d e l t a t , k , s , C, a , b , d ) ;
f R e a l = s i n ( b * d e l t a t ) +cos ( b * d e l t a t ) ;
figure ;
p l o t ( d e l t a t , f T e s t e , ’−r ’ , d e l t a t , fReal , ’ ob ’ , ’ LineWidth ’ , 2 )
x l a b e l ( ’ x ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ F ( x ) i n v e r t i d a ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Função I n v e r t i d a Real ’ , ’ Função I n v e r t i d a p e l o A l g o r i t m o ’ ) ;
e f 8 =max ( abs ( ( f T e s t e−f R e a l ) * 1 0 0 . / f R e a l ) ) ;
e f t =100−max ( [ e f 1 e f 2 e f 3 e f 4 e f 5 e f 6 e f 7 e f 8 ] )
%SUPOSIÇÃO INICIAL
k =20; s =5; C= 0 . 2 ;
x0 = [ k s C ] ; x=x0 ’ ;
e =0.0001;
a =1; b =1; d =1;
l b = [ ] ; ub = [ ] ;
o p t i o n s = o p t i m s e t ( ’ Jacobian ’ , ’ on ’ , ’ A l g o r i t h m ’ , ’ levenberg−marquardt ’ , ’ ScaleProblem ’ , ’ Jacobian ’ ) ;
t e s t e =1;
%VALORES REAIS
%Teste 3
i f ( t e s t e ==3)
deltat =[0.1 ,0.25 ,0.5 ,0.6 ,0.7 ,0.8 ,0.9 ,1];
y =[12.0020010003334 , 27.0050062552116 , 52.0100250417188 , 77.0150563908891 , 102.020100334168 , 127.025156903081 ,
152.030226129231 , 177.035308044302 , 202.040402680054 , 227.045510068329 , 252.050630241049];
[ x1 ] = l s q n o n l i n ( @testeRNLModelo3 , x0 ’ , l b , ub , o p t i o n s ) ;
[ x3 ] = l s q c u r v e f i t ( @testeRNLModelo3a , x0 ’ , d e l t a t , y , l b , ub , o p t i o n s ) ;
[ x2 , i t , e r r o ] = GaussMarquardt ( x0 ’ , d e l t a t , y , e , a , b , d , d e l t a t , y ) ;
F1 = d e l t a t . * x1 ( 1 ) . ^ 2 + x1 ( 2 ) . * exp ( d e l t a t . * x1 ( 3 ) ) ;
F2 = d e l t a t . * x2 ( 1 ) . ^ 2 + x2 ( 2 ) . * exp ( d e l t a t . * x2 ( 3 ) ) ;
F3 = d e l t a t . * x3 ( 1 ) . ^ 2 + x3 ( 2 ) . * exp ( d e l t a t . * x3 ( 3 ) ) ;
else
%Teste 2
i f ( t e s t e ==2)
deltat =[0.1 ,0.25 ,0.5 ,0.6 ,0.7 ,0.8 ,0.9 ,1];
y = [ 1 . 2 2 1 4 , 1.6487 , 2.7183 , 3.3201 , 4.0552 , 4 . 9 5 3 0 , 6 . 0 4 9 6 , 7 . 3 8 9 1 ] ;
[ x1 ] = l s q n o n l i n ( @testeRNLModelo2 , x0 ’ , l b , ub , o p t i o n s ) ;
[ x3 ] = l s q c u r v e f i t ( @testeRNLModelo2a , x0 ’ , d e l t a t , y , l b , ub , o p t i o n s ) ;
[ x2 , i t , e r r o ] = GaussMarquardt ( x0 ’ , d e l t a t , y , e , a , b , d , d e l t a t , y ) ;
F1 = ( x1 ( 1 ) * x1 ( 3 ) * exp ( x1 ( 2 ) * d e l t a t ) ) ;
F2 = ( x2 ( 1 ) * x2 ( 3 ) * exp ( x2 ( 2 ) * d e l t a t ) ) ;
F3 = ( x3 ( 1 ) * x3 ( 3 ) * exp ( x3 ( 2 ) * d e l t a t ) ) ;
else
%Teste 1
deltat =[0.1 ,0.25 ,0.5 ,0.75 ,1 ,1.25 ,1.5 ,1.75 ,2 ,2.25 ,2.5];
%y = [ − 0 . 9 1 6 3 , 1 . 8 3 2 6 , 3 . 9 1 2 0 , 5 . 1 2 8 4 , 5 . 9 9 1 5 , 6 . 6 6 0 9 , 7 . 2 0 7 9 , 7 . 6 7 0 3 , 8 . 0 7 0 9 , 8 . 4 2 4 3 , 8 . 7 4 0 3 ] ;
y =[202.010033416834 , 205.063024104886 , 210.254219275205 , 215.576830176926 , 221.03418361513 , 226.629690613365 ,
232.366848545657 , 238.249243322472 , 244.280551632034 , 250.464543238373 , 256.805083337548];
[ x1 ] = l s q n o n l i n ( @testeRNLModelo1 , x0 ’ , l b , ub , o p t i o n s ) ;
[ x3 ] = l s q c u r v e f i t ( @testeRNLModelo1a , x0 ’ , d e l t a t , y , l b , ub , o p t i o n s ) ;
[ x2 , i t , e r r o ] = GaussMarquardt ( x0 ’ , d e l t a t , y , e , a , b , d , d e l t a t , y ) ;
%F1 = l o g ( d e l t a t . * ( a . * ( x1 ( 1 ) . ^ 3 ) ) + l o g ( d e l t a t . * b . * ( x1 ( 2 ) . ^ 2 ) ) ) + l o g ( d e l t a t . * d . * x1 ( 3 ) ) ;
%F2 = l o g ( d e l t a t . * ( a . * ( x2 ( 1 ) . ^ 3 ) ) + l o g ( d e l t a t . * b . * ( x2 ( 2 ) . ^ 2 ) ) ) + l o g ( d e l t a t . * d . * x2 ( 3 ) ) ;
%F3 = l o g ( d e l t a t . * ( a . * ( x3 ( 1 ) . ^ 3 ) ) + l o g ( d e l t a t . * b . * ( x3 ( 2 ) . ^ 2 ) ) ) + l o g ( d e l t a t . * d . * x3 ( 3 ) ) ;
99
F1 = ( x1 ( 1 ) * x1 ( 2 ) * l o g ( x1 ( 3 ) * d e l t a t ) ) ;
F2 = ( x2 ( 1 ) * x2 ( 2 ) * l o g ( x2 ( 3 ) * d e l t a t ) ) ;
F3 = ( x3 ( 1 ) * x3 ( 2 ) * l o g ( x3 ( 3 ) * d e l t a t ) ) ;
end
end
ef12=max ( abs ( ( F2−F1 ) * 1 0 0 . / F1 ) ) ;
ef23=max ( abs ( ( F2−F3 ) * 1 0 0 . / F3 ) ) ;
p l o t = p l o t ( d e l t a t , F1 , ’ ob ’ , d e l t a t , F2, ’ − r ’ , d e l t a t , F3 , ’ * g ’ , ’ LineWidth ’ , 2 ) ;
x l a b e l ( ’ x ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ F ( x ) ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ; legend ( ’ l s q n o n l i n ’ , ’ A l g o r i t m o Implementado ’ , ’ l s q c u r v e f i t ’ ) ;
%FIM
.
100
%Permeabilidade
k =1:10:200;
s =2;
C= 0 . 0 2 ;
Cphi =500;
alpha =6;
dk = ( k ( l e n g t h ( k ) )−k ( 1 ) ) / ( l e n g t h ( k ) −1) ;
%Pré−alocações
dFdk ( l e n g t h ( k ) ) =0;
d i f f F d k ( l e n g t h ( k ) −1)=0;
for u = 0.1:0.1:1;
for i =1:1: length ( k )
dFdk ( i ) = der1 ( k ( i ) , s , C, Cphi , alpha , a , b , d , u ) ;
i f ( i ==2)
d i f f F d k ( i −1) = ( f c t ( k ( i ) , s , C, Cphi , alpha , a , b , d , u )−f c t ( k ( i −1) , s , C, Cphi , alpha , a , b , d , u ) ) / dk ; %Derivada avançada , não
utilizada
end
i f ( i >2)
d i f f F d k ( i −1) = ( f c t ( k ( i ) , s , C, Cphi , alpha , a , b , d , u )−f c t ( k ( i −2) , s , C, Cphi , alpha , a , b , d , u ) ) / ( 2 * dk ) ; %Derivada c e n t r a d a
end
end
i f ( u==0.1)
figure ;
p l o t ( k , dFdk , ’ − ’ , k ( 2 : ( l e n g t h ( k ) −1) ) , d i f f F d k ( 2 : l e n g t h ( d i f f F d k ) ) , ’ * ’ , ’ LineWidth ’ , 2 ) ;
x l a b e l ( ’ k (md) ’ , ’ FontSize ’ , 2 0 ) ;
y l a b e l ( ’ \ p a r t i a l P _ { wf } / \ p a r t i a l k ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Derivada Numérica ’ , ’ Derivada por d i f e r e n ç a s f i n i t a s ’ ) ;
else
hold a l l ;
p l o t ( k , dFdk , ’ − ’ , k ( 2 : ( l e n g t h ( k ) −1) ) , d i f f F d k ( 2 : l e n g t h ( d i f f F d k ) ) , ’ * ’ , ’ LineWidth ’ , 2 ) ;
hold o f f ;
end
end
legend ( ’ u = 0 . 1 ’ , ’ u = 0 . 1 ’ , ’ u = 0 . 2 ’ , ’ u = 0 . 2 ’ , ’ u = 0 . 3 ’ , ’ u = 0 . 3 ’ , ’ u = 0 . 4 ’ , ’ u = 0 . 4 ’ , ’ u = 0 . 5 ’ , ’ u = 0 . 5 ’ , . . .
’u=0.6 ’ , ’u=0.6 ’ , ’u=0.7 ’ , ’u=0.7 ’ , ’u=0.8 ’ , ’u=0.8 ’ , ’u=0.9 ’ , ’u=0.9 ’ , ’u=1.0 ’ , ’u=1.0 ’) ;
%F a t o r P e l i c u l a
k =20;
s =1:1:20;
C= 0 . 0 2 ;
Cphi =500;
alpha =6;
ds = ( s ( l e n g t h ( s ) )−s ( 1 ) ) / ( l e n g t h ( s ) −1) ;
%Pré−alocações
d i f f F d s ( l e n g t h ( s ) −1)=0;
101
dFds ( l e n g t h ( s ) ) =0;
for u = 0.1:0.1:1;
for i =1:1: length ( s )
dFds ( i ) = der2 ( k , s ( i ) ,C, Cphi , alpha , a , b , d , u ) ;
i f ( i ==2)
d i f f F d s ( i −1) = ( f c t ( k , s ( i ) ,C, Cphi , alpha , a , b , d , u )−f c t ( k , s ( i −1) ,C, Cphi , alpha , a , b , d , u ) ) / ds ; %Derivada avançada , não
utilizada
end
i f ( i >2)
d i f f F d s ( i −1) = ( f c t ( k , s ( i ) ,C, Cphi , alpha , a , b , d , u )−f c t ( k , s ( i −2) ,C, Cphi , alpha , a , b , d , u ) ) / ( 2 * ds ) ; %Derivada c e n t r a d a
end
end
i f ( u==0.1)
figure ;
p l o t ( s , dFds , ’ − ’ , s ( 2 : ( l e n g t h ( s ) −1) ) , d i f f F d s ( 2 : l e n g t h ( d i f f F d s ) ) , ’ * ’ , ’ LineWidth ’ , 2 ) ;
x l a b e l ( ’ S ’ , ’ FontSize ’ , 2 0 ) ;
y l a b e l ( ’ \ p a r t i a l P _ { wf } / \ p a r t i a l S ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Derivada Numérica ’ , ’ Derivada por d i f e r e n ç a s f i n i t a s ’ ) ;
else
hold a l l ;
p l o t ( s , dFds , ’ − ’ , s ( 2 : ( l e n g t h ( s ) −1) ) , d i f f F d s ( 2 : l e n g t h ( d i f f F d s ) ) , ’ * ’ , ’ LineWidth ’ , 2 ) ;
hold o f f ;
end
end
legend ( ’ u = 0 . 1 ’ , ’ u = 0 . 1 ’ , ’ u = 0 . 2 ’ , ’ u = 0 . 2 ’ , ’ u = 0 . 3 ’ , ’ u = 0 . 3 ’ , ’ u = 0 . 4 ’ , ’ u = 0 . 4 ’ , ’ u = 0 . 5 ’ , ’ u = 0 . 5 ’ , . . .
’u=0.6 ’ , ’u=0.6 ’ , ’u=0.7 ’ , ’u=0.7 ’ , ’u=0.8 ’ , ’u=0.8 ’ , ’u=0.9 ’ , ’u=0.9 ’ , ’u=1.0 ’ , ’u=1.0 ’) ;
%CoefEstocagem
k =20;
s =2;
C= 0 . 0 1 : 0 . 0 1 : 0 . 2 0 ;
Cphi =500;
alpha =6;
%Pré−alocações
d i f f F d C ( l e n g t h (C) −1)=0;
dFdC ( l e n g t h (C) ) =0;
for u = 0.1:0.1:1;
f o r i = 1 : 1 : l e n g t h (C)
dFdC ( i ) = der3 ( k , s ,C( i ) , Cphi , alpha , a , b , d , u ) ;
i f ( i ==2)
d i f f F d C ( i −1) = ( f c t ( k , s ,C( i ) , Cphi , alpha , a , b , d , u )−f c t ( k , s ,C( i −1) , Cphi , alpha , a , b , d , u ) ) / dC ; %Derivada avançada , não
utilizada
end
i f ( i >2)
d i f f F d C ( i −1) = ( f c t ( k , s ,C( i ) , Cphi , alpha , a , b , d , u )−f c t ( k , s ,C( i −2) , Cphi , alpha , a , b , d , u ) ) / ( 2 * dC ) ; %Derivada c e n t r a d a
end
end
i f ( u==0.1)
figure ;
p l o t (C, dFdC, ’ − ’ ,C ( 2 : ( l e n g t h (C) −1) ) , d i f f F d C ( 2 : l e n g t h ( d i f f F d C ) ) , ’ * ’ , ’ LineWidth ’ , 2 ) ;
x l a b e l ( ’C ( b b l / p s i ) ’ , ’ FontSize ’ , 2 0 ) ;
y l a b e l ( ’ \ p a r t i a l P _ { wf } / \ p a r t i a l C ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Derivada Numérica ’ , ’ Derivada por d i f e r e n ç a s f i n i t a s ’ ) ;
else
hold a l l ;
p l o t (C, dFdC, ’ − ’ ,C ( 2 : ( l e n g t h (C) −1) ) , d i f f F d C ( 2 : l e n g t h ( d i f f F d C ) ) , ’ * ’ , ’ LineWidth ’ , 2 ) ;
hold o f f ;
end
end
legend ( ’ u = 0 . 1 ’ , ’ u = 0 . 1 ’ , ’ u = 0 . 2 ’ , ’ u = 0 . 2 ’ , ’ u = 0 . 3 ’ , ’ u = 0 . 3 ’ , ’ u = 0 . 4 ’ , ’ u = 0 . 4 ’ , ’ u = 0 . 5 ’ , ’ u = 0 . 5 ’ , . . .
’u=0.6 ’ , ’u=0.6 ’ , ’u=0.7 ’ , ’u=0.7 ’ , ’u=0.8 ’ , ’u=0.8 ’ , ’u=0.9 ’ , ’u=0.9 ’ , ’u=1.0 ’ , ’u=1.0 ’) ;
%Cphi
k =20;
s =2;
C= 0 . 0 2 ;
Cphi =10:100:2000;
alpha =6;
102
%Pré−alocações
d i f f F d C p h i ( l e n g t h ( Cphi ) −1)=0;
dFdCphi ( l e n g t h ( Cphi ) ) =0;
for u = 0.1:0.1:1;
f o r i = 1 : 1 : l e n g t h ( Cphi )
dFdCphi ( i ) = der4 ( k , s , C, Cphi ( i ) , alpha , a , b , d , u ) ;
i f ( i ==2)
d i f f F d C p h i ( i −1) = ( f c t ( k , s , C, Cphi ( i ) , alpha , a , b , d , u )−f c t ( k , s , C, Cphi ( i −1) , alpha , a , b , d , u ) ) / dCphi ; %Derivada avançada ,
não u t i l i z a d a
end
i f ( i >2)
d i f f F d C p h i ( i −1) = ( f c t ( k , s , C, Cphi ( i ) , alpha , a , b , d , u )−f c t ( k , s , C, Cphi ( i −2) , alpha , a , b , d , u ) ) / ( 2 * dCphi ) ; %Derivada
centrada
end
end
i f ( u==0.1)
figure ;
p l o t ( Cphi , dFdCphi , ’ − ’ , Cphi ( 2 : ( l e n g t h ( Cphi ) −1) ) , d i f f F d C p h i ( 2 : l e n g t h ( d i f f F d C p h i ) ) , ’ * ’ , ’ LineWidth ’ , 2 ) ;
x l a b e l ( ’ C_ { \ p h i } ( p s i ) ’ , ’ FontSize ’ , 2 0 ) ;
y l a b e l ( ’ \ p a r t i a l P _ { wf } / \ p a r t i a l C _ { \ p h i } ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Derivada Numérica ’ , ’ Derivada por d i f e r e n ç a s f i n i t a s ’ ) ;
else
hold a l l ;
p l o t ( Cphi , dFdCphi , ’ − ’ , Cphi ( 2 : ( l e n g t h ( Cphi ) −1) ) , d i f f F d C p h i ( 2 : l e n g t h ( d i f f F d C p h i ) ) , ’ * ’ , ’ LineWidth ’ , 2 ) ;
hold o f f ;
end
end
legend ( ’ u = 0 . 1 ’ , ’ u = 0 . 1 ’ , ’ u = 0 . 2 ’ , ’ u = 0 . 2 ’ , ’ u = 0 . 3 ’ , ’ u = 0 . 3 ’ , ’ u = 0 . 4 ’ , ’ u = 0 . 4 ’ , ’ u = 0 . 5 ’ , ’ u = 0 . 5 ’ , . . .
’u=0.6 ’ , ’u=0.6 ’ , ’u=0.7 ’ , ’u=0.7 ’ , ’u=0.8 ’ , ’u=0.8 ’ , ’u=0.9 ’ , ’u=0.9 ’ , ’u=1.0 ’ , ’u=1.0 ’) ;
%Alpha
k =20;
s =2;
C= 0 . 0 2 ;
Cphi =500;
alpha = 0 : 0 . 5 : 1 0 ;
%Pré−alocações
d i f f F d a l p h a ( l e n g t h ( alpha ) −1)=0;
dFdalpha ( l e n g t h ( alpha ) ) =0;
for u = 0.1:0.1:1;
f o r i = 1 : 1 : l e n g t h ( alpha )
dFdalpha ( i ) = der5 ( k , s , C, Cphi , alpha ( i ) , a , b , d , u ) ;
i f ( i ==2)
d i f f F d a l p h a ( i −1) = ( f c t ( k , s , C, Cphi , alpha ( i ) , a , b , d , u )−f c t ( k , s , C, Cphi , alpha ( i −1) , a , b , d , u ) ) / dalpha ; %Derivada
avançada , não u t i l i z a d a
end
i f ( i >2)
d i f f F d a l p h a ( i −1) = ( f c t ( k , s , C, Cphi , alpha ( i ) , a , b , d , u )−f c t ( k , s , C, Cphi , alpha ( i −2) , a , b , d , u ) ) / ( 2 * dalpha ) ; %Derivada
centrada
end
end
i f ( u==0.1)
figure ;
p l o t ( alpha , dFdalpha , ’ − ’ , alpha ( 2 : ( l e n g t h ( alpha ) −1) ) , d i f f F d a l p h a ( 2 : l e n g t h ( d i f f F d a l p h a ) ) , ’ * ’ , ’ LineWidth ’ , 2 ) ;
x l a b e l ( ’ \ alpha ( horas ) ’ , ’ FontSize ’ , 2 0 ) ;
y l a b e l ( ’ \ p a r t i a l P _ { wf } / \ p a r t i a l \ alpha ’ , ’ FontSize ’ , 2 0 ) ;
s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
legend ( ’ Derivada Numérica ’ , ’ Derivada por d i f e r e n ç a s f i n i t a s ’ ) ;
else
hold a l l ;
p l o t ( alpha , dFdalpha , ’ − ’ , alpha ( 2 : ( l e n g t h ( alpha ) −1) ) , d i f f F d a l p h a ( 2 : l e n g t h ( d i f f F d a l p h a ) ) , ’ * ’ , ’ LineWidth ’ , 2 ) ;
hold o f f ;
end
end
legend ( ’ u = 0 . 1 ’ , ’ u = 0 . 1 ’ , ’ u = 0 . 2 ’ , ’ u = 0 . 2 ’ , ’ u = 0 . 3 ’ , ’ u = 0 . 3 ’ , ’ u = 0 . 4 ’ , ’ u = 0 . 4 ’ , ’ u = 0 . 5 ’ , ’ u = 0 . 5 ’ , . . .
’u=0.6 ’ , ’u=0.6 ’ , ’u=0.7 ’ , ’u=0.7 ’ , ’u=0.8 ’ , ’u=0.8 ’ , ’u=0.9 ’ , ’u=0.9 ’ , ’u=1.0 ’ , ’u=1.0 ’) ;
103
a r q u i v o R e g i s t r a d o r = ’ DadosRegistrador−F a i r 1 . t x t ’ ;
a r q u i v o V a r i a v e i s = ’ DadosVariaveis−F a i r 1 . t x t ’ ;
[ a , b , d , d e l t a t , pws , t p ] = entradaDados ( a r q u i v o R e g i s t r a d o r , a r q u i v o V a r i a v e i s ) ;
%d e l t a t = t p * d e l t a t . / ( t p + d e l t a t ) ;
n =16;
V = coeficientestehfest (n) ;
F = s t e h f e s t s i m p l e s F a i r ( @ F a i r R a d i a l I n f i n i t o , V , xdata , x ( 1 ) , x ( 2 ) , x ( 3 ) , x ( 4 ) , x ( 5 ) , a , b , d ) ;
d f d k = s t e h f e s t s i m p l e s F a i r ( @FairDerivadaPermeabilidade , V , xdata , x ( 1 ) , x ( 2 ) , x ( 3 ) , x ( 4 ) , x ( 5 ) , a , b , d ) ;
d f d s = s t e h f e s t s i m p l e s F a i r ( @FairDerivadaSkin , V , xdata , x ( 1 ) , x ( 2 ) , x ( 3 ) , x ( 4 ) , x ( 5 ) , a , b , d ) ;
dfdC = s t e h f e s t s i m p l e s F a i r ( @FairDerivadaEstocagem , V , xdata , x ( 1 ) , x ( 2 ) , x ( 3 ) , x ( 4 ) , x ( 5 ) , a , b , d ) ;
dfdCphi = s t e h f e s t s i m p l e s F a i r ( @FairDerivadaCphi , V , xdata , x ( 1 ) , x ( 2 ) , x ( 3 ) , x ( 4 ) , x ( 5 ) , a , b , d ) ;
dfdAlpha = s t e h f e s t s i m p l e s F a i r ( @FairDerivadaAlpha , V , xdata , x ( 1 ) , x ( 2 ) , x ( 3 ) , x ( 4 ) , x ( 5 ) , a , b , d ) ;
a r q u i v o R e g i s t r a d o r = ’ DadosRegistrador−SPE1 . t x t ’ ;
a r q u i v o V a r i a v e i s = ’ DadosVariaveis−SPE1 . t x t ’ ;
[ a , b , d , d e l t a t , pws , pwf , t p ] = entradaDados ( a r q u i v o R e g i s t r a d o r , a r q u i v o V a r i a v e i s ) ;
% tD = b * d e l t a t ; pD = a * pws ;
L = 0 . 1 ; %Parametro que d e f i n e a d i s t a n c i a minima no e i x o l o g ( tempo )
%d e l t a t = t p * d e l t a t . / ( t p + d e l t a t ) ;
%GERAÇÃO DE GRÁFICOS DE COMPORTAMENTO PRESSÃO X TEMPO
% figure ; % p l o t 1 = p l o t ( d e l t a t , pws , ’ ob ’ , ’ LineWidth ’ , 2 ) ;
% x l a b e l ( ’ t ( horas ) ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ \ DeltaP ( p s i ) ’ , ’ FontSize ’ , 2 0 ) ;
% s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ;
% saveas ( p l o t 1 , ’ PressaoXTempo . jpg ’ )
% figure ;
% l o g l o g ( d e l t a t , ( pws−pwf ) , ’ ob ’ , d e l t a t ( 2 : l e n g t h ( d e l t a t ) −1) , b o u r d e t ( pwf , pws , d e l t a t , L ) , ’ * r ’ , ’ LineWidth ’ , 2 ) ; %funcao que c a l c u l a
d e r i v a d a de Bourdet
% x l a b e l ( ’ t ( horas ) ’ , ’ FontSize ’ , 2 0 ) ; y l a b e l ( ’ \ DeltaP ( p s i ) ’ , ’ FontSize ’ , 2 0 ) ;
% s e t ( gca , ’ f o n t s i z e ’ , 1 5 ) ; legend ( ’ Dados Reais ’ , ’ Derivada dos Dados ’ ) ;
% h o r n e r ( tp , d e l t a t , pws , pwf ) ;
% agarwal ( tp , d e l t a t , pws , pwf ) ;
%REGRESSÃO NÃO−LINEAR
%l b = [ 0 0 0 0 0 ] ; ub= [1000 30 1 5000 1 0 0 ] ;
l b = [ ] ; ub= [ ] ;
%o p t i o n s = o p t i m s e t ( ’ LargeScale ’ , ’ o f f ’ , ’ Jacobian ’ , ’ on ’ , ’ A l g o r i t h m ’ , ’ levenberg−marquardt ’ ) ;
o p t i o n s = o p t i m s e t ( ’ A l g o r i t h m ’ , ’ levenberg−marquardt ’ , ’ Jacobian ’ , ’ on ’ , ’ ScaleProblem ’ , ’ Jacobian ’ , ’ LargeScale ’ , ’ o f f ’ ) ;
[ x , resnorm , r e s i d u a l , e x i t f l a g , o u t p u t , lambda , j a c o b i a n ] = l s q c u r v e f i t ( @ m o d e l o F a i r R a d i a l I n f i n i t o , x , d e l t a t , pws , l b , ub , o p t i o n s ) ;
%[x ] = GaussMarquardt ( x , d e l t a t , pws , e , a , b , d , d e l t a t , pws ) ;
Índice Remissivo