-
Notifications
You must be signed in to change notification settings - Fork 460
A new passive hot water storage tank #11033
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@yujiex @Myoldmopar it has been 31 days since this pull request was last updated. |
|
|
enable later calculation of two setpoint flow request
|
|
|
|
|
|
|
| Tank.TankTempLimit = TankTempLimit; | ||
| } else { | ||
| // Default to very large number, boiling point of water | ||
| Tank.TankTempLimit = 100.0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For CW this is a minimum tank temperature limit and for HW this is a maximum limit. I think this needs to get wrapped by the tanktype to apply the proper context.
N6 , \field Minimum Temperature Limit // CW
N7 , \field Maximum Temperature Limit // HW
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
indeed! I just added different temperature limit defaults for the hot water and chilled water tank separately.
|
|
|
@yujiex in the PR description figure, why is there a delay (~3 hours) before the tank starts charging when the tank temperature is below the set point? It seems like the tank is turned off but I don't see anything in the example file to explain this. This figure also shows the tank set point temperatures going to 0 at some points when the tank is off? or on (I can't tell which)?
|
@rraustad The temperature didn't increase for a while may be because the use side heat transfer is high |
|
@yujiex thanks for checking and figuring out why the tank temperature looked strange. |
|
I fixed the merge conflicts here. We'll run one more round of CI just to confirm the latest merge flurry didn't break anything, then merge. Last call here for any final review/comments. |
|
|
|
@rraustad Thank you so much for your review and input. |
|
Alrighty. Thanks all. Merging. |




Pull request overview
Description of the purpose of this PR
Currently, EnergyPlus does not have a direct or explicit way to model passive hot water tanks , which stores hot water in a way that naturally maintains temperature stratification without the use of active mixing or heating elements. Users have used the heat pump water heater, WaterHeater:Mixed and WaterHeater:Stratified with tricks and limitations. This hinders the ability of users to model complex thermal energy storage systems.
Key drawbacks of the existing tank object include,
storage tank, it is sometimes unclear whether the setpoint temperature
controls the source side flow request or the internal heater operation.
Energy Recovery (TIER) system defined in [1] defined in , the water flow
direction may change. For example, in the heating mode, water flows in at the
bottom and exits at the top of the tank, whereas in the cooling mode, water
flows in at the top and exits at the bottom. The current object has fixed
inlet and outlet water heights, thereby only allowing a fixed flow direction.
In contrast, the water storage tank implemented in Modelica is more flexible
[2], with the flow direction indicated by the sign of the flow. Additionally,
temperature sensors can be placed in all layers (at different heights) of the
stratified tank, providing information for more complex control logic.
side requesting water flow) based on a temperature setpoint (default) or a
temperature upper limit (storage tank mode). However, more complex charging
control is sometimes needed. For example, in some applications, the charging
percentage needs to be a function of the tank temperature, which could involve
temperature of all stratified layers. The current object does not allow for
such complex charging percentage calculations nor does it permit control of
this parameter via EMS or Python plug-ins.
multiple issues (issue 8412, 8451, 9956). Actuators might need to be added to
enable auto-sizing with external code (EMS or python API), especially for
complex systems with heat pumps, heat recovery chillers, and thermal storage
tanks.
The proposed new feature will introduce a passive hot water tank, similar to the
chilled water tank, but designed to hold hot water. It will also include various
actuators to control flow direction and tank charging. The autosizing
functionality will be thoroughly tested to ensure it functions properly. This
new tank can be incorporated into complex energy recovery systems like the TIER
system.
Regression diffs
NumOfRVariableis 2 greater than the develop branch. This is because 2 reporting variables are added:Function illustration
The following illustrations uses the PlantLoopHeatPump_EIR_AirSource_BufferTank.idf file.
two setpoints controlling charging
The hot water tank in this PR can control its charging with two setpoints: when the top temperature < setpoint - deadband or the bottom temperature < setpoint - deadband, the tank will charge. Otherwise it will not charge. In the following example, the setpoint at the top of the tank is 21C, the setpoint at the bottom of the tank is 15C. For simplicity, the dead band temperature is set to be very small.
flow direction switch
The new hot water tank object can switch the flow direction on the source side or the use side. The flow direction is controlled with a schedule. When the value is 1, it keeps the original direction, when it's -1, it reverses the direction. In the following example, the use side orginal flow direction draws water from the top, while the reverse direction will swap the use inlet and outlet node and draws hot water from the bottom. The tank temperature is higher when the use side flow direction is reversed, as cold water are removed on the tank use side.
Pull Request Author
Reviewer