En esta serie de artículos voy a tratar de explicar en qué consiste y qué funcionalidades aporta el módulo de Scripting de DesignBuilder.
Originalmente, el módulo de Scripting se llamaba módulo EMS, en referencia a su principal cometido que era implementar las prestaciones de EMS propias de EnergyPlus. Posteriormente se decidió enriquecer este módulo con otro conjunto de potentes funcionalidades (que veremos en otros artículos), pasando a denominarse módulo Scripting.
Empezaremos por las funcionalidades EMS, que si bien están recogidas en gran detalle en la EMS Application Guide, creo interesante presentaros una introducción algo más digerible.
El EMS de EnergyPlus
EMS o Energy Management System (Sistema de Gestión Energético) es un término genérico aplicable a los sistemas de control de instalaciones de climatización. En el contexto de EnergyPlus constituye una serie de funcionalidades para introducir algoritmos de control propios que vayan más allá de los que EnergyPlus facilita de forma estándar.
Estos algoritmos de control pueden aplicarse no sólo a los sistemas sino también a elementos de la envolvente (elementos de sombra, características constructivas) permitiendo simular estrategias «especiales».
La forma de introducir un algoritmo propio mediante EMS se basa en escribir un programa que relaciona entradas (sensores) con salidas (actuadores). Veamos de qué se trata:
Entradas
Las variables de entrada pueden ser de dos tipos:
- Variables Internas: propiedades del modelo a las que es posible acceder desde el programa EMS. Es un conjunto predefinido por EnergyPlus donde tenemos variables para la geometría, cargas internas o características de los sistemas.
- Sensores: los sensores referencian a resultados de la simulación. Podemos asignar un sensor a un determinado resultado y utilizarlo como variable de entrada a nuestro programa. Por ejemplo, seleccionar el resultado de temperatura seca de una zona y escribir un programa que haga algo cuando dicha temperatura alcance un determinado valor.
El potencial de usar sensores es muy grande ya que EnergyPlus es capaz de generar multitud de resultados diferentes, que podremos usar como variables de entrada en nuestros programas.
Salidas
Las salidas de nuestros programas EMS pueden ser de dos tipos:
- Actuadores: las fundamentales. Son aquellos parámetros del modelo que EnergyPlus ha predefinido para que podamos actuar sobre ellos a través del EMS. Tenemos actuadores relacionados con los sistemas, con la envolvente, con la ventilación, las ganancias internas, etc. Existe un actuador especialmente versátil que es el actuador tipo Schedule (horario) dado que permite modificar cualquier horario y éstos pueden modificar múltiples variables de nuestros modelo. Siguiendo el ejemplo anterior, podemos hacer que una vez se supere determinada temperatura en la zona, el caudal de ventilación (que dispone de un actuador específico) se incremente un 500%.
- Salidas de resultados: podemos hacer que cualquier variable de nuestro programa se convierta en una salida estándar de EnergyPlus, y visualizarla posteriormente con nuestro visor de resultados o procesar este resultado según necesitemos.
Una vez vista la funcionalidad básica del módulo de EMS, vamos a ver la pinta que tiene un programa de EMS, si bien no entraré en detalle a explicar cada uno de sus elementos, para lo cual te remito a la guía oficial de EnergyPlus.
Los comentarios en verde (que han de empezar por !) dan una breve descripción de qué significa cada comando de entrada.
Este ejemplo es relativamente sencillo en lo que se refiere al propio programa, ya que lo único que hace es una asignación de variables, de sensores a actuadores, con la palabra clave SET.
Los programas EMS pueden ser algo más complejos, incluyendo expresiones condicionales (bloques IF o WHILE), expresiones y funciones matemáticas o cálculos psicrométricos. Pero poco más. No te asustéis pensando que es necesario saber programar dado que la sintaxis es muy reducida, aunque las posibilidades sean grandes.
En siguientes entregas veremos cómo DesignBuilder integra el EMS dentro del módulo de Scripting, con funcionalidades añadidas para ayudarnos a generar el código así como el resto de implementaciones que incluye el módulo (como C# o Python) para interactuar con nuestro modelo de simulación.