Question-and-Answer Resource for the Building Energy Modeling Community
Get s tarted with the Help page
Ask Your Question
0

Control of Ice Storage model with Heat Exchanger

asked 2021-04-19 01:27:34 -0500

Keigo gravatar image

updated 2021-05-09 08:39:23 -0500

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.

image description

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).

image description

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 ...
(more)
edit retag flag offensive close merge delete

Comments

About Problem 2, I found this post and changed Minimum Temperature Difference to Activate Heat Exchanger to 0, but in vain.

Keigo gravatar image Keigo  ( 2021-04-20 21:33:47 -0500 )edit

hi @Keigo, you may add common pipe to ice storage loop to operate the ice storage system

szsz gravatar image szsz  ( 2021-04-21 00:40:59 -0500 )edit

@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?

Keigo gravatar image Keigo  ( 2021-04-21 01:53:37 -0500 )edit

hi @Keigo could you please leave a mail?

szsz gravatar image szsz  ( 2021-04-27 04:59:42 -0500 )edit

1 Answer

Sort by » oldest newest most voted
0

answered 2021-05-09 08:36:08 -0500

Keigo gravatar image

updated 2021-05-09 21:39:40 -0500

With great help from @szsz, I managed to make my model work, though it's not perfect. Here is the fixed IDF file.

  • Problem 1: ThermalStorage:Ice:Detailed doesn't charge nor discharge at all.

    -> Pump Mass Flow Rate for charging ice storage needs to be specified in EMS in order to force the pump (i.e., ChPriSupPump in my model) to operate. Therefore, the pump operates at a constant speed. On/Off Supervisory is not effective in forcing the pump to operate.

  • Problem 2: Operation Status of HeatExchanger:FluidToFluid is always 0 (off).

    -> When using Control Type CoolingSetpointOnOffWithComponentOverride, Inlet Node Name on the demand side of the heat exchanger (i.e., PHEChPriDemIn in my model) should be input in Conponent Override Loop Demand Side Inlet Node Name Field. I/O Reference is a bit misleading. We should not input condenser water inlet Node Name for the chiller that we want to operate integrated with the heat exchanger.

image description

The charts below are part of the simulation result. The operation of the heat exchanger and the backup chiller is still weird, but the ice storage is working.

image description

The current problem is that the outlet node temperature of the ice storage (TankOut), the heat exchanger (PHEChSecSupOut) and the backup chiller (BUChillerChOut) is completely out of control, but if I can't solve that, I'll post it as another question.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

 

Question Tools

1 follower

Stats

Asked: 2021-04-19 01:27:34 -0500

Seen: 78 times

Last updated: May 09