Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide

EnergyPlus package user's guide

Information

Spawn logo

This user guide describes how to use the EnergyPlus building envelope model and exchange data during simulation between Modelica and EnergyPlus. This allows to simulate HVAC and control systems in Modelica, coupled to the EnergyPlus envelope model. The implementation is such that the joint simulation between Modelica and EnergyPlus is automatically setup, without the user having to configure a co-simulation setup. During the simulation, different data can be exchanged between Modelica and EnergyPlus.

Spawn coupling

The figure above shows an overview of the exchanged coupling variables. The coupling variables can connect Modelica thermal zone model with EnergyPlus envelope model, or Modelica heat transfer models to EnergyPlus surfaces, for example to model a radiant floor. They also allow reading the value of EnergyPlus output variables for use in Modelica-implemented controllers, and writing to EnergyPlus schedules and EnergyPlus Energy Management System actuators. This can be used, for instance, to send supervisory control signals to EnergyPlus, such as for active facade control, or to control lights and equipment schedules that contribute to heat gains in the room and its surfaces.

See Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.Installation for how to install EnergyPlus and how EnergyPlus is invoked.

References

Extends from Modelica.Icons.Information (Icon for general information packages).

Package Content

Name Description
Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.Installation Installation Installing binaries
Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.GettingStarted GettingStarted Getting started
Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.Conventions Conventions Conventions
Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.UnitConversion UnitConversion Unit Conversion
Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.EnergyPlusWarmUp EnergyPlusWarmUp EnergyPlus warm-up
Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.KnownIssues KnownIssues Known issues
Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.NotesForDymola NotesForDymola Notes for Dymola

Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.Installation Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.Installation

Installing binaries

Information

Installation of binaries

The official release of the Modelica Buildings Library that can be downloaded at simulationresearch.lbl.gov/modelica/download.html contains all binaries required to simulated the models in Buildings.ThermalZones_9_6_0. You should not have to do any other installations or settings.

However, binaries can also be downloaded and installed manually, the binaries can be downloaded from the following links:

Operating systemLink
Linux https://spawn.s3.amazonaws.com/builds/Spawn-light-0.4.3-7048a72798-Linux.tar.gz
Windows https://spawn.s3.amazonaws.com/builds/Spawn-light-0.4.3-7048a72798-win64.zip

To install, proceed as follows:

Operating systemLink
Linux

Run from a terminal

wget https://spawn.s3.amazonaws.com/builds/Spawn-light-0.4.3-7048a72798-Linux.tar.gz;
tar xzf Spawn-light-0.4.3-7048a72798-Linux.tar.gz;
export PATH=${PATH}:`pwd`/Spawn-light-0.4.3-7048a72798-Linux/bin

and restart your Modelica environment. You may put the last line in your ${HOME}/.bashrc file to make the setting persistent when you log in the next time.

Windows
  1. Download the binary from the link above.
  2. Unzip Spawn-light-0.4.3-7048a72798-win64.zip at your desired location.
  3. Add the directory xyz/Spawn-light-0.4.3-7048a72798-win64/bin to your PATH environment variable.
  4. Restart your Modelica environment.

How is spawn invoked?

Modelica tries to invoke spawn-0.4.3-7048a72798[.exe] in this order:

  1. On Linux, it searches for
    Buildings[ x.y.z]/Resources/bin/spawn-0.4.3-7048a72798/linux64/bin/spawn-0.4.3-7048a72798
    
    and on Windows, it searches for
    Buildings[ x.y.z]/Resources/bin/spawn-0.4.3-7048a72798/win64/bin/spawn-0.4.3-7048a72798.exe
    
    where Buildings[ x.y.z] is the installation folder of the Modelica Buildings Library. This file is distributed with the Modelica Buildings Library installation, together with all files needed to translate and simulate a model in a Modelica environment.
  2. If not found, it searches on the environment variable SPAWNPATH for spawn-0.4.3-7048a72798[.exe].
  3. If not found, it searches on the environment variable PATH for spawn-0.4.3-7048a72798[.exe].

If none of this succeeds, it will stop with an error.

Extends from Modelica.Icons.Information (Icon for general information packages).

Modelica definition

class Installation "Installing binaries" extends Modelica.Icons.Information; end Installation;

Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.GettingStarted Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.GettingStarted

Getting started

Information

How to instantiate models for one or several buildings

To instantiate one or several building models, proceed as follows:

  1. Create an instance of Buildings.ThermalZones.EnergyPlus_9_6_0.Building to specify the building model. This instance is automatically named building and this name must not be changed.
  2. In the instance building, specify building-level parameters such as the EnergyPlus input file name and weather file name.
  3. For the weather file, both .mos and .epw files must be specified. The .epw file will be used by the EnergyPlus envelope model, and the .mos file will be used by the Modelica model, and must be specified by the parameters epwName and weaName in the instance building.

The following coupling objects can then be integrated in the model that contains the instance building, or in any model instantiated by that model.

If you have more than one building, you can repeat the above steps for each building and combine these building models in a top-level model. See for example Buildings.ThermalZones.EnergyPlus_9_6_0.Validation.MultipleBuildings.ThreeZonesTwoBuildings for how to combine two buildings in one Modelica model.

For details of how to configure these models, see the information section of these models, and look at the example models below.

Example models

To get started, we recommend to look at the simple examples in Buildings.ThermalZones.EnergyPlus_9_6_0.Examples.SingleFamilyHouse which illustrate the use of all these objects based on a single family house. Also, read the information section of the models you plan to use in Buildings.ThermalZones.EnergyPlus_9_6_0.

We suggest looking at the examples in the following order which starts with the simplest example and moves to more comprehensive ones.

  1. Buildings.ThermalZones.EnergyPlus_9_6_0.Examples.SingleFamilyHouse.Unconditioned is modeling one zone, the living room, in Modelica as an unconditioned zone with a fixed amount of outside air infiltration.
  2. Buildings.ThermalZones.EnergyPlus_9_6_0.Examples.SingleFamilyHouse.AirHeating adds an air-based heating system that recirculates air to track a heating setpoint temperature.
  3. Buildings.ThermalZones.EnergyPlus_9_6_0.Examples.SingleFamilyHouse.EquipmentSchedule shows how to set the equipment schedule in Modelica and override the schedule in EnergyPlus. It also uses the unconditioned thermal zone to keep it simple.
  4. Buildings.ThermalZones.EnergyPlus_9_6_0.Examples.SingleFamilyHouse.LightsControl is showing how to set the value of an EMS Actuator, here the one that sets internal gains caused by the lights which are controlled by Modelica based on time of day and sun position. The model also shows how to read an EnergyPlus output variable, here for the lighting electricity consumption.
  5. Buildings.ThermalZones.EnergyPlus_9_6_0.Examples.SingleFamilyHouse.ShadeControl reads from EnergyPlus the incident solar radiation, retrieves from the thermal zone its temperature, and based on these values, actuates the window shading control using an EMS actuator.
  6. Buildings.ThermalZones.EnergyPlus_9_6_0.Examples.SingleFamilyHouse.RadiantHeatingCooling_TSurface and Buildings.ThermalZones.EnergyPlus_9_6_0.Examples.SingleFamilyHouse.RadiantHeatingCooling_TRoom illustrate how to couple a radiant slab for heating and cooling which interfaces two surfaces in EnergyPlus: The floor that connects the slab to the zone above, and the ceiling that connects the slab to the zone below. In the first model, cooling is controlled based on the surface temperature, and in the second model, it is controlled based on the room temperature.
  7. Buildings.ThermalZones.EnergyPlus_9_6_0.Examples.SingleFamilyHouse.HeatPumpRadiantHeatingGroundHeatTransfer illustrates how to couple a radiant slab for heating in a configuration in which the bottom of the slab is connected to a ground heat transfer model in Modelica. Heating is provided with a geothermal heat pump that is connected to a borehole heat exchanger.
  8. Buildings.ThermalZones.EnergyPlus_9_6_0.Examples.SingleFamilyHouse.Radiator shows how to couple a radiator to a thermal zone.

Extends from Modelica.Icons.Information (Icon for general information packages).

Modelica definition

class GettingStarted "Getting started" extends Modelica.Icons.Information; end GettingStarted;

Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.Conventions Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.Conventions

Conventions

Information

Conventions

The following conventions are made:

Extends from Modelica.Icons.Information (Icon for general information packages).

Modelica definition

class Conventions "Conventions" extends Modelica.Icons.Information; end Conventions;

Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.UnitConversion Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.UnitConversion

Unit Conversion

Information

Unit conversion

Units between Modelica and EnergyPlus are automatically converted, if they are specified. The conversion is according to the table at Buildings.ThermalZones.EnergyPlus_9_6_0.Types.Units.

To see what units are used, set printUnits=true (the default) in the instance Buildings.ThermalZones.EnergyPlus_9_6_0.Building. This will cause the used units to be reported in the Modelica log file.

The thermal zone model automatically converts the units.

To do unit conversion for values sent by Buildings.ThermalZones.EnergyPlus_9_6_0.Actuator and by Buildings.ThermalZones.EnergyPlus_9_6_0.Schedule, set the parameter unit to the unit of the variable obtained at the input connector u. The value will then be converted before it is sent to EnergyPlus. The units that are used in the input u of this block are reported to the Modelica log file.

To do unit conversion for values read by Buildings.ThermalZones.EnergyPlus_9_6_0.OutputVariable, Modelica will use the units reported by EnergyPlus. The units that are used in the output y of this block are reported to the Modelica log file.

Extends from Modelica.Icons.Information (Icon for general information packages).

Modelica definition

class UnitConversion "Unit Conversion" extends Modelica.Icons.Information; end UnitConversion;

Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.EnergyPlusWarmUp Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.EnergyPlusWarmUp

EnergyPlus warm-up

Information

EnergyPlus warm-up

In Spawn there can be both connected and unconnected zones defined in the EnergyPlus input file. Connected zones have a corresponding zone model Buildings.ThermalZones.EnergyPlus_9_6_0.ThermalZone in Modelica that communicates with the EnergyPlus zone heat balance model. Unconnected zones are thermal zones which are defined entirely within the EnergyPlus input file, and for these zones the conventional EnergyPlus algorithms are used to simulate the zone conditions, including the air temperature and humidity, which are free floating. In contrast, for connected zones, Modelica models the temperature and humidity. During the initialization of a new simulation it is necessary to compute initial values for the zone air conditions as well as the conditions of any thermal mass, such as for walls, floors and ceilings. Conventionally, EnergyPlus handles this requirement using a warmup period, and in Spawn the traditional EnergyPlus warmup algorithm is employed to initialize unconnected zones. The EnergyPlus warmup algorithm is described in the EnergyPlus Engineering Reference, and summarized in the following steps.

  1. Zone and wall surface temperatures are initialized to 23°C.

  2. Zone humidity ratios are initialized to the outdoor conditions.

  3. During warmup, the outdoor conditions are determined by the EnergyPlus weather file.

  4. The first day of the simulation is repeated until warmup convergence, which occurs when the minimum and maximum air temperatures during the warmup day remain nearly the same between two successive iterations.

Spawn initializes unconnected zones using the warmup algorithm that was just described. However, connected zones are treated differently than in a conventional EnergyPlus simulation because initial zone air properties are specified in the Modelica zone model. During Spawn warmup, the following steps occur:

  1. All wall surface temperatures are initialized to 23°C just as they are in a conventional EnergyPlus warmup period. However, as in EnergyPlus, during the warmup iterations, the exterior walls will be subject to the ambient conditions defined by the weather file. Therefore, exterior surface temperatures will not remain fixed at their 23°C initial condition during the warmup process. Similarly, room-facing wall surfaces will be exposed to the zone temperature, and therefore approach a quasi-steady state at the conclusion of warmup.

  2. The air temperatures of unconnected zones are initialized to 23°C.

  3. The humidity ratios of unconnected zones are initialized to the outdoor conditions.

  4. The air temperatures and humidity ratios of connected zones are initialized to the initial values defined in Modelica, and held fixed during the warmup period.

  5. During warmup, the outdoor conditions are determined by the EnergyPlus weather file in the same way as a conventional EnergyPlus simulation.

  6. The first day of the simulation is repeated, but Spawn uses a different criteria for stopping the iteration compared to a conventional EnergyPlus simulation. In EnergyPlus, the first day is repeated until the zone air temperature reaches a periodic steady state as indicated by the minimum and maximum temperatures for the warmup day stablizing. In Spawn, the exit criteria is similarly based on reaching a periodic steady state, however Spawn exits warmup when the surface temperatures stabilize instead of the air temperature.

Extends from Modelica.Icons.Information (Icon for general information packages).

Modelica definition

class EnergyPlusWarmUp "EnergyPlus warm-up" extends Modelica.Icons.Information; end EnergyPlusWarmUp;

Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.KnownIssues Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.KnownIssues

Known issues

Information

Known issues

Signals to time schedules and actuators

If Modelica overrides a time schedule or an actuator at a time instant that does not coincide with an EnergyPlus time step, the change in value may be ignored for the heat balance of the current EnergyPlus time step.
This will be addressed through issue 2000.

Simulation must not start at a negative time

If a simulation starts at a time smaller than 0, then an error will be issued and the simulation won't start.
This will be addressed through issue 1938.

Extends from Modelica.Icons.Information (Icon for general information packages).

Modelica definition

class KnownIssues "Known issues" extends Modelica.Icons.Information; end KnownIssues;

Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.NotesForDymola Buildings.ThermalZones.EnergyPlus_9_6_0.UsersGuide.NotesForDymola

Notes for Dymola

Information

Notes for Dymola

64 bit configuration

Make sure Dymola compiles in 64 bit, which can be done by setting the flag

Advanced.CompileWith64 = 2

Otherwise, you may get an error such as

/usr/bin/ld: cannot find -lfmilib_shared
collect2: error: ld returned 1 exit status

Extends from Modelica.Icons.Information (Icon for general information packages).

Modelica definition

class NotesForDymola "Notes for Dymola" extends Modelica.Icons.Information; end NotesForDymola;