NREL / EnergyPlus

EnergyPlus™ is a whole building energy simulation program that engineers, architects, and researchers use to model both energy consumption and water use in buildings.
https://energyplus.net
Other
1.14k stars 392 forks source link

Unclear fatal error with Controller:WaterCoil Min Actuated Flow #4187

Open Myoldmopar opened 10 years ago

Myoldmopar commented 10 years ago

A user's input file was crashing with a rootfinder error:

   ** Severe  ** FindRootSimpleController: Root finder failed at RUN PERIOD 1, 08:00:00.0 - 08:15:00.0
   **   ~~~   **  Controller name=CONTROLLER WATER COIL 2
   **   ~~~   **  Controller action=Reverse action
   **   ~~~   **  Root candidate x=9.998980000000000E-005 does not lie within the lower/upper brackets.
   **   ~~~   **  Upper bracket is x=0.000000000000000

The error message wasn't clear to exactly what the problem was, but after debugging it was found it was simply that the input object had a non-zero min actuated flow, but the plant didn't have available flow. Instead of either running at zero flow, the controller continued into a strange state inside a "Shouldn't get here" ELSEIF section.

This was run with E+ version 8.0, and will be tested against current before spending any significant time on it. If it is still an issue, I would need to coordinate with others to determine which fix path to use:

kbenne commented 10 years ago

OpenStudio's fault. I think some templates were/are setting min actuated flow to very small number instead of 0. I will investigate on the OS side, but would appreciate cleanup on the E+ side too as this has come up before.

Myoldmopar commented 10 years ago

Defect files at https://github.com/NREL/EnergyPlusTest/tree/master/eventualdevsupportrepo/defectfiles/4187/

The input to change is marked as !BUGREF

kbenne commented 10 years ago

It is worth noting that the E+ 8.1 IDD default is

N3 ; \field Minimum Actuated Flow \type real \default 0.0000001 \units m3/s

which appears to be OS's default.

Myoldmopar commented 10 years ago

@mjwitte Any reason why the default for "minimum actuated flow" needs to be > zero?

mjwitte commented 10 years ago

Well, that's been the default as far back as v4.0 (maybe further, I stopped looking). So I doubt that is really the culprit here. That said, a quick search through the example files shows every example file that declares this field sets it to zero (but there could be short objects out there that are defaulting this field).

What's odd to me is that loops are often shut down (zero flow) and there should be traps in this controller to see that and move on with zero flow regardless of the min flow setting (and no warnings required). I would suggest taking an example file and changing this to a non-zero value to see if it runs OK.

But there's also an open issue for fan coil units - they don't behave well with a non-zero min flow - maybe the same overall problem? I can't find that issue/CR in the github list - must be there - may have been moved to enhancement list?

Fred might be able to help shed some light here. @wfbuhl

On 3/27/2014 11:35 AM, Edwin Lee wrote:

@mjwitte https://github.com/mjwitte Any reason why the default for "minimum actuated flow" /needs/ to be > zero?

— Reply to this email directly or view it on GitHub https://github.com/NREL/EnergyPlusTeam/issues/4187#issuecomment-38827712.

mjwitte commented 8 years ago

Helpdesk ticket 11375, same problem. If nothing else, we should change the default to zero and have the controller throw a warning about non-zero values and/or ignore this input, and add info to the "Root finder failed" error (above) that directs the user to check Controller:WaterCoil min flow rate.

Myoldmopar commented 8 years ago

I concur, it would be good to:

mjwitte commented 4 years ago

@Myoldmopar @jmarrec Tested the #4187 defect file with the #7578 branch. It still fatals out with a rootfinder error. It runs to completion if you edit the file and set the min-flows to zero. So, while changing the min-flow default to zero is a step in the right direction, it doesn't completely resolve this defect.

jmarrec commented 2 years ago

I had started work on this in https://github.com/NREL/EnergyPlus/pull/7579 but I don't know how to fix it really. That PR has a unit test ready though so anyone who wants to pick it up can reuse it.