Engineering equation solver (EES) Por: Néstor Fonseca, Ph.D. Editado por: Juan E. Tibaquirá, Ph.D. Profesores Facultad de Ingeniería Mecánica Universidad Tecnológica de Pereira 1. GENERALIDADES Engineering Equation Solver (EES) permite proveer solución numérica a un set de ecuaciones algebraicas lineales o no lineales, diferenciales e integrales, también para optimización, análisis de incertidumbre, regresión lineal y no lineal y generar directamente textos y ecuaciones para publicaciones. Dos diferencias con respecto a otros programas: Las ecuaciones y variables desconocidas pueden ser ingresadas en cualquier orden. Posee una base de información enorme de propiedades matemáticas y termofísicas útiles en el ámbito de la ingeniería. Por ejemplo, las tablas de vapor son implementadas de tal forma que cualquier propiedad termodinámica puede ser obtenida a partir de otras dos propiedades. De forma similar para la mayoría de refrigerantes, amoniaco, metano, dióxido de carbono y otros fluidos. Las propiedades del aire son obtenidas a partir de las funciones sicrométricas y para los gases y sólidos mas comunes a partir de los datos JANAF. Este es un programa externo desarrollado por la Nasa para definir el calor específico (Cp), entalpía total (H) y entropía total (S) de más de 400 sustancias en función de la temperatura. De acuerdo a la experiencia a nivel de docencia, está demostrado que el estudiante debe resolver problemas como parte de su formación y para esto debe revisar y extrapolar datos de tablas de propiedades de los fluidos y resolver un sistema de ecuaciones que en algunas ocasiones resulta complejo sabiendo que lo que se está evaluando no es algebra. Cuando el estudiante se ha familiarizado con las tablas apropiadas, el uso repetitivo de las tablas no contribuye a su formación. El tiempo y esfuerzo requerido por el estudiante para resolver el problema y buscar los valores indicados en las tablas impide que se profundice en lo realmente importante que es el análisis del problema, el diseño o mejora (optimización) de nuevos sistemas o equipos. EES esta diseñado para enseñar. Dentro del proceso de optimización de sistemas térmicos, EES es una herramienta especialmente útil para los análisis en régimen permanente. Sin embargo permite encontrar soluciones preliminares en sistemas donde el componente dinámico es importante. Un análisis más en detalle para optimización puede partir de los resultados de la modelación de sistema con EES y considerar el efecto dinámico, por ejemplo el efecto de la radicación solar en un edificio o la variación de la energía interna de un sistema de un colector solar, sistemas en los cuales su comportamiento depende del paso del tiempo. Para este análisis en régimen “transiente” en el área de ciencias térmicas se utilizan programas como TRNSYS desarrollado también por la University of Wisconsin (UW). En el ejemplo del edificio mostrado a continuación EES fue usado como una fotografía instantánea para detectar los problemas más significativos con respecto a las cargas térmicas y el funcionamiento del equipo de ventilación y acondicionamiento de aire para
buscar soluciones rápidas a los problemas de los ocupantes. Luego se efectuó un segundo modelo usando TRNSYS el cual incluyó el efecto de la radiación solar sobre muros y ventanas para optimizar el sistema de control de los equipos, considerando la carga térmica acumulada en los muros, muebles y equipos dentro del edificio para producir finalmente un ahorro significativo de la demanda de energía.
2. CARACTERÍSTICAS DE EES
Resuelve simultáneamente 6,000 ecuaciones no lineales (12,000 en versión profesional) Las ecuaciones pueden ser ingresadas en cualquier orden en el editor. Velocidad computacional es extremadamente rápida. Contiene propiedades termodinámicas y funciones de transporte de alta precisión para fluidos. Es posible graficar diagramas T-s, P-v, P-h, etc. de fluidos. Maneja tanto el Sistema Internacional (SI) de unidades como el Inglés. Realiza conversión de unidades y chequeo automático de consistencia de las unidades utilizadas. Es posible ejecutar de estudios paramétricos mediante el uso de tablas Capacidad simple y multivariada de optimización de una variable. Usa funciones definidas, módulos y subprogramas y DLLs (dynamic link libraries). Construcciones lógicas como If-Then-Else y otras pueden ser usadas.
Es posible realizar análisis de incertidumbre Ejecuta regresiones linales y no lineales, Interpola automáticamente datos tabulados Grafica en dos y tres dimensiones con actualización automática de los datos. Salida de archivos en LATEX o PDF. Usa diagramas con ventanas de acceso de información de entradas y salidas. La versión profesional permite el uso de animaciones de procesos. Además posee la capacidad de resolver sistemas de hasta 12,000 variables y ecuaciones con capacidad limitada de las tablas de datos (solo por la capacidad del equipo). 3. INSTALACIÓN La licencia EES de la UTP es académica e indefinida, renovable cada año solo si es usada en equipos de la UTP para fines de docencia. Para instalarlo es necesario ejecutar SETUP. EES del CD de instalación. Si se está copiando debe asegurarse que en la carpeta del programa está un archivo con extensión *.dft.
4. INICIANDO EES Ayudas: Con botón F1 o en el menú, se encuentran ejemplos e indicaciones para usar cada una de la funciones de EES. Se puede usar el buscador para encontrar algún tema específico, por ejemplo diagram, plots. Barra de herramientas:
File y Edit: operan de forma similar que otros programas bajo Windows para guardar abrir imprimir etc. Librerías y textos creados por el usuario usando EES, pueden ser agregados aquí para ser utilizados mediante funciones o subrutinas en otros programas. Se tiene la opción de generar archivos en Latex para publicaciones. Search: permite encontrar y modificar palabras en el programa.
Options:
Variable info: Es utilizado para ver el estado de las variables y resolver problemas de convergencia asignando valores posibles que ayuden a resolver el problema.
Funtion Info: Permite usar funciones matemáticas, propiedades de fluidos y sólidos como variables dentro de las ecuaciones. Se pueden agregar como librerías externas nuevas bases de datos producto de la investigación y/o experimentación.
Unit convertion Info: Permite conocer los factores de conversión mas usados a nivel de ingeniería y aplicar la conversión dentro de programa.
Ejemplo: TF=convertTEMP('C'; 'F';100) (si se usa solo(,) como dice el manual error, usar (;) en algunos computadores) Longitud=2*convert(ft;in) Presión=29,9*convert(inHg;kPa) Constants: Permite incorporar directamente al programa constante utilizadas comúnmente Ej g# (gravedad) R# (constante de los gases, sigma# constante de radiación)
Units systems: Permite definir el sistema de unidades en que se ejecutará el programa y las propiedades utilizadas, para que la solución sea consistente. Para fijar condiciones permanentemente se utiliza store o para llamar alguna configuración utilizada antes Load.
Ej: h=ENTHALPY(AirH2O;T=T1;P=P1;r=r1) P1=101325 T1=20 r1=0,7 Valor correcto 46.05 kJ/kg
Stop criteria: Permite fijar los parámetros de iteración del programa cuando esta buscando una solución. En algunos casos es necesario modificar estos valores para buscar la convergencia del problema. Número de iteraciones, máximo residual relativo, máximo cambio admisible de la variable, tiempo transcurrido. Cuando alguno de estos criterios se cumple el cálculo termina.
Al ejecutar el programa este siempre muestra los resultados de la convergencia.
Default info: Permite cambiar simultáneamente propiedades a variables de acuerdo a la primera letra con la que fue creada, por ejemplo si se quiere cambiar el tipo de unidad a todas las variables que comiencen por T de °C a K, solo se modifica aquí y automáticamente cambia todo dentro del programa. De igual manera para los límites y el formato de la respuesta.
Preferences: Permite seleccionar las opciones del programa, en cuanto a sistema de unidades, parámetros de iteración, criterios de integración, opciones del programa, displays, ecuaciones, impresión, dibujos y números complejos.
Calculate: Permite chequear, ejecutar un set de ecuaciones, maximizar o minimizar, la solución, realizar el análisis de incertidumbre. Revisar la consistencia de las unidades, actualizar y/o eliminar condiciones de borde del problema o valores iniciales seleccionados para ayudar la convergencia.
Tables: Contiene comandos para crear, editar tablas paramétricas y tablas tipo lookup que pueden ser usadas dentro de funciones y subprogramas.
Plots: Provee comandos para crear gráficos a partir de tablas paramétricas ó tipo lookup y la capacidad de generar las ecuaciones de aproximación a estas curvas.
Windows: Permite un acceso centralizado a la mayoría de las ventanas de EES (ecuaciones, tablas, gráficos, solución etc..) y métodos de presentación de estas ventanas.
Ejemplo: ciclo Rankine
Equations: La función básica de EES es resolver sistemas de ecuaciones algebraicas no lineales. Para demostrar esta capacidad se puede plantear el siguiente problema:
Ejemplo1: x^2+y^3=77 sqrt(x/(y^2+1))=2 alpha+x=1,234
Ejemplo2: Cálculo de pérdidas por fricción de un fluido en un ducto
D, ε Z V S
L
"A) Perdidas por fricción calculadas a partir de la ecuación de Darcy -Weisbach " Delta_P_f=f*(L/D)*(ro_r*V^2/2) "[Pa]" "donde" "L=longitud del tubo [m] " "D= Diámetro interno [m] " "V=velocidad promedio del fluido [m/s]"
"f= factor de fricción, utilizando la ecuación de Colebrooks se tiene: " (1/(sqrt(f)))=1,14+2*log10(D/epsilon)-2*log10(1+(9,3/(Re*(epsilon/D)*sqrt(f)))) Re=D*V*ro_r/mu "Numero de Reynolds" D=0,05 V=8,7 L=1 mu=VISCOSITY(fluid$ ;x=1;T=T_r_evap) "viscosidad cinematica kg/m-s" ro_r=DENSITY(fluid$ ;x=1;T=T_r_evap) "Densidad del fluido refrigerante [kg/m3]" epsilon=0,000001524 "[m]" "epsilon=rugosidad de la pared de los tubos cobre"
fluid$ = 'R22' T_r_evap=-40 "temperatura de evaporación"
2 EJEMPLO DE APLICACIÓN Un ejemplo típico donde puede ser de utilidad EES. Modelo de Válvula de expansión ideal En un ciclo de refrigeración, se tiene una válvula de expansión que opera con fluido R134a. El área de entrada y salida del fluido es 0.011 m2 Determinar: la temperatura, flujo de masa y velocidad del fluido a la descargada de la válvula.
Las condiciones a la entrada y salida de la válvula son las siguientes.
Desarrollo: Balance de masa :
Donde: Flujo de masa [kg/s] Área transversal del ducto [ m2] Velocidad del fluido [m/s] Volumen especifico del fluido [m3/kg] Se sabe que:
Balance de energía: Se asume que la válvula esta aislada, no hay partes móviles es decir el efecto del trabajo y transferencia de calor son nulos.
Usualmente el efecto de la energía cinética no se considera por su escasa influencia en el resultado y por la dificultad en resolver el sistema con este término. En EES este efecto puede ser evaluado fácilmente. Se recomienda seguir la siguiente metodología:
Definición del problema. Definir el sistema de unidades.(kPa, kJ). Definir datos suministrados. Definir el sistema de ecuaciones: Balance de masa y de energía Definición de propiedades. Chequear unidades (kJ/kg por m2/s2) Definir variables de optimización
T_1=50 [C]: P_1=700 [kPa]: Vel_1=15 [m/s]: A_1=0,0110 [m^2] P_2=300 [kPa] m_dot_1=m_dot_2 m_dot_1=A_1*Vel_1/v_1 m_dot_2=A_2*Vel_2/v_2 A_2=A_1
m_dot_1*(h_1+Vel_1^2/2)=m_dot_2*(h_2+Vel_2^2/2)
v_1=volume(R134a;T=T_1;P=P_1): h_1=enthalpy(R134a;T=T_1;P=P_1) v_2=volume(R134a;T=T_2;P=P_2): h_2=enthalpy(R134a;T=T_2;P=P_2) *convert(m^2/s^2;kJ/kg) -
chequear unidades e incluir: se selecciona la variable y con el botón derecho se selecciona variable info y se le asignan unidades. Otra forma es por variable info directamente. Si se dejan sin nombrar detectara problemas de unidades. Cuando se tiene un sistema consistente de ecuaciones y unidades se puede obviar los mensajes de error en las unidades o desactivar en las preferencias, pero en la mayoría de los casos ayuda para detectar errores en la formulación del problema.
Escribiendo en EES:
Cuando se nombran las variables, el programa no hace diferencia si se utiliza letras mayúsculas o minúsculas para nombrar la misma variable. Todo texto dentro de comillas o corchetes es considerado como comentario. Si se pone dentro de comillas es mostrado dentro de las ecuaciones formateadas y archivos en Latex, si se pone dentro de corchetes es eliminado de este tipo de aplicaciones. Los espacios y líneas en blanco son ignorados por el programa. Las variables deben ser nombradas con letras al inicio y pueden ser combinadas con caracteres diferentes a: ( ), *, /, +, -, { }, ^, “,.,:. Por ejemplo los Arrays son nombrados con [ ] (eje: b[1]=30) o las variables intercambiables con $ (eje: d$='2'). El máximo número de caracteres para nombrar una variable es 30. Varias ecuaciones pueden ser montadas sobre la misma línea, pero deben ser separadas por : ó ; dependiendo de la configuración dada en la configuración regional de Windows. El máximo numero de caracteres por línea es 255. Se puede usar para radicales o potencias el símbolo ^ ó **. No se requiere un orden específico de las ecuaciones. Solo el criterio de ordenamiento del usuario y facilitar la revisión del programa, para detectar problemas. La posición de datos conocidos e incógnitas no afecta la ejecución del programa.
Las unidades de variables constantes pueden ser ingresadas en paréntesis cuadrados y aparecerán en todos los despliegues de resultados, tablas y gráficos.
Luego de chequera las unidades y la consistencia del problema se ejecuta el programa. Al regresar a la ventana de las ecuaciones los comentarios aparecen en color azul por defecto pero puede ser modificado en preferencias. Las propiedades termodinámicas pueden ser ingresadas fácilmente mediante el comando “funtion info”. El primer argumento de la función es el nombre de la sustancia. Los demás argumentos son una o dos variables independientes sin importar cual, designadas con las siguientes letras T,P,H,S,U,V y X que corresponden a la temperatura, presión, entalpía específica, entropía específica, energía interna específica, volumen específico y calidad. Para el aire húmedo es necesario además incluir W, R, D y B que corresponden a humedad específica, humedad relativa, temperatura de dew point y temperatura de bulbo húmedo.
Es usualmente buena idea definir los valores mínimos o máximos de las variables calculadas, para facilitar la convergencia del problema. Esto se puede hacer una vez compilado el programa y chequeado que no hay errores de sintaxis, mediante el menú opciones y variable info. Por defecto las variables tienen un valor probable de 1.
Como se explico antes, aquí se puede ingresar las unidades de cada variable. También se puede definir las variables clave de la solución, con lo cual permite ingresar comentarios sobre la misma y ver la solución de estas variables en una ventana independiente. En la columna de display se puede seleccionar el formato en que los resultados son presentados A : automáticamente selecciona el formato adecuado. Es la opción por defecto. F: para fijar una cantidad determinada de dígitos, en la segunda columna del display. E: para expresar el resultado en forma exponencial. La tercera columna del display permite seleccionar la forma de presentar los resultados.(subrayados, negrilla en recuadro, escondidos, normal). Especialmente con ecuaciones no lineales es necesario definir algunas veces valores probables de la solución para ayudar la convergencia. En este ejemplo no es necesario pero cuando se requiera se debe tener en cuenta la física del problema para asignar estos valores. Por ejemplo valores negativos de volumen específico no tendrían sentido en este caso, luego se puede poner como límite inferior cero. Al ejecutar el programa aparece un cuadro de dialogo donde se indica el tiempo transcurrido para el cálculo, el máximo valor residual (diferencia entre igualdades) y máxima variación de las variables respecto a la última iteración. En este ejemplo el tiempo de ejecución del programa es muy pequeño por las características del problema y cantidad de ecuaciones, sin embargo cuando el programa se acerca al límite de su capacidad (6000 ecuaciones) toma su tiempo en encontrar la solución y muestra en el mismo cuadro de dialogo el número de bloque y número de iteraciones. Un bloque es set de ecuaciones que EES genera y que puede ser resuelto independientemente. EES utiliza por defecto como criterio de parada de la ejecución del programa 100 iteraciones, 60 segundos de duración, máximo residual de 10-6 y máxima variación entre iteraciones de 10-9 que pueden ser modificadas en el menú options y preferencias. Si el residual es mayor al seleccionado el sistema no es correctamente resuelto.
Una de las más útiles herramientas de EES es el análisis paramétrico por medio de tablas. En este ejemplo resultaría interesante evaluar el efecto de la presión de salida sobre la velocidad y temperatura de salida: Con esta herramienta se pueden generar gráficos que permiten evaluar el efecto de esta variable. El procedimiento para generar la tabla es mediante el menú tables, new parametric table. Aquí se selecciona la variable que se requiere parametrizar y las variables resultado para ver su efecto.
Simplemente se seleccionan en la columna izquierda y se pasan a la columna derecha mediante el botón Add. En este cuadro se puede también definir el número de filas de la tabla y se le puede asignar un nombre. Por defecto se considera 10 filas y las tablas son numeradas en forma secuencial. Luego de ejecutar mediante OK, aparece la tabla. Es aquí donde se asigna valores a la variable parametrica (P_2) de 100 a 550 para este ejemplo.
Esto de puede hacer manualmente o mediante alguno de los criterios disponibles que se explicaran mas adelante. Luego se debe ejecutar el programa desde el menú “calculate” usando solve table. Previamente se debe borrar o bloquear la variable parametrizada P_2 dentro del programa ya que fue definida dentro de la tabla, si no es borrada aparecerá un mensaje de error que indica que hay esta definida dos veces P_2.
En solve table se puede seleccionar la tabla y el número de filas que se quiere entren en el cálculo. Cuando se selecciona actualizar los valores probables el programa toma la última fila para esta actualización y para la ventana de resultados. Al oprimir OK aparecerá la tabla con los valores calculados en azul y los valores parametrizados en negro. (Esto puede ser modificado en preferencias, se vera mas adelante)
La relación entre P_2 y las demás variables de salida es aparente, pero puede verse mas claramente mediante un grafico. Se debe relacionar en el menú Plots, New plot window.
Se debe seleccionar el tipo de gráfico, para este ejemplo se selecciona el tipo X-Y (los demás serán detallados mas adelante). Aparece el siguiente cuadro de dialogo:
Aquí se selecciona que variable debe ir en cada eje, el formato de las cifras, tipo de grilla, la tabla seleccionada el número de filas que se requiere aparezca en el gráfico y otras funciones que serán detalladas mas adelante. Luego de seleccionar estos parámetros se selecciona OK y se obtiene: