Tutorial de análisis paramétrico - KPI de script personalizado - Confort TM59
Este ejemplo muestra cómo ejecutar un análisis paramétrico con un KPI personalizado para evaluar el porcentaje de superficie del edificio que no cumple las condiciones de confort según el método CIBSE TM59. DesignBuilder no incluye un KPI integrado para el confort TM59, por lo que se añade mediante un script de Python.
Se proporcionan instrucciones detalladas para configurar un modelo de apartamento de 2 dormitorios para un análisis paramétrico TM59. Si lo prefieres, puedes utilizar tu propio modelo TM59 y adaptar las tareas siguientes. En ese caso, los resultados serán distintos de los presentados en el Paso 7.
Paso 1 - Crear un modelo base
1. Crea un modelo nuevo situado en London Gatwick.
Nota: En este ejemplo se utilizan los datos climáticos predeterminados de London Gatwick. Sin embargo, para el análisis TM59, el requisito mínimo para las simulaciones TM59 es utilizar datos DSY1 de la ubicación más cercana y el escenario 2020s, High emissions, percentil 50th %. Puedes obtener archivos climáticos CIBSE Future 2016 adecuados para análisis TM59 en la página de DesignBuilder de datos climáticos CIBSE.
2. Añade un edificio con los ajustes predeterminados y dibuja un bloque rectangular de 10m x 5m. Debe tener el aspecto de la imagen siguiente.
3. Divide el bloque en 5 zonas: 2 dormitorios individuales, 1 salón/cocina y 1 pasillo. Las dimensiones de cada zona se indican en la imagen siguiente. Introduce nombres apropiados para cada zona.
La imagen anterior también muestra los colores de zona asociados a la asignación de actividad; consulta el punto 9 más abajo.
4. Define las ventanas y puertas exteriores. A nivel de edificio:
-
Elimina la ventana grande orientada al sur de Bedroom2.
-
Elimina todas las ventanas orientadas al norte.
-
Elimina la ventana orientada al sur de la zona WC.
5. Ve a la superficie orientada al oeste de Living/Kitchen y:
-
En la pestaña Huecos, añade una puerta exterior nueva marcando la casilla Puertas > Exteriores > Generar automáticamente .
-
Establece Anchura preferida en 1.0m.
-
Establece Altura preferida en 2.1m.
6. Ve a la superficie orientada al sur de WC y añade una ventana personalizada de 1m x 1m. Como es personalizada, su tamaño no se verá afectado por los cambios paramétricos de % de ventana respecto al muro.
7. Abre el cuadro Opciones del modelo y aplica los siguientes ajustes:
-
Datos de ganancias: Inicial
-
Nivel de definición de ganancias: 1- Globalmente en opciones del modelo
-
Método de ocupación: 3- Número de personas
-
Ganancias latentes de ocupación: 2- Fracción fija
-
Unidades de ganancias de equipos: 2-Potencia absoluta de zona
-
Unidades de ganancias de iluminación: 1-Densidad de potencia
-
Ventilación natural: Calculada
-
En la pestaña Avanzado , desmarca la opción Agrupar ventanas similares de la superficie .
-
En la pestaña Simulación , establece Pasos de tiempo por hora en 6. Este cambio no es imprescindible para seguir el tutorial, pero es una buena práctica para simulaciones precisas de ventilación natural calculada, especialmente cuando se requieren resultados precisos de sobrecalentamiento.
8. Activa los resultados TM59:
-
En el mismo cuadro Opciones del modelo, en la pestaña Simulación, bajo los encabezados Resultados, representables y Confort y ambiente , marca la casilla CIBSE TM59 para que DesignBuilder genere los resultados estándar TM59. Estos resultados necesitarán un procesamiento adicional para obtener un único valor de falta de confort del edificio completo; escribiremos un script de Python para hacerlo en el Paso 3.
-
En la misma pestaña Simulación, bajo los encabezados Resultados y Otros resultados , selecciona la opción Salida SQLite . Así EnergyPlus generará los resultados en un formato que pueda leer nuestro script TM59.
Estos ajustes se explican en la Guía de análisis TM59.
Pulsa Aceptar para cerrar el cuadro Opciones del modelo.
9. En la pestaña Actividad, define las actividades de cada zona. Encontrarás las actividades TM59 en la categoría Espacios residenciales :
-
Dormitorios: TM59_SingleBedroom
-
LivingKitchen: TM59_2-BedLivingKitchen
-
Pasillo: TM59_CommonCirculationAreas
-
WC: Aseo doméstico
10. En la pestaña HVAC a nivel de edificio:
-
Selecciona la plantilla de calefacción por radiador Boiler HW, Nat Vent HVAC. Los principales cambios que introduce esta plantilla HVAC en el modelo para este tutorial son:
-
Desactiva Refrigeración
-
Activa Ventilación natural
-
Nota : Solo se informará de los resultados TM59 para zonas sin refrigeración mecánica.
11. En la pestaña Huecos a nivel de edificio:
-
Bajo los encabezados Ventanas exteriores > Funcionamiento , cambia Definición de programación a 2-Programación personalizada
-
Cambia Programación de funcionamiento a TM59_Unrestricted_Openings
Nota: Approved Document O indica que para edificios a nivel del suelo deben aplicarse restricciones de apertura por privacidad y seguridad. Sin embargo, en este ejemplo todas las aperturas son libres.
-
Bajo el encabezado Puertas > Exteriores > Funcionamiento :
-
Establece % de tiempo que la puerta está abierta en 0.
-
-
Bajo el encabezado Puertas > Interiores > Funcionamiento :
-
Establece Definición de programación en 2-Programación personalizada.
-
Cambia Programación de funcionamiento a TM59_Unrestricted_Openings.
-
Establece % de área de apertura de la puerta y % de tiempo que la puerta está abierta en 100 para las puertas interiores.
-
Marca Generar automáticamente para crear puertas en todas las superficies interiores de forma predeterminada.
-
Establece Anchura preferida en 0.9m y Altura preferida en 2.0m.
-
Elimina la puerta interior entre los 2 dormitorios accediendo a la partición contigua y desmarcando la casilla Generar automáticamente .
-
Del mismo modo, elimina la puerta interior entre las zonas LivingKitchen y WC.
-
12. En la pestaña Iluminación a nivel de edificio:
-
Selecciona la TM59_Lighting plantilla de iluminación
El modelo debería tener ahora el aspecto de la imagen siguiente.
Paso 2 – Ejecutar una simulación para comprobar el modelo base
Haz clic en la pestaña Simulación y ejecuta un conjunto de simulaciones para comprobar el funcionamiento del sistema de ventilación natural y entender cómo funciona en la práctica. Genera resultados horarios o subhorarios para comprender mejor el comportamiento del modelo.
¿Son adecuadas las condiciones de confort durante el verano? ¿Es excesiva la tasa de renovación de aire en algún momento? ¿Se producen calefacción y ventilación simultáneas? Ajusta el modelo y repite este paso hasta estar satisfecho con los resultados horarios del modelo base.
Paso 3 – Añadir variables de diseño paramétricas
En este paso configuraremos 2 variables de diseño basadas en los siguientes tipos de variables estándar:
-
% de apertura de ventana exterior
-
% de ventana respecto al muro
1. Abre el cuadro Ajustes paramétricos haciendo clic en el icono
de la barra de herramientas.
2. En la pestaña Tipo de análisis , establece Tipo de análisis en 1-Análisis paramétrico
3. Ve a la pestaña Variables de diseño y elimina todas las variables predeterminadas de la lista. Añadiremos aquí las 2 variables nuevas.
Consejo: Se recomienda añadir primero % de apertura de ventana exterior y después % de ventana respecto al muro. Así % de apertura de ventana exterior aparecerá en el eje X y habrá un conjunto de curvas, una por cada opción de % de ventana respecto al muro .
3.a. Añade una variable nueva y selecciona el tipo % de apertura de ventana exterior . Lo encontrarás en la categoría Ventilación natural/infiltración .
3.b. Cambia el Valor mínimo a 10 y el Valor máximo a 80 para permitir que el área de apertura de la ventana varíe entre 10 y 80%.
3.c. Establece Paso (paramétrico) en 10.
3.d. Mantén el destino predeterminado Edificio para que el % de apertura varíe de forma similar en todas las ventanas exteriores y pulsa Aceptar para completar la definición de la variable % de apertura de ventana exterior .
4.a. Añade una variable % de ventana respecto al muro nueva y cambia Valor mínimo a 20 y Valor máximo a 50 para que WWR varíe entre 20 y 50% en todas las superficies de pared con ventanas.
4.b. Establece Paso (paramétrico) en 10.
4.c. Mantén el destino predeterminado Edificio y pulsa Aceptar para completar la definición de la variable % de ventana respecto al muro .
Al completar el Paso 3, la pestaña Variables de diseño debería tener este aspecto:
No podrás guardar los ajustes y cerrar el cuadro Configuración de análisis hasta configurar los resultados del análisis paramétrico, que es la siguiente tarea.
Paso 4 – Configurar resultados paramétricos
Haz clic en la pestaña Resultados . La lista de resultados estará vacía si has empezado con un modelo nuevo.
1. Añade un resultado nuevo y, en el cuadro Resultados del análisis, consulta la lista de KPI disponibles.
2. DesignBuilder no incluye un resultado TM59, por lo que debemos crearlo. Primero hay que crear un resultado resumido o KPI para el confort TM59. Haz clic en KPI de resultado para abrir la lista de resultados resumidos existentes en el panel de información. Nuestro nuevo KPI personalizado no aparecerá al principio, así que créalo seleccionando el resultado resumido Custom Script existente de la lista de KPI, haciendo clic en el icono Crear copia del elemento resaltado de la barra de información y editando la copia.
3. Aplica los siguientes ajustes en el cuadro Resultado resumido.
Nota importante: El nombre «TM59 Discomfort %» introducido aquí debe coincidir con el texto escrito en el campo 0 del registro añadido a la tabla «ParamResultsTmp» del script. Puedes copiar el nombre y guardarlo en un lugar accesible para utilizarlo más adelante al escribir el script.
4. Guarda el KPI creado, selecciónalo en la pestaña Variables de salida y pulsa Aceptar para volver al cuadro principal Configuración de análisis.
Ahora puedes pulsar Aceptar en el cuadro Configuración de análisis para confirmar los ajustes del análisis paramétrico.
Paso 5 – Escribir un script de Python para el KPI personalizado
La siguiente tarea es escribir el script que leerá los resultados base de simulación TM59 del archivo de salida de EnergyPlus, los procesará y los devolverá a DesignBuilder como KPI personalizado. Los pasos son:
1. Haz clic en el icono Scripts
de la barra de herramientas para abrir el gestor de scripts y marca la casilla Activar scripts .
2. Haz clic en el elemento de selección Script. En el panel de información de la derecha aparecerá una lista de scripts existentes.
3. Haz clic en la categoría Python-Script y pulsa el icono Añadir elemento nuevo de la barra de información para abrir el cuadro de edición de scripts.
4. Marca la opción Activar programa .
5. Asigna al script el nombre "TM59 Discomfort".
6. Copia y pega el siguiente script en la ventana de script.
El script lee los resultados TM59 Criteria 1, 2 y 3 y los compara con los criterios correspondientes según las reglas TM59. El área de cualquier zona que cumpla los criterios anuales globales TM59 se excluye del área total que no los cumple. El valor TM59 Discomfort % de la simulación se añade a la tabla especial «ParamResultsTmp» junto con el nombre del objetivo para que DesignBuilder lo recoja al procesar los resultados.
El resultado resumido «TM59 Discomfort %» se añade como registro a la tabla «ParamResultsTmp». En un análisis más elaborado podrían añadirse más KPI personalizados a la tabla.
"""
Use CIBSE TM59 results as optimisation KPI.
Required model inputs:
- Enable TM59 outputs
- Add a "Custom Script" KPI, use "TM59 Discomfort %" name
- Run a "Standard" simulation to make sure that TM59 outputs are present
The script calculates a percentage of failing TM59 relevant zones.
"""
import ctypes
import os
from db_eplusout_reader import Variable, get_results
from db_eplusout_reader.constants import *
from db_eplusout_reader.exceptions import NoResults
THRESHOLD_A = 3
THRESHOLD_B = 32
def show_message(title, text):
ctypes.windll.user32.MessageBoxW(0, text, title, 0)
def zone_fails_tm59(zone_name):
"""Verify if given zone meets tm59 criteria."""
outputs_path = os.path.join(api_environment.EnergyPlusFolder, "eplusout.sql")
variable1 = Variable("EMS", "CIBSE TM59 Criterion A {}".format(zone_name), "%")
variable2 = Variable("EMS", "CIBSE TM59 Criterion B {}".format(zone_name), "H")
criterion_a_results = get_results(outputs_path, variable1, RP)
criterion_a = criterion_a_results.scalar
fail = criterion_a > THRESHOLD_A
try:
criterion_b_results = get_results(outputs_path, variable2, RP)
criterion_b = criterion_b_results.scalar
fail = fail or criterion_b > THRESHOLD_B
except NoResults:
pass
return fail
def after_energy_simulation():
site = api_environment.Site
fail_area = 0
total_area = 0 # area only includes TM59 zones
for block in active_building.BuildingBlocks:
for zone in block.Zones:
zone_name = zone.GetAttribute("SSEPObjectNameInOP")
try:
if zone_fails_tm59(zone_name):
fail_area += zone.FloorArea
total_area += zone.FloorArea
except NoResults:
pass
try:
percentage_area_fail = (fail_area / total_area) * 100
except ZeroDivisionError:
raise NoResults("No TM59 results found!")
# show_message("Results TM59", "{}% fails, total_area {}m2, fail_area: {}m2".format(percentage_area_fail, total_area, fail_area))
table = site.GetTable("ParamResultsTmp")
record = table.AddRecord()
record[0] = "TM59 Discomfort %"
record[1] = str(percentage_area_fail)
Nota: El script anterior se muestra con la línea show_message comentada, pero el mensaje puede activarse eliminando el carácter «#» para mostrar los resultados de cumplimiento TM59. Cuando hayas comprobado que el script TM59 funciona correctamente, puedes eliminar o comentar la línea show_message para evitar mensajes después de cada simulación durante la optimización.
Consejo: El repositorio de Github DesignBuilderSoftware \ db-scripts incluye las versiones más recientes del script anterior y una variante que informa de Criterion A y Criterion B por separado para un análisis más detallado de los resultados.
Paso 6 - Volver a ejecutar una simulación estándar
Haz clic en la pestaña Simulación y pulsa actualizar para volver a ejecutar una simulación anual base con la opción de resultados Mensual y RunPeriod marcada.
Nota importante: Asegúrate de desactivar los resultados Diarios, horarios y subhorarios para esta simulación, de modo que las próximas simulaciones de optimización y el procesamiento de resultados sean eficientes.
Paso 7 - Ejecutar la simulación paramétrica
Ve a la pestaña Paramétrico de la pantalla Simulación, asegúrate de estar a nivel de edificio y pulsa el icono Actualizar de la barra de herramientas para abrir las opciones de cálculo de optimización; después pulsa Iniciar para ejecutar la simulación paramétrica.
Una vez completada la simulación deberías ver en la pantalla principal resultados similares a los siguientes:
Algunos aspectos que deben tenerse en cuenta:
-
Los resultados paramétricos muestran que la variable % de apertura de ventana exterior tiene un efecto significativo en TM59 Discomfort % y que se necesitan mayores áreas de apertura para evitar la falta de confort por sobrecalentamiento.
-
El gráfico TM59 Discomfort % del análisis paramétrico solo incluye un número limitado de valores de resultado (0, 38.9, 69.5 y 100), ya que solo hay 4 combinaciones de zonas que cumplen o no cumplen en este pequeño modelo.
-
Los resultados sugieren que 20% WWR con un área de apertura de ventana del 60% podría ser una solución viable. Si se necesita más acristalamiento o una apertura menor, puede ser necesaria una solución de sombra, como voladizos o acristalamiento de control solar, para cumplir los requisitos de sobrecalentamiento TM59.






