Você está na página 1de 9

Trabalho Prático 1

Catenária

Disciplina: Projeto de Estruturas Offshore


Professor Bruno Matins Jacovazzo

Alunos: Murillo Queiroz – DRE : 11819446


Ricardo Santos de Sousa – DRE: 118195064
1/31/22, 9:21 PM OFFSHORE 1 -31-01-2022 .ipynb - Colaboratory

1. Introdução

A produção de hidrocarbonetos em águas profundas ainda está em grande expansão no Brasil.


Quase a totalidade da produção de óleo e gás no país acontece em um ambiente offshore.
Portanto, a necessidade de tecnologias de inovação na produção de hidrocarbonetos e
soluções de problemas nessa área são de grande importância para o crescimento da indústria
offshore. Este trabalho tem como objetivo calcular os offsets limites em três cenários
diferentes:

Offset limite que uma linha poderia sofrer no sentido FAR;


Offset limite que uma linha poderia sofrer no sentido NEAR;
Offset limite total do problema para o sistema composto pelas duas linhas.

2. Riser em Catenária livre (Catenária Simples)

A configuração de Risers mais utilizada no Brasil é a Catenária Livre. Neste tipo de configuração
o riser fica apoiado no leito marinho e se eleva diretamente para a unidade de produção. Risers
flexíveis e rígidos podem ser utilizados na Catenária, porém os flexíveis possuem maior
utilização na indústria offshore brasileira devido às suas facilidades de instalação e operação.

Figura 1. Ilustração de uma Catenária Simples com a indicação do TDP. Fonte: Oliveira, 2017.

3. Estudos de caso

Bibliotecas necessárias para desenvolver o problema:

import numpy as np

https://colab.research.google.com/drive/15NxsoVWYew6-vAriV0Z8FAabXr3xyRL8#scrollTo=o3GEVDJ3FRYQ&printMode=true 1/8
1/31/22, 9:21 PM OFFSHORE 1 -31-01-2022 .ipynb - Colaboratory

from scipy import optimize

from matplotlib import pyplot as plt

Declaração das variáveis referentes a catenária (dados informados no anunciado do problema):

q = 0.2165 #peso submerso (kN/m)

lc = 2800.0 #comprimento (m)

fh0 = 400.0 #força horizontal de topo (kN) para configuração de projeto

lda = 500.0 #lâmina d'água (m)

unF = 'kN'

unD = 'm'

3.1. Catenária original

Calculo dos parâmetros da catenária original:

a0 = fh0/q

xs0 = a0 * np.arccosh((lda+a0)/a0)

s0 = a0 * np.sinh(xs0/a0)

xa0 = lc - s0

xt0 = xs0 + xa0

print('Parâmetro da catenária = ','%10.3f' %a0, unD)

print('Projeção horizontal suspensa = ','%10.3f' %xs0, unD)

print('Comprimento apoiado = ','%10.3f' %xa0, unD)

print('Comprimento suspenso = ','%10.3f' %s0, unD)

print('Projeção horizontal total = ','%10.3f' %xt0, unD)

Parâmetro da catenária = 1847.575 m

Projeção horizontal suspensa = 1330.330 m

Comprimento apoiado = 1351.699 m

Comprimento suspenso = 1448.301 m

Projeção horizontal total = 2682.029 m

3.2. Catenária na posição FAR

Calculo dos parâmetros da catenária sozinha na posição "FAR":

A Unidade flutuante sofre um offset Δ para uma nova posição "FAR", e o limite nesse problema
será determinado como sendo a situação em que começassem a surgir forças verticais na
âncora. Sendo assim,teremos as seguintes equações que regem o equilíbrio na nova posição:

F h1 = a1 ⋅ q

https://colab.research.google.com/drive/15NxsoVWYew6-vAriV0Z8FAabXr3xyRL8#scrollTo=o3GEVDJ3FRYQ&printMode=true 2/8
1/31/22, 9:21 PM OFFSHORE 1 -31-01-2022 .ipynb - Colaboratory

LDA + a1
xs1 = a1 ⋅ arccosh( )
a1

xs1 = xs0 + xa0 + Δ1

xs1
s1 = a1 ⋅ sinh( )
a1

Sendo assim, temos 4 equações e 4 incógnitas (F h1 , a1 , xs1 e Δ1).

//
#função para solução do sistema de equações

def f(x):

#fh1 = x[0]

#a1 = x[1]

#xs1 = x[2]

#Offset1 = x[3]

  

  return [x[0] - x[1]*q,

        x[2]-x[1]*np.arccosh((lda+x[1])/x[1]),
         x[2]- xa0 - xs0 - x[3],

          lc - x[1]*np.sinh(x[2]/x[1])]

#solução do sistema de equações 

vals1 = optimize.fsolve(f,[fh0,a0,xs0,30.0])

#Incógnitas importantes de se apresentar: 

xa1 = xt0 + vals1[3] - vals1[2]

#Imprimindo variáveis: 

print('Força horizontal de topo = ','%10.3f' % vals1[0], unF)

print('Parâmetro da catenária = ','%10.3f' % vals1[1], unD)

print('Proj. horiz. suspensa = ','%10.3f' % vals1[2], unD)

print('Offset1 = ','%10.3f' % vals1[3], unD)

print('Projeção horizontal apoiada = ','%10.3f' %xa1, unD)

Força horizontal de topo = 1643.235 kN

Parâmetro da catenária = 7590.000 m

Proj. horiz. suspensa = 2740.091 m

Offset1 = 58.062 m

Projeção horizontal apoiada = 0.000 m

3.3. Catenária na posição NEAR

Calculo dos parâmetros da catenária sozinha na posição "NEAR":

A Unidade flutuante sofre um offset Δ para uma nova posição "NEAR", e o limite nesse
problema será determinado como sendo a situação em que o trecho suspenso da linha de
ancoragem ficasse na vertical. Sendo assim, teremos as seguintes incógnitas para serem
expostas e calculadas na nova posição:
https://colab.research.google.com/drive/15NxsoVWYew6-vAriV0Z8FAabXr3xyRL8#scrollTo=o3GEVDJ3FRYQ&printMode=true 3/8
1/31/22, 9:21 PM OFFSHORE 1 -31-01-2022 .ipynb - Colaboratory

#Calculo dos parâmetros da catenária sozinha na posição NEAR 

s2 = lda   #O comprimento suspenso é igual a lâmina d'água)

xs2 = 0.0  #A projeção horizontal do comprimento suspenso é igual a 0. 

#A projeção do comprimento encostado no chão é um subtração do comprimento total da catená
xa2 = lc - lda  

#O Offset é calculado por uma subtração de alguns termos: 

Offset2 = xa0 + xs0 - xa2

#O parâmero da catenária deverá ser 0 para satisfazer a equação da catenária. 

a2 = 0.0

#A força horizontal pode ser calculada como: 

fh2 = a2 * q 

#Imprimindo variáveis: 

print('Força horizontal de topo = ','%10.3f' % fh2, unF)

print('Parâmetro da catenária = ','%10.3f' % a2, unD)

print('Proj. horiz. suspensa = ','%10.3f' % xs2, unD)

print('Offset2 = ','%10.3f' % Offset2, unD)

print('Comprimento apoiado = ','%10.3f' % xa2, unD)

print('Comprimento suspenso = ','%10.3f' % s2, unD)

print('Projeção horizontal total = ','%10.3f' % xa2, unD)

Força horizontal de topo = 0.000 kN

Parâmetro da catenária = 0.000 m

Proj. horiz. suspensa = 0.000 m

Offset2 = 382.029 m

Comprimento apoiado = 2300.000 m

Comprimento suspenso = 500.000 m

Projeção horizontal total = 2300.000 m

3.4. Sistema com duas catenárias

Como estamos diante de uma situação com as duas linhas e a intenção seria atingir o offset
máximo, iremos perceber que o offset determinante será o da catenária na posição FAR, uma
vez que este é menor que o da linha em NEAR. Sendo assim, já temos a deformada da equação
na posição FAR e iremos buscar os novos parâmetros da nova posição NEAR imposta pela
posição FAR.

Calculo dos parâmetros da catenária sozinha na nova posição "NEAR":

Considerando que a Unidade flutuante sofre um offset Δ para a posição "FAR", teremos as
seguintes equações que regem o equilíbrio na nova posição "NEAR":

F h3 = a3 ⋅ q

https://colab.research.google.com/drive/15NxsoVWYew6-vAriV0Z8FAabXr3xyRL8#scrollTo=o3GEVDJ3FRYQ&printMode=true 4/8
1/31/22, 9:21 PM OFFSHORE 1 -31-01-2022 .ipynb - Colaboratory

LDA + a3
xs3 = a3 ⋅ arccosh( )
a3

xs0 + xa0 = xs3 + xa3 + Δ1

xs3
s3 = a3 ⋅ sinh( )
a3

lc = s3 + xa3

Sendo assim, temos 5 equações e 5 incógnitas (F h3 , a3 , xs3 , xa3 e s3 ).

//

#Calculo dos parâmetros da catenária na nova posição NEAR 

def f(y):

#fh3 = x[0]

#a3 = x[1]

#xs3 = x[2]

#xa3 = x[3]

#S3 = x[4]

  

  return [y[0] - y[1]*q,

        y[2]-y[1]*np.arccosh((lda+y[1])/y[1]),
         xs0 + xa0 - vals1[3] - y[2] - y[3],

          y[4] - y[1]*np.sinh(y[2]/y[1]), lc - y[3] - y[4]]

#solução do sistema de equações para função em questão

vals3 = optimize.fsolve(f,[vals1[0],a0,2000,xa0,s0])

#Imprimindo variáveis: 

print('Força horizontal de topo = ','%10.3f' % vals3[0], unF)

print('Parâmetro da catenária = ','%10.3f' % vals3[1], unD)

print('Proj. horiz. suspensa = ','%10.3f' % vals3[2], unD)

print('Offset3 = ','%10.3f' % vals1[3], unD)

print('Proj. horiz. apoiada = ','%10.3f' % vals3[3], unD)

print('Comprimento suspenso = ','%10.3f' % vals3[4], unD)

Força horizontal de topo = 162.393 kN

Parâmetro da catenária = 750.083 m

Proj. horiz. suspensa = 824.009 m

Offset3 = 58.062 m

Proj. horiz. apoiada = 1799.959 m

Comprimento suspenso = 1000.041 m

4. Deformadas

Podemos aproveitar e visualizar as deformadas das linhas isoladas e do sistema de linhas.

https://colab.research.google.com/drive/15NxsoVWYew6-vAriV0Z8FAabXr3xyRL8#scrollTo=o3GEVDJ3FRYQ&printMode=true 5/8
1/31/22, 9:21 PM OFFSHORE 1 -31-01-2022 .ipynb - Colaboratory

#função que cria vetores xcat e ycat para plotagem da catenária:
def monta_cat(a,xs,xa):
  xt = xs + xa
  xcat = np.arange(0.0,xt,1.0)
  xcat = np.append(xcat,xt)
  ycat = np.zeros(len(xcat),dtype=float)
  
  for i in range(0,len(xcat)):
    if xcat[i] == xa and xs == 0: 
       ycat[i] = 0
    elif  xcat[i] > xa:
       ycat[i] = lda - (a * (np.cosh((xcat[i]-xa)/a)-1))
    else:
      ycat[i] = lda

  return xcat,ycat

#PLOTANDO CATENÁRIA ORIGINAL, NA POSIÇÃO FAR E NEAR
plt.figure(dpi=120)

xcat,ycat = monta_cat(a0,xs0,xa0)
plt.plot(xcat,ycat,color='#17a589', label='Inicial')

xcat1,ycat1 = monta_cat(vals1[1],vals1[2],xa1)
plt.plot(xcat1,ycat1, color='red', label='FAR')

xcat2,ycat2 = monta_cat(a2,xs2,xa2)
plt.plot(xcat2,ycat2,color='#f4d03f', label='NEAR')

#definição dos parâmetros do gráfico
plt.xlim(0,3000)
plt.ylim(lda,0)
plt.xlabel("x (" + unD +")")
plt.ylabel("Profundidade (" + unD + ")")
plt.title("Deformadas")
plt.grid(True,'major','both',ls=':')
plt.legend()
plt.show()

#PLOTANDO CADA CATENÁRIA DO SISTEMA
plt.figure(dpi=120)

xcat1,ycat1 = monta_cat(vals1[1],vals1[2],xa1)
plt.plot(xcat1,ycat1,color='red', label='FAR')

xcat3,ycat3 = monta_cat(vals3[1],vals3[2],vals3[3])
Delta = (vals3[2] + vals3[3])+vals1[2]+xa1
plt.plot(-xcat3+Delta,ycat3,color='#f4d03f', label='NEAR')

#definição dos parâmetros do gráfico
plt.xlim(0,5000)
plt.ylim(lda,0)
plt.xlabel("x (" + unD +")")
plt.ylabel("Profundidade (" + unD + ")")
https://colab.research.google.com/drive/15NxsoVWYew6-vAriV0Z8FAabXr3xyRL8#scrollTo=o3GEVDJ3FRYQ&printMode=true 6/8
1/31/22, 9:21 PM OFFSHORE 1 -31-01-2022 .ipynb - Colaboratory
p y ( ( ) )
plt.title("Deformadas do sistema")
plt.grid(True,'major','both',ls=':')
plt.legend()
plt.show()

https://colab.research.google.com/drive/15NxsoVWYew6-vAriV0Z8FAabXr3xyRL8#scrollTo=o3GEVDJ3FRYQ&printMode=true 7/8
1/31/22, 9:21 PM OFFSHORE 1 -31-01-2022 .ipynb - Colaboratory

5. Conclusão

Após todos os cálculos realizados, foi possível identificar alguns pontos sensíveis para a
análise de Risers em Catenária. As forças horizontais de topo aumentaram ou diminuíram em
função do tipo do cenário analisado. Por exemplo,na posição NEAR a força de topo encontrada
foi zero enquando na posição FAR a força horizontal de topo aumentou para 1643 kN. Portanto,
podemos concluir que que a análise de tensões em Risers em Catenária está ligada às
condições em que o duto está inserido. Fatores ambientais, configuração da catenárias e até
mesmo o tipo de unidade de produção a que o riser está sendo utilizado pode interferir na
análise.

6. Bibliografia

OLIVEIRA, Gabriel. “Soluções analítica e numérica de risers flexíveis nas configurações de


catenária e lazy wave.” – Rio de Janeiro: UFRJ/Escola Politécnica, 2017.
Jacovazzo B. - Notas de Aula de projetos de Estruturas Offshore. 2022. UFRJ

check 0s conclusão: 21:19

https://colab.research.google.com/drive/15NxsoVWYew6-vAriV0Z8FAabXr3xyRL8#scrollTo=o3GEVDJ3FRYQ&printMode=true 8/8

Você também pode gostar