Skip to content

Choosing a Simulation Engine

Maggie Sullivan edited this page Jun 20, 2023 · 1 revision

Currently Supported Simulation Engines

As of 3/2023, Alfalfa supports upload of fmu, or zip (a zipped-up version of the OpenStudio workflow directory structure) files.

Users coming to Alfalfa likely have different backgrounds - some will come from a purely controls world, others from an energy modeling world using OpenStudio/EnergyPlus, and maybe others from the Modelica world. There are distinct advantages and disadvantages to both from an Alfalfa perspective.

EnergyPlus

Using the E+ simulation engine has distinct advantages in terms of the tooling available to quickly and easily generate models and typical systems(namely, OpenStudio or Eppy). That said, in order to enable interactive control through Alfalfa, custom EMS code must currently be developed to enable controls to behave as expected. Additionally, there are several details surrounding the underlying physical assumptions in an EnergyPlus model that may effect the behavior of controls. EnergyPlus’ default run logic is to meet loads at all times within capacity constraints, which is not necessarily how these systems would behave in the real world. Therefore, it is important to have familiarity with how EnergyPlus works to ensure that writing to an exposed point has the intended effects.

Modelica

While the Modelica Buildings Library is currently being built up, there is significantly less tooling available. Most models will need to be generated by hand and significant understanding of the Modelica language is required for proficiency. That said, Modelica has capability to be significantly more robust in implementing controls. Time delays, PID loops, and other dynamics relevant to control systems can be more realistically simulated with a Modelica-based system model.

Alfalfa Control Considerations

One of the more important aspects to understand about Alfalfa is that the actual control implementation is completely dependent on the underlying simulation engine used. Therefore, it is best practice to provide pseudocode or a narration document of expected equipment run logic such that strategies to implement this control can be discussed and appropriately developed. As part of generating the pseudocode, users should answer the following:

  • Which equipment am I planning on controlling / interfacing with?
  • What points am I expecting to be able to read from during the simulation?
  • Which points am I expecting to write to during the simulation AND what is their desired effect on the simulation during run?
  • At what point during the simulation should the write points be evaluated? Refer to the EnergyPlus EMS Application Guide – Chapter 6 for information on EMS Calling Points.
  • What other logic am I expecting out of the simulation engine after reading from / writing into?

Model Configuration

Openstudio

Tutorials

Guides

Reference

Modelica

Guides

Alfalfa Interaction

Tutorials

Guides

Reference

Explanation

Alfalfa Development

Guides

General

Reference

Explanation

Clone this wiki locally