Vous êtes sur la page 1sur 14

# Programa REWET - 2016 - CDTN/CNEN

import numpy as np
import matplotlib.pyplot as plt
from math import log
from math import sqrt
from math import exp
#FUNCOES
def SATPRP (P):
#*******************************************************************
# A funcao SATPRP calcula as propriedades da agua saturada em funcao
# da pressao por interpolacao em uma tabela termodinamica
#Descricao das variaveis:
# P - Pressao
# R1 - Temperatura de saturacao (oC)
# R2 - Entalpia especifica (J/kg)
# R3 - Calor de vaporizacaoCALOR (J/kg)
# R4 - Densidade de liquido saturado (kg/m3)
# R5 - Condutividade termica (W/(m.K)
# R6 - Calor especifico em (J/kg.K)
# R7 - Viscuosidade dinamica (Kg/m.s)
# SIG - Tensao superficial (N/M)
#*******************************************************************
tabela = open('Tabela T.txt', 'r')# Le o arquivo que contem a tabela termodinamica
e joga na variavel tabela
for i in range (3):#Desconsidera as tres primeiras linhas do arquivo que sao texto
tabela.readline()
props = []#Cria a matriz props com as propriedades termodinamicas do arquivo
for linha in tabela.readlines():#Preenche a matriz props
props.append(linha.split())
for i in range (len(props)):# Transforma o texto em valores
for j in range (7):
props[i][j] = float(props[i][j])
PP = P*0.1 #Transforma a pressao em Mpa para interpolar na tabela
for i in range (0,86):#Resolve o lado esquerdo da equacao de interpolacao
if PP <= props[i][0]:
F=(PP-props[i-1][0])/(props[i][0]-props[i-1][0])
break
R1 = props[i-1][1] + F*(props[i][1] - props[i-1][1])# Calcula a temperatura de
saturacao
R2 = props[i-1][2] + F*(props[i][2] - props[i-1][2])# Calcula a entalpia especifica
R3 = props[i-1][3] + F*(props[i][3] - props[i-1][3])# Calcula o calor de vaporizacao
R4 = props[i-1][4] + F*(props[i][4] - props[i-1][4])# Calcula a densidade
R4 = 1/R4
R1 = (R1*1.8)+32 # Transforma a temperatura de celsius para fahrenheit
R5 = ((-9.1492E-10*R1 + 1.1564E-7)*R1 + 1.3506E-4)*R1 + 0.36897 # Calcula a
condutividade termica
R6 = ((-6.4907E-8*R1 + 1.1609E-4)*R1 - 8.2557E-2)*R1 + 29.491 + (306510.0/R1 4753.3)/R1
R6 = 1/R6 # Calcula o calor especifico
F = log(10,R1)
R7 = 10**(((-0.090169*F + 0.94986)*F - 4.2377)*F + 5.6709) # Calcula a viscuosidade
dinamica
SIG = (700.0 - R1)*8.333E-6 # Calcula a tensao superficial
R1 = (R1-32)/1.8
R2 = R2*1000
R3 = R3*1000 # Transforma em J/kg
R4 = R4*1000 # Transforma em Kg/m3
R5 = R5*1.7307 # Transforma em W/mK
R6 = R6*4186.8 #Transforma em J/kgK
R7 = R7*4.1338E-4 #Transforma em kg/m.s
SIG = SIG*14.5939 #Transforma em N/m
return (R1, R2, R3, R4, R5, R6, R7, SIG)
def VAPPRP(P,T,TS,H):

#*************************************************
# A funcao VAPPRP calcula as propriedades do vapor
# Descricao das variaves de entrada:
# P - Pressao (bar)
# T - Temperatura (oC)
# TS - Temperatura de saturacao (oC)
# H - Entalpia Especifica (J/kg)
# Descricao das variaveis de saida
# R1 - Densidade (kg/m3)
# R2 - Condutividade Termica (W/(m.K))
# R3 - Capacidade termica especifica (J/Kg.K)
# R4 - Viscosidade dinamica (kg/m.s)
#************************************************
PP = P*14.5038 #Trasforma de bar para lbm/pol2
TT = 1.8*T + 32 #Transforma para fahrenheit
TSAT = 1.8*TS + 32 #Transforma para fahrenheit
HH = H/2326
TT = max(TSAT, min(TT,2500))
R2 = (1.3442E-8*TT + 8.4559E-6)*TT + 2.7224E-2 + (5.9959E+2/TT - 6.0909)/TT
R3 = 1.6162 - 3.7836E-6*TT*TT - (1.7222E+4/TT - 2.1665E+2)/TT
R = 5.2804+(3.6853E-3-1.5463E-6*TT-2.2568/TT)*PP+(1.1828E-6*TT-3.6371E3)*TT+(1.1432E+5/TT-1.0388E+3)/TT
if R3 < R:
R3 = R
R3 = 1/R3
R4 = (-1.57E-8*TT + 9.2604E-5)*TT - 8.6471E-3 - (4.8243E+2/TT - 6.3327)/TT
R = HH + R3*(TT - TSAT)
R1 = 8.2370732E-2 - 1.4100729E-5*PP - 1066.2933/PP + (-7.4564465E-5 + 1.2569934E8*PP + 1.2728678/PP)*R
R1 = 1/R1
R1 = R1*16.018 #Transforma para kg/m3
R2 = R2*1.7307 #Transforma para W/(m.K)
R3 = R3*4186.8 #Transforma para J/Kg.K
R4 = R4*4.1338E-4 #Transforma para kg/m.s
return (R1,R2,R3,R4)
def METPRP(XTC):
#***********************************************************
# A funcao METPRP calcula a condutividade e calor
# especifico do revestimento em funcao de sua temperatura
# Descricao das variaveis
# XTC - Temperatura do revestimento
# TCC - Condutividade trmica do revestimento
# RCC - Calor Especifico do revestimento
#***********************************************************
TCC = ((B[114]*XTC + B[113])*XTC + B[112])*XTC + B[111]
RCC = ((B[118]*XTC + B[117])*XTC + B[116])*XTC + B[115]
return (TCC,RCC)
def HTC(TL,TS,TC,G,GS,AZ,IHT):
#***********************************************************
# A funcao HTC calcula os Coeficientes de transferencia de
# calor nos varios Regimes de escoamento.
#***********************************************************
H = HV
HST = 0
HWA = 0
SIG = 0.0567
if IHT == 1:# Ebulicao nucleada
HWA = HNB # Coeficiente de ebulicao nucleada
elif IHT == 6: # Convecao de vapor
HWA = 1.86*(KL/DHY)*(G*DHY/VISL*CL*VISL/KL*0.00341)**0.33
else:
if GS <= 0.99*G:

IHT = 3 # Ebulicao em filme de vapor subresfriado


if TS > TSAT:
IHT = 4 # Ebulicao em filme de vapor saturado
TFILM = 0.5*(TC + TSAT)
d2vap = VAPPRP(P,TFILM,TSAT,H)
R = d2vap[0] # R - Densidade
K = d2vap[1] # K - Condutividade termica
C = d2vap[2] # C - Capacidade termica
V = d2vap[3] # V - Viscosidade dinamica
HBR = 1.46*(K*K*K*R*(RHOL - R)*(HLV + 0.4*C*(TC - TSAT))/(ZT*V*(TC TSAT)))**0.25
VBAR = ZT*HBR*HBR*(TC - TSAT)/(RHOV*HLV*K)/3.1315
HLIQ = CHLIQ*(VBAR**0.8)
HWA = HLIQ*(TSAT - TL)/(TC - TL) + HBR*(TC - TSAT)/(TC - TL)
AZEXP = 0.667
HWA = HWA*((1 - AZ)**AZEXP)
if GS > 0:
d3vap = VAPPRP(P,TS,TSAT,H)
R = d2vap[0]
K = d2vap[1]
C = d2vap[2]
V = d2vap[3]
HST = 1.86*(K/DHY)*(GS*DHY/V*C*V/K*0.00341)**0.33
else:
IHT = 5 #Refrigeracao de neblina
d4vap = VAPPRP(P,TS,TSAT,H)
R = d4vap[0]
K = d4vap[1]
C = d4vap[2]
V = d4vap[3]
HST = 1.86*(K/DHY)*(GS*DHY/V*C*V/K*0.00341)**0.33
# Contribuicao da radiacao para o calculo dos coeficiente de transferencia de calor.
TCABS = (TC + 273.16)/100
HSTRAD = 0
AV = (CRADV1 + CRADV2*TS)*AZ
EPSV = 1 - exp(-AV*DHY)
if EPSV > 0:
TSABS = (TS + 273.16)/100
HSTRAD = SIG*(TCABS*TCABS + TSABS*TSABS)*(TCABS + TSABS)/(((1 - EPSW)/EPSW) +
1/EPSV)
HWARAD = 0
AL = CRADL*(1 - AZ)
EPSL = 1 - exp(-AL*DHY)
if EPSL > 0:
TLABS = (TL + 273.16)/100
HWARAD = SIG*(TCABS*TCABS + TLABS*TLABS)*(TCABS + TLABS)/(((1 - EPSW)/EPSW) +
1/EPSL)
HST = HST + HSTRAD
HWA = HWA + HWARAD
return (HST,HWA,HSTRAD,HWARAD,IHT)
#***************************************************************
#Inicio do programa principal
#Abrindo o arquivo de entrada e lendo os dados
arquivo = open('INPUT HUGO.DAD', 'r')#Abre o arquivo de entrada
arquivo.readline()#Le a primeira linha do arquivo de entrada
mat = []
for linha in arquivo.readlines():# Le os dados de entrada e os acrescenta em uma matriz
m
mat.append(linha.split())# Le cada linha do arquivo e joga na variavel matriz
A = []
for i in range (0,53):#Retira as colunas de descricao das variaveis

del mat[i][0]
del mat[i][0]
A.extend(mat[i])
B = [0]
k = len(A)
for i in range (0,k):
B.append(float(A[i]))# Faz com que A(0) seja igual a B(1)
print('REWET - 2016')
print('VALORES DE ENTRADA PARA ESTE CASO')
arquivo.closed
#Inicializando as demais variaveis
PI = 3.14159
NPLT = 0
NT = int(B[5]/B[4]+1)
NPRT = 0
IERR = 0
T = 0
Z2P = 0 # Nivel da agua arrastada
ZWS = 0
GSURF = 0 # Razao entre a taxa de fluxo de saida e a taxa de fluxo de entrada
ALP = 0
GINEX = 0
IGEOM = int(B[1]) #Geometria da secao
IZL = 2
NZ1 = int(B[2]+1) #Numero de regioes
DT = B[4] # Variacao de tempo
NJ = int(B[7]) #Numero de valores de entrada por interpolacao
CRADL = B[15] # Liquid absorotivity
CRADV1 = B[16] # Vapor absorpvity
CRADV2 = B[17]
EPSW = B[18] #Emissividade do Revestimento.
RO = B[20]#Raio externo da secao de teste
RI = B[21]# Raio interno da secao de teste
A = B[23] #Area do canal
DHY = B[24] #Diametro hidraulico
L = B[25] #Comprimento do tubo
TUE = B[29] #Temperatura de remolhamento
DZ = L/B[2] #passo de comprimento axial
FC = 1
P = B[33] #Pressao
HNB = B[35] # Coeficiente de ebulicao nucleada
QCRIT = B[36]# Fluxo de calor critico
VD = B[39] # Velocidade de deriva
VERF = B[28]/L
TC = [None]*200 #Temperatura do revestimento
TF = [None]*200
Q = [None]*200
QI = 0
DZJ = L/(B[7] - 1)
for i in range (1,NZ1+1):#Interpolacao inicial de potencia e perfis de temperatura
j = int((i-1)*DZ/DZJ + 1)
DUMY = ((i-1)*DZ - (j-1)*DZJ)/DZJ
TC[i] = B[39+j] + (B[39+j+1] - B[39+j])* DUMY
if i == NZ1:
TC[i] = B[39+NJ]
Q[i] = B[NJ+81]
Q[i] = B[81+j] + (B[81+j+1] - B[81+j])*DUMY
QI = QI + Q[i]
QI = (QI - (Q[1] + Q[2])/2)/B[2] # Renormalizacao do Perfil de Potencia
#Imprimindo os dados de Entrada
print ('Numero de regioes =', '%4.0f'%B[2])
print ('Passos de tempo =', B[4],'s')
print ('Tempo final =' , B[5], 's')

print ('Comprimento =', B[25],'m')


print ('Raio interno do tubo =', B[21]*1000,'mm')
print ('Raio externo do tubo =', B[20]*1000,'mm')
print ('Fator de perda de potencia =', B[28])
print ('Pressao =' , B[33],'Bar')
print ('Fluxo de calor critico', B[36],'W/m2')
dsat = SATPRP (P)# Calculo e impressao das propriedades de saturacao da agua
TSAT=dsat[0]
HL=dsat[1] # Entalpia especifica
HLV=dsat[2] # Calor de vaporizacao
RHOL=dsat[3] # Densidade
KL=dsat[4] # Condutividade termica
CL=dsat[5] # Calor especifico
VISL=dsat[6] # Viscosidade dinamica
SIG=dsat[7] # Tensao superficial
print('PROPRIEDADES DA AGUA SATURADA')
print ('Pressao =',P,'Bar')
print ('TSAT =',TSAT,'oC')
print ('Entalpia Especifica =', HL,'kJ/kg')
print ('Calor de Vaporizacao =', HLV,'kJ/kg')
print ('Densidade =', '%6.2f'%RHOL,'m3/kg')
print ('condutividade Termica =', '%6.2f'%KL,'W/mK')
print ('Calor especifico =', '%6.2f'%CL,'kJ/kg.K')
print ('Viscosidade dinamica =', '%6.2f'%VISL,'kg/m.s')
print ('Tensao superficial =', '%6.4f'%SIG,'N/m')
HV = HL + HLV
print('PROPRIEDADES DO VAPOR')
dvap = VAPPRP(P,TSAT,TSAT,HV)
RHOV = dvap[0] # Densidade
KV = dvap[1] # Condutividade termica
CV = dvap[2] # Capacidade termica
VISV = dvap[3] # Viscosidade dinamica
RHOLV = RHOL - RHOV
print ('HV =',HV)
print ('Densidade =','%6.4f'%RHOV,'m3/kg')
print ('Condutividade Termica =','%6.4f'%KV,'W/mK')
print ('Calor especifico =', '%6.2f'%CV,'kJ/kg.K')
print ('Viscosidade dinamica =', '%10.6f'%VISV,'kg/m.s')
GCRIT = 1.9016*B[37]*(SIG*RHOLV*RHOV*RHOV)**0.25 #Fluxo de calor critico
print ('Fluxo de calor critico =', '%6.2f'%GCRIT,'W/m2')
#Calculos iniciais
CNE = B[13]*(KV/HLV)*(GCRIT/VISV)**0.6
AC = abs(PI*(RO*RO - RI*RI))
ZT = 2*PI*sqrt(SIG/RHOLV)
TFILM = TSAT + 0.5*TUE
dvap2 = VAPPRP(P,TFILM,TSAT,HV)
RVF = dvap2[0] # Densidade
KVF = dvap2[1] # Condutividade Termica
CVF = dvap2[2] # Capacidade termica
VISVF = dvap2[3] # Viscosidade dinamica
CHLIQ = 0.023*(KL/DHY)*((CL*VISL/KL)**0.4)*(((sqrt(RHOV*RHOL))*DHY/VISL)**0.8)
#Conversao da potencia axial em taxa de calor linear
HH = [None]*200 #Entalpia
QA = [None]*200 #Fluxo de calor
for i in range(1,NZ1+1):
HH[i] = HV
QA[i] = 0
Q[i] = Q[i]*B[30]/L
IZQ = 1
dmet=METPRP(TSAT+TUE)# Calculo das proriedades do revestimento do tubo
TCC=dmet[0]
RCC=dmet[1]

UYA = 1/RCC*sqrt(TCC/(abs(RO-RI)))
#Inicio do Loop no tempo
EPS = 0
ZQU = 0
TLIQ = [None]*201
TEMPO = [0]
tempo = [0]
TC1P = [525]
TC20P = [525]
TC48P = [525]
TC76P = [525]
TC150P = [525]
zqu = [0]
z2p = [0]
for j in range (1,NT):
ZLIQ = 0
S = 5
T = T + DT
QT = float((0.0004*T)+1)
GIN = float((-0.013*T)+94.189)
HIN = float((-0.0092*T*T*T) + (5.4354*T*T) - (1003.5*T) + 267721)
# Calculo do balanco de massa
EPS = GSURF/GCRIT
GEX = GSURF + EPS*(GIN - GSURF)
GEX = max(GEX,B[14])
GINEX = GINEX + (GIN - GEX)*DT
Z2P = GINEX/(RHOLV*(1 - ALP))
Z2P = min(Z2P,(L))
IZL = int(Z2P/DZ+2)
ZA = Z2P - float(IZL-2)*DZ
#Inicio do Loop Axial
HH[1]=HIN
TS = [None]*200 #Temperatura do vapor
X = [None]*200 #Titulo
AZ = [None]*200
SLIP = [None]*200
IHT = [None]*200 #Regime de transferencia de calor
HSTPL = [None]*200 #Coeficientes de transferencia de calor
HSTRPL =[None]*200
HWAPL=[None]*200
HWARPL=[None]*200
XH = [None]*200
G = [None]*200 # Fluxo de massa
GS = [None]*200 # Fluxo de vapor
for i in range(1,NZ1+1):
G[i] = GIN
if i >= IZL:
G[i] = GEX
if i > 1:
HHOLD = HH[i]
DELZP = 0.5*DZ
if i == IZL:
DELZP = ZA
DELZM = DZ - DELZP
RG = RHOL*DZ/(GIN*DT)
if HHOLD >= HL or i >= IZL:
RG = 0
HHH = HH[i-1] + 2*PI*RO*DELZP*QA[i-1]/G[i-1]*A
HMAX = max(HV,(HV+CV*(TC[i-1]-TSAT)))
HMIN = min(HL,(HL+CL*(TC[i-1]-TSAT)))
if QA[i-1] > 0:
HHH = min(HHH,HMAX)
if QA[i-1] < 0:

HHH = max(HHH,HMIN)
if i == IZL:
XSURF = (HHH - HL)/HLV
BETA = B[12]
if TC[i-1] < (TSAT+TUE):
BETA = 0
GSURF = GS[i-1] + BETA*(XSURF - X[i-1]*GIN)
GSURF = max(GSURF,(XSURF*GIN))
GSURF = max(GSURF,0)
HSURV = HV
if EPS != 0:#
HSURV = HL + GSURF*HLV/GEX
HHH = HSURV
GSURV = GSURF
if EPS == 0:
GSURV = GEX
HH[i] = HHH + RG*HHOLD + 2.0*PI*RO*DELZM*QA[i]/(G[i]*A)/(1+RG)
HMAX = max(HV,(HV+CV*(TC[i]-TSAT)))
HMIN = min(HL,(HL+CL*(TC[i]-TSAT)))
if QA[i] > 0:
HH[i] = max(HHH, min(HH[i],HMAX))
elif QA[i] < 0:
HH[i] = min(HHH, max(HH[i],HMIN))
S = 5
if GS[i-1] > 0:
S = 1 + 4*exp(-7.5*GS[i-1]/G[i-1])
X[i] = ((HH[i] - HL)/ HLV)
GSE = X[i]*G[i]
GS[i] = GSE
if i > 1:
BETA = B[12]
if TC[i] <= (TSAT+TUE):
BETA = 0
GS[i] = GS[i-1] + BETA*(X[i] - X[i-1])*G[i]
GS[i] = max(GS[i],GSE)
if i >= IZL and i > IZQ+1:
GSDUM = GS[i-1]
GSDUM = GSDUM + 2*PI*RO*DZ*QADROP/(A*HLV)
if i == IZL:
GSDUM = GSURV
TSDUM = TS[i-1]
if i == IZL:
TSDUM = TSAT
GS[i] = GSDUM + CNA*S*RHOV*(GEX - GSDUM)*(TSDUM - TSAT)*DZ/(RHOL*GSDUM)
if TSDUM <= (TSAT+1) and TC[i] <= (TSAT+TUE):
GS[i] = GSE
GS[i] = min(GS[i],GSE)
if EPS == 0 and i >= IZL:
GS[i] = GEX
GS[i] = min(GS[i],G[i])
GS[i] = max(GS[i],0)
CNA = CNE
CNA = max(CNA,CNE)
#Calculo das temperaturas de liquido e vapor
TS[i] = TSAT
if GS[i] > 0.00488:
TS[i] = TSAT + HLV*(GSE/GS[i] - 1)/CV
TS[i] = max(TS[i],TSAT)
TLIQ[i] = TSAT
if G[i] != GS[i]:
TLIQ[i] = TSAT + HLV*(GSE - GS[i])/(CL*(G[i] - GS[i]))
TLIQ[i] = (min(TLIQ[i],TSAT))
# Calculo da fracao de vazio.

XM = 1 + (GS[i]/GCRIT)*((GIN - GCRIT)*(S - 1)/(RHOL*VD) - 1)


XM = max(XM,0)
AZ[i] = GS[i]/(GS[i] + (G[i] - GS[i])*RHOV/RHOL + RHOV*VD*XM)
if GS[i] > GCRIT:
AZ[i] = GS[i]/(GS[i]+S*(G[i]-GS[i])*RHOV/RHOL)
if GS[i] > GCRIT:
AZ[i] = GS[i]/(GS[i]+S*(G[i]-GS[i])*RHOV/RHOL)
SLIP[i] = 1
if G[i] > GS[i] and GS[i] > 0:
SLIP[i] = GS[i]/AZ[i] - GS[i]/((G[i] - GS[i])*RHOV/RHOL)
# Calculo dos coeficientes de transferencia de calor.
IHT[i] = 0
if i <= IZQ+1:
IHT[i] = 1
if i <= IZQ-4:
IHT[i] = 6
dhtc = HTC(TLIQ[i],TS[i],TC[i],G[i],GS[i],AZ[i],IHT[i])
HST = dhtc[0]
HWA = dhtc[1]
HSTRAD = dhtc[2]
HWARAD = dhtc[3]
IHT[i] = dhtc[4]
if i > IZQ:
DUMY = (DHY/(float(i-IZQ)*DZ))**0.667
HST = HST*(1 + DUMY)
HWA = HWA*(1 + DUMY)
if i > IZQ and GS[i] > GCRIT:
HWA = HWA*(GS[i]/GCRIT)**0.8
HSTPL[i] = HST
HSTRPL[i] = HSTRAD
HWAPL[i] = HWA
HWARPL[i] = HWARAD
TCO = TC[i]
if i == 1:
TMINUS = TCO
if i == NZ1:
TPLUS = TCO
else:
TPLUS = TC[i+1]
dmet2 = METPRP(TC[i])
TCC = dmet2[0]
RCC = dmet2[1]
RCAC = RCC*AC
HC = abs(2*TCC/(RO-RI))
HWA = HC*HWA/(HC + HWA)
HST = HC*HST/(HC + HST)
B2 = RCAC/DT + 2*PI*RO*(HST + HWA)
AXCMP = 1
AXCMM = 1
# Perda de calor estimada
QVER = VERF*TC[i]*TC[i]
VF = (Q[i] - QVER)/Q[i]
B3=RCAC*TCO/DT+Q[i]*VF*QT*FC+2*PI*RO*(HST*TS[i]+HWA*TLIQ[i])
+TCC*AC*(AXCMP*(TPLUS-TCO)+AXCMM*(TMINUS-TCO))/(DZ*DZ)
while i <= NZ1:
TC[i] = B3/B2
if IHT[i] == 1 or IHT[i] == 6:
TC[i] = min(TC[i],TCO)
if IHT[i] == 2:
break
QA[i] = HST*(TC[i] - TS[i]) + HWA*(TC[i] - TLIQ[i])
QADROP = HWA*(TC[i] - TLIQ[i])

if QADROP > QCRIT:


QADROP = QCRIT
if IHT[i] == 12:
QA[i] = QCRIT
if IHT[i] ==1 or IHT[i] == 6:
QA[i] = max(QA[i],(QT*Q[i]/(2*PI*RO)))
# Checagem do fluxo de calor critico.
if QA[i] > QCRIT and IHT[i] < 3:
# Transicao da ebulicao em filme para a ebulicao nucleada.
B2 = RCAC/DT
B3 = RCAC*TCO/DT+Q[i]*QT*FC - 2*PI*RO*QCRIT
IHT[i] = 12
else:
if j == 1 or i != IZQ+1:
break
IHT[i] = 2
B2 = RCAC/DT
B3 = RCAC*TCO/DT+Q[i]*QT*FC - 2*PI*RO*QA[i]
# Recalculando a entalpia local
if i > 1:
HH[i] = (HHH + 2*PI*RO*DELZM*QA[i]/(G[i]*A)+RG*HHOLD)/(1+RG)
HMAX = max(HV,(HV+CV*(TC[i]-TSAT)))
HMIN = min(HL,(HL+CL*(TC[i]-TSAT)))
if QA[i] > 0:
HH[i] = (min(HH[i],HMAX))
if QA[i] < 0:
HH[i] = (max(HH[i],HMIN))
TMINUS = TCO
# Calculo do liquido colapsado.
DZA = 0.5*DZ
DZB = 0.5*DZ
if i == IZL-1:
DZB = ZA
if i == IZL:
DZA = DZ - ZA
if i == 1:
DZA = 0
if i == NZ1:
DZB = 0
ZLIQ = ZLIQ + (DZA + DZB)*(RHOV*AZ[i]/RHOL + 1.0 - AZ[i])
if i == IZL-1:
ALP = 0.5*(RHOL*(Z2P - ZLIQ)/(RHOLV*Z2P) + ALP)
DUMY = TSAT
if X[i] < 0:
DUMY = TLIQ[i]
XTC = max((TC[i]-DUMY),0.001)
XH[i] = QA[i]/XTC
# Fim do loop axial.
# Calculo da frente de remolhamento.
IFUE = IZQ + 2
if IFUE > NZ1:
IFUE = NZ1
TUNE = TC[IFUE]
NZQ = max(1,(IZQ-1))
TLEI = TSAT + TUE
TUNE = max(TUNE,TLEI+1)
ALF = HNB
if AZ[NZQ] > 0:
ALF = HNB*((1 - AZ[NZQ]**0.667))
if AZ[NZQ] > 0.95:
ALF = HNB*(1 - AZ(NZQ))*10
# Correcao para turbulencia.
if GS[IZQ] > GCRIT:

ALF = HNB*(1 - AZ[IZL-1])*10


TUNE = max(TUNE,TLEI+1)
UYAM = UYA* sqrt(ALF)*(TLEI-TSAT)/sqrt(TUNE-TLEI)/sqrt(TUNE-TSAT)
ZQU = ZQU + UYAM*DT
zqu.append(1350*ZQU)
ZQU = min(ZQU,(L))
if ZQU > Z2P and EPS == 0:
ZQU = Z2P
IZQ = int(ZQU/DZ + 1)
z2p.append((Z2P))
# Impressao dos resultados.
for i in range (1,NZ1+1):
if i == 1 or i== 31 or i== 52 or i==82 or i==95: #Cota T3, conta T6, cota T8 e
ultima cota
if i==1:
TEMPO.append(T)
tempo.append(1.35*T)
TC1P.append(TC[i])
if i ==31:
TC20P.append(TC[i])
if i ==52:
TC48P.append(TC[i])
if i ==82:
TC76P.append(TC[i])
if i ==95:
TC150P.append(TC[i])
NPRT = 0
# Abrindo o arquivo2 com os dados de temperatura do teste 1 para comparacao
arquivo2 = open('Dados teste 1.txt', 'r')
arquivo2.readline()
mat1 = []
for linha in arquivo2.readlines():
mat1.append(linha.split())
x1 = []
x2 = []
x3 = []
x4 = []
x5 = []
x6 = []
y1 = []
y2 = []
y3 = []
y4 = []
y5 = []
y6 = []
for i in range (0,len(mat1)):
x1.append(mat1[i][0])
x2.append(mat1[i][2])
x3.append(mat1[i][4])
x4.append(mat1[i][6])
x5.append(mat1[i][8])
x6.append(mat1[i][10])
y1.append(mat1[i][1])
y2.append(mat1[i][3])
y3.append(mat1[i][5])
y4.append(mat1[i][7])
y5.append(mat1[i][9])
y6.append(mat1[i][11])
arquivo2.close()
#Imprimindo o grafico de temperaturas de parede
plt.plot(x1,y1,'b',x4,y4,'g--',TEMPO,TC20P,'r')
plt.axis((0,150,50,550))

plt.title('Temperatura de Parede Cota 3')


plt.ylabel('Temperatura de Parede (oC)')
plt.xlabel('Tempo (s)')
plt.show()
plt.plot(x2,y2,'b',x5,y5,'g--',TEMPO,TC48P,'r')
plt.axis((0,250,50,550))
plt.title('Temperatura de Parede Cota 6')
plt.ylabel('Temperatura de Parede (oC)')
plt.xlabel('Tempo (s)')
plt.show()
plt.plot(x3,y3,'b',x6,y6,'g--',TEMPO,TC76P,'r')
plt.axis((0,500,50,550))
plt.title('Temperatura de Parede Cota 8')
plt.ylabel('Temperatura de Parede (oC)')
plt.xlabel('Tempo (s)')
plt.show()
# Abrindo o arquivo3 com os dados de velocidadae do teste 1 para comparacao
arquivo3 = open('VELOCIDADE.txt', 'r')
arquivo3.readline()
mat4 = []
XN1 = []
YN1 = []
XN2 = []
YN2 = []
# Le os dados de entrada e os acrescenta em uma matriz m.
for linha in arquivo3.readlines():
# Le cada linha do arquivo3 e joga na variavel linha
mat4.append(linha.split())
#Acrescenta a variavel linha repartida na variavel matriz de 53 linhas
# Joga os dados da matriz em um vetor A.
for i in range(len(mat4)):
XN1.append(mat4[i][0])
YN1.append(mat4[i][1])
XN2.append(mat4[i][2])
YN2.append(mat4[i][3])
plt.plot(XN1,YN1, 'b',XN2,YN2, 'g--',tempo,zqu, 'r')
plt.title('Evolucao da frente de remolhamento')
plt.ylabel('Comprimento ao longo do canal (mm) ')
plt.xlabel('Tempo (s)')
plt.axis((0,750,0,3900))
plt.show()
#TABELAS ADICIONAIS FEITAS POR INTERPOLACAO QUE FORAM PEDIDAS NA DEFESA
def INT(t):
F = 0
tabela = open('Dados teste 1.txt', 'r')# Le o arquivo que contem a tabela e joga na
variavel tabela
tabela.readline()#deconsidera a primeira linha da tabela que e texto
props = []#Cria a matriz props com as propriedades termodinamicas do arquivo
for linha in tabela.readlines():#Preenche a matriz props
props.append((linha.split()))
for i in range (len(props)):# Transforma o texto em valores
for j in range (12):
props[i][j] = float(props[i][j])

for i in range (28):#Resolve o lado esquerdo da equacao de interpolacao


if t <= props[i][0]:
F1=(t-props[i-1][0])/(props[i][0]-props[i-1][0])
break
TE3 = props[i-1][1] + F1*(props[i][1] - props[i-1][1])# Calcula a temperatura de
saturacao
for i in range (28):#Resolve o lado esquerdo da equacao de interpolacao
if t <= props[i][2]:
F2=(t-props[i-1][2])/(props[i][2]-props[i-1][2])
break
TE6 = props[i-1][3] + F2*(props[i][3] - props[i-1][3])# Calcula a temperatura de
saturacao
for i in range (28):#Resolve o lado esquerdo da equacao de interpolacao
if t <= props[i][4]:
F3=(t-props[i-1][4])/(props[i][4]-props[i-1][4])
break
TE8 = props[i-1][5] + F3*(props[i][5] - props[i-1][5])# Calcula a temperatura de
saturacao
for i in range (28):#Resolve o lado esquerdo da equacao de interpolacao
if t <= props[i][6]:
F3=(t-props[i-1][6])/(props[i][6]-props[i-1][6])
break
TH3 = props[i-1][7] + F3*(props[i][7] - props[i-1][7])# Calcula a temperatura de
saturacao
for i in range (28):#Resolve o lado esquerdo da equacao de interpolacao
if t <= props[i][8]:
F3=(t-props[i-1][8])/(props[i][8]-props[i-1][8])
break
TH6 = props[i-1][9] + F3*(props[i][9] - props[i-1][9])# Calcula a temperatura de
saturacao
for i in range (28):#Resolve o lado esquerdo da equacao de interpolacao
if t <= props[i][10]:
F3=(t-props[i-1][10])/(props[i][10]-props[i-1][10])
break
TH8 = props[i-1][11] + F3*(props[i][11] - props[i-1][11])# Calcula a temperatura de
saturacao
return (TE3, TE6, TE8, TH3, TH6, TH8)
TE3 = [] #Temperatura experimental da cota 3
TE6 = []
TE8 = []
TH3 = [] #Temperatura Hydroflut da cota 3
TH6 = []
TH8 = []
TR3 = [400] #Temperatura temperatura calculada pelo REWET da cota 3 mas para intervalos
de 10 em 10
TR6 = [400]
TR8 = [400]
tE = [] # Tempo que vai ser usado de 2 em 2 segundos
print ('TEMPO',' ','T.R3','
''T.E3','
','T.R6','
''T.E8',' ')
TV = 251 #Tamanho dos vetores
for i in range (0,502,2):
T = INT(i)
TE3.append(T[0])
TE6.append(T[1])
TE8.append(T[2])

','T.E6','

','T.R8','

TH3.append(T[3])
TH6.append(T[4])
TH8.append(T[5])
tE.append(i)
for i in range (2,502,2):
TR3.append(TC20P[i*2])
TR6.append(TC48P[i*2])
TR8.append(TC76P[i*2])
# Calculando o desvio
= [None]*(TV)
= [None]*(TV)
= [None]*(TV)
= [None]*(TV)
= [None]*(TV)
= [None]*(TV)

DVR3
DVR6
DVR8
DVH3
DVH6
DVH8

for i in range (0,(TV)):


DVR3[i] = 100*(TR3[i]-TE3[i])/TE3[i]
DVR6[i] = 100*(TR6[i]-TE6[i])/TE6[i]
DVR8[i] = 100*(TR8[i]-TE8[i])/TE8[i]
DVH3[i] = 100*(TH3[i]-TE3[i])/TE3[i]
DVH6[i] = 100*(TH6[i]-TE6[i])/TE6[i]
DVH8[i] = 100*(TH8[i]-TE8[i])/TE8[i]
#Imprimindo tabela para a cota 3
print ('TEMPO',' ','T.R3','
','T.H3','

','T.E3','

for i in range (0,TV):


print ('%4.0f'%(i*2),' ','%6.2f' %TR3[i],'
','%6.2f' %DVR3[i],' ','%6.2f' %DVH3[i])
#Imprimindo tabela para a cota 6
print ('TEMPO',' ','T.R6','
','T.H6','

#Imprimindo tabela para a cota 8


print ('TEMPO',' ','T.R8','
','T.H8','

','%6.2f' %TH3[i],'

','T.E6','

for i in range (0,TV):


print ('%4.0f'%(i*2),' ','%6.2f' %TR6[i],'
','%6.2f' %DVR6[i],' ','%6.2f' %DVH6[i])

','DVR3','

','%6.2f' %TE3[i],'

','DVR6','

','%6.2f' %TH6[i],'

','T.E8','

plt.plot(tE,DVR3, 'r',tE,DVH3, 'g--')


plt.axis((0,200,-100,200))
plt.ylabel('Desvio(%)')
plt.xlabel('Tempo (s)')
plt.title('Desvio % Cota 3, Teste 2')
plt.show()
plt.plot(tE,DVR6, 'r',tE,DVH6, 'g--')
plt.axis((0,300,-100,200))
plt.ylabel('Desvio(%)')
plt.xlabel('Tempo (s)')
plt.title('Desvio % Cota 6, Teste 2')

','DVH6')

','%6.2f' %TE6[i],'

','DVR8','

for i in range (0,TV):


print ('%4.0f'%(i*2),'
','%6.2f' %TR8[i],' ','%6.2f' %TH8[i],'
%TE8[i],' ','%6.2f' %DVR8[i],' ','%6.2f' %DVH8[i])
#Iprimindo os desvios

','DVH3')

','DVH8')

','%6.2f'

plt.show()
plt.plot(tE,DVR8, 'r',tE,DVH8, 'g--')
plt.axis((0,500,-100,200))
plt.ylabel('Desvio(%)')
plt.xlabel('Tempo (s)')
plt.title('Desvio % Cota 8, Teste 2')
plt.show()

Vous aimerez peut-être aussi