Example
13. Surface Construction Actuator for Thermochromic
Window[LINK]
Problem Statement[LINK]
There are a variety of novel new technologies for dynamic
thermal envelopes that are the subject of research and
development. Can we use EMS to investigate dynamic envelope
technologies?
EMS Design Discussion[LINK]
As an example, we will show how to use the EMS to replicate
a thermochromic window. EnergyPlus already has a dedicated
model for thermochromic windows (see the input object
WindowMaterial:GlazingGroup:Thermochromic) that is
demonstrated in the example file called
ThermochromicWindow.idf. For this EMS example we will start
with that file, remove the WindowMaterial:GlazingGroup:Thermochromic
and emulate the thermochromic window using the EMS actuator
called “Surface” with the control type “Construction
State.”
The first step is to create the individual Construction
objects that will represent the individual states. The
original thermochromic example file already includes a series
of WindowMaterial:Glazing
input objects that correspond to the properties of the
thermochromic glazing at different temperatures. These
glazing layers are then used in a series of Construction
objects that represent the entire glazing system description
at each temperature “state.” Separate EnergyManagementSystem:ConstructionIndexVariable
objects are then added for each Construction
to setup Erl variables that point to each construction.
The control algorithm is very simple. The temperature of
the glazing is used in a long IF-ELSEIF-ELSE-ENDIF block to
select the appropriate construction to assign the surface. In
this case the native thermochromic model has an important
advantage in that the dedicated model can access the
temperature of the middle pane in a triple glazed window
whereas the EMS model can only access the temperature of the
outside pane or the inside pane. Here we use the temperature
of the outside face of the surface because it is closer to the
temperature of the middle pane (which can be much higher when
in direct sun).
The main input objects that implement this example of
EMS-based thermochromic glazing system are listed below. The
surface called “Perimeter_ZN_1_wall_south_Window_1” is the one
being actuated by EMS and we can observe the outcomes of the
override by reporting the output variable called Surface Construction
Index. See the example file called
EMSThermochromicWindow.idf.
Construction,
TCwindow_25, !- Name
Clear3PPG, !- Outside Layer
AIR 3MM, !- Layer 2
WO18RT25, !- Layer 3
AIR 8MM, !- Layer 4
SB60Clear3PPG; !- Layer 5
EnergyManagementSystem:ConstructionIndexVariable,
TCwindow_25,
TCwindow_25;
Construction,
TCwindow_27, !- Name
Clear3PPG, !- Outside Layer
AIR 3MM, !- Layer 2
WO18RT27, !- Layer 3
AIR 8MM, !- Layer 4
SB60Clear3PPG; !- Layer 5
EnergyManagementSystem:ConstructionIndexVariable,
TCwindow_27,
TCwindow_27;
<<SNIPPED states between 27C and 80C>>
Construction,
TCwindow_80, !- Name
Clear3PPG, !- Outside Layer
AIR 3MM, !- Layer 2
WO18RT80, !- Layer 3
AIR 8MM, !- Layer 4
SB60Clear3PPG; !- Layer 5
EnergyManagementSystem:ConstructionIndexVariable,
TCwindow_80,
TCwindow_80;
Construction,
TCwindow_85, !- Name
Clear3PPG, !- Outside Layer
AIR 3MM, !- Layer 2
WO18RT85, !- Layer 3
AIR 8MM, !- Layer 4
SB60Clear3PPG; !- Layer 5
EnergyManagementSystem:ConstructionIndexVariable,
TCwindow_85,
TCwindow_85;
EnergyManagementSystem:Sensor,
Win1_Tout,
Perimeter_ZN_1_wall_south_Window_1,
Surface Outside Face Temperature;
EnergyManagementSystem:Actuator,
Win1_Construct,
Perimeter_ZN_1_wall_south_Window_1,
Surface,
Construction State;
EnergyManagementSystem:ProgramCallingManager,
My thermochromic window emulator,
BeginTimestepBeforePredictor,
ZN_1_wall_south_Window_1_Control;
EnergyManagementSystem:Program,
ZN_1_wall_south_Window_1_Control,
IF Win1_Tout < = 26.0 ,
Set Win1_Construct = TCwindow_25,
ELSEIF Win1_Tout < = 28.0 ,
SEt Win1_Construct = TCwindow_27,
ELSEIF Win1_Tout < = 30.0 ,
SET Win1_Construct = TCwindow_29,
ELSEIF Win1_Tout < = 32.0 ,
SET Win1_Construct = TCwindow_31,
ELSEIF Win1_Tout < = 34.0 ,
SET Win1_Construct = TCwindow_33,
ELSEIF Win1_Tout < = 36.0 ,
SET Win1_Construct = TCwindow_35,
ELSEIF Win1_Tout < = 38.0 ,
SET Win1_Construct = TCwindow_37,
ELSEIF Win1_Tout < = 40.0 ,
SET Win1_Construct = TCwindow_39,
ELSEIF Win1_Tout < = 42.0 ,
SET Win1_Construct = TCwindow_41,
ELSEIF Win1_Tout < = 44.0 ,
SET Win1_Construct = TCwindow_43,
ELSEIF Win1_Tout < = 47.5 ,
SET Win1_Construct = TCwindow_45,
ELSEIF Win1_Tout < = 52.5 ,
SET Win1_Construct = TCwindow_50,
ELSEIF Win1_Tout < = 57.5 ,
SET Win1_Construct = TCwindow_55,
ELSEIF Win1_Tout < = 62.5 ,
SET Win1_Construct = TCwindow_60,
ELSEIF Win1_Tout < = 67.5 ,
SET Win1_Construct = TCwindow_65,
ELSEIF Win1_Tout < = 72.5 ,
SET Win1_Construct = TCwindow_70,
ELSEIF Win1_Tout < = 77.5 ,
SET Win1_Construct = TCwindow_75,
ELSEIF Win1_Tout < = 82.5 ,
SET Win1_Construct = TCwindow_80,
ELSE ,
SET Win1_Construct = TCwindow_85,
ENDIF;
Output:Variable, Perimeter_ZN_1_wall_south_Window_1, Surface Construction Index, timestep;
Example 13. Surface Construction Actuator for Thermochromic Window[LINK]
Problem Statement[LINK]
There are a variety of novel new technologies for dynamic thermal envelopes that are the subject of research and development. Can we use EMS to investigate dynamic envelope technologies?
EMS Design Discussion[LINK]
As an example, we will show how to use the EMS to replicate a thermochromic window. EnergyPlus already has a dedicated model for thermochromic windows (see the input object WindowMaterial:GlazingGroup:Thermochromic) that is demonstrated in the example file called ThermochromicWindow.idf. For this EMS example we will start with that file, remove the WindowMaterial:GlazingGroup:Thermochromic and emulate the thermochromic window using the EMS actuator called “Surface” with the control type “Construction State.”
The first step is to create the individual Construction objects that will represent the individual states. The original thermochromic example file already includes a series of WindowMaterial:Glazing input objects that correspond to the properties of the thermochromic glazing at different temperatures. These glazing layers are then used in a series of Construction objects that represent the entire glazing system description at each temperature “state.” Separate EnergyManagementSystem:ConstructionIndexVariable objects are then added for each Construction to setup Erl variables that point to each construction.
The control algorithm is very simple. The temperature of the glazing is used in a long IF-ELSEIF-ELSE-ENDIF block to select the appropriate construction to assign the surface. In this case the native thermochromic model has an important advantage in that the dedicated model can access the temperature of the middle pane in a triple glazed window whereas the EMS model can only access the temperature of the outside pane or the inside pane. Here we use the temperature of the outside face of the surface because it is closer to the temperature of the middle pane (which can be much higher when in direct sun).
EMS Input Objects[LINK]
The main input objects that implement this example of EMS-based thermochromic glazing system are listed below. The surface called “Perimeter_ZN_1_wall_south_Window_1” is the one being actuated by EMS and we can observe the outcomes of the override by reporting the output variable called Surface Construction Index. See the example file called EMSThermochromicWindow.idf.
Documentation content copyright © 1996-2026 The Board of Trustees of the University of Illinois and the Regents of the University of California through the Ernest Orlando Lawrence Berkeley National Laboratory. All rights reserved. EnergyPlus is a trademark of the US Department of Energy.
This documentation is made available under the EnergyPlus Open Source License v1.0.