# -*- coding: utf-8 -*-
"""
Created on Tue Mar 04 10:24:20 2014
@author: Serge
"""
from numpy import array,floor,zeros,exp,absolute
# Creando archivo de salida
sal=open("registro.txt","w")
print "\nPrograma para el calculo del envejecimiento de \
transformador con carga y temperaturas variables \n\n"
sal.write("Programa para el cálculo del envejecimiento de \
transformador con carga y temperaturas variables \n\n")
# Abriendo datos del Transformador
Datos=open('datos_trafo.txt','r')
# Leyendo Primera linea
a=Datos.readline()
a1=a.split(',')
xkva1=(float(a1[0]))
tkva1=(float(a1[1]))
pw=(float(a1[2]))
pe=(float(a1[3]))
ps=(float(a1[4]))
pc=(float(a1[5]))
# Leyendo Segunda linea
a=Datos.readline()
a2=a.split(',')
xkva2=(float(a2[0]))
thkva2=(float(a2[1]))
thewa=(float(a2[2]))
thehsa=(float(a2[3]))
thetor=(float(a2[4]))
thebor=(float(a2[5]))
tar=(float(a2[6]))
# Leyendo Tercera linea
a=Datos.readline()
a3=a.split(',')
mc=(float(a3[0]))
puelhs=(float(a3[1]))
tauw=(float(a3[2]))
hhs=(float(a3[3]))
# Leyendo Cuarta linea
a=Datos.readline()
a4=a.split(',')
wcc=(float(a4[0]))
wtank=(float(a4[1]))
mf=(float(a4[2]))
gfluid=(float(a4[3]))
# Leyendo Quinta linea
a=Datos.readline()
a5=a.split(',')
mcore=(float(a5[0]))
timcor=(float(a5[1]))
pcoe=(float(a5[2]))
# Leyendo Sexta linea
a=Datos.readline()
a6=a.split(',')
ths=(float(a6[0]))
tw=(float(a6[1]))
tto=(float(a6[2]))
ttdo=(float(a6[3]))
tbo=(float(a6[4]))
#print ths
# Leyendo Septima linea
a=Datos.readline()
a7=a.split(',')
ma=(float(a7[0]))
mpr=(float(a7[1]))
dtp=(float(a7[2]))
jj=(float(a7[3]))
# Leyendo tim(j), amb(j), pul(j)
tim=[]; amb=[]; pul=[]
for line in Datos:
a8=line.split(',')
tim.append(float(a8[0]))
amb.append(float(a8[1]))
pul.append(float(a8[2]))
tim=array(tim);amb=array(amb);pul=array(pul)
tim=tim*60
Datos.close()
# Fin de lectura
# Definiendo función fnv
def fnv(b,c,tmu):
FNV=b*exp(c/(tmu+273))
return FNV
timcor=timcor*60
if ma==1:
x=0.5
yn=0.8
z=0.5
thedor=thetor
print "Modo de Enfriamiento: OA"
sal.write("Modo de Enfriamiento: OA\n")
elif ma==2:
x=0.5
yn=0.9
z=0.5
thedor=thetor
print "Modo de enfriamiento: FA"
sal.write("\nModo de enfriamiento: FA\n")
elif ma==3:
x=0.5
yn=0.9
z=1
thedor=thewa
print "Modo de enfriamiento: NDFOA"
sal.write("Modo de enfriamiento: NDFOA\n")
elif ma==4:
x=1
yn=1
z=1
thedor=thetor
print "Modo de enfriamiento: DFOA"
sal.write("Modo de enfriamiento: NDFOA\n")
twr=tar+thkva2
twrt=tar+thewa
thsr=tar+thehsa
ttor=tar+thetor
tbor=tar+thebor
ttdor=thedor+tar
twor=(hhs*(ttdor-tbor))+tbor
tdaor=(ttdor+tbor)/2
tfaver=(ttor+tbor)/2
tfave=(tto+tbo)/2
two=tbo+(hhs*(ttdo-tbo))
if mc==1:
tk=225
cpw=6.798
elif mc==2:
tk=234.5
cpw=2.91
xk2=(xkva2/xkva1)**2
tk2=(tk+twr)/(tk+tkva1)
pw=xk2*pw*tk2
pe=xk2*pe/tk2
ps=xk2*ps/tk2
pt=pw+pe+ps+pc
if (pe/pw)>puelhs:
puelhs=pe/pw
tkhs=(thsr+tk)/(twr+tk)
pwhs=tkhs*pw
pehs=puelhs*pwhs
xmcp=(pe+pw)*tauw/(twrt-tdaor)
wwind=xmcp/cpw
if wwind>wcc:
print "Constante de tiempo de devanado muy alta, cambie \
el dato en el archivo de lectura de datos a un valor mas pequeño"
sal.write("Constante de tiempo de devanado muy alta, cambie \
el dato en el archivo de lectura de datos a un valor mas pequeño\n")
if mf==1:
cpf=13.92
rhof=0.031621
c=2797.3
b=0.0013473
print "Fluido de enfriamiento: Aceite de transformador"
sal.write("Fluido de enfriamiento: Aceite de transformador\n")
elif mf==2:
cpf=11.49
rhof=0.0347
c=1782.3
b=0.12127
print "Fluido de enfriamiento: Silicona"
sal.write("Fluido de enfriamiento: Silicona\n")
elif mf==3:
cpf=14.55
rhof=0.03178
c=4434.7
b=7.343e-5
print "Fluido de enfriamitno: HTHC"
sal.write("Fluido de enfriamitno: HTHC\n")
wcore=wcc-wwind
cpst=3.51
wfl=gfluid*231*rhof
summcp=(wtank*cpst)+(wcore*cpst)+(wfl*cpf)
t=(twrt+tdaor)/2
visr=fnv(b,c,t)
t=(thsr+twor)/2
vihsr=fnv(b,c,t)
tmp=0
if mpr<1:
dtp=15
kk=int(floor(tim[jj-1]/dtp)+0.01)
k=0
timp=zeros(24)
for k in xrange(kk):
tmp=tmp+dtp
timp[k]=tmp
if mpr>=1:
print "Time HS TOPO TOPDO BOTO \nHORAS TEMP TEMP TEMP TEMP"
sal.write("\nTime HS TOPO TOPDO BOTO \nHORAS TEMP TEMP TEMP TEMP\n")
thsmax=ths
timhs=0
ttomax=tto
timto=0
ax=(15000.0/383.0)-(15000.0/(ths+273.0))
a=exp(ax)
asum=0
j=0
k=0
tims=0
timsh=0.0
dt=1
if (tauw/dt)<2:
dt=dt/2
if mpr>=1:
print '%3.3f'%(timsh),'%3.3f'%(ths), '%3.3f'%(tto), '%3.3f'%(ttdo), '%3.3f'%(tbo)
val='%3.3f'%(timsh),'%3.3f'%(ths), '%3.3f'%(tto), '%3.3f'%(ttdo), '%3.3f'%(tbo)
sal.write(str(val)+"\n")
while tims<tim[jj-1]:
while tims<timp[k]:
tims=tims+dt
if tims>tim[j+1]:
j+=1
timsh=tims/60.0
if absolute(tim[j+1]-tim[j])<0.01:
j+=1
sl=(pul[j+1]-pul[j])/(tim[j+1]-tim[j])
pl=pul[j]+(sl*(tims-tim[j]))
slamb=(amb[j+1]-amb[j])/(tim[j+1]-tim[j])
ta=amb[j]+(slamb*(tims-tim[j]))
tdao=(ttdo+tbo)/2
if tw<tdao:
tw=tdao
tkw=(tw+tk)/(twr+tk)
qwgen=pl*pl*((tkw*pw)+(pe/tkw))*dt
t=(tw+tdao)/2
vis=fnv(b,c,t)
qwlost=(((tw-tdao)/(twrt-tdaor))**1.25)*((visr/vis)**0.25)*(pw+pe)*dt
tw=(qwgen-qwlost+(xmcp*tw))/xmcp
dtdo=(ttdor-tbor)*((qwlost/((pw+pe)*dt))**x)
ttdo=tbo+dtdo
tdao=(ttdo+tbo)/2
two=tbo+(hhs*dtdo)
tkhs=(ths+tk)/(thsr+tk)
if (ttdo+0.1)<tto:
two=tto
if ths<tw:
ths=tw
if ths<two:
ths=two
qhsgen=pl*pl*((tkhs*pwhs)+(pehs/tkhs))*dt
t=(ths+two)/2
vishs=fnv(b,c,t)
qlhs=(((ths-two)/(thsr-twor))**1.25)*((vihsr/vishs)**0.25)*(pwhs+pehs)*dt
ths=(qhsgen-qlhs+(xmcp*ths))/xmcp
qs=((pl*pl*ps)/tkw)*dt
qlostf=(((tfave-ta)/(tfaver-tar))**(1/yn))*pt*dt
if mcore>1:
if tims>timcor:
qc=pcoe*dt
else:
qc=pc*dt
else:
qc=pc*dt
tfave=(qwlost+qc+qs-qlostf+(summcp*tfave))/summcp
dttb=((qlostf/(pt*dt))**z)*(ttor-tbor)
tto=tfave+(dttb/2)
tbo=tfave-(dttb/2)
ax=(15000.0/383.0)-(15000.0/(ths+273.0))
a=exp(ax)
asum=asum+(a*dt)
if ths>thsmax:
thsmax=ths
timhs=timsh
else :
if tto>ttomax:
ttomax=tto
timto=timsh
if mpr>=1:
print '%3.3f'%(timsh),'%3.3f'%(ths), '%3.3f'%(tto), '%3.3f'%(ttdo), '%3.3f'%(tbo)
val='%3.3f'%(timsh),'%3.3f'%(ths), '%3.3f'%(tto), '%3.3f'%(ttdo), '%3.3f'%(tbo)
sal.write(str(val)+"\n")
k+=1
tims=tims-dt
asum=asum/60.0
aeq=asum/timsh
print "\nCarga en pu", xkva2,"kva"
sal.write("\nCarga en pu "+str('%3.3f'%(xkva2))+ " kva""\n")
print "A este kva, las perdidas a",twr," grados C son como sigue:"
sal.write("A este kva, las perdidas a "+str(twr)+" °C son como sigue:\n")
print "Perdidas I2R",pw,"Watts"
sal.write("Perdidas I2R "+str('%3.3f'%(pw))+ " Watts""\n")
print "Perdidas por Eddy",pe,"Watts"
sal.write("Perdidas por Eddy "+str('%3.3f'%(pe))+ " Watts""\n")
print "Perdidas por dispersion",ps,"Watts"
sal.write("Perdidas por dispersión "+str('%3.3f'%(ps))+ " Watts""\n")
print "Perdidas en el nucleo",pc,"Watts"
sal.write("Perdidas en el núcleo "+str('%3.3f'%(pc))+ " Watts""\n")
print "Perdidas totales",pt,"Watts \n"
sal.write("Perdidas totales "+str('%3.3f'%(pt))+ " Watts""\n\n")
print "Temperaturas durante el ciclo de carga:\n"
sal.write("Temperaturas durante el ciclo de carga:\n")
print "Temperatura maxima del punto caliente:",thsmax, "a las",timhs,"hrs"
sal.write("Temperatura máxima del punto caliente "+str('%3.3f'%(thsmax))+ " a las "+str('%3.3f'%(timhs))+ " hrs\n")
print "Temperatura maxima del fluido de la parte superior:",ttomax,"a las",timto,"hrs"
sal.write("Temperatura máxima del fluido de la parte superior "+str('%3.3f'%(ttomax))+ " a las "+str('%3.3f'%(timto))+ " hrs\n\n")
print "Temperatura final del punto caliente:",ths
sal.write("Temperatura del punto caliente: "+str('%3.3f'%(ths))+"\n")
print "Temperatura final promedio del devanado:",tw
sal.write("Temperatura final promedio del devanado "+str('%3.3f'%(tw))+"\n")
print "Temperatura final del aceite de la parte superior:",tto
sal.write("Temperatura final del aceite de la parte superior: "+str('%3.3f'%(tto))+"\n")
print "Temperatura final del aceite del ducto:",ttdo
sal.write("Temperatura final del aceite del ducto: "+str('%3.3f'%(ttdo))+"\n")
print "Temperatura final del aceite de la parte inferior:",tbo,"\n"
sal.write("Temperatura final del aceite de la parte inferior: "+str('%3.3f'%(tbo))+"\n\n")
print "Envejecimiento equivalente:",asum,"hrs"
sal.write("Envejecimiento equivalente: "+str('%3.3f'%(asum))+" hrs\n")
print "Duracion del ciclo de carga:",timsh,"hrs"
sal.write("Duración del ciclco de carga: "+str('%3.3f'%(timsh))+" hrs\n")
print "Factor de envejecimiento equivalente:"'%6.6f'%(aeq),"por unidad"
sal.write("Factor de envejecimiento equivalente: "+str('%3.3f'%(aeq))+" por unidad")
sal.close()
Comentarios sobre la versión: Versión 1 (0)
No hay comentarios