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

CondenserEnteringReset via PythonPlugin

asked 2022-02-07 06:32:14 -0500

kem's avatar

updated 2022-02-18 17:01:52 -0500

I would like to reset the condenser water supply temperature via Python Plugin. I have experience with resetting following values: Schedule:Compact > Schedule Value; Pump > Pump Mass Flow Rate ; Fan > Fan Air Mass Flow Rate

What I did: I have found nice examples of condenser water reset in E+ Example folder (files CoolingTower_VariableSpeed_CondEntTempReset.idf CoolingTower_VariableSpeed_CondEntTempReset_MultipleTowers.idf CoolingTower_VariableSpeed_IdealCondEntTempSetpoint.idf CoolingTower_VariableSpeed_IdealCondEntTempSetpoint_MultipleTowers.idf

Problem: All these examples use SetpointManager:CondenserEnteringReset or SetpointManager:CondenserEnteringReset:Ideal object to reset the temperature. The issue is I don't know what E+ variable to use to be an actuator handle.

I tried to use OutputVariable as a handle but failed

self.api.exchange.get_actuator_handle(state, "Output:Variable", "System Node Setpoint Temperature", "Condenser Tower", "Outlet Node")

returns -1 (=> it failed)

Could you help me to find right solution for resetting the condenser water temperature?

EDIT: Copying relevant sections from original file CoolingTower_VariableSpeed_IdealCondEntTempSetpoint.idf (see installation/ExampleFiles) where I want to reset the condenser tower outlet temperature.

SetpointManager:CondenserEnteringReset:Ideal,
  Condenser Water Loop Setpoint Manager,  !- Name
  Temperature,             !- Control Variable
  12,                      !- Minimum Lift {deltaC}
  32,                      !- Maximum Condenser Entering Water Temperature {C}
  Condenser Tower Outlet Node;  !- Setpoint Node or NodeList Name
...
CoolingTower:VariableSpeed,
  Central Tower,           !- Name
  Condenser Tower Inlet Node,  !- Water Inlet Node Name
  Condenser Tower Outlet Node,  !- Water Outlet Node Name
  YorkCalcUserDefined,     !- Model Type
...
Output:Variable,Condenser Tower Outlet Node,System Node Setpoint Temperature,Hourly;
edit retag flag offensive close merge delete

Comments

What about using a scheduled setpoint manager and then actuating the schedule?

bonnema's avatar bonnema  ( 2022-02-08 09:26:48 -0500 )edit

Thank you @bonnema for your suggestion. I am not the expert in idf language but it seems to me the SetpointManager has no relation to actuator definition via .api.exchange.get_actuator_handle method. So it should be possible to setup it regardless the SP manager is SetpointManager:Scheduled or SetpointManager:CondenserEnteringReset. The problem is there are no examples of SetpointManager:CondenserEnteringReset with Python plugin. We will try to find direct solution first. Your suggesting is to change CondenserEnteringReset manager to Scheduled manager. This is definitely a good backup plan.

kem's avatar kem  ( 2022-02-08 10:15:07 -0500 )edit

You need to find an actuator within this section. You cannot just actuate anything you want. There must be a predefined actuator available. I am not seeing any actuator specific to the setpoint manager that you're using in the docs.

bonnema's avatar bonnema  ( 2022-02-08 10:23:59 -0500 )edit

You can change the setpoint manager, or try to actuate the schedule/curve fields within the setpoint manager that you're using to "back calculate" the result that you want. I think it is easier to change the setpoint manager, but it is hard to say without knowing exactly what you're trying to accomplish.

bonnema's avatar bonnema  ( 2022-02-08 10:24:32 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2022-02-23 05:24:27 -0500

kem's avatar

updated 2022-02-23 05:27:19 -0500

The solution we adopted: Configuration of Python Plugin:

self.api.exchange.get_actuator_handle(
     state, "System Node Setpoint", "Temperature Setpoint", "Condenser Tower Outlet Node")

Changes in the IDF: removed the Setpoint Manager

SetpointManager:CondenserEnteringReset:Ideal,

Result: It's working smoothly. We can change the setpoint via Plugin and the setpoint is followed.

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

Training Workshops

Question Tools

2 followers

Stats

Asked: 2022-02-07 06:32:14 -0500

Seen: 76 times

Last updated: Feb 23