Environments
The list of available environments is the following:
Env. name |
Location |
IDF file |
Weather type (*) |
Action space |
Simulation period |
---|---|---|---|---|---|
Eplus-demo-v1 |
Pittsburgh, USA |
5ZoneAutoDXVAV.idf |
- |
Discrete(10) |
01/01 - 31/03 |
Eplus-5Zone-hot-discrete-v1 |
Arizona, USA |
5ZoneAutoDXVAV.idf |
Hot dry (2B) |
Discrete(10) |
01/01 - 31/12 |
Eplus-5Zone-mixed-discrete-v1 |
New York, USA |
5ZoneAutoDXVAV.idf |
Mixed humid (4A) |
Discrete(10) |
01/01 - 31/12 |
Eplus-5Zone-cool-discrete-v1 |
Washington, USA |
5ZoneAutoDXVAV.idf |
Cool marine (5C) |
Discrete(10) |
01/01 - 31/12 |
Eplus-5Zone-hot-continuous-v1 |
Arizona, USA |
5ZoneAutoDXVAV.idf |
Hot dry (2B) |
Box(2) |
01/01 - 31/12 |
Eplus-5Zone-mixed-continuous-v1 |
New York, USA |
5ZoneAutoDXVAV.idf |
Mixed humid (4A) |
Box(2) |
01/01 - 31/12 |
Eplus-5Zone-cool-continuous-v1 |
Washington, USA |
5ZoneAutoDXVAV.idf |
Cool marine (5C) |
Box(2) |
01/01 - 31/12 |
Eplus-5Zone-hot-discrete-stochastic-v1 |
Arizona, USA |
5ZoneAutoDXVAV.idf |
Hot dry (2B) (**) |
Discrete(10) |
01/01 - 31/12 |
Eplus-5Zone-mixed-discrete-stochastic-v1 |
New York, USA |
5ZoneAutoDXVAV.idf |
Mixed humid (4A) (**) |
Discrete(10) |
01/01 - 31/12 |
Eplus-5Zone-cool-discrete-stochastic-v1 |
Washington, USA |
5ZoneAutoDXVAV.idf |
Cool marine (5C) (**) |
Discrete(10) |
01/01 - 31/12 |
Eplus-5Zone-hot-continuous-stochastic-v1 |
Arizona, USA |
5ZoneAutoDXVAV.idf |
Hot dry (2B) (**) |
Box(2) |
01/01 - 31/12 |
Eplus-5Zone-mixed-continuous-stochastic-v1 |
New York, USA |
5ZoneAutoDXVAV.idf |
Mixed humid (4A) (**) |
Box(2) |
01/01 - 31/12 |
Eplus-5Zone-cool-continuous-stochastic-v1 |
Washington, USA |
5ZoneAutoDXVAV.idf |
Cool marine (5C) (**) |
Box(2) |
01/01 - 31/12 |
Eplus-datacenter-discrete-v1 |
Chicago, USA |
2ZoneDataCenterHVAC_wEconomizer.idf |
- |
Discrete(10) |
01/01 - 31/12 |
Eplus-datacenter-continuous-v1 |
Chicago, USA |
2ZoneDataCenterHVAC_wEconomizer.idf |
- |
Discrete(10) |
01/01 - 31/12 |
Eplus-datacenter-discrete-stochastic-v1 |
Chicago, USA |
2ZoneDataCenterHVAC_wEconomizer.idf |
- (**) |
Box(4) |
01/01 - 31/12 |
Eplus-datacenter-continuous-stochastic-v1 |
Chicago, USA |
2ZoneDataCenterHVAC_wEconomizer.idf |
- (**) |
Box(4) |
01/01 - 31/12 |
Eplus-IWMullion-discrete-v1 |
Pittsburgh, USA |
IWMullion.idf |
- |
Discrete(10) |
01/01 - 31/12 |
Eplus-IWMullion-continuous-v1 |
Pittsburgh, USA |
IWMullion.idf |
- |
Discrete(10) |
01/01 - 31/03 |
Eplus-IWMullion-discrete-stochastic-v1 |
Pittsburgh, USA |
IWMullion.idf |
- (**) |
Box(2) |
01/01 - 31/03 |
Eplus-IWMullion-continuous-stochastic-v1 |
Pittsburgh, USA |
IWMullion.idf |
- (**) |
Box(2) |
01/01 - 31/03 |
(*) Weather types according to DOE’s classification.
(**) In these environments, weather series change from episode to episode. Gaussian noise with 0 mean and 2.5 std is added to the original values in order to add stochastic.
Observation/action spaces
Observation and action spaces are defined in sinergym/sinergym/data/variables specifically for each IDF file. Therefore, external interface with simulation is defined in the same way.
This is a definition example for 5ZoneAutoDXVAV.idf and its variants:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE BCVTB-variables SYSTEM "variables.dtd">
<space>
<!--
**OBSERVATIONS**
Type: Box(19)
===== ============================================= ==== ====
N Variable name Max Min
===== ============================================= ==== ====
0 Site Outdoor Air Drybulb Temperature -5e6 5e6
***** ********************************************* **** ****
1 Site Outdoor Air Relative Humidity -5e6 5e6
***** ********************************************* **** ****
2 Site Wind Speed -5e6 5e6
***** ********************************************* **** ****
3 Site Wind Direction -5e6 5e6
***** ********************************************* **** ****
4 Site Diffuse Solar Radiation Rate per Area -5e6 5e6
***** ********************************************* **** ****
5 Site Direct Solar Radiation Rate per Area -5e6 5e6
***** ********************************************* **** ****
6 Zone Thermostat Heating Setpoint Temperature -5e6 5e6
***** ********************************************* **** ****
7 Zone Thermostat Cooling Setpoint Temperature -5e6 5e6
***** ********************************************* **** ****
8 Zone Air Temperature -5e6 5e6
***** ********************************************* **** ****
9 Zone Thermal Comfort Mean Radiant Temperature -5e6 5e6
***** ********************************************* **** ****
10 Zone Air Relative Humidity -5e6 5e6
***** ********************************************* **** ****
11 Zone Thermal Comfort Clothing Value -5e6 5e6
***** ********************************************* **** ****
12 Zone Thermal Comfort Fanger Model PPD -5e6 5e6
***** ********************************************* **** ****
13 Zone People Occupant Count -5e6 5e6
***** ********************************************* **** ****
14 People Air Temperature -5e6 5e6
***** ********************************************* **** ****
15 Facility Total HVAC Electricity Demand Rate -5e6 5e6
***** ********************************************* **** ****
16 Current day 1 31
***** ********************************************* **** ****
17 Current month 1 12
***** ********************************************* **** ****
18 Current hour 0 23
===== ============================================= ==== ====
-->
<observation-space>
<low value="-5e6"/>
<high value="5e6"/>
<shape value="19"/>
<dtype value="numpy.float32"/>
</observation-space>
<!--
**DISCRETE ACTIONS**
Type: Discrete(10)
====== ================ ================
Num Heating setpoint Cooling setpoint
====== ================ ================
0 15 30
****** **************** ****************
1 16 29
****** **************** ****************
2 17 28
****** **************** ****************
3 18 27
****** **************** ****************
4 19 26
****** **************** ****************
5 20 25
****** **************** ****************
6 21 24
****** **************** ****************
7 22 23
****** **************** ****************
8 22 22
****** **************** ****************
9 21 21
====== ================ ================
**CONTINUOUS ACTIONS**
Type: Box(2)
=== ================ ==== ====
Num Variable name Min Max
=== ================ ==== ====
0 Heating setpoint 15.0 22.5
*** **************** **** ****
1 Cooling setpoint 22.5 30.0
=== ================ ==== ====
-->
<action-space>
<shape value="2"/> <!-- number of actions values is common to discrete and continuous -->
<discrete>
<element index="0" action0="15" action1="30"/>
<element index="1" action0="16" action1="29"/>
<element index="2" action0="17" action1="28"/>
<element index="3" action0="18" action1="27"/>
<element index="4" action0="19" action1="26"/>
<element index="5" action0="20" action1="25"/>
<element index="6" action0="21" action1="24"/>
<element index="7" action0="22" action1="23"/>
<element index="8" action0="22" action1="22"/>
<element index="9" action0="21" action1="21"/>
</discrete>
<continuous>
<low-ranges>
<element index="0" value="15.0"/>
<element index="1" value="22.5"/>
</low-ranges>
<high-ranges>
<element index="0" value="22.5"/>
<element index="1" value="30.0"/>
</high-ranges>
<dtype value="numpy.float32"/>
</continuous>
</action-space>
</space>
This gives you the possibility of playing with different observation/action spaces in discrete and continuous environments in order to study how this affects the resolution of a building problem. Inner each environment it is known what configuration file must read and spaces will be defined automatically, so you should not worry about anything.
In order to make environments more generic in DRL solutions. We have updated action space for continuous problem. Gym action space is defined always between [-1,1] and Sinergym parse this values to action space defined in configuration file internally.
The function in charge of reading those configuration files is parse_observation_action_space(space_file)
in sinergym/sinergym/utils/common.py
Note
Set up observation and action spaces in environment constructor dynamically could be upgrade in the future. Stay tuned for upcoming releases!