Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

How to add variable envelope properties in EnergyPlus (through EMS)?

asked 2020-09-04 16:47:13 -0500

updated 2020-09-07 07:26:25 -0500

I was wondering if anyone could assist me with this issue.

Actually, I'm not sure how to model variable windows properties (such as U-Value), while such properties would change per timestep. More detailed, I already created a template and now all I need to do is having such window properties (like U-Value) parameterized within the IDF file (e.x., a P1, P2,..). The reason behind that is I should store such (P1,P2,...) variables with new values (which are generated through MATLAB Genetic Algorithm) and then save the template as a new IDF file and ask EP to run it!

In particular, I need to model for instance four variables, such as P1, P2, P3, and P4; which stand for U-Value of four windows that I have modeled for this case study. In this case, I'll ask EnergyPlus to store new values into those variables and then run my IDF file. This approach would let me have the window properties dynamic and varying per timestep.

Having all said, I'm not sure about the EMS part. For instance, what should I have as the sensor? From the EMS Application Guide, I realized that the EMS Sensor should be picked from the RDD file. However, I'm not able to find window U-value as an output there, as basically window U-Value is not an output!

Just to clarify more, all I need with such EMS setup is something like this (through EMS Program): "set U-Value= P1". But then, I'm not sure how to define the proper setup (such as sensor, actuator, or so on).

I'm really struggling with this EMS setup and any help would be highly appreciated!

Thanks! @Aaron Boranian @ericmartinpe

edit retag flag offensive close merge delete


@Mohammad Are you trying to SET window properties based upon some other parameter (outdoor air temperature, e.g.), or are you trying to USE window properties as an input to know how to change some other parameter?

Aaron Boranian's avatar Aaron Boranian  ( 2020-09-05 08:16:39 -0500 )edit

@Aaron Boranian Thank you so much for your continued support.

Also, I should appreciate your clarification. Yes, you are right! Basically, I'm trying to define a parameter (e.x., called as P1) as a window property through EMS of a template IDF file and then USE such parameter to have that window property as a dynamic.

The main goal of this approach would be having the window U-Value changed per each timestep- based on the values that would be fed to that P1 during each generation of the Genetic Algorithm (per timestep).

Thanks again for all your valuable hints.

Mohammad's avatar Mohammad  ( 2020-09-05 23:36:02 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2020-09-06 16:02:01 -0500

It sounds like the only difference between this question and your other post regarding using EMS for dynamic glazing is that now you have a Genetic Algorithm generating window properties each timestep. If this is done in a separate simulation outside of EnergyPlus in another tool like Matlab, then you can:

  1. write the window properties each timestep from Matlab to a CSV
  2. define a Schedule:File object in your IDF to read that CSV of window properties
  3. use an EMS Sensor for "Schedule Value" of the Schedule:File object to know how to change EMS Construction State using the EMS program each timestep

If the Genetic Algorithm is supposed to work in PARALLEL with EnergyPlus via co-simulation (two simulation engines working with the same building mode each timestep), then you will need to use the Functional Mock-Up Unit (FMU) / Functional Mock-Up Interface (FMI) feature. I haven't used this myself, but from this example in the documentation for an external shading controller there is an ExternalInterface:Actuator object used to link with the EMS:Actuator object.

edit flag offensive delete link more

answered 2020-09-07 00:32:18 -0500

updated 2020-09-07 00:38:06 -0500

@Aaron Boranian Thanks again for all your hints. There is, however, a big difference between this case and my other posted question while inquiring about switchable glazing through EMS in E+. Basically, here, I'm not looking for any ruleset to put as the EMS Program rather than just having the window properties variable per timestep (and save that template as a new IDF file and running it). However, in my other post, I was inquiring about adding a (temperature-based) rule-set for window properties.

I'm so sorry if I couldn't mean myself clearly. To explain in a better way, all I need to do for this case is defining a template including an EMS Program, where my window value would be stored into a parameter (e.x., called as a P1). In this case, I'm not asking EMS Program to change those variables at all, and all I should do is storing some new values (generated by GA) to such a parameter.

I truly appreciate your suggested approach. It seems your approach should work for me, by following your approach: I'll save the generated values by GA as P1, and then will proceed with Schedule:File object and eventually the EMS setup as a Sensor and Program (inside my IDF template file).

As far as that Parallel simulation, I'm pretty sure this is not the case for this problem. In this approach, GA would optimize the building model after EP Lunch simulates the model, while the order would be as follows:

1) GA generates values for the window property. 2) Such values would be stored into the IDF file as new values for window properties. 3) EP lunch would simulate the model simply as an IDF file.

Thanks again for all your continued support.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Training Workshops


Question Tools



Asked: 2020-09-04 16:47:13 -0500

Seen: 888 times

Last updated: Aug 18 '23