-
Notifications
You must be signed in to change notification settings - Fork 13
Choosing a Simulation Engine
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.
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.
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.
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?
- Getting Started with Model Measures Part 1: Creating Inputs and Outputs
- Getting Started with Model Measures Part 2: Creating Actuators
- Getting Started with EnergyPlus Measures Part 1: Creating Inputs and Outputs
- Getting Started with EnergyPlus Measures Part 2: Creating Actuators
- How to Configure an OpenStudio Model
- How to Configure Measures for Use with Alfalfa Ruby Gem
- How to Create Inputs and Outputs With Measures
- How to Run URBANopt Output Models in Alfalfa
- How to Migrate EnergyPlus Python Plugins
- How to Integrate Python based Electric Vehicle Models with OpenStudio Workflows
- How to Locally Test OpenStudio Models
- Required Structure of OpenStudio Workflow
- List of Automatically Generated Energyplus Points
- Alfalfa EnergyPlus Mixin Methods
- Getting Started with Uploading and Running a Model Using Python
- Getting Started with Uploading and Running a Model Using the UI
- How to Install Alfalfa Client
- How to Preprocess and Upload a Model
- How to Step Through a Simulation
- How to View Historical Data in Grafana
- How to Configure an Alias
- How to Troubleshoot Models