Control of Ice Storage model with Heat Exchanger
I've been struggling with my ice storage model for a long time, and I've referred to previous posts, but I can't get it to work as expected, so I'd like to ask you how to solve the problems.
Below is a schematic diagram of plant loop and condenser loop of my model. The IDF file is here. Its version is v8.9.0. BrineChiller + IceTank is the main plant system, and BackupChiller is only for assisting when the IceTank is completely discharged and there is still cooling load.
There are two major fatal problems with my current model.
- Problem 1:
ThermalStorage:Ice:Detailed
doesn't charge nor discharge at all. - Problem 2: Operation Status of
HeatExchanger:FluidToFluid
is always 0 (off).
About Problem 1, as some previous posts suggest, it seems that we have to use EMS to make the ice storage model work properly. None of ExampleFiles for ice storage model work properly. The charts below are part of the results of the ExampleFiles (they are not the results of my model).
I referred to one thesis “Strategic control and cost optimization of thermal energy storage in
buildings using EnergyPlus” and tried to control charge/discharge of Ice Storage in my model based on Ice Thermal Storage End Fraction
, but so far it's not working. I'm new to EMS and I think there's something wrong with it. Below is my input to EMS. Now I'm using only On/Off Supervisory
. This control type doesn't have the function to force equipment to run. It can only run equipment normally based on other controls. I don't know how to force the Ice Storage to charge/discharge.
!- =========== ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:SENSOR ===========
EnergyManagementSystem:Sensor,
SensorForIceThermalStorageEndFraction, !- Name
IceTank, !- Output:Variable or Output:Meter Index Key Name
Ice Thermal Storage End Fraction ; !- Output:Variable or Output:Meter Name
!- =========== ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:ACTUATOR ===========
EnergyManagementSystem:Actuator,
IceTankOverride, !- Name
IceTank, !- Actuated Component Unique Name
Plant Component ThermalStorage:Ice:Detailed, !- Actuated Component Type
On/Off Supervisory; !- Actuated Component Control Type
EnergyManagementSystem:Actuator,
PHEOverride, !- Name
PHE, !- Actuated Component Unique Name
Plant Component HeatExchanger:FluidToFluid, !- Actuated Component Type
On/Off Supervisory; !- Actuated Component Control Type
EnergyManagementSystem:Actuator,
BackupChillerOverride, !- Name
BackupChiller, !- Actuated Component Unique Name
Plant Component Chiller:Electric:EIR, !- Actuated Component Type
On/Off Supervisory; !- Actuated Component Control Type
EnergyManagementSystem:Actuator,
ChPriSupPumpOverride, !- Name
ChPriSupPump, !- Actuated Component Unique Name
Plant Component Pump:VariableSpeed, !- Actuated Component Type
On/Off Supervisory; !- Actuated Component Control Type
EnergyManagementSystem:Actuator,
ChPriLoopOverride, !- Name
ChPriLoop, !- Actuated Component Unique Name
Plant Loop Overall, !- Actuated Component Type
On/Off Supervisory; !- Actuated Component Control Type
!- =========== ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:PROGRAMCALLINGMANAGER ===========
EnergyManagementSystem:ProgramCallingManager,
IceTankOnOffManagement, !- Name
AfterPredictorBeforeHVACManagers, !- EnergyPlus Model Calling Point
EMS_IceTankControlProgram; !- Program Name 1
!- =========== ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:PROGRAM ===========
EnergyManagementSystem:Program,
EMS_IceTankControlProgram, !- Name
IF (Hour >= 23) || (Hour <= 6) && (SensorForIceThermalStorageEndFraction < 0.95), !- Program Line 1
SET ChPriLoopOverride = 1.0, !- Program Line 2
ELSEIF (Hour >= 23) || (Hour <= 6) && (SensorForIceThermalStorageEndFraction >= 0.95 ...
About Problem 2, I found this post and changed
Minimum Temperature Difference to Activate Heat Exchanger
to 0, but in vain.hi @Keigo, you may add common pipe to ice storage loop to operate the ice storage system
@szsz, thank you for your comment. EnergyPlus I/O Reference says that if the field is set to “CommonPipe” or “TwoWayCommonPipe” and the program does not find a pump on the demand side it will result in a fatal error. So, I added a pump on the demand side of ice storage loop and a common pipe, but the ice storage still doesn't charge nor discharge. Please refer to my postscript since we can't attach any images in this comments field.
Do you have any other suggestions from your experience?
hi @Keigo could you please leave a mail?