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 min ^oC. En la figura puede verse la gráfica generada mediante este ejemplo.
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 ^oC, a ^oC, y agua a ^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.
2004-05-30