Skip to content

Chiller plant sequences#2299

Open
milicag wants to merge 1397 commits into
masterfrom
issue2293_chiller_plant_seq
Open

Chiller plant sequences#2299
milicag wants to merge 1397 commits into
masterfrom
issue2293_chiller_plant_seq

Conversation

@milicag

@milicag milicag commented Dec 8, 2020

Copy link
Copy Markdown
Contributor

@milicag milicag marked this pull request as ready for review December 10, 2020 06:01
@milicag

This comment was marked as outdated.

@JayHuLBL

This comment was marked as outdated.

AntoineGautier

This comment was marked as resolved.

@AntoineGautier AntoineGautier left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feedback is for commit 3f8c79f.

It seems that the remarks from #2299 (comment) have not been addressed.
This is problematic as several bugs were reported.

In addition, the main controller is still incompatible with a large subset of all possible plant configurations. But there is no assert statements in the code to check that the configuration settings are actually supported. So the user can only refer to the documentation of the main controller. This documentation enumerates all subcontrollers and provides for each of them a table showing which configurations are covered. So one must browse through all those tables to deduce which configurations the main controller is actually compatible with.
Furthermore, it appears that some subcontrollers are only valid for primary-secondary configurations (such as Buildings.Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Staging.SetPoints.Subsequences.CapacityRequirement--although this is not explicit in the documentation--which uses the secondary CHW return temperature and references §5.2.4.8 from RP1711) while others are only valid for primary-only configurations (such as Buildings.Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Pumps.ChilledWater.Controller).

I also have several additional inline remarks, see below.

Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment on lines +547 to +553
parameter Real fanSpeMin(unit="1")=0.1
"Minimum tower fan speed"
annotation (Dialog(tab="Cooling Towers", group="Fan speed"));

parameter Real fanSpeMax(unit="1")=1
"Maximum tower fan speed"
annotation (Dialog(tab="Cooling Towers", group="Fan speed"));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • First parameter only required for water-cooled plants.
  • Second parameter never required as 100% AO from the BAS shall be mapped to maximum speed.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JayHuLBL This remains partially unaddressed in 79f8bfe:

  • fanSpeMax never required as 100% AO from the BAS shall be mapped to maximum speed.

@AntoineGautier AntoineGautier Sep 29, 2025

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JayHuLBL This remains unaddressed in 55ea8c5.

Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment on lines +928 to +934
Buildings.Controls.OBC.CDL.Interfaces.RealInput TConWatSup(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature") if not closeCoupledPlant
"Condenser water supply temperature (condenser entering)"
annotation(Placement(transformation(extent={{-940,-680},{-900,-640}}),
iconTransformation(extent={{-140,-340},{-100,-300}})));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing condition for type of CT fan speed control.
In pseudo code this should be if have_CWRTControl and not closeCoupledPlant or have_CWSTControl.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JayHuLBL This remains partially unaddressed in 79f8bfe:

  • The condition is now if not closeCoupledPlant and not have_airCoo: does this mean that only CWRT control is implemented? Is this limitation mentioned somewhere?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JayHuLBL The question remains open in 55ea8c5:

  • The condition is now if not closeCoupledPlant and not have_airCoo: does this mean that only CWRT control is implemented? Is this limitation mentioned somewhere?

Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
Comment thread Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo Outdated
@AntoineGautier

This comment was marked as resolved.

@AntoineGautier

This comment was marked as resolved.

@AntoineGautier

AntoineGautier commented Feb 27, 2023

Copy link
Copy Markdown
Contributor

For reference, I am tracking here another suspected bug as discussed on 2/3/23.
The issue is within Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Pumps.ChilledWater.Controller where a pre block is used to check with intEqu4 the pump proven ON status (i.e. enable command equals pump status). However, in the validation model Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Pumps.ChilledWater.Validation.Controller the pump status passed in as input to heaNoLoc is also computed using a pre block (enaStaRet). So inside the controller, intEqu4 should always return true as it basically compares pre(heaNoLoc.yChiWatPum) to heaNoLoc.uChiWatPum which is connected to pre(heaNoLoc.yChiWatPum).
I slightly modified the validation model (attached) to exhibit what I think is an incorrect response of the controller. See the plot below:
image
Controller.mo.txt

[EDIT on 1/20/25] On commit f1e3de2, the issue seems to persist with the staging logic for headered pumps. The validation model Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Pumps.ChilledWater.Validation.Controller shows that only the lead pump is enabled. The lag pumps remain disabled (even when reducing the frequency of the source signal for the CHW flow rate to ensure that the minimum runtime before triggering stage change has been reached). Consider refactoring by simply computing the stage up and stage down command signals and using Templates.Plants.Controls.Utilities.StageIndex which is a generic implementation of the stage index evaluation that also accounts for unavailable stages.

[EDIT on 9/29/25] @JayHuLBL There still seems to be an issue with the primary CHW pump staging logic in commit 55ea8c5. The validation model Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Pumps.ChilledWater.Validation.Controller shows that only the first lag pump (#1) is enabled. The second lag pump (#3) is never enabled despite the primary flow ratio exceeding 2/3 - 0.03 for more than 10'.

image

@AntoineGautier AntoineGautier mentioned this pull request Feb 28, 2023
5 tasks
@mwetter mwetter added this to the Release 10.0 milestone Mar 8, 2023
@AntoineGautier

This comment was marked as resolved.

@mwetter mwetter modified the milestones: Release 10.0, Release 11.0 Sep 5, 2023
@AntoineGautier

This comment was marked as resolved.

@AntoineGautier

This comment was marked as resolved.

@JayHuLBL

This comment was marked as outdated.

@AntoineGautier

This comment was marked as resolved.

@JayHuLBL

Copy link
Copy Markdown
Contributor

@AntoineGautier The remaining issue about the economizer tuning parameter calculation was addressed. The change was tested in template model as below. The tuning parameter will change as expected.
Screenshot 2026-05-20 at 4 38 22 PM

@AntoineGautier

Copy link
Copy Markdown
Contributor

@JayHuLBL Great! One question though: why is the tuning parameter not increased around 7E4 s of simulation time based on the following clause?

Increase “m” by 0.02 when the economizer is disabled if the economizer remained enabled for less
than 30 minutes and WseTower-MaxSpeed did not decrease below 100% speed while the WSE
was enabled.

@JayHuLBL

Copy link
Copy Markdown
Contributor

@AntoineGautier There was a confusion about the "WseTower-MaxSpeed did not decrease below 100% speed while the WSE was enabled." We need to check if the speed was alway not less than 100% during the entire period when the WSE was enabled, rather than at the specific moment, i.e. when the WSE was enabled.

I believe it has been corrected now through the commit 67ee039.

Screenshot 2026-05-21 at 2 09 02 PM

@AntoineGautier

Copy link
Copy Markdown
Contributor

@JayHuLBL Thanks, that looks good.

@JayHuLBL

JayHuLBL commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

@mwetter
It's ready to merge if there is no more comment.

@mwetter mwetter self-assigned this Jun 2, 2026

@mwetter mwetter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JayHuLBL : See some high level feedback from a quick review.

@@ -17,6 +17,11 @@ The following <b style=\"color:blue\">new libraries</b> have been added:
<td valign=\"top\">xxx.
</td>
</tr>
<tr><td valign=\"top\">Buildings.Controls.OBC.ASHRAE.G36.Plants
</td>
<td valign=\"top\">Package of sequences for chiller and boiler plants

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are no boiler plants in the PR

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deleted the boiler plants text.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check out file from master, otherwise it will be overridden again when we merge IBPSA. This change seems not needed.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked out the file from master.

Comment thread Buildings/Examples/package.order
@JayHuLBL

JayHuLBL commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@mwetter Ready for review.

@JayHuLBL

JayHuLBL commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Before merging, Todo:

  • Remove the Buildings.Templates.Plants.Controls.Utilities.TimerWithReset, as it is a duplicate of Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status
Status: In progress

Development

Successfully merging this pull request may close these issues.

Chiller plant sequences

6 participants