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

# I am using EMS to assign different complex fenestration constructions to windows - can I change the frame also?

I am modelling the effect of automated shades by using EMS to assign different ComplexFenestrationState constructions to each window in my building in response to sensor variables.

As I understand it, the Surface/Construction Type actuator applied to a FenestrationSurface:Detailed element effectively replaces the Construction Name field with the value supplied to the actuator.

When the shades are deployed, the thermal properties of the frame are also affected by the presence of the shade. This means that the Frame and Divider Name field in the FenestrationSurface:Detailed element should also be replaced to refer to frame properties that include the shade. I have checked the EDD file and there doesn't seem to be a corresponding actuator that would allow me to make this change. Is it possible to change frame and divider properties with EMS?

edit retag close merge delete

Sort by » oldest newest most voted

The actuator type that you need for switching between different constructions is called Construction State. See the EMS actuator example below.

EnergyManagementSystem:Actuator,
emsACT_WINCONST_WinWHOLE,!- Name
FSD_WindowWHOLE,         !- Actuated Component Unique Name
Surface,                 !- Actuated Component Type
Construction State;      !- Actuated Component Control Type


The information that is set is not exactly the construction name though, or at least not as a string. Energyplus stores each construction name as number internally (I think this is done to speed up the simulation because else it would need to pass full strings and use string compare operations at each timestep). This means that inside your EMS script you have to set the actuator to the number that represents a certain construction. The problem is, as a user you have no idea what this number is (I believe it it uses the order of appearance in the IDF). Therefore you have to request the number belonging to each construction name first. The EnergyManagementSystem:ConstructionIndexVariable object request this number and stores it in a variable which you can use assign to the actuator.

EnergyManagementSystem:ConstructionIndexVariable,
conIndex_tAvtb_0,      !- Name
CFS_tAvtb_0; !- Construction Object Name


I attached a working example of a IDF which illustrates this idea (see this dropbox link). It switches between two CFS constructions at noon (this is vertical blind. It switches between fully open and fully closed). There's a lot of other CFStates and EMS stuff in here which you should ignore.

Regarding your question about the frame: This I'm not entirely sure off (maybe someone else can confirm?), the frame is assigned at surface level and not inside the CFS. I would therefore think the frame remains the same and that the actuator only changes the glazing construction only. If that is correct than there wouldn't be an easy way to change the frame state. If that is the case: maybe you can consider modelling the frame as an opaque construction, with equivalent characteristics, and use the construction state actuator to switch the state of that.

P.S.: A good way to verify that your model works as intended is to request surface construction index as an output (I think it is an advanced output variable). Using the attached IDF example: This image shows the construction switch and the expected change in net window heat gains.

more

Thanks very much for your answer. I have already managed to get the complex fenestration switching and I was just asking about the frame, but I don't believe there are any examples of .idfs verified to work correctly that do the complex fenestration switching on the forum, so I'm sure your example will be very valuable to others trying to set this up. I will investigate your suggestion about converting the frame into an equivalent opaque construction - that could be a workable solution.

( 2020-04-02 01:24:50 -0600 )edit