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

# Intermittent Pumping With No Loop Demand

I have a Pump:ConstantSpeed on a heating plant loop serving nine Coil:Heating:Water. The Pump Control Type is set to intermittent...

Pump:ConstantSpeed,
Hot Water Loop: Old: Pump - Constant Speed, !- Name
Node 233,                               !- Inlet Node Name
Node 239,                               !- Outlet Node Name
Autosize,                               !- Design Flow Rate {m3/s}
74726.673,                              !- Design Pump Head {Pa}
Autosize,                               !- Design Power Consumption {W}
0.84,                                   !- Motor Efficiency
0,                                      !- Fraction of Motor Inefficiencies to Fluid Stream
Intermittent;                           !- Pump Control Type


According to the input output reference for Pump:ConstantSpeed

If there is no load on the loop and the pump is operating intermittently, then the pump can shutdown.

There is a caveat about an availability manager being able to force the pump on/off, but I have no availability managers assigned to the loop.

PlantLoop,
Hot Water Loop: Old,                    !- Name
Water,                                  !- Fluid Type
,                                       !- User Defined Fluid Type
Hot Water Loop: Old Operation Schemes,  !- Plant Equipment Operation Scheme Name
Node 234,                               !- Loop Temperature Setpoint Node Name
100,                                    !- Maximum Loop Temperature {C}
0,                                      !- Minimum Loop Temperature {C}
Autosize,                               !- Maximum Loop Flow Rate {m3/s}
0,                                      !- Minimum Loop Flow Rate {m3/s}
Autocalculate,                          !- Plant Loop Volume {m3}
...

...
Optimal,                                !- Load Distribution Scheme
,                                       !- Availability Manager List Name
SingleSetpoint,                         !- Plant Loop Demand Calculation Scheme
;                                       !- Common Pipe Simulation


And the operation scheme...

PlantEquipmentOperationSchemes,
Hot Water Loop: Old Operation Schemes,  !- Name
PlantEquipmentOperation:HeatingLoad,    !- Control Scheme Object Type 1
Plant Equipment Operation Heating Load 2, !- Control Scheme Name 1
Always On Discrete;                     !- Control Scheme Schedule Name 1

Plant Equipment Operation Heating Load 2, !- Name
0,                                      !- Load Range Lower Limit 1 {W}
1000000000,                             !- Load Range Upper Limit 1 {W}
Plant Equipment Operation Heating Load 2 equipment list 1; !- Range Equipment List Name 1


So I'd expect that if there is no load on the demand side of the loop, then the pump would turn off, but this doesn't appear to be the case.

In August, the heating rate on all the relevant coils is 0.

Which yields no demand on the plant.

And yet we can see the pump turning on for the same schedule that the air loops associated with the coils are on.

The only supply equipment for the loop is a HeatExchanger:FluidToFluid and my best guess is that this is somehow making a flow request, but that doesn't really make sense. The loop also realizes that it's above setpoint and there is 'cooling load' on the loop, so is it trying to cool the loop down even though there is no equipment that can satisfy a cooling load? Other ideas?

edit retag close merge delete

Sort by » oldest newest most voted

I have seen this problem before. Both possible causes I can recall were related to the Controller:WaterCoil objects attached to the hot and chilled water coils. Not sure if either of these are the cause, but at least they're easy to test.

1. The minimum actuated flow was slightly above zero in the IDF because OpenStudio has a default of 0.0000001 (taken from E+) instead of zero.

• For a constant-speed pump, if the flow request > 0, it runs at full speed.
• Check this field in the IDF. If it is not zero (exactly), change it to zero and see what happens.
• Might be related to this E+ issue?
2. The controller convergence tolerance was “Autosize,” which for some reason didn’t appear to be working.

• I wrote code to change this field to 0.0001 for hot water coils (where controller action = Normal).
3. I don’t have an explanation for this one, but at one point I suspected this was an un-reported E+ bug.
more

Thanks @aparker ! Unfortunately the Minimum Actuated Flow was already set to 0 and changing the Controller Convergence Tolerance to 0.0001 for all of them still yielded the same results. Something else potentially useful to point out is that the Coil:Heating:Waters all have an Availability Schedule assigned that has a value of 0 during the period of time shown above.

( 2017-04-11 07:56:37 -0600 )edit

From the E+ code it looks like the HeatExchanger:FluidtoFluid can indeed request flow depending on control type.

I'd suspect that these variables show 100% of the flow bypassing the the coils.

• Fluid Heat Exchanger Loop Supply Side Mass Flow Rate
• Fluid Heat Exchanger Loop Demand Side Mass Flow Rate
• Debug Plant Loop Bypass Fraction
( 2017-04-11 09:40:16 -0600 )edit

I had checked the Debug Plant Loop Bypass Fraction for a couple different control types and it was always 0. It actually looks like the the heating coils in AirTerminal:SingleDuct:ConstantVolume:Reheat are getting water flow through them. I checked the inlet water node to the coil and it's showing a non-zero value, but since the coil is scheduled off there is no heat transfer to the air. The water controller for these is part of the terminal, right? It seems as though the Controller:WaterCoils don't request flow when the coil isn't available, but the terminal does.

( 2017-04-11 09:47:54 -0600 )edit

Yes, when a Coil:Heating:Water is inside of a terminal, there is not separate Controller:WaterCoil. My next step would be to check the terminal. The Minimum Hot Water or Steam Flow Rate should be zero and then play around with the Convergence Tolerance field in the terminal. Per the documentation, the flow required to meet load is determined numerically, so modifying this field may help.

( 2017-04-11 10:52:10 -0600 )edit