Curva grand

En esta sección vamos a ver cómo dibujar la curva grand del proceso, y cómo optimizar el consumo de servicios auxiliares cuando se tienen varios niveles de vapor y/o agua de refrigeración (en general, cualquier servicio auxiliar isotérmico).

El programa es igual que el anterior, hasta la creación de la tabla del problema. Después añadimos las siguientes líneas:

H = tabla.getCascadaEntalpias()
T = tabla.getCascadaTemperaturas()

file = open('grand','w')

# Puntos de la curva grand
for n in range(len(H)):
        file.write(str(T[n])+'\t'+str(H[n])+'\n')

file.close()
        
# Comando para dibujar la gráfica
os.system('echo "set terminal png small; set size .65; \
        set grid; set output \'grand.png\';\
        set ylabel \'T (C)\'; set xlabel \'H (MW)\';\
        plot \'grand\' using 2:1 with lines title \'Curva grand\'"\
        | gnuplot')

En este ejemplo vamos a usar un valor de $ \Delta T_$min$ = 10$ ^oC. En la figura [*] puede verse la gráfica generada mediante este ejemplo.

Figura: Curva grand obtenida con el programa de ejemplo
Image pinchpython2

Vamos ahora a suponer que tenemos dos niveles de vapor y uno de agua de refrigeración, tal y como ocurría en el ejemplo [*]. Tenemos vapor a $ 180$ ^oC, a $ 240$ ^oC, y agua a $ 30$ ^oC. Se trata de obtener los consumos óptimos de cada servicio auxiliar.

Para realizar este ejemplo, añadimos al programa anterior las siguientes líneas:

# Niveles de vapor
vapor1 = VaporSaturado(240.)
vapor2 = VaporSaturado(180.)

agua1 = AguaSaturada(30.)

# Creamos la curva grand
cg = CurvaGrand(tabla,[agua1],[vapor1,vapor2])

print "Consumo calefacción (MW)"
print cg.getConsumosCalefaccion()
print "Temperaturas de los consumos de calefacción (ºC)"
print cg.getTemperaturasCalefaccion()
print
print "Consumo refrigeracion (MW)"
print cg.getConsumosRefrigeracion()
print "Temperaturas de los consumos de refrigeración (ºC)"
print cg.getTemperaturasRefrigeracion()

El programa devuelve los siguientes resultados:

Consumo calefacción (MW)
[2.9999999999999991, 4.4999999999999991]
Temperaturas de los consumos de calefacción (ºC)
[175.0, 235.0]
                                                                                
Consumo refrigeracion (MW)
[10.0]
Temperaturas de los consumos de refrigeración (ºC)
[35.0]

Podemos observar que devuelve los valores de las temperaturas modificadas. Además, estos resultados corroboran los del ejemplo [*].

Vamos a añadir la representación de los consumos de servicios auxiliares a la gráfica de la curva grand. Para ello empleamos las siguientes líneas de código:

# Listas de servicios calientes
h_calientes = cg.getConsumosCalefaccion()
t_calientes = cg.getTemperaturasCalefaccion()

# Listas de servicios frios
h_frios = cg.getConsumosRefrigeracion()
t_frios = cg.getTemperaturasRefrigeracion()

# Fichero de datos de servicios calientes
file = open('nivel_caliente','w')
h_anterior = 0.0
# Añadimos cada nivel de vapor
for n in range(len(h_calientes)):
        
        file.write(str(h_anterior)+'\t'+str(t_calientes[n])+'\n')
        file.write(str(h_calientes[n]+h_anterior)+'\t'+str(t_calientes[n])+'\n')
        h_anterior = h_calientes[n]
        
file.close()

# Fichero de datos de servicios fríos
file = open('nivel_frio', 'w')
h_anterior = 0.0
# Añadimos cada nivel de agua
for n in range(len(h_frios)):
        file.write(str(h_anterior)+'\t'+str(t_frios[n])+'\n')
        file.write(str(h_frios[n]+h_anterior)+'\t'+str(t_frios[n])+'\n')        
        h_anterior = h_frios[n]

file.close()

# Este es el comando para dibujar la curva grand
comando = 'echo "set terminal png small; set size .65; \
        set grid; set output \'grand.png\';\
        set ylabel \'T (C)\'; set xlabel \'H (MW)\';\
        plot \'grand\' using 2:1 with lines title \'Curva grand\''

# Representación de servicios calientes
comando += ", 'nivel_caliente' using 1:2 with lines title 'Servicio caliente'"

# Representación de servicios fríos
comando += ", 'nivel_frio' using 1:2 with lines title 'Servicio frio'"

comando += '"| gnuplot'

# Ejecutamos el comando
os.system(comando)

Una vez ejecutado el programa, en el archivo grand.png hay una representación gráfica de la curva grand junto con los dos niveles de vapor, y el nivel de agua de refrigeración. En la figura [*] se muestra esta gráfica.

Figura: Curva grand, junto con la representación de los servicios auxiliares
Image pinchpython3

2004-05-30