Skip to content
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

Issue2180 boiler plant main controller oct 2021 #2700

Draft
wants to merge 1,350 commits into
base: master
Choose a base branch
from

Conversation

mwetter
Copy link
Member

@mwetter mwetter commented Oct 27, 2021

This replaces #2685

@JayHuLBL @karthikeyad-pnnl: Please make sure this contains the changes from #2685

Note that this is on a branch with the new name issue2180_BoilerPlant_MainController_oct_2021 to distinguish it from the old branch issue2180_BoilerPlant_MainController (whose changes are on this branch too).

I essentially did the following:

 git checkout -b karthikeyad-pnnl-issue2180_MainBoilerPlantController issue2180_BoilerPlant_MainController
 git checkout -b issue2180_BoilerPlant_MainController
 git pull
 git branch --set-upstream-to=origin/issue2180_BoilerPlant_MainController issue2180_BoilerPlant_MainController
 git pull
 git diff --name-only origin/master
 git checkout -b karthikeyad-pnnl-issue2180_MainBoilerPlantController issue2180_BoilerPlant_MainController
 git pull https://github.com/karthikeyad-pnnl/modelica-buildings.git issue2180_MainBoilerPlantController
 git checkout issue2180_BoilerPlant_MainController
 git merge --no-ff karthikeyad-pnnl-issue2180_MainBoilerPlantController
 git diff --name-only origin/master
 git checkout -b issue2180_BoilerPlant_MainController_oct_2021
 git diff --name-only origin/master
 git push --set-upstream origin issue2180_BoilerPlant_MainController_oct_2021

</p>
<p align=\"center\">
<img alt=\"Validation plot for EfficiencyCondition1\"
src=\"modelica://Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/Staging/SetPoints/Subsequences/Down1.png\"/>
Copy link
Contributor

Choose a reason for hiding this comment

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

@karthikeyad-pnnl These plots are missing.

@JayHuLBL
Copy link
Contributor

@karthikeyad-pnnl I corrected the html errors, but did not get chance to check if all the changes from #2685 are included here. At least I noticed some images are missing.

@JayHuLBL
Copy link
Contributor

@karthikeyad-pnnl
Some classes are broken due to the refactoring of the CDL block, see #3128.

  • fix the broken classes
  • re run unit tests and update reference results.

Copy link
Contributor

@AntoineGautier AntoineGautier left a comment

Choose a reason for hiding this comment

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

@karthikeyad-pnnl Please see the inline comments that I have after working on the integration of the G36 boiler plant controller into the boiler plant template developed in the feature branch issue3266_template_HW_plant of MBL.
Please note that this is not a full review: those comments only pertain to the parameters and I/O points of the controller. (The validity of the control logic implementation was not reviewed.)

parameter Integer nIgnReq(
final min=0) = 0
"Number of hot-water requests to be ignored before enabling boiler plant loop"
annotation(dialog(tab="Plant enable/disable parameters"));
Copy link
Contributor

Choose a reason for hiding this comment

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

Incorrect annotation (several occurrences): dialog should be capitalized.

Comment on lines +117 to +118
parameter Real schTab[nSchRow,2] = [0,1;6,1;18,1;24,1]
"Table defining schedule for enabling plant"
Copy link
Contributor

Choose a reason for hiding this comment

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

  • Shouldn't it rather be a software point (input connector), and not a parameter? Particularly it should accommodate weekdays and holidays.
  • Missing consistency with issue2293_chiller_plant_seq where the schedule time values are provided in s as opposed to h here.
  • Since size() is a function allowed in CDL (https://obc.lbl.gov/specification/cdl.html#functions) why expose nSchRow as a parameter as opposed to assigning it simply with final parameter Integer nSchRow = size(schTab, 1)?

Comment on lines +104 to +115
parameter Integer nPumSec
"Total number of secondary hot water pumps"
annotation (Dialog(group="Boiler plant configuration parameters"));

parameter Integer nSenSec
"Total number of remote differential pressure sensors in secondary loop"
annotation (Dialog(group="Boiler plant configuration parameters"));

parameter Integer nPumSec_nominal(
final max=nPumSec) = nPumSec
"Total number of pumps that operate at design conditions in secondary loop"
annotation (Dialog(group="Boiler plant configuration parameters"));
Copy link
Contributor

Choose a reason for hiding this comment

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

Should be enabled only for primary-secondary plants.

Comment on lines +17 to +18
parameter Boolean have_priOnl = false
"Is the boiler plant a primary-only, condensing boiler plant?"
Copy link
Contributor

Choose a reason for hiding this comment

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

How are primary-only non-condensing boiler systems supported?

Comment on lines +31 to +33
parameter Boolean have_secFloSen=false
"True: Flowrate sensor in secondary loop;
False: Flowrate sensor in decoupler"
Copy link
Contributor

Choose a reason for hiding this comment

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

The description of the false condition is confusing as primary-secondary plants may have neither a flow sensor in the secondary loop nor in the decoupler (and rely on Delta-T for primary pump control).

Comment on lines +536 to +544
parameter Real maxLocDpPri(
final unit="Pa",
displayUnit="Pa",
final quantity="PressureDifference",
final min=1e-6) = 5*6894.75
"Maximum primary loop local differential pressure setpoint"
annotation (Dialog(tab="Primary pump control parameters", group="DP-based speed regulation",
enable = speConTypPri == Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.Types.PrimaryPumpSpeedControlTypes.localDP
or speConTypPri == Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.Types.PrimaryPumpSpeedControlTypes.remoteDP));
Copy link
Contributor

Choose a reason for hiding this comment

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

This comment pertains to this declaration and the following one:

  parameter Real maxLocDpSec(
    final unit="Pa",
    displayUnit="Pa",
    final quantity="PressureDifference",
    final min=1e-6) = 5*6894.75
    "Maximum hot water loop local differential pressure setpoint in secondary loop"
  • I would use only one parameter instead of two as it is actually the setpoint of the same sensor, i.e., the differential pressure needed at the boundaries of the distribution system to serve the loads.
  • How to justify a default value (generic) for those parameters? If provided anyway it should differ from the minimum setpoint value of 5 psi.

Comment on lines +1042 to +1043
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yBoi[nBoi]
"Boiler status vector"
Copy link
Contributor

Choose a reason for hiding this comment

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

"Status" is the current On/Off state of a device as reported by the hardware itself, so a DI point.
The description string should rather be: "Boiler enable signal".

Comment on lines +1057 to +1058
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yPla
"Plant enable signal"
Copy link
Contributor

Choose a reason for hiding this comment

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

Not an output point per G36 4.11. Should be removed.

Comment on lines +1047 to +1048
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yPriPum[nPumPri]
"Primary pump enable status vector"
Copy link
Contributor

Choose a reason for hiding this comment

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

See comment above about "status": replace with "signal".

Comment on lines +1062 to +1066
Buildings.Controls.OBC.CDL.Interfaces.RealOutput TPlaHotWatSupSet(
final unit="K",
displayUnit="K",
final quantity="ThermodynamicTemperature")
"Plant hot water supply temperature setpoint"
Copy link
Contributor

Choose a reason for hiding this comment

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

  • Not an output point per G36 4.11. Should be removed.
  • (Temperatures should rather have `displayUnit="degC".)

This was referenced Apr 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants