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
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1350 commits
Select commit Hold shift + click to select a range
04b0275
updated controller for the dual-duct unit with cold-duct minimum control
JayHuLBL Feb 17, 2022
d89edcc
created validation model for time suppression sequence
JayHuLBL Feb 17, 2022
dc67852
created script
JayHuLBL Feb 17, 2022
c9bf504
created validation model for classes in thermal zone package
JayHuLBL Feb 18, 2022
c20514d
Merge branch 'master' into issue1913_g36_final
JayHuLBL Feb 24, 2022
3188660
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL Feb 24, 2022
834f096
removed BOM characters [ci skip]
JayHuLBL Feb 24, 2022
c0a33e8
merged master
JayHuLBL Feb 25, 2022
18585e0
Merge branch 'master' into issue1913_g36_final
JayHuLBL Feb 25, 2022
3057d6f
creating validation model
JayHuLBL Feb 26, 2022
6269e37
creating validation models
JayHuLBL Feb 28, 2022
05e11ab
creating validation models
JayHuLBL Mar 2, 2022
a42e6a1
added validation models for the multizone AHU economizer control sequ…
JayHuLBL Mar 3, 2022
a716d4a
adding validation models for multizone VAV setpoints package
JayHuLBL Mar 3, 2022
1d106d3
improving relief fan control
JayHuLBL Mar 8, 2022
13d55a3
added validation models for multizone AHU setpoint sequences
JayHuLBL Mar 8, 2022
f4a2ebc
renamed model
JayHuLBL Mar 8, 2022
44d36c4
added validation models for single zone economizers
JayHuLBL Mar 10, 2022
8e3ae28
adding validation models for single zone AHU setpoint sequences
JayHuLBL Mar 10, 2022
b79660f
created validation models for single zone AHU controller
JayHuLBL Mar 11, 2022
7c006f6
added hot water coil flag to the reheat unit controller
JayHuLBL Mar 11, 2022
6a4894d
adding validation models for cooling only unit
JayHuLBL Mar 11, 2022
fd2dc9c
created subsequences for cooling unit control
JayHuLBL Mar 11, 2022
33be1ac
added cooling only unit controller validation model
JayHuLBL Mar 11, 2022
03af89a
Merge branch 'master' into issue1913_g36_final
JayHuLBL Mar 11, 2022
79dad11
adding validation models for dual-duct units
JayHuLBL Mar 14, 2022
fb3ebac
created validation model for dual-duct unit with the minimum cold-duc…
JayHuLBL Mar 15, 2022
50a90ce
added validation models for dual duct unit using mixing control with …
JayHuLBL Mar 15, 2022
7f7372b
added validation models for dual duct unit using mixing control with …
JayHuLBL Mar 15, 2022
b1316b8
adding validation models for dual-duct unit with snap acting control
JayHuLBL Mar 16, 2022
feb172b
adding validation models for dual duct unit with snap acting control
JayHuLBL Mar 16, 2022
6a3922b
added validation models for parallel fan powered unit with constant v…
JayHuLBL Mar 16, 2022
7096a26
added validation models for parallel-fan powered unit with variable v…
JayHuLBL Mar 16, 2022
fa6bfb5
Merge branch 'master' into issue1913_g36_final
JayHuLBL Mar 17, 2022
1510047
added hot water coil to parallel-fan powered unit controllers
JayHuLBL Mar 17, 2022
aa62631
changed single package mo file to being a folder
JayHuLBL Mar 17, 2022
3ece51e
added validation models for series fan powered unit controllers
JayHuLBL Mar 17, 2022
58db8d5
refactored package order
JayHuLBL Mar 17, 2022
69adbcd
added validation models for reheat unit controller
JayHuLBL Mar 17, 2022
84f97c7
addressing comments
JayHuLBL Mar 21, 2022
efbac56
changing CO2 setpoint as input
JayHuLBL Mar 21, 2022
fd4ade1
changed the CO2 concentration setpoint to be an input
JayHuLBL Mar 22, 2022
80444a9
added economizer high limit cut off calculation
JayHuLBL Mar 24, 2022
679f566
added title 24 ventilation setpoint calculaiton
JayHuLBL Mar 28, 2022
9594bc9
Merge branch 'master' into issue1913_g36_final
JayHuLBL Mar 28, 2022
34fb2eb
added title 24 ventilation setting to single zone AHU control
JayHuLBL Mar 29, 2022
26acea4
added in Title 24 ventilation setpoint option in the terminal unit co…
JayHuLBL Mar 30, 2022
4405be1
modifying minimum outdoor air setpoint calculation for MZVAV
JayHuLBL Mar 31, 2022
54871ea
added title 24 options to MZVAV subsequences
JayHuLBL Apr 1, 2022
2625a3b
updated validation model
JayHuLBL Apr 4, 2022
778c300
Merge branch 'master' into issue1913_g36_final
JayHuLBL Apr 4, 2022
4849514
added title 24 option and the economizer high limit calculation in tM…
JayHuLBL Apr 6, 2022
a6d3bc3
updated zone group calculation
JayHuLBL Apr 7, 2022
d199b38
refactored package order
JayHuLBL Apr 7, 2022
32e124c
added on-off minimum outdoor air damper output
JayHuLBL Apr 8, 2022
a0c7bdb
Merge branch 'master' into issue1913_g36_final
JayHuLBL Apr 11, 2022
9ae91a4
refactoring naming
JayHuLBL Apr 11, 2022
1481301
updating freeze stat connector
JayHuLBL Apr 12, 2022
ba38b2d
Merge branch 'master' into issue1913_g36_final
JayHuLBL Apr 13, 2022
5c3fe15
updated freeze stat status input
JayHuLBL Apr 13, 2022
3355d49
updating the namings of the connector and parameters
JayHuLBL Apr 18, 2022
835be1c
Merge branch 'master' into issue1913_g36_final
JayHuLBL Apr 18, 2022
8ebc2c9
updated namings for MZVAV controller
JayHuLBL Apr 18, 2022
11f551e
corrected namings in AHU controllers
JayHuLBL Apr 19, 2022
25e0da1
updated namings in cooling only unit
JayHuLBL Apr 19, 2022
70d8854
corrected namings used in terminal unit controllers
JayHuLBL Apr 20, 2022
ac2f494
added fixed plus differential dry bulb high limit cut option
JayHuLBL Apr 21, 2022
c28f578
changed exhaust damper to relief damper
JayHuLBL Apr 22, 2022
05d1524
renamed connecter
JayHuLBL Apr 25, 2022
5828039
added barometric relief option
JayHuLBL Apr 27, 2022
ee0b626
Merge branch 'master' into issue1913_g36_final
JayHuLBL Apr 27, 2022
99d0c04
unified the parameter namings, updated comments
JayHuLBL Apr 28, 2022
852f150
propageted min and max return fan speed
JayHuLBL Apr 29, 2022
d486a19
Merge branch 'upstream_master' into issue2180_BoilerPlant_MainControl…
karthikeyad-pnnl Apr 29, 2022
3db77e9
Updated instance classes as per changes in CDL library
karthikeyad-pnnl Apr 29, 2022
5f455be
Fixed compilation issues in pumps package
karthikeyad-pnnl Apr 29, 2022
3216fae
Fixed compilation errors in Staging package
karthikeyad-pnnl Apr 29, 2022
1cd857f
Fixed other compilation issues
karthikeyad-pnnl Apr 29, 2022
278ac30
Changes to resolve warings in unit tests
karthikeyad-pnnl Apr 30, 2022
b713b41
Adding unit test results after updates
karthikeyad-pnnl Apr 30, 2022
0219085
Removed duplicate result file
karthikeyad-pnnl Apr 30, 2022
a117ac8
added default value to hysteresis parameters
JayHuLBL May 5, 2022
9577bf4
added flow setpoint override to damper (valve) control subsequence
JayHuLBL May 6, 2022
91236cc
avoid re-define of the nominal flow
JayHuLBL May 6, 2022
1ef9277
revised comments
JayHuLBL May 6, 2022
07ef9d0
Changed logic to reduce events
karthikeyad-pnnl May 9, 2022
1f0cbef
Added new unit test results
karthikeyad-pnnl May 9, 2022
5fa77e0
Removed redundant block
karthikeyad-pnnl May 9, 2022
edb5931
Updated formatting
karthikeyad-pnnl May 9, 2022
9874541
Removed redundant parameter
karthikeyad-pnnl May 9, 2022
614d6eb
Propagated removal of parameter to higher levels
karthikeyad-pnnl May 9, 2022
a653bca
Updated unit test results after updates to min flow setpoint logic
karthikeyad-pnnl May 9, 2022
7fea0e5
run unit tests
JayHuLBL May 10, 2022
51e6b6c
Merge branch 'master' into issue1913_g36_final
JayHuLBL May 10, 2022
b6c95ea
updating the closed loop model
JayHuLBL May 11, 2022
37be0bc
Merge branch 'master' into issue1913_g36_final
JayHuLBL May 26, 2022
96ff588
unified parameter namings
JayHuLBL May 31, 2022
51edf75
corrected link
JayHuLBL May 31, 2022
ba6ce75
added connector attributes
JayHuLBL May 31, 2022
a11719a
exported terminal box actual valve position
JayHuLBL May 31, 2022
34fc7bc
output ventilation setpoints
JayHuLBL May 31, 2022
abdb0f3
updating parating for the closed loop model
JayHuLBL May 31, 2022
7ba8ba7
merged master
JayHuLBL May 31, 2022
159c54c
reverted changes
JayHuLBL Jun 1, 2022
6b067c0
corrected typos
JayHuLBL Jun 1, 2022
54b16b8
updated parameter comments
JayHuLBL Jun 1, 2022
52c1acd
added closed-loop model
JayHuLBL Jun 1, 2022
48cdf2f
removed redundant connection
JayHuLBL Jun 1, 2022
0ea28c0
added connector conditions
JayHuLBL Jun 1, 2022
2c863b3
setted up the closed-loop model
JayHuLBL Jun 1, 2022
93924c5
Merge branch 'master' into issue1913_g36_final
JayHuLBL Jun 1, 2022
97205f3
added connector condition
JayHuLBL Jun 1, 2022
027fc88
improved zero flow check
JayHuLBL Jun 2, 2022
8b91502
updating figures in documentation
JayHuLBL Jun 6, 2022
2cbda99
updated all figures
JayHuLBL Jun 6, 2022
d34bf48
avoid divide zero
JayHuLBL Jun 16, 2022
f857d68
added missing hys
JayHuLBL Jun 16, 2022
5817629
removed moving mean
JayHuLBL Jun 16, 2022
4a574d0
improved default PID factors
JayHuLBL Jun 16, 2022
7eb9324
added input samplers
JayHuLBL Jun 16, 2022
9436a2f
moved old G36 example to obsolete
JayHuLBL Jun 16, 2022
6d2d5ff
unified control loop hys, added samplers
JayHuLBL Jun 16, 2022
e9ccb07
added true hold to avoid frequent switch
JayHuLBL Jun 17, 2022
77ffb10
corrected invalid text
JayHuLBL Jun 21, 2022
673adce
Merge branch 'master' into issue1913_g36_final
JayHuLBL Jun 22, 2022
a354365
moving G36_PR1 to obsolete package
JayHuLBL Jun 23, 2022
abd0eac
correcting scripts
JayHuLBL Jun 23, 2022
8ec4915
renamed scripts and reference results
JayHuLBL Jun 23, 2022
19e85c4
corrected script paths
JayHuLBL Jun 23, 2022
a1b3eec
removing or updating the usage of the G36_PR1 sequences
JayHuLBL Jun 23, 2022
dd4426d
updating the usage of G36_PR1 sequences
JayHuLBL Jun 23, 2022
0727b52
refactored package orer
JayHuLBL Jun 23, 2022
3d6f570
replaced single zone AHU control sequences
JayHuLBL Jun 24, 2022
8c5cc97
updated reference with Dymola 2022x
JayHuLBL Jun 24, 2022
11596f5
rerun unit test for the VAVReheat models
JayHuLBL Jun 24, 2022
e795f1b
removed G36_PR1 pacakage
JayHuLBL Jun 24, 2022
fafb6fd
removed G36_PR1 pacakage
JayHuLBL Jun 24, 2022
ec2b94f
moved imges and corrected G36_PR1 related links
JayHuLBL Jun 24, 2022
4d03688
changed stop time of the plotter example model
JayHuLBL Jul 5, 2022
e8bed6c
updated reference result
JayHuLBL Jul 5, 2022
b9d0d9d
added conversion script, updated release note
JayHuLBL Jul 5, 2022
100fa05
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL Jul 6, 2022
50279f8
created closed loop chiller plant sequence test
JayHuLBL Jul 8, 2022
96ffbaf
reordered package
JayHuLBL Jul 8, 2022
666b90b
corrected text format
JayHuLBL Jul 8, 2022
98a6141
added economizer devices control
JayHuLBL Jul 15, 2022
826bc84
reordered package
JayHuLBL Jul 15, 2022
7f9e598
run unit text
JayHuLBL Jul 15, 2022
01027a5
corrected html syntax
JayHuLBL Jul 15, 2022
e0997cc
updated economizer controller
JayHuLBL Jul 15, 2022
aa1c94f
unit test
JayHuLBL Jul 15, 2022
1e14345
updated change intial state
JayHuLBL Jul 18, 2022
ffbf1aa
Merge branch 'master' into issue1913_g36_final
JayHuLBL Jul 20, 2022
d982052
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL Jul 20, 2022
a6bade5
created plant enable package
JayHuLBL Jul 20, 2022
5b32aa6
added devices control when plant enables
JayHuLBL Jul 20, 2022
5e11b8f
added devices control when enabling and disabling plants
JayHuLBL Jul 22, 2022
76528a1
fixed error in tower staging process
JayHuLBL Aug 3, 2022
26b0f94
merged master
JayHuLBL Aug 9, 2022
8ba70c7
Merge branch 'master' into issue1913_g36_final
JayHuLBL Aug 16, 2022
d199bd9
changed freeze stat enumerations
JayHuLBL Aug 22, 2022
1eff463
merged master
JayHuLBL Aug 23, 2022
3cbe566
separated ahu mode calculation
JayHuLBL Aug 24, 2022
0a22596
addressing comments
JayHuLBL Aug 24, 2022
7465777
addressing multizone AHU controller comments
JayHuLBL Aug 25, 2022
7be670f
improved parameter namings
JayHuLBL Aug 31, 2022
2d7e632
removed zero default value
JayHuLBL Aug 31, 2022
aa25805
removed the damper and valve actual position connectors
JayHuLBL Sep 1, 2022
c153168
updated comments, changed boolean connector name
JayHuLBL Sep 1, 2022
2bff124
changed file name
JayHuLBL Sep 1, 2022
3b292f8
fixed broken links
JayHuLBL Sep 1, 2022
332fa84
merged master
JayHuLBL Sep 1, 2022
17c6add
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL Sep 1, 2022
7f8ee62
fixed typos
JayHuLBL Sep 2, 2022
254a9f5
removed colon mark
JayHuLBL Sep 2, 2022
ba7cba2
Merge branch 'master' into issue1913_g36_final
JayHuLBL Sep 6, 2022
b9e34aa
addressed comments
JayHuLBL Sep 6, 2022
de6cf98
corrected the p/dp namings #1913
JayHuLBL Sep 7, 2022
0ff87a7
Merge remote-tracking branch 'upstream/master' into issue2180_BoilerP…
karthikeyad-pnnl Sep 12, 2022
4d855bd
Merge remote-tracking branch 'upstream/issue2180_BoilerPlant_MainCont…
karthikeyad-pnnl Sep 12, 2022
1e11f5a
improved handling of dividing by zero
JayHuLBL Sep 13, 2022
dac3f06
avoided using minimum outdoor air damper status input for return fan …
JayHuLBL Sep 16, 2022
bbefc72
renamed relief fans to fans group
JayHuLBL Sep 16, 2022
c67e939
created single relief fan control
JayHuLBL Sep 20, 2022
2662242
composed relief fan control to multizone AHU controller
JayHuLBL Sep 22, 2022
afdbcaf
Merge branch 'master' into issue2180_BoilerPlant_MainController_oct_2021
JayHuLBL Sep 22, 2022
19fe42b
Merge pull request #2982 from karthikeyad-pnnl/issue2180_BoilerPlant_…
JayHuLBL Sep 22, 2022
0d96592
merged master
JayHuLBL Sep 22, 2022
9842438
merged chiller plant sequences
JayHuLBL Sep 22, 2022
48e38f6
removed redundant zeros [ci skip]
JayHuLBL Sep 22, 2022
7effeca
removed BOM
JayHuLBL Sep 22, 2022
ecfb839
refactored package order [ci skip]
JayHuLBL Sep 22, 2022
24ea334
composed the relief fan control to single zone AHU controller
JayHuLBL Sep 27, 2022
72e4539
merged master
JayHuLBL Sep 27, 2022
859cc62
added default values, added reference results of the relief fan control
JayHuLBL Sep 27, 2022
7ccf988
removed BOM
JayHuLBL Sep 27, 2022
65fd011
deleted obsolete OpenModelica script
JayHuLBL Sep 27, 2022
3517f4a
added missing comments
JayHuLBL Sep 28, 2022
2f4b3af
removed self connection
JayHuLBL Sep 28, 2022
02cf18d
changed the time constant value of temperature sensors
JayHuLBL Sep 28, 2022
f879298
corrected variables in mos scripts
JayHuLBL Sep 29, 2022
f1ab9fd
updated reference results
JayHuLBL Sep 29, 2022
bda11e9
added missing comment
JayHuLBL Sep 29, 2022
b427e2d
added missing fill() function
JayHuLBL Sep 29, 2022
203f013
updated reference results in plotter examples package
JayHuLBL Sep 29, 2022
d550924
corrected obsolete models, updated reference results
JayHuLBL Sep 29, 2022
a4e061b
updated reference results
JayHuLBL Sep 29, 2022
5647448
Merge branch 'master' into issue1913_g36_final
mwetter Sep 30, 2022
e5fa731
Added failing new models in Obsolete package to exclusion list
mwetter Sep 30, 2022
94b7d69
Removed non-existent models from configuration file
mwetter Sep 30, 2022
34e11be
Corrected reference of G36
mwetter Sep 30, 2022
6afdfd8
Corrected access to non-existent type
mwetter Sep 30, 2022
b030bce
Corrected access to non-existent type
mwetter Sep 30, 2022
1984a75
corrected hyperlinks
JayHuLBL Oct 3, 2022
7519ef7
reverted the change of temperature sensor time constants
JayHuLBL Oct 3, 2022
35217ee
merged master
JayHuLBL Oct 4, 2022
fda6ead
corrected loop issue
JayHuLBL Oct 5, 2022
0d3680d
updated reference results
JayHuLBL Oct 5, 2022
8818ac5
removed BOM
JayHuLBL Oct 5, 2022
d56529b
updated reference results
JayHuLBL Oct 5, 2022
65156f1
updated reference results of VAV reheat example models in Obsolete pa…
JayHuLBL Oct 5, 2022
d72aca5
merged issue1913
JayHuLBL Oct 5, 2022
7a4c784
merged master
JayHuLBL Oct 6, 2022
3f8c79f
corrected text
JayHuLBL Oct 6, 2022
c3c495d
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL Nov 9, 2022
e500080
Remove unnecessary experiment statement
terrancelu92 Nov 14, 2022
61a8b84
Fixed lineColor error in Text annotation
terrancelu92 Nov 14, 2022
f1eb6a7
removed the dymola algorithm in the mos script
terrancelu92 Nov 15, 2022
74c0b57
Add required documentation for three models
terrancelu92 Nov 15, 2022
65e65f6
Switch back some unintentional changes
terrancelu92 Nov 15, 2022
1b17944
Remove unnecessary zeros
terrancelu92 Nov 15, 2022
046325d
merged master [ci skip]
JayHuLBL Nov 15, 2022
3d846f3
Correct the documentation html for these two types
terrancelu92 Nov 16, 2022
04b80a3
Merge pull request #53 from lbl-srg/issue2180_BoilerPlant_MainControl…
karthikeyad-pnnl Nov 21, 2022
6163230
Merge pull request #54 from terrancelu92/issue2180_BoilerPlant_MainCo…
karthikeyad-pnnl Nov 21, 2022
89b78df
Updated unit test results
karthikeyad-pnnl Nov 23, 2022
264fe21
Fixed issues in example models
karthikeyad-pnnl Nov 23, 2022
ec0e3bf
Updated boiler plant controller in line with updates made during join…
karthikeyad-pnnl Nov 26, 2022
7544ba7
Upadted boiler plant 3example model in line with updates made during …
karthikeyad-pnnl Nov 26, 2022
a0486e3
Updated connect statements in validation model after updating connect…
karthikeyad-pnnl Nov 26, 2022
f23978e
Removed unused validation script for non-existent model
karthikeyad-pnnl Nov 26, 2022
97562fb
Updated unit test results
karthikeyad-pnnl Nov 26, 2022
d7e52b3
Updated icon layer formatting
karthikeyad-pnnl Nov 26, 2022
110e5cc
Removed redundant zeros
karthikeyad-pnnl Nov 26, 2022
4a94d98
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL Feb 2, 2023
fe2a983
Merge pull request #3168 from karthikeyad-pnnl/issue2180_BoilerPlant_…
JayHuLBL Mar 10, 2023
d072610
merging master
JayHuLBL Mar 10, 2023
31dfa1d
merged master
JayHuLBL Mar 10, 2023
ecfdd1c
merged issue2293
JayHuLBL Mar 10, 2023
1a5959f
corrected class path
JayHuLBL Mar 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -171,18 +171,15 @@ partial model PartialDataCenter
annotation (Placement(transformation(extent={{10,-10},{-10,10}},
rotation=90,
origin={-50,-150})));
Buildings.Examples.ChillerPlant.BaseClasses.SimplifiedRoom roo(
Buildings.Examples.ChillerPlants.DataCenter.BaseClasses.SimplifiedRoom roo(
redeclare replaceable package Medium = MediumA,
rooLen=50,
rooWid=30,
rooHei=3,
m_flow_nominal=mAir_flow_nominal,
QRoo_flow=500000,
nPorts=2)
"Room model"
annotation (Placement(transformation(
extent={{10,-10},{-10,10}},
origin={4,-180})));
nPorts=2) "Room model" annotation (Placement(transformation(extent={{10,-10},
{-10,10}}, origin={4,-180})));
Buildings.Fluid.Actuators.Valves.TwoWayLinear val[numChi](
redeclare each package Medium = MediumW,
each m_flow_nominal=m1_flow_chi_nominal,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ model DXCooledAirsideEconomizer
parameter Real minSpeFan = 0.2
"Minimum fan speed ratio required by variable speed fans";

Buildings.Examples.ChillerPlant.BaseClasses.SimplifiedRoom roo(
Buildings.Examples.ChillerPlants.DataCenter.BaseClasses.SimplifiedRoom roo(
redeclare package Medium = Medium,
rooLen=50,
rooHei=3,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.BypassValve;
block BypassValvePosition
"Sequence for controlling minimum flow bypass valve position"

parameter Integer nPum = 2
"Number of pumps";

parameter Buildings.Controls.OBC.CDL.Types.SimpleController controllerType= Buildings.Controls.OBC.CDL.Types.SimpleController.PI
"Type of controller";

parameter Real k(
final min=0,
final unit="1",
displayUnit="1") = 1
"Gain of controller";

parameter Real Ti(
final min=0,
final unit="s",
displayUnit="s",
final quantity="time") = 0.5
"Time constant of integrator block";

parameter Real Td(
final min=0,
final unit="s",
displayUnit="s",
final quantity="time") = 0.1
"Time constant of derivative block";

Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uPumSta[nPum]
"Input signals indicating pump statuses"
annotation (Placement(transformation(extent={{-140,-20},{-100,20}}),
iconTransformation(extent={{-140,-40},{-100,0}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput VHotWat_flow(
final unit="m3/s",
displayUnit="m3/s",
final quantity="VolumeFlowRate")
"Measured hot-water flow-rate through primary circuit"
annotation (Placement(transformation(extent={{-140,20},{-100,60}}),
iconTransformation(extent={{-140,0},{-100,40}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput VHotWatMinSet_flow(
final unit="m3/s",
displayUnit="m3/s",
final quantity="VolumeFlowRate")
"Calculated hot water minimum flow setpoint through boilers"
annotation (Placement(transformation(extent={{-140,60},{-100,100}}),
iconTransformation(extent={{-140,40},{-100,80}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput uMinBypValPos(
final unit="1",
displayUnit="1",
final min=0)
"Minimum bypass valve position for condensation control in non-condensing boilers"
annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}),
iconTransformation(extent={{-140,-80},{-100,-40}})));

Buildings.Controls.OBC.CDL.Interfaces.RealOutput yBypValPos(
final unit="1",
displayUnit="1",
final min=0)
"Bypass valve opening position"
annotation (Placement(transformation(extent={{100,-50},{140,-10}}),
iconTransformation(extent={{100,-20},{140,20}})));

protected
Buildings.Controls.OBC.CDL.Continuous.Subtract sub2
"Difference between measured flowrate and minimum flow setpoint"
annotation (Placement(transformation(extent={{-70,30},{-50,50}})));

Buildings.Controls.OBC.CDL.Logical.MultiOr mulOr(
final nin=nPum)
"Block to detect if any of the pumps are proved ON"
annotation (Placement(transformation(extent={{-70,-10},{-50,10}})));

Buildings.Controls.OBC.CDL.Continuous.Divide div
"Normalize measured hot water flowrate"
annotation (Placement(transformation(extent={{-20,30},{0,50}})));

Buildings.Controls.OBC.CDL.Continuous.Sources.Constant con(
final k=0)
"Constant Real source"
annotation (Placement(transformation(extent={{-20,60},{0,80}})));

Buildings.Controls.OBC.CDL.Continuous.Max max
"Ensure bypass valve position is greater than lower limit for condensation control"
annotation (Placement(transformation(extent={{70,-40},{90,-20}})));

Buildings.Controls.OBC.CDL.Continuous.AddParameter addPar(
final p=1e-6)
"Prevent division by zero"
annotation (Placement(transformation(extent={{-70,70},{-50,90}})));

Buildings.Controls.OBC.CDL.Continuous.PIDWithReset conPID(
final controllerType=controllerType,
final k=k,
final Ti=Ti,
final Td=Td,
final yMax=1,
final yMin=0,
xi_start=1,
reverseActing=false)
"PID loop to regulate flow through primary loop using bypass valve"
annotation (Placement(transformation(extent={{20,60},{40,80}})));

Buildings.Controls.OBC.CDL.Logical.Edge edg
"Reset PID loop when it is activated"
annotation (Placement(transformation(extent={{-20,-10},{0,10}})));

equation

connect(mulOr.u[1:nPum], uPumSta) annotation (Line(points={{-72,0},{-120,0}},
color={255,0,255}));

connect(uMinBypValPos, max.u2) annotation (Line(points={{-120,-60},{50,-60},{50,
-36},{68,-36}}, color={0,0,127}));
connect(max.y, yBypValPos)
annotation (Line(points={{92,-30},{120,-30}}, color={0,0,127}));
connect(VHotWatMinSet_flow, addPar.u)
annotation (Line(points={{-120,80},{-72,80}}, color={0,0,127}));
connect(addPar.y, div.u2) annotation (Line(points={{-48,80},{-40,80},{-40,34},
{-22,34}}, color={0,0,127}));
connect(con.y, conPID.u_s)
annotation (Line(points={{2,70},{18,70}}, color={0,0,127}));
connect(div.y, conPID.u_m)
annotation (Line(points={{2,40},{30,40},{30,58}}, color={0,0,127}));
connect(mulOr.y, edg.u) annotation (Line(points={{-48,0},{-22,0}},
color={255,0,255}));
connect(edg.y, conPID.trigger)
annotation (Line(points={{2,0},{24,0},{24,58}}, color={255,0,255}));

connect(conPID.y, max.u1) annotation (Line(points={{42,70},{50,70},{50,-24},{68,
-24}}, color={0,0,127}));
connect(sub2.y, div.u1) annotation (Line(points={{-48,40},{-28,40},{-28,46},{-22,
46}}, color={0,0,127}));
connect(VHotWatMinSet_flow,sub2. u1) annotation (Line(points={{-120,80},{-80,80},
{-80,46},{-72,46}}, color={0,0,127}));
connect(VHotWat_flow,sub2. u2) annotation (Line(points={{-120,40},{-80,40},{-80,
34},{-72,34}}, color={0,0,127}));
annotation (defaultComponentName="bypValPos",
Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}),
graphics={Rectangle(
extent={{-100,100},{100,-100}},
lineColor={28,108,200},
fillColor={255,255,255},
fillPattern=FillPattern.Solid),
Text(
extent={{-70,20},{70,-20}},
textColor={0,0,0},
fillColor={255,255,255},
fillPattern=FillPattern.None,
textString="bypValPos"),
Text(
extent={{-100,146},{100,108}},
textColor={0,0,255},
textString="%name")}),
Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}})),
Documentation(info="<html>
<p>
Control sequence for bypass circuit valve position <code>yBypValPos</code>
for boiler plant loop.
</p>
<ul>
<li>
The bypass valve is enabled when any of the hot-water supply pumps are proven on
<code>uPumSta = true</code>, and disabled otherwise.
</li>
<li>
When enabled, a PID control loop modulates the bypass valve to maintain
a primary circuit flow rate of <code>VHotWatMinSet_flow</code>, calculated in class
<a href=\"modelica://Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.MinimumFlowSetpoint\">
Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.MinimumFlowSetpoint</a>.
</li>
<li>
When all the pumps are not proved on <code>uPumSta = false</code>, the valve
is fully opened.
</li>
<li>
When a non-condensing boiler is enabled, the bypass valve position is set to the
higher value between the signal generated by the PID loop, and the minimum valve
position for condensation control <code>uMinBypValPos</code>.
</li>
</ul>
</html>", revisions="<html>
<ul>
<li>
August 17, 2020, by Karthik Devaprasad:<br/>
First implementation.
</li>
</ul>
</html>"));
end BypassValvePosition;
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.BypassValve.Validation;
block BypassValvePosition

Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.BypassValve.BypassValvePosition
bypValPos(
final nPum=2,
final k=1,
final Ti=10,
final Td=10e-6)
"Test instance for bypass valve controller"
annotation (Placement(transformation(extent={{10,-10},{30,10}})));

protected
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant con(
final k=1.2)
"Minimum flow setpoint"
annotation (Placement(transformation(extent={{-40,50},{-20,70}})));

Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sin(
final amplitude=0.5,
final freqHz=1/75,
final phase=0,
final offset=1.2,
final startTime=1)
"Sine input"
annotation (Placement(transformation(extent={{-80,10},{-60,30}})));

Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul(
final width=0.5,
final period=300)
"Boolean pulse generator"
annotation (Placement(transformation(extent={{-80,-30},{-60,-10}})));

Buildings.Controls.OBC.CDL.Continuous.Sources.Constant con1(
final k=0.2)
"Minimum valve position for condensation control"
annotation (Placement(transformation(extent={{-40,-70},{-20,-50}})));

Buildings.Controls.OBC.CDL.Routing.BooleanScalarReplicator booRep(
final nout=2)
"Boolean replicator"
annotation (Placement(transformation(extent={{-40,-30},{-20,-10}})));

Buildings.Controls.OBC.CDL.Continuous.Sources.Constant con2(
final k=0)
"Constant zero signal"
annotation (Placement(transformation(extent={{-80,50},{-60,70}})));

Buildings.Controls.OBC.CDL.Continuous.Switch swi
"Pass zero flowrate when pumps are switched off"
annotation (Placement(transformation(extent={{-40,10},{-20,30}})));

equation
connect(con.y, bypValPos.VHotWatMinSet_flow) annotation (Line(points={{-18,60},
{0,60},{0,6},{8,6}}, color={0,0,127}));
connect(con1.y, bypValPos.uMinBypValPos) annotation (Line(points={{-18,-60},{0,
-60},{0,-6},{8,-6}}, color={0,0,127}));
connect(booPul.y, booRep.u)
annotation (Line(points={{-58,-20},{-42,-20}}, color={255,0,255}));
connect(booRep.y, bypValPos.uPumSta) annotation (Line(points={{-18,-20},{-10,-20},
{-10,-2},{8,-2}}, color={255,0,255}));

connect(swi.y, bypValPos.VHotWat_flow) annotation (Line(points={{-18,20},{-10,
20},{-10,2},{8,2}}, color={0,0,127}));
connect(sin.y, swi.u1) annotation (Line(points={{-58,20},{-50,20},{-50,28},{-42,
28}}, color={0,0,127}));
connect(con2.y, swi.u3) annotation (Line(points={{-58,60},{-54,60},{-54,12},{-42,
12}}, color={0,0,127}));
connect(booPul.y, swi.u2) annotation (Line(points={{-58,-20},{-46,-20},{-46,20},
{-42,20}}, color={255,0,255}));
annotation (
Documentation(info="<html>
<p>
This example validates
<a href=\"modelica://Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.BypassValve.BypassValvePosition\">
Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.BypassValve.BypassValvePosition</a>.
</p>
</html>", revisions="<html>
<ul>
<li>
August 17, 2020, by Karthik Devaprasad:<br/>
First implementation.
</li>
</ul>
</html>"),
Icon(coordinateSystem(preserveAspectRatio=false), graphics={
Ellipse(lineColor = {75,138,73},
fillColor={255,255,255},
fillPattern = FillPattern.Solid,
extent={{-100,-100},{100,100}}),
Polygon(lineColor = {0,0,255},
fillColor = {75,138,73},
pattern = LinePattern.None,
fillPattern = FillPattern.Solid,
points={{-36,60},{64,0},{-36,-60},{-36,60}})}), Diagram(
coordinateSystem(preserveAspectRatio=false)),
__Dymola_Commands(file=
"./Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/BypassValve/Validation/BypassValvePosition.mos"
"Simulate and plot"),
experiment(
StartTime=0,
StopTime=300,
Interval=1,
Tolerance=1e-06));
end BypassValvePosition;
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.BypassValve;
package Validation "Validation models for BypassValve sequences"




annotation (Icon(graphics={
Rectangle(
lineColor={200,200,200},
fillColor={248,248,248},
fillPattern=FillPattern.HorizontalCylinder,
extent={{-100,-100},{100,100}},
radius=25.0),
Rectangle(
lineColor={128,128,128},
extent={{-100,-100},{100,100}},
radius=25.0),
Polygon(
origin={8,14},
lineColor={78,138,73},
fillColor={78,138,73},
pattern=LinePattern.None,
fillPattern=FillPattern.Solid,
points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}})}),
Documentation(info="<html>
<p>
This package contains validation models for the classes in
<a href=\"modelica://Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.BypassValve\">
Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.BypassValve</a>.
</p>
</html>"));
end Validation;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
BypassValvePosition
Loading