scieee AI-readable full text Open interactive document viewer

Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP

Baena Mejías, Rafael

Abstract

Este trabajo es la continuación del Trabajo Fin de Grado de Don Fco. Javier Gómez Correa (“Aplicación informática para la modelización de redes de vapor complejas”) [6] en el que se desarrolló la aplicación informática REDVAP. El proyecto conjunto consiste en realizar un modelo de vapor fidedigno a fin de conseguir a priori los puntos de operación en los que trabajarán los diferentes equipos de una planta de vapor. Este modelo podrá ser usado para ver la repercusión de las medidas de ahorro y eficiencia energética que se pretendan plantear en una planta de vapor. Mediante ratios de eficiencia energética que relacionen los consumos de utilities y combustibes con la demanda de vapor de la planta se podrá realizar un análisis comparativo y tener una idea de cómo se comportará la planta ante las variaciones en la demanda de vapor. El modelo permite además la realización de un análisis de viabilidad económica. En el ya citado proyecto anterior [6] se realizó el modelo para los equipos básios que componen una red de vapor. En este proyecto, se abarcarán dos tipos de equipos que fueron tratados en dicho proyecto: los intercambiadores de calor y las turbinas de gas con un generador de vapor acoplado al escape para cogenerar. Para realizar el modelo se ha usado el lenguaje de programación Microsoft Visual Basic for Applications (Microsoft VBA) incluida en el paquete Microsoft OffIce para simular plantas de vapor en Excel.

Full text

Resumen I Equation Chapter 1 Section 1 Proyecto Fin de Grado Ingeniería de la Energía Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP Autor: Rafael Baena Mejías Tutor: David Velázquez Alonso Dep. de Ingeniería Energética Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP III Proyecto Fin de Grado Ingeniería de la Energía Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP Autor: Rafael Baena Mejías Tutor: David Velázquez Alonso Profesor titular Dep. de Ingeniería energética Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP V Proyecto Fin de Grado: Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP Autor: Rafael Baena Mejías Tutor: David Velázquez Alonso El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2019 El Secretario del Tribunal Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP Agradecimientos VII A mi madre por ser el pilar de mi vida A mi padre por ser mi referente en la vida A mi familia y amigos por estarsiempre ahí A mis maestros por su paciencia, ayuda y apoyo Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP VIII Resumen IX Resumen Este trabajo es la continuación del Trabajo Fin de Grado de Don Fco. Javier Gómez Correa (“Aplicación informática para la modelización de redes de vapor complejas”) [6] en el que se desarrolló la aplicación informática REDVAP. El proyecto conjunto consiste en realizar un modelo de vapor fidedigno a fin de conseguir a priori los puntos de operación en los que trabajarán los diferentes equipos de una planta de vapor. Este modelo podrá ser usado para ver la repercusión de las medidas de ahorro y eficiencia energética que se pretendan plantear en una planta de vapor. Mediante ratios de eficiencia energética que relacionen los consumos de utilities y combustibes con la demanda de vapor de la planta se podrá realizar un análisis comparativo y tener una idea de cómo se comportará la planta ante las variaciones en la demanda de vapor. El modelo permite además la realización de un análisis de viabilidad económica. En el ya citado proyecto anterior [6] se realizó el modelo para los equipos básios que componen una red de vapor. En este proyecto, se abarcarán dos tipos de equipos que fueron tratados en dicho proyecto: los intercambiadores de calor y las turbinas de gas con un generador de vapor acoplado al escape para cogenerar. Para realizar el modelo se ha usado el lenguaje de programación Microsoft Visual Basic for Applications (Microsoft VBA) incluida en el paquete Microsoft OffIce para simular plantas de vapor en Excel. Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP Introducción 1 1 INTRODUCCIÓN n los albores del siglo XXI, parece haber quedado demostrado que la energía será el principal motor de desarrollo de los pueblos. El desarrollo energético a nivel global a repercutido en la aparición de tres grandes problemas para el futuro de la sociedad, los cuales, de una forma otra, son tenidos en cuenta en la hoja de ruta de los gobiernos de la mayoría de los países desarrollados. Estos tres grandes problemas son el impacto ambiental producido por la utilización de combustibles fósiles, así como la disponibilidad y la sostenibilidad de los recursos energéticos [1]. Los recursos fósiles siguen cubriendo en torno a un 80% de la demada energética a nivel mundial [2]. Esto conlleva a que en 2018 las emisiones de CO2 a la atmósfera alcalzaran un record histórico llegando a emitirse 33,1 Gt de dióxido de carbono, lo que supone ya una concentración de CO2 en la atmósfera de 407,5 ppm [2]. Por otro lado, existe una elevada inestabilidad en el precio de los combustibles fósiles y una fuerte dependencia con las políticas de los países que los albergan, la mayoría de ellos países en conflicto. Los combustibles fósiles son recursos finitos. La cada vez más alta demanda energética a nivel global está suponiendo el agotamiento de las reservas de crudo, carbón y gas natural. Aunque se van descubriendo nuevas reservas y nuevos métodos para extraer los recursos en plantas ya explotadas, habrá que poder garantizar la disponibilidad de dichos recursos para las generaciones venideras. La combinación de estos hechos hace que las naciones y las industrias aborden cada vez con más ahínco la gestión energética tanto de los procesos industriales como de las plantas de producción de potencia. Para disminuir la dependencia energética surgen iniciativas como el Protocolo de Kyoto, el acuerdo de París o la Directiva 20/20/20 de la Unión Europea. Estas iniciativas pretenden disminuir la demanda de energía primaria, aumentar la presencia de las renovables en la producción energética y mejorar la eficiencia energética de la producción energética [3]. Una vez analizado el actual marco energético global, se pone de manifiesto la imperiosa necesidad de realizar una buena praxis en la gestión energética de las industrias y ha otorgarles la importancia y relevancia que ésta requiere. E “Sólo es posible avanzar cuando se mira lejos. Sólo cabe progresar cuando se piensa en grande.” - José Ortega y Gasset - Objetivos 2 2 OBJETIVOS ómo se ha explicado en el Resumen, este proyecto es la continuación del Trabajo Fin de Grado de Don Fco. Javier Gómez Correa (“Aplicación informática para la modelización de redes de vapor complejas”) en el que se desarrolló la aplicación REDVAP El objetivo compartido de ambos proyectos es desarrollar una herramienta informática que permita modelar las complejas redes de vapor presentes en cualquier industria realizando un análisis energético de cada uno de los equipos que componen dicha industria para poder así hallar márgenes de mejora y ahorro energéticos y conseguir una reducción tanto del consumo como de la demanda de vapor mediante proyectos de eficiencia energética. Tradicionalmente los proyectos de ahorro se han centrado en analizar las pérdidas en la producción y en el transporte de energía. Para analizar de forma integral la red de vapor será necesario analizar también el consumo. Por tanto, la herramienta que se pretende crear deberá tener en cuenta todos los equipos de la planta, desde los equipos de producción hasta los de consumo final. El objetivo del proyecto anterior se realizó el modelo para los siguientes equipos básicos que componen una red de vapor: calderas, turbinas, compresores, eyectores de vapor, botellones flash, desgasificadores, bombas de agua y válvulas reductores y laminadoras. El objetivo de este proyecto será introducir en la herramienta un modelo para analizar dos tipos de equipos que no se analizaron en el anterior proyecto. Estos equipos son los intercambiadores de calor, en sus distintas variantes, y los ciclos combinados, en particular aquellos que disponen de una turbina de gas en cabeza y un generador de vapor en cola. Para realizar el modelo se ha usado de nuevo el lenguaje de programación Microsoft Visual Basic for Application (VBA), el lenguaje de macros de Microsoft Office que será descrito en el Capítulo 5, y el programa STEAMTAB [11], que permite conocer el estado del vapor en cada punto. Para poder realizar un modelo de dichos equipos habrá que analizarlos en primer lugar. Se procederá haciendo una introducción sobre las aplicaciones del vapor seguido de un análisis sobre los dos equipos a tratar en el presente proyecto. C Aplicaciones del Vapor 3 3 APLICACIONES DEL VAPOR Dentro de las grandes industrias es habitual el uso del vapor como fluido caloportador debido a sus buenas propiedades en cuento a absorción de calor (gran capacidad calorífica; calor latente: 2100kJ/kg), transferencia de calor (altos coeficientes de película) y seguridad (no es corrosivo o inflamable, aunque presenta el inconveniente de que se pueden requerir altas presiones). Además, el vapor de agua es un fluido barato y se conocen con detalle sus propiedes termodinámicas [4]. Desde la revolución industrial el vapor ha jugado un papel principal en la producción de energía. Aunque, la máquina de vapor haya sido reemplazada por motores de combustión interna alternativos y motores eléctricos, el vapor sigue siendo ampliamente usado tanto en las plantas de producción de potencia como en las grandes industrias. Ell vapor es el fluido caloportador por excelencia en las industrias. Debido a sus características ya mencionadas, el vapor es usado en un amplio rango de industrias. Las agroalimentarias, textil, químicas o farmacéuticas son ejemplos de industrias que emplean el vapor como fluido caloportador. Mediante el uso del vapor de agua se puede controlar de forma sencilla el transporte de energía térmica en una industria. Esta energía térmica puede ser usada para diferentes aplicaciones: Entre las aplicaciones más comunes destacan los procesos de calentamiento e impulsión. Sin embargo, el uso del vapor se extendie más hallá de estas dos aplicaciones: 3.1 Vapor para Calentamiento Es común en industrias agroalimentarias, plantas químicas y refinerías el uso de vapor como HTF (“Heat Transfer Fluid”) para calentar otra corriente o producto. El vapor para este uso es generalmente producido y distribuido en una presión positiva, aunque cada vez son más comunes los intercambiadores de calor con vapor al vacío. Lo habitual para este uso es tener vapor a mas de 1 bar absoluto y 100ºC. Este aporte de calor pude ser de forma directa o indirecta. 3.1.1 Calentamiento directo El término de calentamiento directo se refiere a aquellos procesos de transferencia de calor en los cuales el vapor está en contacto directo con la corriente o poducto a calentar. Ejemplos de este tipo de uso son los secaderos industriales, procesos de esterilización o procesos de vulcanización entre otros. 3.1.2 Calentamiento indirecto (Intercambiadores de Calor) El término de calentamiento directo se refiere a aquellos procesos de transferencia de calor en los cuales el vapor no está en contacto directo con la corriente o poducto a calentar. Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP Figura 3-1 Intercambiador de Calor con cambio de fase [4] Este tipo de calentamiento es ampliamente utlizado en la industria, generalmente mediante intercambiadores de calor. Este método ofrece la ventaja de que las gotas de agua formadas por el vapor al condensar no afectarán al producto o corriente a calentar. En los intercambiadores de calor, el vapor transfiere energía al producto o corriente elevando la temperatura de dicho producto. En este proceso, el vapor condensa. El condensado deberá ser eliminado mediante un purgador. En el siguiente capítulo se aportará más información sobre este tipo de equipo. 3.2 Vapor para Impulso o Movimiento El vapor es usado recurrentemente para propulsión, así como fuerza motriz, en las llamadas turbinas de vapor. Una turbina de vapor (fluido compresible) es una máquina que transforma la energía térmica presente en el vapor en energía mecánica, que puede ser usada para distintos fines. El fluido entra en la turbina con una elevada entalpía, asociada a una cierta presión y temperatura (en plantas supercríticas puede llegar a los 250 bar y 600ºC), y a lo largo de la máquina se expansiona disminyendo su presión, temperatura y, por consiguiente, su entalpía cendiendo esta energía al eje de la máquina en forma de energía mecánica [5]. Si se acopla un generador eléctrico al eje se podrá convertir dicha energía mecánica en energía eléctrica Figura 3-2 Turbina a Condensación (Izquierda) y Turbina a Contrapresión (Derecha) La turbina de vapor es un equipo esencial para la generación de electricidad en plantas termoeléctricas. Aplicaciones del Vapor 5 El uso de las turbinas de vapor para producción de electricidad va desde pequeñas industrias hasta grandes plantas de producción de potencia de carbón o nuclear. Además de para producir energía eléctrica, las turbinas de vapor se usan también para mover compresores o bombas, acoplando estos equipos al eje de la turbina. Se pueden distinguir entre turbinas a condensación y turbinas a contrapresión. Las primeras operan con una presión por debajo de la atmosférica (pueden operar hasta a 30 mbar). Por el contrario, las turbinas de contrapresión son aquellas que trabajan por encima de la presión atmosférica. Las turbinas de condensación son usadas en las plantas de producción de potencia y en las grandes industrias para producción eléctrica. Las turbinas de contrapresión son usadas en plantas de cogeneración, de forma que el vapor, que aún tiene una elevada entalpía, se va a aprovechar en algún proceso en el que se requiera energía térmica. 3.3 Vapor como Fluido Motriz Otro de los usos comunes del vapor en la industria es como fuerza motriz para mover flujos de líquido o gas en una tubería. Los llamados eyectores de vapor, o termocompresores, pueden ser usados para crear vacío en equipos como columnas de destilación, reactores o cambiadores. Pueden ser también utilizados para recomprimir vapor de baja presión a una presión intermedia. Figura 3-3 Eyector de Vapor o Termocompresor 3.4 Vapor para Humidificación Es habitual el uso de vapor saturado a baja presión en grandes instalaciones industriales y comerciales localizadas en climas fríos como fuente de calor predominante para la aclimatación térmica de interior. En primer lugar, el aire frío del exterior es calentado en las baterías. Este proceso puede provocar una disminución de la humedad relativa. El vapor es entonces utilizado con dos objetivos: aumentar la temperatura de impulsión reduciendo la demanda en las baterías y alcanzar las condiciones de confort respecto a la humedad relativa. 3.5 Vapor para Atomización La atomización es un proceso mediante el cual se separan ciertos compuestos de una corriente de forma mecánica. Ejemplos de uso son la inyección de vapor en quemadores para maximizar la eficiencia y minimizar la producción de hollín; romper el aceite viscoso que sirve de combustible en calderas y Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP generadores de vapor que usan combustibles derivados del petróleo; o para reducir las emisiones en los quemadores de alta temperatura. Figura 3-4 Quemador con atomizador de vapor 3.6 Vapor para Limpieza EL vapor es usado para limpiar una gran variedad de equipos. Un ejemplo sería el uso de vapor en los separadores de hollín presentes en las calderas de carbón y derivados del petróleo. El vapor se usa para realizar una limpieza cíclica de las paredes del horno y remover el hollín de las superficies de conveción, manteniendo así la eficiencia y fiabilidad de la caldera. 3.7 Vapor para Hidratación En algunas industrias se utiliza el vapor para hidratar el proceso a la vez que se le transfiere calor. Un ejemplo de este uso es la hidratación en la producción de papel para evitar fracturas microscópicas. Intercambiadores de Calor 7 7 4 INTERCAMBIADORES DE CALOR s habitual en industrias la necesidad de transferir energía térmica en forma de calor de un fluido a otro con una menor temperatura. Los intercambiadores de calor son los equipos que permiten realizar dicha operación. Estos dispositivos tienen presencia en todo tipo de industrias y plantas de producción de potencia (plantas químicas, industrias agroalimentarias, centrales nucleares, ...). Las operaciones básicas de un intercambiador de calor son las siguientes: • Elevar la temperatura a un fluido mediante un fluido a mayor temperatura. • Reducir la temperatura de un fluido mediante un fluido a menor temperatura. • Condensar un fluido en estado gaseoso por medio de un fluido a menor temperatura. • Evaporar un fluido en estado líquido por medio de un fluido a mayor temperatura. En este capítulo se expondrán las ecuaciones que gobiernan el comportamiento de los intercambiadores de calor, la tipología de éstos y los dos métodos mas comunes para el diseño de intercambiadores de calor: método F-DTLM y el método de la efectividad-NTU. La base de este capítulo serán los Apuntes de la asignatura Tecnología Energética impartida por el catedrático David Velázquez Alonso [7]. 4.1 Balance de energía, transferencia de calor y pérdidas de carga 4.1.1 Balance energía Consideremos dos corrientes en un intercambiador de calor a diferente temperatura. Las capacidades caloríficas del fluido caliente y el fluido frío son respectivamente 𝐶ℎ=𝑚󰇗ℎ∙𝐶𝑃,ℎ y 𝐶𝐶=𝑚󰇗𝐶∙𝐶𝑃,𝐶, donde 𝑚󰇗 ℎy 𝑚󰇗𝐶 son el gasto másico y 𝐶𝑃,ℎ y 𝐶𝑃,𝐶 el calor específico de las corrientes caliente y fría. Figura 4-1 Esquema de un Intercambiador de Calor Aplicando un balance de energía atendiendo a la Primera Ley de la Termodinámica se obtiene que: 𝑄󰇗=𝐻ℎ,1−𝐻ℎ,2=(𝐻𝑐,1−𝐻𝑐,2)+𝑃é𝑟𝑑𝑖𝑑𝑎𝑠 Donde 𝑄󰇗 es el calor intercambiado, H es la entalpía y que los subíndices 1 y 2 indican la entrada o salida del intercambiador respectivamente. Asumiendo que la entalpía en cada punto vale 𝐻=𝑚󰇗·𝐶𝑃·𝑇 y que las pérdidas son despreciables si el intercambiador está debidamente aislado, se llega a lo siguiente: 𝑄󰇗=𝐶ℎ·(𝑇1−𝑇2)=𝐶𝐶·(𝑡2−𝑡1) E Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP Dónde T y t indican las temperaturas de la corriente caliente y fría respectivamente. De estas expresiones no se puede extraer ninguna información acerca del tamaño del intercambiador necesario para poder operar en dichas condiciones. Para el diseño será entonces necesario aplicar fundamentos de transmisión de calor. Para ello es necesario definir primero el llamado coeficiente de transferencia. 4.1.2 Coeficiente Global de transferencia Para realizar el análisis térmico de un intercambiador de calor consiste en evaluar el coeficiente global de transferencia. El coeficiente global de transferencia indica la potencia transferida por unidad de superficie para un salto de temperatura dado entre el fluido frío y el fluido caliente: 𝑄󰇗=𝑈·𝐴·(𝑇𝐶−𝑇𝐹) Donde 𝑄󰇗es la potencia transferida, 𝑈es el coeficiente de transferencia, 𝐴 es el área de transferencia, 𝑇𝐶 la temperatura del fluido caliente y 𝑇𝐹 la temperatura del fluido frío. Haciendo una analogía con un circuito eléctrico se puede definir una resistencia térmica. En un intercambiador de calor con dos fluidos a distinta temperatura el calor se transfiere del fluido con mayor temperatura al fluido con menor temperatura a través de las siguientes resistencias térmicas: • Resistencia térmica asociada a la transmisión de calor por convección del fluido con mayor temperatura. • Resistencia térmica asociada a la transmisión de calor por conducción de calor a través del material que separa los fluidos. • Resistencia térmica asociada a la transmisión de calor por convección del fluido con menor temperatura. • Resistencias térmicas asociadas al ensuciamiento del dispositivo tanto por el lado del fluido frío como del caliente. De esta forma el coeficiente global de transferencia se calcula como: 1 𝑈𝐺·𝐴=𝑅𝑇𝑜𝑡=(𝑅ℎ,𝐻+𝑅𝐹,𝐻+𝑅𝐶𝐷+𝑅𝐹,𝐶+𝑅ℎ,𝐶) I Re V1 V2 𝐼=𝑉1−𝑉2 𝑅𝑒 Q Rt TC TF 𝑄=𝑇𝐶−𝑇𝐹 𝑅𝑇 Figura 4-2 Resistencia equivalente a la de un circuito elctrico Intercambiadores de Calor 9 9 Dónde 𝑈𝐺 es el coeficiente global de transferencia, 𝐴 es el áerea de transferencia, 𝑅𝑇𝑜𝑡 es la resistencia térmica total y 𝑅ℎ,𝐻,𝑅𝐹,𝐻,𝑅𝐶𝐷,𝑅𝐹,𝐶,𝑅ℎ,𝐶 son las resistencias térmicas asociadas a la resistencia térmica asociada a la transmisión de calor por convección del fluido a mayor temperatura, al ensuciamiento por el lado del fluido a mayor temperatura, a la la transmisión de calor por conducción de calor a través del material que separa los fluidos, a la transmisión de calor por convección del fluido con menor temperatura y al ensuciamiento por el lado del fluido a menor temperatura respectivamente. Si consideramos un intercambiador formado por dos cilindros concéntricos con el cilindro a mayor temperatura circulando por el cilindro interior y el de menor temperatura por el exterior (intercambiador de doble tubo), la expresión anterior queda como: 1 𝑈𝐺·𝐴=𝑅𝑇𝑜𝑡=( 1 2·𝜋·ℎ𝑖·𝑟𝑖·𝐿+𝐹𝑠𝑖 2·𝜋·𝑟𝑖·𝐿+ln (𝑟𝑜𝑟𝑖 ⁄) 2·𝜋·𝑘·𝐿+𝐹𝑠𝑜 2·𝜋·𝑟𝑜·𝐿+1 2·𝜋·ℎ𝑜·𝑟𝑜·𝐿) Donde h es el coeficiente de película o coeficiente de convección (W/m2K), k es la conductividad térmica del material de separación de las corrientes (W/mK), Fs es el factor de ensuciamiento (m2K/W), que será analizado en el puto 4.2, (m2K/W) y r hace referencia al radio de los cilindros (m). Los sufijos i/o hacen referencia al fluido que circula por el interior (in) y por el exterior (out) respectivamente. Tomando como referencia el fluido que circula por el exterior el coeficiente global de transferencia se puede calcular como: 1 𝑈𝑜=𝐴𝑜·𝑅𝑇𝑜𝑡=( 𝑟𝑜 ℎ𝑖·𝑟𝑖+𝐹𝑠𝑖𝑟𝑜 𝑟𝑖+𝑟𝑜·ln (𝑟𝑜𝑟𝑖 ⁄) 𝑘+𝐹𝑠𝑜+1 ℎ𝑜) En la siguiente tabla se muestran valores representativos del coeficiente global de transferencia: Fluidos que intercambian U (W/m2K) Agua-Agua 850-1.700 Agua-Aceite 100-350 Gas-Gas (a la presión atmosférica) 10-40 Gas-Gas (a una presión de 200 bar) 100-300 Condensador vapor-agua 1.000-1.500 Evaporador vapor/solución acuosa 1.000-1.500 Evaporador hot oil-hidrocarburo 250-550 Agua-Aire 25-50 Vapor-Aire 28-280 Vapor con fuel oil ligero 170-340 Vapor con fuel oil pesado 56-170 Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP 4.3.2 Tipología según disposición de flujos 4.3.2.1 Intercambiadores de flujo en equicorriente Ambos fluidos del intercambiador de calor circulan de forma paralela y en el misma setido como muestra la Figura 4-13. En este caso, ambos fluidos entran por el mismo extremo al intercambiador. Por lo tanto, en la entrada se observa una gran diferencia de temperatura entre ambos fluidos que se va paliando conforme avanzan ambos fluidos a lo largo del intercambiador. Figura 4-11 Intercambiadores de calor con flujos en equicorriente Está característica de los intercambiadores de calor con flujos en equicorriente provoca, como se verá más adelante, que requieran de una mayor área de transferencia para transferir el mismo calor que un intercambiador de calor con flujos en contracorriente. 4.3.2.2 Intercambiadores de flujo en contracorriente Ambos fluidos del intercambiador de calor circulan de forma paralela, pero en sentido contrario, como muestra la Figura 4-14. En este caso, cada fluido entra por un extremo distinto del intercambiador. Por lo tanto, en la entrada se observa una menor diferencia de temperatura entre ambos fluidos. Este hecho provoca que tengan mejores prestaciones que los intercambiadores con flujo en equicorriente como se verá más adelante. Figura 4-12 Intercambiador con flujos en contracorriente Intercambiadores de Calor 17 17 4.3.2.3 Intercambiador de flujo cruzado Los fluidos del intercambiador de calor circulan de forma perpendicular entre sí. Este tipo de intercambiador suele usarse cuando uno de los dos fluidos cambia de fase. Un ejemplo de intercambiador de flujo cruzado son los aerocondensadores de vapor presentes en muchas plantas solares. Dichos aerogeneradores están compuestos por una serie de bancos de tubos montados en una estructura a elevada altura. En perpendicular al paso de la corriente de los tubos se hace cirluar aire con grandes ventiladores como se muestra en la Figura 4-14. Figura 4-13 Intercambiador de flujo cruzado. Aerocondensador. 4.4 Métodos de Dimensionado 4.4.1 Método F-DTLM. Diferencia de Temperaturas Logarítmica Media (DTLM) El método F-DTLM o factor de corrección de la DTML es el método de diseño más usado cuando se conocen las temperaturas a la entrada y salida de ambos fluidos del intercambiador. Se partirá de las expresiones a las que se llegaron en el punto 4.1: 𝑄󰇗=𝐶ℎ·(𝑇1−𝑇2)=𝐶𝐶·(𝑡2−𝑡1) 𝑄󰇗=𝑈·∫(𝑇−𝑡)·𝑑𝐴=𝑈·𝐴·∆𝜃     𝑟𝑒𝑝 Será necesario calcular una diferencia de temperaturas media representativa. Para ello, se partirá de las siguientes hipótesis: • Intercambiador adiabático. • Régimen permanente. • Propiedades físicas de los fluidos constantes. • Temperatura de los fluidos homogénea en cada paso. • Conducción axial despreciable. • Coeficiente global de transferencia de calor constante. Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP 4.4.1.1 DIferencia de Temperaturas Logarítmica Media Si se toma a ambos lados de la pared de superficie un elemento de superficie dA en un intercambiador de calor equicorriente, como el mostrado en la Figura 4-12, en una misma sección transversal se puede suponer que ambos fluidos toman las temperaturas T y t en estos elementos diferenciales. Si se toma ∆𝑇=𝑇−𝑡 la cantidad de calor que pasará del fluido caliente al fluido frío por unidad de tiempo se puede calcular como: 𝑑𝑄=𝑈·𝑑𝐴·∆𝑇=−𝐶ℎ·𝑑𝑇=𝐶𝐶·𝑑𝑡 De esta ecuación se puede obtener: 𝑑𝑇=−𝑑𝑄 𝐶ℎ 𝑑𝑡=−𝑑𝑄 𝐶𝑐 Por lo tanto, la diferencia entre ambos será: 𝑑𝑇−𝑑𝑡=𝑑(∆𝑇)= −𝑑𝑄·(1 𝐶ℎ+1 𝐶𝑐) Reorganizando los términos, se obtiene que: 𝑑(∆𝑇) 𝑑𝑇−𝑑𝑡=−𝑈·𝑑𝐴·(1 𝐶ℎ+1 𝐶𝑐) Integrando dicha ecuación diferencial entre los puntos 1 y 2 queda: 𝑙𝑛𝑇2−𝑡2 𝑇1−𝑡1=−𝑈·𝐴·(1 𝐶ℎ+1 𝐶𝑐) Teniendo en cuanta que 𝐶ℎ=𝑄 𝑇1−𝑇2 y que 𝐶𝑐=𝑄 𝑡2−𝑡1 se puede calcular el calor intercambiado de la siguiente manera: 𝑄=𝑈·𝐴·(𝑇1−𝑡1)−(𝑇2−𝑡2) 𝑙𝑛(𝑇1−𝑡1 𝑇2−𝑡2)=𝑈·𝐴·𝐷𝑇𝐿𝑀 𝑄=𝑈·𝐴·∆𝜃     𝑟𝑒𝑝=𝑈·𝐴·𝐷𝑇𝐿𝑀 Con lo que la diferencia de temperatura media representativa buscada es la DTLM (Diferencia de Temperaturas Logarítmica Media) o LMTD en inglés (Logarithmic Mean Temperature Difference). 4.4.1.2 Intercambiadores en equicorriente vs Intercambiadores en contracorriente El desarrollo anterior se puede realizar de la misma forma para hallar la DTLM en el caso de un intercambiador de calor con flujo en contracorriente, sólo que cambiarían las diferencias de temperaturas de la siguiente forma: Intercambiadores de Calor 19 19 𝐷𝑇𝐿𝑀𝐶𝐶=(𝑇1−𝑡2)−(𝑇2−𝑡1) 𝑙𝑛(𝑇1−𝑡2 𝑇2−𝑡1) 𝐷𝑇𝐿𝑀𝐸𝐶=(𝑇1−𝑡1)−(𝑇2−𝑡2) 𝑙𝑛(𝑇1−𝑡1 𝑇2−𝑡2) Figura 4-14 Diagrama de temperatura de un intercambiador con flujos en contracorriente y equicorriente. Con un ejemplo sencillo se puede demostrar que la DTLM es mayor con los flujos en contracorriente que en equicorriente: Suponiendo un intercambiador con mismo coeficiente global de transferencia y con las mismas temperaturas de entrada y salida: 𝑇1=100º𝐶 𝑇2=50º𝐶 𝑡1=25º𝐶 𝑡2=45º𝐶 En equicorriente: ∆𝑇𝑒=75º𝐶 ∆𝑇𝑒=5º𝐶 𝐷𝑇𝐿𝑀𝐸𝐶=25,84º𝐶 En contracorriente: ∆𝑇𝑒=55º𝐶 ∆𝑇𝑒=25º𝐶 𝐷𝑇𝐿𝑀𝐶𝐶=38,04º𝐶 Se ve como 𝐷𝑇𝐿𝑀𝐶𝐶>𝐷𝑇𝐿𝑀𝐸𝐶. Por lo tanto, el intercambiador en equicorriente necesitará de mayor área de transferencia para conseguir transferir el mismo calor. 4.4.1.3 Factor de corrección de la DTLM Para intercambiadores de calor de carcasa y tubo o de flujo cruzado la deducción analítica de una diferencia media de temperaturas resulta muy compleja. En los intercambiadores de carcasa y tubo se da un patrón de flujo mixto, mezcla de flujo equicorriente y contracorriente. Es por esto que no es posible usar la DTLM. En este tipo de intercambiadores el calor se calcula aplicando la siguiente expresión: 𝑄=𝑈·𝐴·(𝐹·𝐷𝑇𝐿𝑀𝐶𝐶 𝐸𝑄) Donde F es el factor corrector de la DTLM, cuyo valor es siempre menor que 1, y DTLMCC EQ es la DTLM Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP del intercambiador en contracorriente equivalente. Esto es, un intercambiador con flujo puramente en contracorriente con los mismos caudales y temperaturas de entrada y salida que los flujos del intercambiador real. El factor F se puede obtener analíticamente o mediante el uso de gráficas calculando previamente los parámetros P y R: 𝑃= ∆𝑇𝑡𝑢𝑏𝑜𝑠 ∆𝑇𝑚á𝑥𝑖𝑚𝑜 𝑅= (𝑚󰇗·𝐶𝑃)𝑡𝑢𝑏𝑜𝑠 (𝑚󰇗·𝐶𝑃)𝑐𝑎𝑟𝑐𝑎𝑠𝑎=∆𝑇𝑐𝑎𝑟𝑐𝑎𝑠𝑎 ∆𝑇𝑡𝑢𝑏𝑜𝑠 En el ANEXO I se aportan las expresiones analíticas y las gráficas más habituales para el cálculo del factor corrector F. 4.4.1.4 Cruzamiento El cruzamiento se produce cuando que la temperatura de salida del fluido frío en un intercambiador de carcasa y tubos es superior a la salida del fluido caliente (atendiendo a la nomenclatura seguida en este proyecto: 𝑡2>𝑇2. El cruzamiento es un fenómeno indeseable ya que disminuye la transferencia en el intercambiador. Para evitar el cruzamiento se debe aumentar el área de transferencia, bien aumentando la superficie de transferencia del intercambiador o bien incementando el número de carcasas. Figura 4-15 Influencia del número de carcasass en el cruzamiento La Figura 4-16 muestra como afecta el número de carcasas al factor de corrección F y al cruzamiento. De esta gráfica se deduce que en el diseño se deberá grantizar que el factor F escogido es mayor que un Fmin o, en caso de no tener datos de un Fmin garantizar que 𝐹>0,8. Intercambiadores de Calor 21 21 Figura 4-16 Variación de F respecto del cruzamiento y el número de carcasas. 4.4.2 Método Efectividad-NTU (ε-NTU) El método F-DTLM requiere conocer 3 temperaturas para poder aplicarlo de forma sencilla. Es común conocer las temperaturas de entradas de ambas corrientes. Sin embargo, no siempre se conoce a priori la temperatura de salida de alguna de las corrientes. En estos casos, el problema se convierte en un tedioso proceso iterativo de difícil solución. Para evitar tener que aplicar dicho proceso iterativo aparece el métido ε-NTU. Este método permite caracterizar cualquier intercambiador de calor usando tres parámetros adimensionales. Estos tres parámetros son la relación de capacidades caloríficas 𝐶∗, la efectividad ε y el Número de Unidades de Transferencia (NTU). 𝐶∗=𝐶𝑚𝑖𝑛 𝐶𝑚á𝑥 𝜀= 𝑄󰇗 𝑄󰇗𝑚á𝑥 𝑁𝑇𝑈=𝑈𝐴 𝐶𝑚𝑖𝑛 El número de unidades de transferencia es un indicador del tamaño del intercambiador. Concretamente, hace referencia al número de veces que el intercambiador contiene a la unidad de transferencia. 𝐶𝑚𝑖𝑛 y 𝐶𝑚á𝑥 hacen referencia a las capacidades caloríficas mínima y máxima de entre el fluido caliente y el fluido frío. 𝑄󰇗𝑚𝑎𝑥 hace referencia al calor máximo transferible, siendo éste el calor que se transferiría si el fluido de 𝐶𝑚𝑖𝑛 experimentara el máximo salto de temperaturas posible (𝑇1−𝑡1). Los valores para 𝑄󰇗 y 𝑄󰇗𝑚𝑎𝑥 son los siguientes: 𝑄󰇗=𝐶ℎ·(𝑇1−𝑇2)=𝐶𝐶·(𝑡2−𝑡1) 𝑄󰇗𝑚á𝑥=𝐶𝑚𝑖𝑛·(𝑇1−𝑡1) Al igual que el factor de corrección de la DTLM, la efectividad se puede hallar de forma analítica o a través de gráficas, con lo que 𝜀=𝑓(𝑁𝑇𝑈,𝑅). Kays y London en 1984 [14] hicieron un amplio análisis al respecto obteniendo varias expresiones analíticas y resultados en forma de gráficos para obtener la efectividad. Algunas de estas expresiones y gráficas, las más comunes, se encuentran en el ANEXO II. Turbinas de Gas en Cogeneración 23 5 TURBINAS DE GAS EN COGENERACIÓN n las industrias, es habitual el uso de turbinas de gas para producir toda o parte de la demanda eléctrica demandada por la fábrica o para generar la potencia demandada por compresores o bombas. En muchos casos, las turbinas de gas son usadas en industria para cogenerar, es decir, para producir de forma simultánea calor y trabajo. Esto se debe a la alta temperatura de los gases de escape de la turbina de gas, que pueden rondar fácilmente los 600ºC y puede ser utilizada para fines térmicos (vapor de alta presión, uso en secaderos, hornos, …). En general, las turbinas usadas en industria suelen ser de más de 4 MWe. Las turbinas de gas presentan una gran cantidad de ventajas para cogenerar: • Presentan un arranque rápido. • Ofrecen una alta fiabilidad. • Tienen una baja conversión de calor en electricidad (rendimientos entre 30% y 40%), con lo que hay mucha energía en los gases de escape. • Poseen una gran cantidad de oxígeno en el escape, lo que permite que se puede quemar una cantidad adicional de combustible en caso de que se requiera más energía para la producción de calor. Las turbinas de gas se pueden clasificar en según varios criterios. Uno de ellos es distinguiendo entre turbinas de gas aisladas (en ciclo abierto, generalmente, o en ciclo cerrado) y turbinas de gas integradas. Las primeras son usadas exclusivamente para la producción de potencia de forma aislada. Las segundas son usadas para cogeneración, propulsión marítima, propulsión aérea, ciclos combinados e integración con procesos industriales y procesos químicos. Por otro lado, también se puede diferneciar entre turbinas de gas industriales, que son aquellas que desde un primer momento han sido diseñadas para la producción de potencia eléctrica, y turbinas de gas aeroderivadas provienen del diseño de turbinas de gas de aviación pero han sido modificadas para la producción de potencia eléctrica Figura 5-1 Turbina de Gas GE LM2500 E Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP 24 En este capítulo se analizarán las turbinas de gas de ciclo simple y de inyección de vapor y su uso en cogeneración, concluyendo en el ciclo combinado. No serán objeto de estudio en este proyecto las turbinas de gas de ciclos compuestos ni las de ciclo regenrativo. La base de este capítulo serán los Apuntes de la asignatura Turbinas de Gas y Ciclos Combinados impartida por el catedrático David Tomás Sánchez Martínez [8]. 5.1 Ciclo Simple 5.1.1 Proceso real en una turbina de gas El fluido de trabajo sigue el siguiente proceso en el interior de la turbina de gas, trabajndo según un ciclo simpe abierto no regenerativo: • Compresión: se eleva la presión del fluido de trabajo. Suele incluir el proceso de admisión. • Cambustión: se eleva la temperatura del fluido de trabajo. • Expansión: se convierte la energía térmica adquirida en los dos procesos anteriores en trabajo útil mediante la expansión del fluido de trabajo. En ciclos compuestos o regenrativos aparecerán procesos adicionales. En la Figura 5-2 se muestran los puntos que definen el cilo de trabajo: La línea 4-1 no existe, es una línea virtual la cual indica meramente que las presiones del punto 1 y del punto 4 son la misma. En la Figura 5-3 se indican los flujos de calor y trabajo entre el motor y el ambiente. WC es el trabajo consumido en el proceso de combustión, QCC es el calor aportado en la cámara de combustión y WT es el trabajo generado en el proceso de expansión. Figura 5-2 Diagrama h-s de un ciclo simple de turbina de gas 00 Estado de remanso del medio ambiente. 1 Entrada al compresor. 01 Estado de remanso en la admisión del compresor. 2 Salida del compresor. 02 Estado de remanso a la salida del compresor. 3 Salida de la cámara de combustión 03 Estado de remanso a la salida de la cámara de combustión y entrada a la turbina. 4 Salida de la turbina. 04 Estado de remanso a la salida de la turbina. 04’ Estado de remanso del fluido en el escape. Turbinas de Gas en Cogeneración 25 25 5.1.2 Componentes de una turbina de gas 5.1.2.1 Compresor Su objetivo es comprimir el aire desde las condiciones ambiente hasta la presión de la cámara de combustión. Los compresores pueden ser centrífugos o axiales. Los primeros son usados para comprimir caudales relativamente bajos con una elevada relación de compresión. Los segundos son usados a la hora de trabajar con grandes caudales y menores relaciones de compresión. Las relaciones de compresión suelen variar entre 10:1 y 20:1 para las turbinas de gas industriales, y entre 20:1 y 45:1 para las aeroderivadas. El trabajo real del compresor es menor que el trabajo que se realizaría en una compresión isentrópica. Se define el rendimiento isentrópico del compresor como: 𝜂𝐶=ℎ02𝑠−ℎ01 ℎ02−ℎ01 Los rendimientos de los compresores varán entre un 70% y un 85 % para compresores centrífugos y entre un 85% y un 90% para compresores axiales. 5.1.2.2 Cámara de combustión Su objetivo es elevar la temperatura del flluido de trabajo. Idealmente, este proceso se produce a presión constante, sin embargo, existen pérdidas de carga a la largo de la cámara de combustión. Las presaciones del motor mejoran a medida que aumenta la temperatura de salida de la cámara de combustión (temperatura de entrada a la turbina) y cuanto menor sea la pérdida de carga dentro de ésta. La temperatura está limitada por la temperatura máxima que es capaz de soportar la turbina (la cual se puede aumentar usando álabes refrigerados), las emisiones de NOX y el tipo de aplicación a la que esté destinada. Figura 5-3 Diagrama h-s de un ciclo simple de turbina de gas Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP 32 En la salida de la turbina de gas aún queda entre un 50% y un 70% del oxígeno introducido, con lo que es posible realizar una postcombustión a la entrada de la caldera de recuperación logrando dos objetivos: • Desacoplar la producción de energía térmica de la producción de energía eléctrica. • Mejorar los parámetros de vapor vivo del ciclo de vapor. Con la postcombustión se puede llegar a alcanzar temperaturas de gases del orden de 800ºC. La postcombustión se usa en cogeneración y para reconversión de plantas convencionales en ciclos combinados. 5.2.2.1.1 Balance de energía HRSG En una caldera de recuperación son conocidas la presión y temperaturas del vapor a la entrada y salida de cada componente de la calder (criterios de diseño o requerimientos de potencia), la temperatura de los gases a la entrada de la caldera, el pinch point y el aproach. Con estos datos, es sencillo calcular el caudal másico de vapor producido y la temperatura de los gases a la salida mediante un balance de energía en el evaporador y el sobrecalentador por un lado, y en el economizador por otro: 𝑚󰇗𝑣·(ℎ𝑣2−ℎ𝑤2)=𝑚󰇗𝑔·𝑐𝑃,𝑔·(𝑇𝑔1−𝑇𝑔3) 𝑚󰇗𝑣·(ℎ𝑤2−ℎ𝑤1)=𝑚󰇗𝑔·𝑐𝑃,𝑔·(𝑇𝑔3−𝑇𝑔4) Γ=𝑇𝑔3−𝑇𝑠 𝛼=𝑇𝑠−𝑇𝑤2 Los subíndices hacen referencia a los puntos de la Figura 5-11. hi representa la entalpía del punto i en función de su temperatura y la presión de vapor vivo. Figura 5-11 Diagrama de temperaturas de una caldera de recuperación Turbinas de Gas en Cogeneración 33 33 5.2.2.2 Turbina STIG La turbina STIG o turbina de gas con inyección de vapor consiste en inyectar el vapor producido en la caldera de recuperación en la turbina de gas como muestra la Figura 5-12. Figura 5-12 Esquema de una turbina STIG La inyección de vapor se puede usar para: • Reducir las emisiones de NOX. Las emisiones de NOX aumentan conforme aumenta la temperatura en la cámara de combustión. Si se inyecta agua saturada en la cámara de combustión, parte del calor aportado se empleará en evaporarla con lo que se alcanzarán menores temperaturas y, por consiguiente, disminuirán los NOX a la salida. Inyectar vapor tendría el mismo efecto. Si se inyecta agua es habitual inyectar menos de un 3% del caudal de aire de la turbina de gas y si se inyecta vapor es habitual inyectar menos de un 5% del caudal de aire de la turbina de gas. • Aumentar la potencia. Este aumento en la potencia se debe al aumento del caudal de gases y del calor específico medio entre los gases de la turbina y el vapor inyectado. En este caso el vapor se suele inyectar tras la cámara de combustión o en la mitad de la turbina. El vapor inyectado suele estar entre el 5% y el 15% del caudal de aire de la turbina de gas. Realizar una opción o la otra depende del dosado. Si el dosado se mantiene constante se obtiene una menor temperatura de entrada a la turbina, el rendimiento y la potencia empeoran, pero se forma menos NOX . Si el dosado se aumenta para mantener la temperatura de entrada a la turbina constante se consigue un aumento de potencia y de rendimiento. 5.2.2.2.1 Balance de energía Con la inyección de vapor el balance de energía en la cámara de combustión quedaría de la siguiente manera: 𝑚󰇗𝑎·ℎ02+𝜂𝐶𝐶·𝑚󰇗𝑓·𝑃𝐶𝐼+𝑚󰇗𝑓·ℎ𝑠𝑓+𝑚󰇗𝑣·ℎ𝑣,𝑇𝑣=(𝑚󰇗𝑎+𝑚󰇗𝑓)·ℎ03+𝑚󰇗𝑣·ℎ𝑣,𝑇03 𝜂𝐶𝐶=(𝑚󰇗𝑎+𝑚󰇗𝑓)·ℎ03+𝑚󰇗𝑣·ℎ𝑣,𝑇03−𝑚󰇗𝑎·ℎ02−𝑚󰇗𝑓·ℎ𝑠𝑓−𝑚󰇗𝑣·ℎ𝑣,𝑇𝑣 𝑚󰇗𝑓·𝑃𝐶𝐼 5.2.2.2.2 Prestaciones del ciclo Considerando que el rendimiento de la turbina y del compresor y el salto de temeraturas en la turbina no varían al inyectar vapor, y despreciando la potencia de las bombas auxiliares, se llega a que la potencia interna y el rendimiento térmico se pueden calcular como: 𝑊󰇗𝑖𝑛𝑡=𝑚󰇗𝑎·[(1+𝐹𝑓)·𝑐𝑃,𝑔·(𝑇03−𝑇04)+𝐹𝑣·(ℎ𝑣,𝑇03−ℎ𝑣,𝑇04)−𝑐𝑃,𝑎·(𝑇02−𝑇01)] Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP 34 𝜂𝑡=𝑊󰇗𝑖𝑛𝑡 𝑄󰇗𝑎𝑏𝑠 =(1+𝐹𝑓)·𝑐𝑃,𝑔·(𝑇03−𝑇04)+𝐹𝑣·(ℎ𝑣,𝑇03−ℎ𝑣,𝑇04)−𝑐𝑃,𝑎·(𝑇02−𝑇01) 𝜂𝐶𝐶·𝐹·𝑃𝐶𝐼 El rendimiento global se calcula como 𝜂𝐺=𝑊󰇗𝑖𝑛𝑡 𝑄󰇗𝑎𝑏𝑠 =[(1+𝐹𝑓)·𝑐𝑃,𝑔·(𝑇03−𝑇04)+𝐹𝑣·(ℎ𝑣,𝑇03−ℎ𝑣,𝑇04)−𝑐𝑃,𝑎·(𝑇02−𝑇01)]·𝜂𝑚𝑒𝑐 𝐹·𝑃𝐶𝐼 5.2.2.2.3 Limitaciones del caudal de vapor inyectado Pese a que el inyectar vapor aumenta la potencia de la turbina, existen una serie de limitaciones a la hora de inyectar vapor en una turbina de gas: • Al disminuir la temperatura aumenta la formación de CO. • Existe una potencia máxima asociada al límite mecánico de la máquina. • Hay que trabajar con la turbina bloqueada para evitar que un aumeto en el gasto suponga un aumento de presión. Este último punto tiene relación con el margen de bombeo. Al aumentar la relación de compresión disminuye el margen de bombeo. Este efecto está más acentuado en las turbinas industriales que en las aeroderivadas, ya que con un montaje en las que se puede variar el régimen de giro en el generador de gas para aumentar el margen de bombeo. 5.2.2.3 Ciclo Combinado El ciclo combinado consite en inyectar el vapor producido en la caldera de recuperación en una turbina de vapor. Para entender los motivos por los que se usa el ciclo combinado primero se debe analizar el Ciclo de Carnot. 5.2.2.3.1 Ciclo de Carnot El ciclo de Carnot es el ciclo termodinámico con el que se alcanzaría un mayor rendimiento entre dos reservorios calor a T1 y T2 (con T1 > T2). El ciclo de Carnot consta de cuatro procesos: • Compresión isentrópica (01-02) • Adición de calor a temperatura constante (02-03) • Expansión isentrópica (03-04) • Cesión de calor a temperatura constante (04-01) El rendimiento del ciclo de Carnot se calcula como: 𝜂𝐶𝑎𝑟𝑛𝑜𝑡=𝑊 𝑄1=𝑄1+𝑄2 𝑄1=(𝑇1−𝑇2)·(𝑠𝐵−𝑠𝐴) 𝑇1·(𝑠𝐵−𝑠𝐴)=1−𝑇2 𝑇1 Figura 5-13 Diagrama T-s ciclo de Carnot Turbinas de Gas en Cogeneración 35 35 En los procesos reales el aporte y la cesión de calor no se realizan a temperatura constante. Definiendo una temperatura media de aporte de calor 𝑇𝑎    y una temperatura media de cesión de calor 𝑇𝑐  se puede establecer un rendimiento del cilo de Carnot equivalente: 𝑇=𝑄12 𝑠2−𝑠1=∫𝑇·𝑑𝑠 2 1 𝑠2−𝑠1 𝜂𝐸𝑞,𝐶𝑎𝑟𝑛𝑜𝑡=1−𝑇𝑐  𝑇𝑎    Por lo tanto, interesa hallar un proceso con una alta temperatura media de aporte de calor y una baja temperatura media de cesión de calor. 5.2.2.3.2 Fundamento termodinámico del ciclo combinado En la práctica no existe un ciclo con una alta temperatura media de aporte de calor y una baja temperatura media de cesión de calor. El ciclo de Brayton (turbinas de gas) presenta una elevada temperatura de aporte de calor, pero su temperatura media de cesión de calor es también elevada. El ciclo de Rankine (ciclo de vapor) trabaja con temperaturas media de aporte de calor relativamente bajas, pero presentan una baja temperatra de cesión de calor. Combinando ambos ciclos de forma que la cesión de calor la turbina de gas sea el aporte de calor en el ciclo de vapor se pueden conseguir una temperatura media de aporte de calor elevada y una temperatura media de cesión de calor baja como muestra la Figura 5-14. Figura 5-14 Diagrama h-s de un ciclo combinado 5.2.2.3.3 Rendimiento del ciclo combinado [8] A continuación se pretende comparar el rendimiento del ciclo combinado con el de la turbina de gas y el del ciclo de vapor. Tomando los flujos de energía y la nomenclatura definidos en la Figura 5-6 se puede calcular el rendimiento del ciclo combinado como: 𝜂𝐶𝐶=𝑊𝐻+𝑊𝐿 𝑄𝐵=𝑄𝐵·[𝜂𝐻+𝜂𝐿·(1−𝜂𝐻)−𝜐𝑃·𝜂𝐿] 𝑄𝐵 Turbina de gas Turbina de vapor Ciclo combinado 𝑇𝑎    (ºC) 800 - 900 350 - 450 800 - 900 𝑇𝑐  (ºC) 300 - 500 20 - 80 20 - 80 ηEq,C (%) 45 - 50 45 – 55 65 - 80 Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP 36 Donde 𝜂𝐶𝐶, 𝜂𝐻 y 𝜂𝐿 son los rendimientos del ciclo combinado, del ciclo de cabeza (la turbina de gas) y del ciclo de cola (ciclo de vapor) respectivamente. 𝜐𝑃 es el porcentaje de pérdidas respecto al calor aportado 𝑄𝐵. De esta forma se llega a que: 𝜂𝐶𝐶=𝜂𝐻+𝜂𝐿·(1−𝜂𝐻)−𝜐𝑃·𝜂𝐿= 𝜂𝐻+𝜂𝐿−𝜂𝐻·𝜂𝐿−𝜐𝑃·𝜂𝐿 Sea 𝜂𝐵 el rendimiento del intercambio de calor entre ambos ciclos: 𝜂𝐵=𝑄𝐿 𝑄𝐵=𝑄𝐻𝐶−𝑄𝑃 𝑄𝐵=1−𝑄𝑃/𝑄𝐵 𝑄𝐻𝐶/𝑄𝐵=1− 𝜐𝑃 1−𝜂𝐻 Despejando 𝜐𝑃 y con 𝜂𝑂𝐿=𝜂𝐵·𝜂𝐿 el rendimiento del ciclo combinado queda como: 𝜂𝐶𝐶=𝜂𝐻+𝜂𝑂𝐿−𝜂𝐻·𝜂𝑂𝐿 𝜂𝐶𝐶=𝜂𝐻+𝜂𝑂𝐿·(1−𝜂𝐻)>𝜂𝐻 𝜂𝐶𝐶=𝜂𝑂𝐿+𝜂𝐻·(1−𝜂𝑂𝐿)>𝜂𝑂𝐿 Con lo que queda demostrado que el rendimiento del ciclo combinado es mayor que el rendimiento de ambos ciclos por separado. Visual Basic for Aplications (VBA) 37 6 VISUAL BASIC FOR APLICATIONS (VBA) 6.1 Introducción a VBA Al igual que en la aplicación REDVAP, el modelo ha sido realizado íntegramente en el lenguaje de programación Visual Basic for Applications (VBA). Microsoft VBA es el lenguaje de programación orientada a objetos de Microsoft Office. El programador VBA está incluido en las distintas aplicaciones de la suite Office (Word, Excel, Power Point, Acces, …) y permite crear programas en cada uno de ellos. Con este lenguaje de programación se puede modelar prácticamente cualquier cosa, siempre que se defina adecuadamente. Los programas VBA son productos finales, es decir, no se pueden crear compilaciones por separado para poder crear ejecutables destinados a la distribución a clientes. Para realizar una distribución del programa es necesario compartir el archivo en el que se ha realizado el programa. En el lenguaje de objetos, un objeto es un contenedor polivalente que puede albergar distintos valores o propiedades. VBA permite la automatización de procesos repetitivos, razonamientos lógicos y crear aplicaciones como las realizadas en este proyecto. VBA es capaz de repetir el proceso que se le haya introducido de forma rápida y eficaz. A continuación, se detallan los modelos de los intercambiadores y cogeneración con turbina de gas y modelos auxiliares. Para algunos modelos hay varias posibles variables de salida. La selección de la variable de salida se hará mediante el parámetro de entrada var_out en aquellos modelos que tengan varias variables de salida. En el ANEXO III se incluyen los códigos con los que se han programado dichos modelos. Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP 38 6.2 Modelos 6.2.1 Intercambiadores de Calor 6.2.1.1 Intercambiador Agua/Vapor basado en las condiciones de los fluidos Formato de la función HX_A(M_c_in, p_c_in, C_DP, T_c_in, T_c_out, Q_c_in, Q_c_out, P_h_in, H_DP, T_h_in, T_h_out, Q_h_in, Q_h_out, var_out) Figura 6-1 Intercambiador Agua/Vapor basado en las condiciones de los fluidos Descripción Esta función calcula el calor intercambiado y el caudal másico del fluido caliente en un intercambiador de calor agua/vapor. También calcula las entalpías de entrada y salida de cada una de las corrientes. Parámetros de entrada M_c_in [tn / h], Caudal de la corriente fría P_c_in [bar], Presión de entrada de la corriente fria C_DP [bar], Caida de presión de la corriente fría. T_c_in [ºC], Temperatura de entrada de la corriente fría T_c_out [ºC], Temperatura de salida la corriente fría Q_c_in, [0-1] 1 vapor 0 liquido -2 vapor recalentado - 3 líquido subenfriado, Calidad de la corriente fría a la entrada Q_c_out, [0-1] 1 vapor 0 liquido -2 vapor recalentado - 3 líquido subenfriado, Calidad de la corriente fría a la salida P_h_in [bar] Presión de entrada de la corriente caliente H_DP [bar], caída de presión de la corriente caliente T_h_in [ºC], Temperatura de entrada de la corriente caliente T_h_out [ºC], Temperatura de salida de la corriente caliente Q_h_in, [0-1] 1 vapor 0 liquido -2 vapor recalentado - 3 líquido subenfriado, Calidad de la corriente fría a Visual Basic for Aplications (VBA) 39 39 la entrada Q_h_out, [0-1] 1 vapor 0 liquido -2 vapor recalentado - 3 líquido subenfriado, Calidad de la corriente fría a la salida Var_out Variable de salida Parámetros de salida H_Cout [kJ/kg], Entalpía de salida del fluido frio H_Cin [kJ/kg], Entalpía de entrada del fluido frio H_Hout [kJ/kg], Entalpía de salida del fluido caliente H_Hin [kJ/kg], Entalpía de entrada del fluido caliente M_h_out [tn/h], Masa de la corriente caliente D_HX [kW] Calor intercambiado 6.2.1.2 Intercambiador de calor Agua/Vapor conocido el calor intercambiado Formato de la función HX_B(M_c_in, p_c_in, C_DP, T_c_in, D_HX, Q_c_in, Q_c_out, P_h_in, H_DP, T_h_in, T_h_out, Q_h_in, Q_h_out, var_out) Figura 6-2 Intercambiador de calor Agua/Vapor conocido el calo Descripción Esta función calcula la temperatura de salida de la corriente fría y el caudal másico de la corriente caliente para un intercambiador de Agua/Vapor. También calcula las entalpías de entrada y salida de cada una de las corrientes. Parámetros de entrada M_c_in [tn / h], Caudal de la corriente fría P_c_in [bar], Presión de entrada de la corriente fria C_DP [bar], Caida de presión de la corriente fría. Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP 40 T_c_in [ºC], Temperatura de entrada de la corriente fría D_HX [kW] Calor intercambiado Q_c_in, [0-1] 1 vapor 0 liquido -2 vapor recalentado - 3 líquido subenfriado, Calidad de la corriente fría a la entrada Q_c_out, [0-1] 1 vapor 0 liquido -2 vapor recalentado - 3 líquido subenfriado, Calidad de la corriente fría a la salida P_h_in [bar] Presión de entrada de la corriente caliente H_DP [bar], caída de presión de la corriente caliente T_h_in [ºC], Temperatura de entrada de la corriente caliente T_h_out [ºC], Temperatura de salida de la corriente caliente Q_h_in, [0-1] 1 vapor 0 liquido -2 vapor recalentado - 3 líquido subenfriado, Calidad de la corriente fría a la entrada Q_h_out, [0-1] 1 vapor 0 liquido -2 vapor recalentado - 3 líquido subenfriado, Calidad de la corriente fría a la salida Var_out Variable de salida Parámetros de salida H_Cout [kJ/kg], Entalpía de salida del fluido frio H_Cin [kJ/kg], Entalpía de entrada del fluido frio H_Hout [kJ/kg], Entalpía de salida del fluido caliente H_Hin [kJ/kg], Entalpía de entrada del fluido caliente M_h_out [tn/h], Masa de la corriente caliente T_c_out [ºC], Temperatura de salida la corriente fría 6.2.1.3 Intercambiador de calor conocido UA Formato de la función HX_UA_Exchanger(U, A, T_h_in, T_h_out, T_c_in, T_c_out, NShells, var_out) Figura 6-3 Intercambiador de calor conocido UA Visual Basic for Aplications (VBA) 41 41 Descripción Esta función simula el comportamiento de un intercambiador (F y DTLM del intercambiador) conocidas las temperaturas a la entrada y a la salida de cada corriente, el coeficiente de transferencia, el área del intercambiador y el número de carcasas. Parámetros de entrada U [W/m2K], Coeficiente global de transferencia del intercambiador A [m2], Área de transferencia del intercambiador T_c_in [ºC], Temperatura de entrada de la corriente fría T_c_out [ºC], Temperatura de salida la corriente fría T_h_in [ºC], Temperatura de entrada de la corriente caliente T_h_out [ºC], Temperatura de salida de la corriente caliente NShells, Número de pasos por carcasas Var_out Variable de salida Parámetros de salida D_HX [kW] Calor intercambiado DTLM [ºC], Diferencia de temperaturas logarítmica media Ft, Factor de corrección de la DTLM 6.2.1.4 Economizador (intercambiador gas de proceso/agua) Formato de la función HX_BFWHeater(mw, P_c, T_c_in, MH, T_h_in, U, A, NShells, Hot_CpCoeff1, Hot_CpCoeff2, Hot_CpCoeff3, Hot_CpCoeff4, Hot_CpCoeff5, var_out) Figura 6-4 Economizador Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP 48 La turbina de gas puede ser con o sin inyección de vapor. El modelo tiene tres modos de operación: 0. Calcula el caudal base de vapor, es decir, el caudal que se produciría si no hubiera postcombustión en la caldera de recuperación 1. Calcula el gasto de combustible para satisfacer la demanda de vapor, suma del gasto base quemado en la turbina de gas y el gasto de postcombustión. 2. Calcula el máximo caudal de vapor que se puede producir si se quema combustible en la caldera de recuperación hasta llegar al mínimo porcentaje de oxígeno permitido en la caldera. Para las opciones 1 y 2 se calculará el gasto de combustible en la caldera de recuperación. El modelo también calcula la concentración de oxígeno, dióxido de carbono y dióxido de azufre en la salida de la turbina de gas en el Stack. Parámetros de entrada GTPow [kW], Potencia de la turbina de gas GTEff [0-1], Eficiencia de la turbina de gas GTExhT [ºC], Temperatura desalida de la turbina de gas ProcStmF [tn/h], Caudal de vapor a producir por el HRSG BFWT [ºC], Temperatura de entrada del agua a el HRSG StmP [bar], Presión de vapor vivo StmT [ºC], Temperatura de vapor vivo HRSG_Opt, Opción de funcionamiento. 0 = carga base de vapor, 1 = vapor demandado, 2 = máximo vapor GTAirT [ºC], Temperatura del aire a la entrada de la turbina de gas GTFuel, Nombre del combustible de la turbina de gas: Fueloil_1, Fueloil_2, Gasoleo_C, GN, Propano, H2 GTFuelT [ºC], Temperatura de entrada del combustible de la turbina de gas SupFuel, Nombre del combustible de postcombustión: Fueloil_1, Fueloil_2, Gasoleo_C, GN, Propano, H2 SupFuelT [ºC], Temperatura de entrada del combustible de postcombustión HRSG_MinDT [ºC], Pinch Point del HRSG BDRatio [0-1], Ratio de purga MinExsO2 [0-1], Exceso de oxígeno necesario en HRSG si la turbina de gas está parada MinStckO2 0-1], Oxígeno mínimo en el stack (opción 2) MinStckT [ºC], Mínima temperatura de stack [ºC] (opción 2) InjStmF [0-1], Relación vapor inyectado/aire en la turbina de gas InjStmP [bar], Presión del vapor inyectado en la turbina de gas InjStmT [ºC], Temperatura del vapor inyectado en la turbina de gas Var_out Variable de salida Parámetros de salida M_Tbf [tn/h], Gasto másico de combustible en la turbina de gas M_Supf [tn/h], Gasto másico de combustible en la postcombustión Visual Basic for Aplications (VBA) 49 49 M_Sbs [tn/h], Caudal de vapor de base M_Stot [tn/h], Caudal de vapor demandado M_SMax [tn/h], Caudal de vapor máximo E_CHP [0-1], Rendimiento del ciclo sin tener en cuenta la purga E_Fi [0-1], Rendimiento del ciclo O2_Tb [0-1], Porcentaje de oxígeno presente en el escape de la turbina de gas O2Stk [0-1], Porcentaje de oxígeno presente en el TStk [ºC], Temperatura en el Stack Mbd [tn/h], Caudal másico de la purga Tbd [ºC], Temperatura de la purga Hbd [kJ/kg], Entalpía de la purga H_Stm [kJ/kg], Entalpía de vapor vivo MCO2T [tn/h], Caudal de CO2 a la salida de la turbina de gas CCO2T [0-1], Concentración de CO2 a la salida de la turbina de gas MSO2T [tn/h], Caudal de SO2 a la salida de la turbina de gas CSO2T [0-1], Concentración de SO2 a la salida de la turbina de gas MCO2S [tn/h], Caudal de CO2 en el Stack CCO2S [0-1], Concentración de CO2 en el Stack MSO2S [tn/h], Caudal de SO2 en el Stack CSO2S [0-1], Concentración de SO2 en el Stack MAir [tn/h], Gasto másico de aire en la turbina de gas MEx [tn/h], Suma del gasto másico de aire y el gasto másico de combustible de la turbina de gas CpEx [kJ/kgK], Calor específico en el escape de la turbina de gas Tfg_S [ºC], temperatura del gas a la entrada del sobrecalentador Tfg_G [ºC], temperatura del gas a la entrada del generador de vapor Tfg_E [ºC], temperatura del gas a la entrada del economizador 6.2.3 Auxiliares 6.2.3.1 Calor específico Formato de la función Calc_Cp(Temp, Hot_CpCoeff1, Hot_CpCoeff2, Hot_CpCoeff3, Hot_CpCoeff4, Hot_CpCoeff5) Descripción Esta función calcula el calor específico de una corriente a una temperatura dada usando una función polinómica de 4º orden 𝐶𝑝=𝑎+𝑏·𝑇+𝑐·𝑇2+𝑑·𝑇3+𝑒·𝑇4 Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP 50 Parámetros de entrada Temp [ºC], Temperatura de la corriente Hot_CpCoeff1, Termino independiente para el calculo del Cp de la corriente caliente " Hot_CpCoeff2, Constante de primer orden Hot_CpCoeff3, Constante de segundo orden Hot_CpCoeff4, Constante de tercer orden Hot_CpCoeff5, Constante de cuarto orden Parámetros de salida Cp [kJ/kgK], Calor específico de la corriente a la temperatura T 6.2.3.2 Calor específico medio Formato de la función Calc_CpMean(Temp1, Temp2, Hot_CpCoeff1, Hot_CpCoeff2, Hot_CpCoeff3, Hot_CpCoeff4, Hot_CpCoeff5) Descripción Esta función calcula el calor específico medio entre dos corrientes a distinta temperatura usando una función polinómica de 4º orden 𝐶𝑝=𝑎+𝑏·𝑇+𝑐·𝑇2+𝑑·𝑇3+𝑒·𝑇4 Parámetros de entrada Temp1 [ºC], Temperatura de la corriente 1 Temp2 [ºC], Temperatura de la corriente 2 Hot_CpCoeff1, Termino independiente para el calculo del Cp de la corriente caliente " Hot_CpCoeff2, Constante de primer orden Hot_CpCoeff3, Constante de segundo orden Hot_CpCoeff4, Constante de tercer orden Hot_CpCoeff5, Constante de cuarto orden Parámetros de salida Cpmedio [kJ/kgK], Calor específico medio de las dos corrientes 6.2.3.1 Definición del combustible Formato de la función FuelDef (FuelName, var_out) Descripción Esta función calcula la composición y el poder calorífico inferior de los siguientes combustibles: fueloil 1, fueloil 2, gasóleo C, gas natural, propano e hidrógeno. Visual Basic for Aplications (VBA) 51 51 Parámetros de entrada FuelName, Nombre del combustible. Fueloil_1, Fueloil_2, Gasoleo_C, GN, Propano, H2. Var_out Variable de salida Parámetros de salida C [kg/kg de combustible], Porcentaje en peso de carbono S [kg/kg de combustible], Porcentaje en peso de azufre H [kg/kg de combustible], Porcentaje en peso de hidrógeno PCI [kJ/kg], Poder calorífico inferior Anexo I: Cálculo del Factor F I ANEXO I: CÁLCULO DEL FACTOR F El factor corrector de la DTLM, F, se puede calcular de forma analítica o a través de gráficas conocidos los parámetros P y R. Para intercambiadores de calor de carcasa y tubo: 𝑃= ∆𝑇𝑡𝑢𝑏𝑜𝑠 ∆𝑇𝑚á𝑥𝑖𝑚𝑜 𝑅= (𝑚󰇗·𝐶𝑃)𝑡𝑢𝑏𝑜𝑠 (𝑚󰇗·𝐶𝑃)𝑐𝑎𝑟𝑐𝑎𝑠𝑎=∆𝑇𝑐𝑎𝑟𝑐𝑎𝑠𝑎 ∆𝑇𝑡𝑢𝑏𝑜𝑠 Para intercambiadores de calor de flujo cruzado: 𝑃1=∆𝑇1 ∆𝑇𝑚á𝑥𝑖𝑚𝑜 𝑅1=(𝑚󰇗·𝐶𝑃)1 (𝑚󰇗·𝐶𝑃)2=∆𝑇2 ∆𝑇1 𝑃2=∆𝑇2 ∆𝑇𝑚á𝑥𝑖𝑚𝑜 𝑅2=(𝑚󰇗·𝐶𝑃)2 (𝑚󰇗·𝐶𝑃)1=∆𝑇1 ∆𝑇2 Donde 1 y 2 hacen referencia a cada una de las corrientes habiendo una pareja P-R para cada una de las corrientes. Las expresiones analíticas de F para los intercambiadores más comunes son: Intercambiador en equicorriente Intercambiador en contracorriente 𝐹=1 𝐹=1 Intercambiador de flujo cruzado (paso único) Fluido 1 sin mezclar, fluido 2 mezclado 𝐹= 𝑙𝑛[(1−𝑅1·𝑃1)/(1−𝑃1)] (𝑅1−1)·ln [1+(1 𝑅1)·𝑙𝑛(1−𝑅1·𝑃1)] =𝑙𝑛[(1−𝑅2·𝑃2)/(1−𝑃2)] (1−1 𝑅2)·ln [1+𝑅2·𝑙𝑛(1−𝑃2)] Intercambiador de calor de carcasa y tubos 𝐹= 𝐷·𝑙𝑛[(1−𝑅·𝑃)/(1−𝑃)] (1−𝑅)·𝑙𝑛2−𝑃·(1+𝑅−𝐷) 2−𝑃·(1+𝑅+𝐷) Con 𝐷=(1+𝑅2)1/2 Intercambiadores de calor en los que 𝑅=0 𝑜 ∞ 𝐹=1 Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP II A continuación, se añaden gráficas que relacionan F con los parámetros P y R para los equipos más comunes: Para intercambiadores de calor de carcasa y tubos: Para intercambiadores de calor de flujo cruzado: Anexo II: Cálculo de la Efectividad III ANEXO II: CÁLCULO DE LA EFECTIVIDAD La efectividad ε se puede calcular de usando expresiones analíticas o a través de gráficas conocidos los parámetros 𝐶∗=𝐶𝑚𝑖𝑛 𝐶𝑚á𝑥 y 𝑁𝑇𝑈=𝑈𝐴 𝐶𝑚𝑖𝑛. Las expresiones análiticas para los intercambiadores más comunes son: Intercambiador en equicorriente 𝜀=1 − exp [−𝑁𝑇𝑈·(1+𝐶∗)] 1+𝐶∗ Intercambiador en contracorriente 𝜀= 1 − exp [−𝑁𝑇𝑈·(1−𝐶∗)] 1−𝐶∗· exp [−𝑁𝑇𝑈·(1−𝐶∗)] Intercambiador de flujo cruzado (paso único) Cmin sin mezclar Cmax sin mezclar 𝜀=1−𝑒𝑥𝑝[1 𝐶∗·𝑁𝑇𝑈0,22·{𝑒𝑥𝑝[−𝐶∗·𝑁𝑇𝑈0,78]−1}] Intercambiador de flujo cruzado (paso único) Cmin sin mezclar Cmax mezclado 𝜀=1 𝐶∗·(1−exp{−𝐶∗·[1−exp(−𝑁𝑇𝑈)]}) Intercambiador de flujo cruzado (paso único) Cmin mezclado Cmax sin mezclar 𝜀=1−𝑒𝑥𝑝(−1 𝐶∗· {1−exp [−𝐶∗·𝑁𝑇𝑈]}) Intercambiador de carcasa y tubos (paso único) 𝜀1=2·{1+𝐶∗+(1+𝐶∗2)12 ·1 + exp [−𝑁𝑇𝑈 · (1 +𝐶∗2)12] 1 − exp [−𝑁𝑇𝑈 · (1 +𝐶∗2)12]} Intercambiador de carcasa y tubos (n pasos por carcasa) 𝜀=[(1−𝜀1·𝐶∗ 1−𝜀1)𝑛−1][(1−𝜀1·𝐶∗ 1−𝜀1)𝑛−𝐶∗]⁄ Intercambiadores en contracorriente 𝐶∗=1 (Gas-Gas 𝐶𝐻≈𝐶𝐶) 𝜀= 𝑁𝑇𝑈 1+𝑁𝑇𝑈 Intercambiadores con 𝐶∗=0 (Cambio de fase) 𝜀=1 − exp (−𝑁𝑇𝑈) Cualquier tipología Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP IV La eficiencia se puede obtener también mediante gráficas. En el estudio realizado por Kays y London [14] se aportan gráficas para hallar la efectividad para diversos tipos de intercambiadores. A continuación, se exponen las gráficas para calcular la efectividad para intercambiadores de flujo cruzado, en equicorriente y contracorriente y de carcasa y tubos para distintos valores de 𝐶∗. Anexo III: Códigos V ANEXO III: CÓDIGOS • Intercambiador Agua/Vapor basado en las condiciones de los fluidos Option Explicit 'Definicion_de_compresores Dim var_out As String Dim M_c_in, p_c_in, C_DP, T_c_in, T_c_out, Q_c_in, Q_c_out, P_h_in, H_DP, T_h_in, T_h_out, Q_h_in, Q_h_out, P_c_out, P_h_out, H_Cout, H_Hout, H_Hin, H_Cin, _ D_HX, M_h_out As Double Function HX_A(M_c_in, p_c_in, C_DP, T_c_in, T_c_out, Q_c_in, Q_c_out, P_h_in, H_DP, T_h_in, T_h_out, Q_h_in, Q_h_out, var_out) 'Entalpías' 'Salidas H_Cout = entalpia(T_c_out, P_c_out, Q_c_out) H_Hout = entalpia(T_h_out, P_h_out, Q_h_out) 'Entradas H_Cin = entalpia(T_c_in, p_c_in, Q_c_in) H_Hin = entalpia(T_h_in, P_h_in, Q_h_in) 'Intercambiador D_HX = M_c_in * (H_Cout - H_Cin) * (1 / 3600) * 1000 '[kW]' M_h_out = (D_HX / (H_Hin - H_Hout)) * 3.6 '[tn/h]' Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XII End Function • Generador de vapor (intercambiador gas de proceso/agua-vapor) Option Explicit Dim var_out As String Dim P, T_c_in, M_w, T_h_in, M_H, U, A, NShells, Hot_CpCoeff1, Hot_CpCoeff2, Hot_CpCoeff3, Hot_CpCoeff4, Hot_CpCoeff5, Cp_h_out, Cp_h_outaux, Cp_h_in, Cp_h_mean, NTU, T_c_out, Q, T_h_out, THout, THin, THoutaux, D_HX, MinApp, LMTD, Cmin, eff, hcin, hcout As Double Function HX_SteamGenerator(P, T_c_in, M_H, T_h_in, U, A, Hot_CpCoeff1, Hot_CpCoeff2, Hot_CpCoeff3, Hot_CpCoeff4, Hot_CpCoeff5, var_out) T_c_out = STPSAT(P, 1, "T", 0) THoutaux = T_c_out + 273.15 THin = T_h_in + 273.15 Cp_h_outaux = Calc_Cp(THoutaux, Hot_CpCoeff1, Hot_CpCoeff2, Hot_CpCoeff3, Hot_CpCoeff4, Hot_CpCoeff5) Cp_h_in = Calc_Cp(THin, Hot_CpCoeff1, Hot_CpCoeff2, Hot_CpCoeff3, Hot_CpCoeff4, Hot_CpCoeff5) Cp_h_mean = Calc_CpMean(THin, THoutaux, Hot_CpCoeff1, Hot_CpCoeff2, Hot_CpCoeff3, Hot_CpCoeff4, Hot_CpCoeff5) Cmin = M_H * Cp_h_mean * (1000 / 3.6) NTU = U * A / Cmin eff = 1 - 2.718281828 ^ (-NTU) T_h_out = T_h_in - eff * (T_h_in - T_c_in) THout = T_h_out + 273.15 Cp_h_out = Calc_Cp(THout, Hot_CpCoeff1, Hot_CpCoeff2, Hot_CpCoeff3, Hot_CpCoeff4, Hot_CpCoeff5) D_HX = M_H * (Cp_h_in * THin - Cp_h_out * THout) / 3.6 hcin = sttp(T_c_in, P, "H", 0) hcout = STPSAT(P, 1, "H", 0) M_w = 3.6 * D_HX / (hcout - hcin) LMTD = HX_LMTD(T_h_in, T_h_out, T_c_in, T_c_out) MinApp = T_h_out - T_c_out If var_out = "T_c_out" Then HX_SteamGenerator = T_c_out End If Anexo III: Códigos XIII XIII If var_out = "T_h_out" Then HX_SteamGenerator = T_h_out End If If var_out = "LMTD" Then HX_SteamGenerator = LMTD End If If var_out = "M_w" Then HX_SteamGenerator = M_w End If If var_out = "D_HX" Then HX_SteamGenerator = D_HX End If If var_out = "MinApp" Then HX_SteamGenerator = MinApp End If If var_out = "aux" Then HX_SteamGenerator = eff End If End Function • Diferencia de temperaturas logarítmica media (DTLM) Option Explicit Dim T1, T2, THin, THout, tcin, tcout As Double Function HX_LMTD(THin, THout, tcin, tcout) T1 = THin - tcout T2 = THout - tcin HX_LMTD = (T2 - T1) / lognep(T2 / T1) End Function Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XIV • Factor corrector de la DTLM Option Explicit Dim F, P, R, D, THin, THout, tcin, tcout, NShell As Double Function HX_Ft(THin, THout, tcin, tcout, NShell) If THin = THout Then HX_Ft = 1 Else P = (tcout - tcin) / (THin - tcin) R = (THin - THout) / (tcout - tcin) D = Math.Sqr(1 + R ^ 2) P = (P ^ NShell) D = (D ^ NShell) HX_Ft = (D / (1 - R)) * (lognep((1 - P * R) / (1 - P)) / lognep((2 - P * (R + 1 - D)) / (2 - P * (R + 1 + D)))) End If End Function • Número de pasos por carcasa Option Explicit Dim F, Ftmin, THin, THout, tcin, tcout, NShell As Double Function HX_NoShells(THin, THout, tcin, tcout, Ftmin) NShell = 1 F = HX_Ft(THin, THout, tcin, tcout, NShell) If F < Ftmin Then NShell = NShell * 2 F = HX_Ft(THin, THout, tcin, tcout, NShell) End If If F < Ftmin Then Anexo III: Códigos XV XV NShell = NShell * 2 F = HX_Ft(THin, THout, tcin, tcout, NShell) End If HX_NoShells = NShell End Function • Coeficiente global de transferencia (también Ft y DTLM) Option Explicit Dim var_out As String Dim F, LMTD, Q, THin, THout, tcin, tcout, NShell, UA As Double Function HX_UA(Q, THin, THout, tcin, tcout, NShell, var_out) F = HX_Ft(THin, THout, tcin, tcout, NShell) LMTD = HX_LMTD(THin, THout, tcin, tcout) UA = Q * 1000 / (F * LMTD) If var_out = "UA" Then HX_UA = UA End If If var_out = "Ft" Then HX_UA = F End If If var_out = LMTD Then HX_UA = LMTD End If End Function • Cogeneración: Turbina de Gas con HRSG Option Explicit Dim var_out, GTFuel, SupFuel As String Dim GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuelT, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT As Double Dim mf, ma, MAir, mw, mg, MEx, Tsat, Tfg_E, Tfg_S, Tfg_G, Tg1, Tg2, Tg3, Tg4, H_Stm, M_Tbf, GTFuelPCI, M_SupF, SupFuelPCI, CPgases, CPaire, hvs, hve, hv1, hw2, hw1, M_Sbs, M_SMax, M_Stot, TStk, E_CHP, E_Fi As Double Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XVI Dim Mbd, Hbd, Tbd, mpurg, MCO2T, MCO2S, CCO2T, CCO2S, MSO2T, MSO2S, MH2OT, MH2OS, CSO2T, CSO2S, GTFuelC, GTFuelS, GTFuelH, SupFuelC, SupFuelS, SupFuelH, CPHRSG, CPEx, CPStm, O2Stk, O2_Tb As Double Function GT_HRSG(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) If HRSG_Opt = 0 Then If var_out = "M_SMax" Then GT_HRSG = HRSG_Opt2(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_Stot" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_Sbs" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_Tbf" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_SupF" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "E_CHP" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "E_Fi" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "TStk" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Mbd" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) Anexo III: Códigos XVII XVII ElseIf var_out = "Tbd" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Hbd" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "H_Stm" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MCO2T" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MCO2S" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MSO2T" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MSO2S" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "CCO2T" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "CCO2S" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "CSO2T" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "CSO2S" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MAir" Then Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XVIII GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MEx" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "CpEx" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Tfg_S" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Tfg_G" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Tfg_E" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "O2_Tb" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "O2Stk" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) End If End If If HRSG_Opt = 1 Then If var_out = "M_SMax" Then GT_HRSG = HRSG_Opt2(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_Stot" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) Anexo III: Códigos XIX XIX ElseIf var_out = "M_Sbs" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_Tbf" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_SupF" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "E_CHP" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "E_Fi" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "TStk" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Mbd" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Tbd" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Hbd" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "H_Stm" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MCO2T" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MCO2S" Then Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XX GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MSO2T" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MSO2S" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "CCO2T" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "CCO2S" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "CSO2T" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "CSO2S" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MAir" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "MEx" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "CpEx" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Tfg_S" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Tfg_G" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, Anexo III: Códigos XXI XXI GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "Tfg_E" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "O2_Tb" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "O2Stk" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) End If End If If HRSG_Opt = 2 Then If var_out = "M_SMax" Then GT_HRSG = HRSG_Opt2(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_Stot" Then GT_HRSG = HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_Sbs" Then GT_HRSG = HRSG_Opt0(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_Tbf" Then GT_HRSG = HRSG_Opt2(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "M_SupF" Then GT_HRSG = HRSG_Opt2(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "E_CHP" Then GT_HRSG = HRSG_Opt2(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) ElseIf var_out = "E_Fi" Then Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XXVIII CSO2T, CSO2S, GTFuelC, GTFuelS, GTFuelH, SupFuelC, SupFuelS, SupFuelH, CPHRSG, CPEx, CPStm, O2Stk, O2_Tb As Double Function HRSG_Opt1(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) 'Propiedades GTFuelPCI = FuelDef(GTFuel, "PCI") GTFuelC = FuelDef(GTFuel, "C") GTFuelS = FuelDef(GTFuel, "S") SupFuelPCI = FuelDef(SupFuel, "PCI") SupFuelC = FuelDef(SupFuel, "C") SupFuelS = FuelDef(SupFuel, "S") CPaire = 1.003 'kJ/kgK' CPgases = 1.148 'kJ/kgK' CPEx = Calc_Cp(Tg1, 0.9956, 0.00009299, 0, 0, 0) 'kJ/kgK' CPStm = Calc_Cp(Tg1, 1.833, 0.0003111, 0, 0, 0) 'kJ/kgK' CPHRSG = (1 - InjStmF) * CPEx + InjStmF * CPStm hvs = sttp(GTExhT, 1.3, "H", 0) hve = sttp(InjStmT, InjStmP, "H", 0) H_Stm = sttp(StmT, StmP, "H", 0) hv1 = STPSAT(StmP, 1, "H", 0) hw2 = STPSAT(StmP, 0, "H", 0) hw1 = sttp(BFWT, StmP, "h", 0) Hbd = hw2 Tsat = STPSAT(StmP, 0, "T", 0) Tbd = STPSAT(StmP, 0, "T", 0) Tfg_E = Tsat + HRSG_MinDT 'Celsius' T04 = GTExhT + 273.15 Tg3 = Tfg_E + 273.15 'Kelvin' CPEx = Calc_Cp(T04, 0.9956, 0.00009299, 0, 0, 0) 'kJ/kgK' CPStm = Calc_Cp(T04, 1.833, 0.0003111, 0, 0, 0) 'kJ/kgK' CPHRSG = (1 - InjStmF) * CPEx + InjStmF * CPStm 'Turbina de gas mf = GTPow / (GTEff * GTFuelPCI) M_Tbf = mf / 3.6 't/h' ma = (mf * (GTFuelPCI - CPgases * GTExhT) - GTPow) / (CPgases * GTExhT + InjStmF * (hvs - hve) - CPaire * GTAirT) Anexo III: Códigos XXIX XXIX MAir = ma / 3.6 't/h' mg = mf + ma * (1 + InjStmF) MEx = M_Tbf + MAir * (1 + InjStmF) 't/h' 'HRSG M_Stot = ProcStmF mw = M_Stot * 3.6 'k/s mfsup = (mw * (H_Stm - hw2) - mg * CPHRSG * (T04 - Tg3)) / (SupFuelPCI + CPHRSG * (T04 - Tg3)) M_SupF = mfsup / 3.6 mg2 = mg + mfsup Tg1 = (mw / (mg2 * CPHRSG)) * (H_Stm - hw2) + Tg3 Tfg_S = Tg1 - 273.15 'Celsius Tg4 = Tg3 - (mw / (mg2 * CPHRSG)) * (hw2 - hw1) 'Kelvin' TStk = Tg4 - 273.15 'Celsius' Tg2 = Tg1 - (mw / (mg * CPHRSG)) * (H_Stm - hv1) 'Kelvin' Tfg_G = Tg2 - 273.15 'Celsius' mpurg = BDRatio * mw Mbd = mpurg / 3.6 't/h 'Rendimientos E_CHP = (GTPow + mw * (H_Stm - hw1)) / (mf * GTFuelPCI + mfsup * SupFuelPCI) E_Fi = (GTPow + mw * (H_Stm - hw1) + mpurg * (Hbd - hw1)) / (mf * GTFuelPCI + mfsup * SupFuelPCI) 'Emisiones MCO2T = 44 * GTFuelC * M_Tbf / 12 't/h MCO2S = MCO2T + 44 * SupFuelC * M_SupF / 12 CCO2T = MCO2T / MEx CCO2S = MCO2S / (MEx + M_SupF) MSO2T = 2 * GTFuelS * M_Tbf 't/h MSO2S = MSO2T + 2 * SupFuelS * M_SupF CSO2T = MSO2T / MEx CSO2S = MSO2S / (MEx + M_SupF) MH2OT = 9 * GTFuelH * M_Tbf 't/h MH2OS = MH2OT + 9 * SupFuelH * M_SupF O2_Tb = (MAir * 0.23 - (MCO2T + MSO2T + MH2OT)) / MEx O2Stk = O2_Tb - (MCO2S + MSO2S + MH2OS) / MEx Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XXX If var_out = "M_Tbf" Then HRSG_Opt1 = M_Tbf ElseIf var_out = "M_SupF" Then HRSG_Opt1 = M_SupF ElseIf var_out = "M_Stot" Then HRSG_Opt1 = M_Stot ElseIf var_out = "E_CHP" Then HRSG_Opt1 = E_CHP ElseIf var_out = "E_Fi" Then HRSG_Opt1 = E_Fi ElseIf var_out = "TStk" Then HRSG_Opt1 = TStk ElseIf var_out = "Mbd" Then HRSG_Opt1 = Mbd ElseIf var_out = "Tbd" Then HRSG_Opt1 = Tbd ElseIf var_out = "Hbd" Then HRSG_Opt1 = Hbd ElseIf var_out = "H_Stm" Then HRSG_Opt1 = H_Stm ElseIf var_out = "MCO2T" Then HRSG_Opt1 = MCO2T ElseIf var_out = "MCO2S" Then HRSG_Opt1 = MCO2S ElseIf var_out = "MSO2T" Then HRSG_Opt1 = MSO2T ElseIf var_out = "MSO2S" Then HRSG_Opt1 = MSO2S ElseIf var_out = "CCO2T" Then HRSG_Opt1 = CCO2T ElseIf var_out = "CCO2S" Then HRSG_Opt1 = CCO2S ElseIf var_out = "CSO2T" Then HRSG_Opt1 = CSO2T ElseIf var_out = "CSO2S" Then HRSG_Opt1 = CSO2S ElseIf var_out = "MAir" Then Anexo III: Códigos XXXI XXXI HRSG_Opt1 = MAir ElseIf var_out = "MEx" Then HRSG_Opt1 = MEx ElseIf var_out = "CpEx" Then HRSG_Opt1 = CPHRSG ElseIf var_out = "Tfg_S" Then HRSG_Opt1 = Tfg_S ElseIf var_out = "Tfg_G" Then HRSG_Opt1 = Tfg_G ElseIf var_out = "Tfg_E" Then HRSG_Opt1 = Tfg_E ElseIf var_out = "O2_Tb" Then HRSG_Opt1 = O2_Tb ElseIf var_out = "O2Stk" Then HRSG_Opt1 = O2Stk End If End Function HRSG opcion 2 Option Explicit Dim var_out, GTFuel, SupFuel As String Dim GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuelT, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT As Double Dim mf, ma, MAir, mw, mg, MEx, Tsat, Tfg_E, Tfg_S, Tfg_G, Tg1, Tg2, Tg3, Tg4, H_Stm, M_Tbf, GTFuelPCI, M_SupF, SupFuelPCI, CPgases, CPaire, hvs, hve, hv1, hw2, hw1, M_SMax, TStk, E_CHP, E_Fi As Double Dim mfsup, mg2, T04 As Double Dim Mbd, Hbd, Tbd, mpurg, MCO2T, MCO2S, CCO2T, CCO2S, MSO2T, MSO2S, MH2OT, MH2OS, CSO2T, CSO2S, GTFuelC, GTFuelS, GTFuelH, SupFuelC, SupFuelS, SupFuelH, CPHRSG, CPEx, CPStm, O2Stk, O2_Tb As Double Function HRSG_Opt2(GTPow, GTEff, GTExhT, ProcStmF, BFWT, StmP, StmT, HRSG_Opt, GTAirT, GTFuel, GTFuelT, SupFuel, SupFuelT, HRSG_MinDT, BDRatio, MinExsO2, MinStkO2, MinStckT, InjStmF, InjStmP, InjStmT, var_out) 'Propiedades GTFuelPCI = FuelDef(GTFuel, "PCI") GTFuelC = FuelDef(GTFuel, "C") GTFuelS = FuelDef(GTFuel, "S") SupFuelPCI = FuelDef(SupFuel, "PCI") Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XXXII SupFuelC = FuelDef(SupFuel, "C") SupFuelS = FuelDef(SupFuel, "S") CPaire = 1.003 'kJ/kgK' CPgases = 1.148 'kJ/kgK' CPEx = Calc_Cp(Tg1, 0.9956, 0.00009299, 0, 0, 0) 'kJ/kgK' CPStm = Calc_Cp(Tg1, 1.833, 0.0003111, 0, 0, 0) 'kJ/kgK' CPHRSG = (1 - InjStmF) * CPEx + InjStmF * CPStm hvs = sttp(GTExhT, 1.3, "H", 0) hve = sttp(InjStmT, InjStmP, "H", 0) H_Stm = sttp(StmT, StmP, "H", 0) hv1 = STPSAT(StmP, 1, "H", 0) hw2 = STPSAT(StmP, 0, "H", 0) hw1 = sttp(BFWT, StmP, "h", 0) Hbd = hw2 Tsat = STPSAT(StmP, 0, "T", 0) Tbd = STPSAT(StmP, 0, "T", 0) Tfg_E = Tsat + HRSG_MinDT 'Celsius' T04 = GTExhT + 273.15 Tg3 = Tfg_E + 273.15 'Kelvin' CPEx = Calc_Cp(T04, 0.9956, 0.00009299, 0, 0, 0) 'kJ/kgK' CPStm = Calc_Cp(T04, 1.833, 0.0003111, 0, 0, 0) 'kJ/kgK' CPHRSG = (1 - InjStmF) * CPEx + InjStmF * CPStm 'Turbina de gas mf = GTPow / (GTEff * GTFuelPCI) M_Tbf = mf / 3.6 't/h' ma = (mf * (GTFuelPCI - CPgases * GTExhT) - GTPow) / (CPgases * GTExhT + InjStmF * (hvs - hve) - CPaire * GTAirT) MAir = ma / 3.6 't/h' mg = mf + ma * (1 + InjStmF) MEx = M_Tbf + MAir * (1 + InjStmF) 't/h' 'Emisiones MCO2T = 44 * GTFuelC * M_Tbf / 12 't/h CCO2T = MCO2T / MEx MSO2T = 2 * GTFuelS * M_Tbf 't/h CSO2T = MSO2T / MEx Anexo III: Códigos XXXIII XXXIII MH2OT = 9 * GTFuelH * M_Tbf 't/h O2_Tb = (MAir * 0.23 - (MCO2T + MSO2T + MH2OT)) / MEx mfsup = mg * (O2_Tb - MinStkO2) / (44 / 12 * SupFuelC + 2 * SupFuelS + 9 * SupFuelH - MinStkO2) M_SupF = mfsup / 3.6 't/h ' M_SupF = MEx * (O2_Tb - MinStkO2) / (44 / 12 * SupFuelC + 2 * SupFuelS + 9 * SupFuelH) ' mfsup = M_SupF * 3.6 MCO2S = MCO2T + 44 * SupFuelC * M_SupF / 12 CCO2S = MCO2S / (MEx + M_SupF) MSO2S = MSO2T + 2 * SupFuelS * M_SupF CSO2S = MSO2S / (MEx + M_SupF) MH2OS = MH2OT + 9 * SupFuelH * M_SupF O2Stk = O2_Tb - (44 * SupFuelC * M_SupF / 12 + 2 * SupFuelS * M_SupF + 9 * SupFuelH * M_SupF) / (MEx) 'HRSG mg2 = mfsup + mg Tfg_S = (MEx * CPHRSG * GTExhT + mfsup * SupFuelPCI) / (mg2 * CPHRSG) Tg1 = Tfg_S + 273.15 'Kelvin mw = mg2 * CPHRSG * (Tg1 - Tg3) / (H_Stm - hw2) M_SMax = mw / 3.6 Tg4 = Tg3 - (mw / (mg2 * CPHRSG)) * (hw2 - hw1) 'Kelvin' TStk = Tg4 - 273.15 'Celsius' Tg2 = Tg1 - (mw / (mg * CPHRSG)) * (H_Stm - hv1) 'Kelvin' Tfg_G = Tg2 - 273.15 'Celsius' mpurg = BDRatio * mw Mbd = mpurg / 3.6 't/h 'Rendimientos E_CHP = (GTPow + mw * (H_Stm - hw1)) / (mf * GTFuelPCI + mfsup * SupFuelPCI) E_Fi = (GTPow + mw * (H_Stm - hw1) + mpurg * (Hbd - hw1)) / (mf * GTFuelPCI + mfsup * SupFuelPCI) If var_out = "M_Tbf" Then HRSG_Opt2 = M_Tbf ElseIf var_out = "M_SupF" Then Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XXXIV HRSG_Opt2 = M_SupF ElseIf var_out = "M_SMax" Then HRSG_Opt2 = M_SMax ElseIf var_out = "E_CHP" Then HRSG_Opt2 = E_CHP ElseIf var_out = "E_Fi" Then HRSG_Opt2 = E_Fi ElseIf var_out = "TStk" Then HRSG_Opt2 = TStk ElseIf var_out = "Mbd" Then HRSG_Opt2 = Mbd ElseIf var_out = "Tbd" Then HRSG_Opt2 = Tbd ElseIf var_out = "Hbd" Then HRSG_Opt2 = Hbd ElseIf var_out = "H_Stm" Then HRSG_Opt2 = H_Stm ElseIf var_out = "MCO2T" Then HRSG_Opt2 = MCO2T ElseIf var_out = "MCO2S" Then HRSG_Opt2 = MCO2S ElseIf var_out = "MSO2T" Then HRSG_Opt2 = MSO2T ElseIf var_out = "MSO2S" Then HRSG_Opt2 = MSO2S ElseIf var_out = "CCO2T" Then HRSG_Opt2 = CCO2T ElseIf var_out = "CCO2S" Then HRSG_Opt2 = CCO2S ElseIf var_out = "CSO2T" Then HRSG_Opt2 = CSO2T ElseIf var_out = "CSO2S" Then HRSG_Opt2 = CSO2S ElseIf var_out = "MAir" Then HRSG_Opt2 = MAir ElseIf var_out = "MEx" Then HRSG_Opt2 = MEx ElseIf var_out = "CpEx" Then Anexo III: Códigos XXXV XXXV HRSG_Opt2 = CPHRSG ElseIf var_out = "Tfg_S" Then HRSG_Opt2 = Tfg_S ElseIf var_out = "Tfg_G" Then HRSG_Opt2 = Tfg_G ElseIf var_out = "Tfg_E" Then HRSG_Opt2 = Tfg_E ElseIf var_out = "O2_Tb" Then HRSG_Opt2 = O2_Tb ElseIf var_out = "O2Stk" Then HRSG_Opt2 = O2Stk End If End Function • Calor específico Calculo CP Option Explicit Dim Temp, A, B, C, D, E As Double Function Calc_Cp(Temp, A, B, C, D, E) Calc_Cp = A + B * Temp + C * (Temp ^ 2) + D * (Temp ^ 3) + E * (Temp ^ 4) End Function 6.2.3.2 Calor específico medio Calculo CP mean Option Explicit Dim T, Temp1, Temp2, A, B, C, D, E As Double Function Calc_CpMean(Temp1, Temp2, A, B, C, D, E) T = (Temp1 + Temp2) / 2 Calc_CpMean = A + B * T + C * (T ^ 2) + D * (T ^ 3) + E * (T ^ 4) End Function • Definición del combustible 2 Option Explicit 3 Dim var_out, FuelName As String Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XXXVI 4 Dim C, S, H, PCI As Double 5 Function FuelDef(FuelName, var_out) 6 7 If FuelName = "Fueloil_1" Then 8 C = 84.6 / 100 9 S = 2.7 / 100 10 H = 9.7 / 100 11 PCI = 40128 12 ElseIf FuelName = "Fueloil_2" Then 13 C = 83.7 / 100 14 S = 3.6 / 100 15 H = 9.2 / 100 16 PCI = 39292 17 ElseIf FuelName = "Gasoleo_C" Then 18 C = 86 / 100 19 S = 0.8 / 100 20 H = 11.1 / 100 21 PCI = 43054 22 ElseIf FuelName = "GN" Then 23 C = 72.8 / 100 24 S = 0 / 100 25 H = 22.7 / 100 26 PCI = 46836.9 27 ElseIf FuelName = "Propano" Then 28 C = 80.8 / 100 29 S = 0 / 100 30 H = 17.9 / 100 31 PCI = 46770 32 ElseIf FuelName = "H2" Then 33 C = 0 34 S = 0 35 H = 1 36 PCI = 120000 37 End If 38 39 If var_out = "C" Then 40 FuelDef = C 41 ElseIf var_out = "S" Then Anexo III: Códigos XXXVII XXXVII 42 FuelDef = S 43 ElseIf var_out = "H" Then 44 FuelDef = H 45 ElseIf var_out = "PCI" Then 46 FuelDef = PCI 47 End If 48 49 50 End Function • Funciones auxiliares Entalpia de saturación Option Explicit Dim Tsat_steam, T_steam, p_steam, h_steam, aux, Q_steam As Double Function entalpia (T_steam, p_steam, Q_steam) As Double Tsat_steam = STPSAT(p_steam, 0, "T", 0) aux = (Tsat_steam - T_steam) / Tsat_steam If aux < 0 Then aux = -aux End If If aux < 0.01 Then h_steam = STPSAT(p_steam, Q_steam, "H", 0) Else h_steam = sttp(T_steam, p_steam, "H", 0) End If entalpia = h_steam End Function Logarítmo neperiano Option Explicit Dim A As Double Function lognep(A) Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XLIV Arg292Desc = "Temperatura a la salida del fluido caliente [ºC]" Arg293Desc = "Temperatura a la entrada del fluido frío [ºC]" Arg294Desc = "Temperatura a la salida del fluido frío [ºC]" Arg295Desc = "Ft mínimo" Application.MacroOptions _ Macro:=FuncName29, _ Description:=FuncDesc29, _ Category:=FuncCat29, _ ArgumentDescriptions:=Array(Arg291Desc, Arg292Desc, Arg293Desc, Arg294Desc, Arg295Desc) End Sub Sub DescribeFunctiona5() Dim FuncName30 As String Dim FuncDesc30 As String Dim FuncCat30 As String Dim Arg301Desc, Arg302Desc, Arg303Desc, Arg304Desc, Arg305Desc, Arg306Desc, Arg307Desc, Arg308Desc, Arg309Desc, Arg3010Desc, Arg3011Desc, Arg3012Desc, _ Arg3013Desc, Arg3014Desc As String FuncName30 = "HX_LMTD" FuncDesc30 = "Devuelve la diferencia de temperaturas logarítmica media dadas las temperaturas de las corrientes" FuncCat30 = "Intercambiadores de calor" Arg301Desc = "Temperatura a la entrada del fluido caliente [ºC]" Arg302Desc = "Temperatura a la salida del fluido caliente [ºC]" Arg303Desc = "Temperatura a la entrada del fluido frío [ºC]" Arg304Desc = "Temperatura a la salida del fluido frío [ºC]" Application.MacroOptions _ Macro:=FuncName30, _ Description:=FuncDesc30, _ Anexo III: Códigos XLV XLV Category:=FuncCat30, _ ArgumentDescriptions:=Array(Arg301Desc, Arg302Desc, Arg303Desc, Arg304Desc) End Sub Sub DescribeFunctiona6() Dim FuncName31 As String Dim FuncDesc31 As String Dim FuncCat31 As String Dim Arg311Desc, Arg312Desc, Arg313Desc, Arg314Desc, Arg315Desc, Arg316Desc, Arg317Desc, Arg318Desc, Arg319Desc, Arg3110Desc, Arg3111Desc, Arg3112Desc, _ Arg3113Desc, Arg3114Desc As String FuncName31 = "HX_Ft" FuncDesc31 = "Devuelve Ft dadas las temperaturas de las corrientes y el número de carcasas" FuncCat31 = "Intercambiadores de calor" Arg311Desc = "Temperatura a la entrada del fluido caliente [ºC]" Arg312Desc = "Temperatura a la salida del fluido caliente [ºC]" Arg313Desc = "Temperatura a la entrada del fluido frío [ºC]" Arg314Desc = "Temperatura a la salida del fluido frío [ºC]" Arg315Desc = "Número de carcasas" Application.MacroOptions _ Macro:=FuncName31, _ Description:=FuncDesc31, _ Category:=FuncCat31, _ ArgumentDescriptions:=Array(Arg311Desc, Arg312Desc, Arg313Desc, Arg314Desc, Arg315Desc) End Sub Sub DescribeFunctiona7() Dim FuncName32 As String Dim FuncDesc32 As String Dim FuncCat32 As String Dim Arg321Desc, Arg322Desc, Arg323Desc, Arg324Desc, Arg325Desc, Arg326Desc, Arg327Desc, Arg328Desc, Arg329Desc, Arg3210Desc, Arg3211Desc, Arg3212Desc, _ Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XLVI Arg3213Desc, Arg3214Desc As String FuncName32 = "HX_BFWHeater" FuncDesc32 = "Simulación de un economizador" FuncCat32 = "Intercambiadores de Calor" Arg321Desc = "Caudal de la corriente fría [tn/h] " Arg322Desc = "Presión de entrada de la corriente fria [bara]" Arg323Desc = "Temperatura de entrada de la corriente fría [ºC]" Arg324Desc = "Caudal de la corriente caliente [tn/h] " Arg325Desc = "Temperatura de entrada de la corriente caliente[ºC] " Arg326Desc = "Coeficiente de transferencia [W/m2-K]" Arg327Desc = "Área del intercambiador [m2]" Arg328Desc = "Número de carcasas" Arg329Desc = "Termino independiente para el calculo del Cp de la corriente caliente " Arg3210Desc = "Constante de primer orden" Arg3211Desc = "Constante de segundo orden" Arg3212Desc = "Constante de tercer orden" Arg3213Desc = "Constante de cuarto orden" Arg3214Desc = "Variable de salida de la función (T_c_out [ºC], T_h_out [ºC], LMTD, Ft, D_HX [kW])" Application.MacroOptions _ Macro:=FuncName32, _ Description:=FuncDesc32, _ Category:=FuncCat32, _ ArgumentDescriptions:=Array(Arg321Desc, Arg322Desc, Arg323Desc, Arg324Desc, Arg325Desc, Arg326Desc, Arg327Desc, Arg328Desc, Arg329Desc, Arg3210Desc, _ Arg3211Desc, Arg3212Desc, Arg3213Desc, Arg3214Desc) End Sub Sub DescribeFunctiona8() Dim FuncName33 As String Dim FuncDesc33 As String Anexo III: Códigos XLVII XLVII Dim FuncCat33 As String Dim Arg331Desc, Arg332Desc, Arg333Desc, Arg334Desc, Arg335Desc, Arg336Desc, Arg337Desc, Arg338Desc, Arg339Desc, Arg3310Desc, Arg3311Desc, Arg3312Desc, _ Arg3313Desc, Arg3314Desc As String FuncName33 = "HX_UA" FuncDesc33 = "Dado el calor y las temperaturas de las corrientes calcula el producto del coeficiente de transferencia y el área. También devuelve la LMTD y Ft" FuncCat33 = "Intercambiadores de calor" Arg331Desc = "Calor intercambiado [W]" Arg332Desc = "Temperatura a la entrada del fluido caliente [ºC]" Arg333Desc = "Temperatura a la salida del fluido caliente [ºC]" Arg334Desc = "Temperatura a la entrada del fluido frío [ºC]" Arg335Desc = "Temperatura a la salida del fluido frío [ºC]" Arg336Desc = "Número de carcasas" Arg337Desc = "Variable de salida de la función: UA[W/m2K], LMTD, Ft" Application.MacroOptions _ Macro:=FuncName33, _ Description:=FuncDesc33, _ Category:=FuncCat33, _ ArgumentDescriptions:=Array(Arg331Desc, Arg332Desc, Arg333Desc, Arg334Desc, Arg335Desc, Arg336Desc, Arg337Desc) End Sub Sub DescribeFunctiona9() Dim FuncName34 As String Dim FuncDesc34 As String Dim FuncCat34 As String Dim Arg341Desc, Arg342Desc, Arg343Desc, Arg344Desc, Arg345Desc, Arg346Desc, Arg347Desc, Arg348Desc, Arg349Desc, Arg3410Desc, Arg3411Desc, Arg3412Desc, _ Arg3413Desc, Arg3414Desc As String FuncName34 = "HX_UA_Exchanger" FuncDesc34 = "Dado el producto del coeficiente de transferencia y el área y las temperaturas de las corrientes calcula el calor intercambiado. También devuelve la LMTD y Ft" FuncCat34 = "Intercambiadores de calor" Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP XLVIII Arg341Desc = "Coeficiente de transferencia [W/m2-K]" Arg342Desc = "Área de transferencia [m2]" Arg343Desc = "Temperatura a la entrada del fluido caliente [ºC]" Arg344Desc = "Temperatura a la salida del fluido caliente [ºC]" Arg345Desc = "Temperatura a la entrada del fluido frío [ºC]" Arg346Desc = "Temperatura a la salida del fluido frío [ºC]" Arg347Desc = "Número de carcasas" Arg348Desc = "Variable de salida de la función: D_HX [W], LMTD, Ft" Application.MacroOptions _ Macro:=FuncName34, _ Description:=FuncDesc34, _ Category:=FuncCat34, _ ArgumentDescriptions:=Array(Arg341Desc, Arg342Desc, Arg343Desc, Arg344Desc, Arg345Desc, Arg346Desc, Arg347Desc, Arg348Desc) End Sub Sub DescribeFunctiona10() Dim FuncName35 As String Dim FuncDesc35 As String Dim FuncCat35 As String Dim Arg351Desc, Arg352Desc, Arg353Desc, Arg354Desc, Arg355Desc, Arg356Desc, Arg357Desc, Arg358Desc, Arg359Desc, Arg3510Desc, Arg3511Desc, Arg3512Desc, _ Arg3513Desc, Arg3514Desc As String FuncName35 = "HX_SteamGenerator" FuncDesc35 = "Simulación de un generador de vapor" FuncCat35 = "Intercambiadores de Calor" Arg351Desc = "Presión de entrada de la corriente fria [bara]" Arg352Desc = "Temperatura de entrada de la corriente fría [ºC]" Arg353Desc = "Caudal de la corriente caliente [tn/h] " Arg354Desc = "Temperatura de entrada de la corriente caliente[ºC] " Arg355Desc = "Coeficiente de transferencia [W/m2-K]" Arg356Desc = "Área del intercambiador [m2]" Anexo III: Códigos XLIX XLIX Arg357Desc = "Número de carcasas" Arg358Desc = "Termino independiente para el calculo del Cp de la corriente caliente " Arg359Desc = "Constante de primer orden" Arg3510Desc = "Constante de segundo orden" Arg3511Desc = "Constante de tercer orden" Arg3512Desc = "Constante de cuarto orden" Arg3513Desc = "Variable de salida de la función (M_W [T/H], T_c_out [ºC], T_h_out [ºC], LMTD, Ft, D_HX [kW], MinApp [ºC])" Application.MacroOptions _ Macro:=FuncName35, _ Description:=FuncDesc35, _ Category:=FuncCat35, _ ArgumentDescriptions:=Array(Arg351Desc, Arg352Desc, Arg353Desc, Arg354Desc, Arg355Desc, Arg356Desc, Arg357Desc, Arg358Desc, Arg359Desc, Arg3510Desc, _ Arg3511Desc, Arg3512Desc, Arg3513Desc) End Sub Sub DescribeFunctionb1() Dim FuncName46 As String Dim FuncDesc46 As String Dim FuncCat46 As String Dim Arg461Desc, Arg462Desc, Arg463Desc, Arg464Desc, Arg465Desc, Arg466Desc, Arg467Desc, Arg468Desc, Arg469Desc, Arg4610Desc, Arg4611Desc, Arg4612Desc, _ Arg4613Desc, Arg4614Desc, Arg4615Desc, Arg4616Desc, Arg4617Desc, Arg4618Desc, Arg4619Desc, Arg4620Desc, Arg4621Desc, Arg4622Desc As String FuncName46 = "GT_HRSG" FuncDesc46 = "Simulación de una turbina de gas con un HRSG" FuncCat46 = "Turbina de Gas" Arg461Desc = "Potencia de la turbina de gas [kW]" Arg462Desc = "Eficiencia de la turbina de gas [0-1]" Arg463Desc = "Temperatura desalida de la turbina de gas [ºC]" Arg464Desc = "Caudal de vapor a producir por el HRSG [tn/h]" Modelización de intercambiadores de calor y cogeneración con turbinas de gas en aplicación informática REDVAP L Arg465Desc = "Temperatura de entrada del agua a el HRSG [ºC]" Arg466Desc = "Presión de vapor vivo [bar]" Arg467Desc = "Temperatura de vapor vivo [ºC]" Arg468Desc = "Modo de operación de la turbina de gas. Existen 3 modos de operación: 0 no hay postcombustión en HRSG (no se cubre la demanda de vapor); 1 se cubre la demanda de vapor (hay postcombustión el HRSG); 2 en el HRSG se quema combustible de forma que se consuma todo el oxígen disponible" Arg469Desc = "Temperatura del aire a la entrada de la turbina de gas [ºC] " Arg4610Desc = "Nombre del combustible de la turbina de gas: Fueloil_1, Fueloil_2, Gasoleo_C, GN, Propano, H2" Arg4611Desc = "Temperatura de entrada del combustible de la turbina de gas" Arg4612Desc = "Nombre del combustible de HRSG: Fueloil_1, Fueloil_2, Gasoleo_C, GN, Propano, H2" Arg4613Desc = "Temperatura de entrada del combustible de HRSG" Arg4614Desc = "Pinch Point de HRSG [ºC]" Arg4615Desc = "Ratio de purga [0-1]" Arg4616Desc = "Exceso de oxígeno necesario en HRSG [0-1]" Arg4617Desc = "Oxígeno mínimo en el stack [0-1]" Arg4618Desc = "Mínima temperatura de stack [ºC]" Arg4619Desc = "Relación aire vapor inyectado en la turbina de gas" Arg4620Desc = "Presión del vapor inyectado en la turbina de gas [bar]" Arg4621Desc = "Temperatura del vapor inyectado en la turbina de gas [ºC]" Arg4622Desc = "Variable de salida de la función (M_SMax, M_Stot, M_Sbs, M_Tbf, M_Sup, E_CHP, E_Fi, TStk, Mbd, Tbd, Hbd, H_Stm, MCO2T, CCO2T, MSO2T, CSO2T, MCO2S, CCO2S, MSO2S, CCSO2S, MAir, Mex, CpEx, Tfg_S,Tfg_G, Tfg_E, O2_Tb, O2Stk)" Application.MacroOptions _ Macro:=FuncName46, _ Description:=FuncDesc46, _ Category:=FuncCat46, _ ArgumentDescriptions:=Array(Arg461Desc, Arg462Desc, Arg463Desc, Arg464Desc, Arg465Desc, Arg466Desc, Arg467Desc, Arg468Desc, Arg469Desc, Arg4610Desc, _ Arg4611Desc, Arg4612Desc, Arg4613Desc, Arg4614Desc, Arg4615Desc, Arg4616Desc, Arg4617Desc, Arg4618Desc, Arg4619Desc, Arg4620Desc, Arg4621Desc, Arg4622Desc) End Sub Anexo III: Códigos LI LI Referencias LII REFERENCIAS [1] Presentación del Master en Sistemas de Energía Térmica de la Universidad de Sevilla. [2] Intenational Energy Agency, Global Energy& CO2 Status Report. The latest trends in energy and emissions in 2018 revista, p.bal Energy & 12, 2001. [3] TLV, «https://www.tlv.com», 2019. [En línea]. [4] Spirax Sarco, «https://beta.spiraxsarco.com», 2019 [En línea] [5] SÁNCHEZ NARANJO, Consuelo, Tecnologías de las centrales termoeléctricas convencionales, UNED 1ª ed ., 1ª imp.(26/11/2010). [6] GÓMEZ CORREA, Francisco Javier. Aplicacion informatica para redes de vapor complejas. Dirigido por David Velazquez Alonso. Proyecto Fin de Carrera defendido en la Escuela Técnica Superior de Ingeniería, Universidad de Sevilla, 2018. [7] VÉLAZQUEZ ALONSO, David. Apuntes de la Asignatura Tecnología Energética. Escuela Técnica Superior de Ingeniería, Universidad de Sevilla. [8] SÁNCHEZ MARTÍNEZ, David Tomás. Apuntes de la Asignatura Turbinas de Gas y Ciclos Combinados. Escuela Técnica Superior de Ingeniería, Universidad de Sevilla. [9] JARAMILLO, O. A. Intercambiadores de calor. Centro de Investigación en Energía., Mexico DF, 2007. [10] GONZÁLEZ-MENDIZABAL, Dosinda. Guía de intercambiadores de calor: tipos generales y aplicaciones. Universidad Simón Bolívar, 2002. [11] ChemicaLogic, SteamTab [12] Linhoff March, PRO STEAM [13] RENEDO ESTÉBANEZ, Carlos J. Apuntes de la asignatura Ingeniería Térmica y de Fluidos. Universidad de Cantabria. [14] KAYS, W. M., y LONDON, A. L.: Compact Heat Exchangers, 2.” ed., McGraw-Hill Book Company, Nueva York [15] VÉLAZQUEZ ALONSO, David. Apuntes de la Asignatura Instalaciones Escuela Técnica Superior de Ingeniería, Universidad de Sevilla. Referencias LIII LIII [16] LANCHI, M., MONTECCHI, M., CRESCENZI, T., MELE, D., MILIOZZI, A., RUSSO, V., . . . MANCINI, R. (2015). Investigation into the coupling of micro gas turbines with CSP technology: OMSoP project. Energy Procedia, 69, 1317-1326. doi:10.1016/j.egypro.2015.03.146 [17] IDEA. Análisis del potencial de cogeneración 2010-2020