Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page

# Errors when using EMS with BeginTimestepBeforePredictor in Prototype Building Model

I am not a seasoned EMS user; any advice on how to go about debugging this case would be much appreciated.

I am using the ASHRAE901_OfficeLarge_STD2013 prototype model (https://www.energycodes.gov/901-proto...), and trying to add some switchable glazing via EMS. But I am running into this problem before I can even dig into the fun stuff: if I try to add any sort of EnergyManagementSystem:ProgramCallingManager with an insertion point of BeginTimestepBeforePredictor, even something that should have no real impact on the simulation (two examples included below), it errors out with the following:

... Starting Simulation at 07/21 for CHICAGO OHARE INTL AP ANN CLG .4% CONDNS DB=>MWB **FATAL:CheckPlantMixerSplitterConsistency: Simulation terminated because of problems in plant flow resolver

And the train of warnings and severe errors leading up to this in the .err file is all about cooling sizing calculations.

My limited understanding of how EMS works leaves me scratching my head: how can the act of adding a non-interacting EMS program with this insertion point throw off something else in the simulation? What might it be that is thrown off, and how do I fix it (ideally without having to heavily refactor the prototype model)?

Details / Notes:

• I am using EnergyPlus-8-0-0, as per the Prototype Model version

• There are other EMS programs in the model, but I don't think the problem is with them: if I remove all of the EnergyManagementSystem:ProgramCallingManager objects in the model it runs without error, and then if I add in anything new with a BeginTimestepBeforePredictor insertion point I get the same error as above.

• If I add a ProgramCallingManager object with any other insertion point besides BeginTimestepBeforePredictor, then I don't get this error

• Examples of should-be-no-impact EMS changes / additions to the prototype idf that I have tried, in my attempts to track down the problem:

• switching the BoilerParManager from BeginNewEnvironment to BeginTimestepBeforePredictor (which calls a routine that computes a set of boiler parameter values which are then kept constant)

• adding the following to the idf (which should add an EMS program that does nothing, as per the first example in the Application Guide for EMS):

EnergyManagementSystem:GlobalVariable, Atest;

EnergyManagementSystem:OutputVariable, A test thing, ! Name Atest , ! EMS Variable Name Averaged, ! Type of Data in Variable ZoneTimeStep ; ! Update Frequency

EnergyManagementSystem:ProgramCallingManager,Window EMS Controller, BeginTimestepBeforePredictor,Set_Window_States;

EnergyManagementSystem:Program,Set_Window_States, SET Atest = 1;

edit retag close merge delete

Sort by » oldest newest most voted

I downloaded the Chicago version of this file and ran in V8.0. The only change being the first calling point:

EnergyManagementSystem:ProgramCallingManager,
DataCenter_Main_Manager, !- Name
BeginTimestepBeforePredictor,  !- EnergyPlus Model Calling Point
DataCenter_Main;         !- Program Name 1


Same result as you describe. Then transitioned that file to V8.1 and the file with a different fatal error, assumingly because I changed the calling point.

**  Fatal  ** CheckForRunawayPlantTemps: Simulation terminated because of run away plant temperatures, too hot


So something along the way possibly got fixed. Checking Addressed_Issues-V8-1-0.html shows this:

Folder:     EnergyPlus
CR Number:      9,367
Type:       Defect
Addressed In:       13.11.20 V8.1.0.009 - rerelease
Synopsis for Users:     EMS actuator Zone Temperature Control not found when using V8.1. This actuator was broken when moving initializations to correct other issues.
Further Details for Users:      The user could use a program calling point other than BeginTimestepBeforePredictor, however, if this calling point is required, no workaround is available.


Although a different symptom then you describe I suggest transitioning the file to the latest version of E+ to avoid bugs corrected along the way. Provide an update if you run into the same problem with the latest version of E+.

more

Thanks! Yes, this looks to be true - the error doesn't happen if I convert the idf and run it with 8.1 (and presumably it wouldn't happen with any version thereafter). I will do some more testing and report back if I find anything more interesting.

( 2018-10-19 00:43:45 -0600 )edit

One minor follow-up. The fatal error doesn't happen with v8.1, but the convergence issues in the warmup period persist, causing errors further down the line in some cases (if you modify the prototype model in some ways). The convergence issues are not there with v8.9, so if anyone has this problem I recommend that you transition the model higher than 8.1, and know that 8.9 works (I haven't tested other versions).

( 2018-10-25 11:24:53 -0600 )edit