-
Notifications
You must be signed in to change notification settings - Fork 162
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
Chiller plant sequences #2299
Open
milicag
wants to merge
1,185
commits into
master
Choose a base branch
from
issue2293_chiller_plant_seq
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+55,813
−169
Open
Chiller plant sequences #2299
Changes from 250 commits
Commits
Show all changes
1185 commits
Select commit
Hold shift + click to select a range
97205f3
added connector condition
JayHuLBL 027fc88
improved zero flow check
JayHuLBL 8b91502
updating figures in documentation
JayHuLBL 2cbda99
updated all figures
JayHuLBL d34bf48
avoid divide zero
JayHuLBL f857d68
added missing hys
JayHuLBL 5817629
removed moving mean
JayHuLBL 4a574d0
improved default PID factors
JayHuLBL 7eb9324
added input samplers
JayHuLBL 9436a2f
moved old G36 example to obsolete
JayHuLBL 6d2d5ff
unified control loop hys, added samplers
JayHuLBL e9ccb07
added true hold to avoid frequent switch
JayHuLBL 77ffb10
corrected invalid text
JayHuLBL 673adce
Merge branch 'master' into issue1913_g36_final
JayHuLBL a354365
moving G36_PR1 to obsolete package
JayHuLBL abd0eac
correcting scripts
JayHuLBL 8ec4915
renamed scripts and reference results
JayHuLBL 19e85c4
corrected script paths
JayHuLBL a1b3eec
removing or updating the usage of the G36_PR1 sequences
JayHuLBL dd4426d
updating the usage of G36_PR1 sequences
JayHuLBL 0727b52
refactored package orer
JayHuLBL 3d6f570
replaced single zone AHU control sequences
JayHuLBL 8c5cc97
updated reference with Dymola 2022x
JayHuLBL 11596f5
rerun unit test for the VAVReheat models
JayHuLBL e795f1b
removed G36_PR1 pacakage
JayHuLBL fafb6fd
removed G36_PR1 pacakage
JayHuLBL ec2b94f
moved imges and corrected G36_PR1 related links
JayHuLBL 4d03688
changed stop time of the plotter example model
JayHuLBL e8bed6c
updated reference result
JayHuLBL b9d0d9d
added conversion script, updated release note
JayHuLBL 100fa05
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 50279f8
created closed loop chiller plant sequence test
JayHuLBL 96ffbaf
reordered package
JayHuLBL 666b90b
corrected text format
JayHuLBL 98a6141
added economizer devices control
JayHuLBL 826bc84
reordered package
JayHuLBL 7f9e598
run unit text
JayHuLBL 01027a5
corrected html syntax
JayHuLBL e0997cc
updated economizer controller
JayHuLBL aa1c94f
unit test
JayHuLBL 1e14345
updated change intial state
JayHuLBL ffbf1aa
Merge branch 'master' into issue1913_g36_final
JayHuLBL d982052
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL a6bade5
created plant enable package
JayHuLBL 5b32aa6
added devices control when plant enables
JayHuLBL 5e11b8f
added devices control when enabling and disabling plants
JayHuLBL 76528a1
fixed error in tower staging process
JayHuLBL 26b0f94
merged master
JayHuLBL 8ba70c7
Merge branch 'master' into issue1913_g36_final
JayHuLBL d199bd9
changed freeze stat enumerations
JayHuLBL 1eff463
merged master
JayHuLBL 3cbe566
separated ahu mode calculation
JayHuLBL 0a22596
addressing comments
JayHuLBL 7465777
addressing multizone AHU controller comments
JayHuLBL 7be670f
improved parameter namings
JayHuLBL 2d7e632
removed zero default value
JayHuLBL aa25805
removed the damper and valve actual position connectors
JayHuLBL c153168
updated comments, changed boolean connector name
JayHuLBL 2bff124
changed file name
JayHuLBL 3b292f8
fixed broken links
JayHuLBL 17c6add
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 7f8ee62
fixed typos
JayHuLBL 254a9f5
removed colon mark
JayHuLBL ba7cba2
Merge branch 'master' into issue1913_g36_final
JayHuLBL b9e34aa
addressed comments
JayHuLBL de6cf98
corrected the p/dp namings #1913
JayHuLBL 1e11f5a
improved handling of dividing by zero
JayHuLBL dac3f06
avoided using minimum outdoor air damper status input for return fan …
JayHuLBL bbefc72
renamed relief fans to fans group
JayHuLBL c67e939
created single relief fan control
JayHuLBL 2662242
composed relief fan control to multizone AHU controller
JayHuLBL 24ea334
composed the relief fan control to single zone AHU controller
JayHuLBL 72e4539
merged master
JayHuLBL 859cc62
added default values, added reference results of the relief fan control
JayHuLBL 7ccf988
removed BOM
JayHuLBL 65fd011
deleted obsolete OpenModelica script
JayHuLBL 3517f4a
added missing comments
JayHuLBL 2f4b3af
removed self connection
JayHuLBL 02cf18d
changed the time constant value of temperature sensors
JayHuLBL f879298
corrected variables in mos scripts
JayHuLBL f1ab9fd
updated reference results
JayHuLBL bda11e9
added missing comment
JayHuLBL b427e2d
added missing fill() function
JayHuLBL 203f013
updated reference results in plotter examples package
JayHuLBL d550924
corrected obsolete models, updated reference results
JayHuLBL a4e061b
updated reference results
JayHuLBL 5647448
Merge branch 'master' into issue1913_g36_final
mwetter e5fa731
Added failing new models in Obsolete package to exclusion list
mwetter 94b7d69
Removed non-existent models from configuration file
mwetter 34e11be
Corrected reference of G36
mwetter 6afdfd8
Corrected access to non-existent type
mwetter b030bce
Corrected access to non-existent type
mwetter 1984a75
corrected hyperlinks
JayHuLBL 7519ef7
reverted the change of temperature sensor time constants
JayHuLBL 35217ee
merged master
JayHuLBL fda6ead
corrected loop issue
JayHuLBL 0d3680d
updated reference results
JayHuLBL 8818ac5
removed BOM
JayHuLBL d56529b
updated reference results
JayHuLBL 65156f1
updated reference results of VAV reheat example models in Obsolete pa…
JayHuLBL d72aca5
merged issue1913
JayHuLBL 7a4c784
merged master
JayHuLBL 3f8c79f
corrected text
JayHuLBL c3c495d
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 046325d
merged master [ci skip]
JayHuLBL 4a94d98
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 31dfa1d
merged master
JayHuLBL e191ad6
merged master
JayHuLBL ff2dbd5
improving comments
JayHuLBL 128c3c1
merged master
JayHuLBL f74194e
updating comments, adding stage identification logic
JayHuLBL 39a33f3
merged master [ci skip]
JayHuLBL d147d72
adding subsequence to identify stage index
JayHuLBL 2c68045
updated the sine name, added subsequnce for identifying stage
JayHuLBL 5d31d12
removed BOM
JayHuLBL f1290d6
removing BOM
JayHuLBL 3963baa
removing BOM
JayHuLBL dd26247
removed BOM
JayHuLBL 2910949
changed utf-8 file to utf-16
JayHuLBL 65764c0
changed utf-8 to utf-16
JayHuLBL 1607619
updating subsequences
JayHuLBL 728274d
debugging the controller
JayHuLBL 3e375f2
addressing OTC warnings
JayHuLBL 12dc789
avoided OCT warnings
JayHuLBL 607259c
adding test controller for debug
JayHuLBL ba52e3f
merged master
JayHuLBL f2ee281
debugging algebric loop
JayHuLBL 4a881f4
merged master
JayHuLBL 0327525
addressed algebric loop issue [ci skip]
JayHuLBL 09f896f
updated reference results
JayHuLBL ed5d8a9
changed connection
JayHuLBL 23f355b
corrected chiller disable sequences
JayHuLBL 2a5b2a2
merged master
JayHuLBL 5350d3a
debuging implementation
JayHuLBL ddbaf20
updated reference results
JayHuLBL 2d5278d
resolved broken links
JayHuLBL b58bd19
updated mos script
JayHuLBL c58e084
updated mos script
JayHuLBL 150774b
debugging closed loop model
JayHuLBL 8c2eb4e
merged master [ci skip]
JayHuLBL de15694
updated reference
JayHuLBL 4c2bb5a
setup mos script for closed loop test [ci skip]
JayHuLBL fa6ca47
debuging closed loop model
JayHuLBL 180aa9f
merged master
JayHuLBL 66e721d
merged master
JayHuLBL 008c79e
added pre block to break loop [ci skip
JayHuLBL 08f2353
updated references
JayHuLBL 8c0a256
updated validation test results
JayHuLBL 095fb65
debuging the closed-loop results [ci skip]
JayHuLBL 79b9314
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 95fa3b0
improved PID tuning indices [ci skip]
JayHuLBL df4a2bd
fixed wrong control
JayHuLBL f32752e
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 975d2fe
merged master and updated the implementation
JayHuLBL 864d039
avoided warning due to the index out of boundary [ci skip]
JayHuLBL bc48640
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL f8a9a69
updating tower fan speed model validation
JayHuLBL 093128d
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 723f11f
verified tower fan speed control sequences [ci skip]
JayHuLBL b7c52aa
updating validation model of the tower staging sequences [ci skip]
JayHuLBL e9ae31a
updated tower control sequences [ci skip]
JayHuLBL f1db6da
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 53e9565
validated economizer control sequences
JayHuLBL 056b5d8
validating generic sequences [ci skip]
JayHuLBL b10721e
validating generic sequences [ci skip]
JayHuLBL e904fb4
validated generic sequences [ci skip]
JayHuLBL eb0c5d2
validating head pressure control sequences [ci skip]
JayHuLBL e511a6b
validated head pressure control sequences [ci skip]
JayHuLBL 7f4fc5d
validated minimum flow bypass control [ci skip]
JayHuLBL 5945a72
validating pumps control sequences [ci skip]
JayHuLBL 6b7b7ab
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 81079bc
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 3a73ba1
updated reference
JayHuLBL 983f129
solved issues when modeling with optimica
JayHuLBL bce2665
corrected html error, deleted test code
JayHuLBL 050ef48
updating documentation for the closed loop model [ci skip]
JayHuLBL d50075a
updated closed loop documentation
JayHuLBL c378b68
added release note, updated the exclusion list
JayHuLBL 35860a4
corrected html error
JayHuLBL 592994a
updated schematic
JayHuLBL a35f0b3
updating validation models for the chilled water pump staging control
JayHuLBL ebf4c10
improving the validation model documentation
JayHuLBL 707e874
updating validation model document
JayHuLBL 1faa1a7
merged master [ci skip]
JayHuLBL a5f3e44
updated cdl classname
JayHuLBL 7a32971
improved condenser water pump valiation modeli documentations
JayHuLBL 621f61a
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 50314c0
updating condenser water pump speed validation
JayHuLBL 0d4a998
updating the setpoint validation model documentation
JayHuLBL 16179bb
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL fc07da8
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL b9eb2bd
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL d2a9494
adding validation documentation to the staging process sequences [ci …
JayHuLBL ed5f183
updated reference, corrected checking of the reset minimum flow setpo…
JayHuLBL d20cb75
updated staging process sequences validation [ci skip]
JayHuLBL 477c885
adding documentation to the staging process susequences validation [c…
JayHuLBL 872d587
updated validation models of sub sequences for the staging process [c…
JayHuLBL 409a6f3
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL c016362
updated down with on-off validation documentation [ci skip]
JayHuLBL a2c2cb8
adding validation document for the staging process models [ci skip]
JayHuLBL d774f50
added documentation for the validation models of staging sequences [c…
JayHuLBL 713ca47
adding documentation for the tower control sequences [ci skip]
JayHuLBL caeae92
adding documentation to the controller validaiton models [ci skip]
JayHuLBL 629b22d
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 0edd3d2
updating controller validation documentation [ci skip]
JayHuLBL ab7d21c
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL ca4c52f
updating the reference [ci skip]
JayHuLBL bc58781
updated reference and the section numbers [ci skip]
JayHuLBL 9a87cb5
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 221c0e1
adding the cooling tower controller validation cases [ci skip]
JayHuLBL 79056bc
added validation model for the tower controller [ci skip]
JayHuLBL a21960d
corrected reference in package.mo file [ci skip]
JayHuLBL 16e3b70
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL e43b0a4
updating controller documentation [ci skip]
JayHuLBL 66e6e9b
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 694cca3
updated closed-loop diagram, changed staging setpoint reference, addi…
JayHuLBL 4468d18
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL 7e09830
added documentation
JayHuLBL 1c27c32
updated reference
JayHuLBL cd50762
added missing comments, deleted temp folder, reverted wrong changes […
JayHuLBL 35fa0b4
updated reference, avoid each warning
JayHuLBL 64157ac
fixed the wrong dynamic color, added comments
JayHuLBL 0930af3
updated conf
JayHuLBL da73737
changed class name
JayHuLBL fb7cf43
corrected package order
JayHuLBL e5386d1
added closedloop test to exclusion list
JayHuLBL bd4af8f
updated conf file
JayHuLBL 7bd018d
added missing comments
JayHuLBL a9d4c31
merged master
JayHuLBL 81f1791
updated opnemodelica script
JayHuLBL 1c62c10
merging master
JayHuLBL 17456fa
improved stage change setpoint sequence
JayHuLBL fb3a36b
changed package order
JayHuLBL 6240554
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL d13967f
deleted min setting [ci skip]
JayHuLBL 259d147
merged master
JayHuLBL 5fc1d5d
updated references
JayHuLBL 386da45
fixed oct compile errors [ci skip]
JayHuLBL de462b1
updated closed loop test results, deleted CDL changes
JayHuLBL 5a42418
updated reference
JayHuLBL 563949a
corrected hyperlinks
JayHuLBL 16413e1
fixed broken links
JayHuLBL 6681f3d
corrected the duplicate protected statement
JayHuLBL fd9c9bd
updated references with dymola 2025x
JayHuLBL 782ae15
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL f546531
updated reference results
JayHuLBL fb70bab
Merge branch 'master' into issue2293_chiller_plant_seq
JayHuLBL f5d30ab
addressing antoine's comments [ci skip]
JayHuLBL 9f9b562
renamed enumeration name [ci skip]
JayHuLBL f1e3de2
improved comments about the chiller type [ci skip]
JayHuLBL File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2,275 changes: 2,275 additions & 0 deletions
2,275
Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Controller.mo
Large diffs are not rendered by default.
Oops, something went wrong.
351 changes: 351 additions & 0 deletions
351
Buildings/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Economizers/Controller.mo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,351 @@ | ||
within Buildings.Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Economizers; | ||
block Controller "Waterside economizer (WSE) enable/disable status" | ||
|
||
parameter Real holdPeriod( | ||
final unit="s", | ||
final quantity="Time")=1200 | ||
"WSE minimum on or off time" | ||
annotation(Dialog(group="Enable parameters")); | ||
|
||
parameter Real delDis( | ||
final unit="s", | ||
final quantity="Time")=120 | ||
"Delay disable time period" | ||
annotation(Dialog(group="Enable parameters")); | ||
|
||
parameter Real TOffsetEna( | ||
final unit="K", | ||
final quantity="TemperatureDifference")=2 | ||
"Temperature offset between the chilled water return upstream of WSE and the predicted WSE output" | ||
annotation(Dialog(group="Enable parameters")); | ||
|
||
parameter Real TOffsetDis( | ||
final unit="K", | ||
final quantity="TemperatureDifference")=1 | ||
"Temperature offset between the chilled water return upstream and downstream WSE" | ||
annotation(Dialog(group="Enable parameters")); | ||
|
||
parameter Real heaExcAppDes( | ||
final unit="K", | ||
final quantity="TemperatureDifference")=2 | ||
"Design heat exchanger approach" | ||
annotation(Dialog(group="Design parameters")); | ||
|
||
parameter Real cooTowAppDes( | ||
final unit="K", | ||
final quantity="TemperatureDifference")=2 | ||
"Design cooling tower approach" | ||
annotation(Dialog(group="Design parameters")); | ||
|
||
parameter Real TOutWetDes( | ||
final unit="K", | ||
final quantity="ThermodynamicTemperature", | ||
displayUnit="degC")=288.15 | ||
"Design outdoor air wet bulb temperature" | ||
annotation(Dialog(group="Design parameters")); | ||
|
||
parameter Real hysDt( | ||
final unit="K", | ||
final quantity="TemperatureDifference")=1 | ||
"Deadband temperature used in hysteresis block" | ||
annotation (Evaluate=true, Dialog(tab="Advanced", group="Hysteresis")); | ||
|
||
parameter Real VHeaExcDes_flow( | ||
final unit="m3/s", | ||
final quantity="VolumeFlowRate", | ||
displayUnit="m3/s")=0.015 | ||
"Design heat exchanger chilled water volume flow rate" | ||
annotation(Dialog(group="Design parameters")); | ||
|
||
parameter Real step( | ||
final unit="1")=0.02 | ||
"Incremental step used to reduce or increase the water-side economizer tuning parameter" | ||
annotation (Evaluate=true, Dialog(tab="Advanced", group="Tuning")); | ||
|
||
parameter Real wseOnTimDec( | ||
final unit="s", | ||
final quantity="Time", | ||
displayUnit="h") = 3600 | ||
"Economizer enable time needed to allow decrease of the tuning parameter" | ||
annotation (Evaluate=true,Dialog(tab="Advanced", group="Tuning")); | ||
|
||
parameter Real wseOnTimInc( | ||
final unit="s", | ||
final quantity="Time", | ||
displayUnit="h") = 1800 | ||
"Economizer enable time needed to allow increase of the tuning parameter" | ||
annotation (Evaluate=true,Dialog(tab="Advanced", group="Tuning")); | ||
|
||
Buildings.Controls.OBC.CDL.Interfaces.RealInput TOutWet( | ||
final unit="K", | ||
displayUnit="degC", | ||
final quantity="ThermodynamicTemperature") | ||
"Outdoor air wet bulb temperature" | ||
annotation (Placement(transformation(extent={{-220,80},{-180,120}}), | ||
iconTransformation(extent={{-140,60},{-100,100}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Interfaces.RealInput TChiWatRet( | ||
final unit="K", | ||
displayUnit="degC", | ||
final quantity="ThermodynamicTemperature") | ||
"Chilled water return temperature upstream of the WSE" | ||
annotation (Placement(transformation(extent={{-220,40},{-180,80}}), | ||
iconTransformation(extent={{-140,20},{-100,60}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Interfaces.RealInput TChiWatRetDow( | ||
final unit="K", | ||
displayUnit="degC", | ||
final quantity="ThermodynamicTemperature") | ||
"Chilled water return temperature downstream of the WSE" | ||
annotation (Placement(transformation(extent={{-220,0},{-180,40}}), | ||
iconTransformation(extent={{-140,-20},{-100,20}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Interfaces.RealInput uTowFanSpeMax( | ||
final min=0, | ||
final max=1, | ||
final unit="1") | ||
"Maximum cooling tower fan speed" | ||
annotation (Placement(transformation(extent={{-220,-120},{-180,-80}}), | ||
iconTransformation(extent={{-140,-100},{-100,-60}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Interfaces.RealInput VChiWat_flow( | ||
final quantity="VolumeFlowRate", | ||
final unit="m3/s") | ||
"Measured chilled water volume flow rate" | ||
annotation (Placement(transformation(extent={{-220,-60},{-180,-20}}), | ||
iconTransformation(extent={{-140,-60},{-100,-20}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput y | ||
"WSE enable/disable status" | ||
annotation (Placement(transformation(extent={{180,60},{220,100}}), | ||
iconTransformation(extent={{100,60},{140,100}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Interfaces.RealOutput TWsePre( | ||
final quantity="ThermodynamicTemperature", | ||
displayUnit="degC", | ||
final unit="K") | ||
"Predicted waterside economizer outlet temperature" | ||
annotation (Placement(transformation(extent={{180,-20},{220,20}}), | ||
iconTransformation(extent={{100,-20},{140,20}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Interfaces.RealOutput yTunPar | ||
"Tuning parameter" | ||
annotation (Placement(transformation(extent={{180,-110},{220,-70}}), | ||
iconTransformation(extent={{100,-100},{140,-60}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Continuous.LessThreshold enaTChiWatRet( | ||
final t=delDis) | ||
"Enable condition based on chilled water return temperature upstream and downstream WSE" | ||
annotation (Placement(transformation(extent={{60,-20},{80,0}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Continuous.Hysteresis enaTWet( | ||
final uLow = TOffsetEna - hysDt/2, | ||
final uHigh = TOffsetEna + hysDt/2) | ||
"Enable condition based on the outdoor wet bulb temperature" | ||
annotation (Placement(transformation(extent={{20,40},{40,60}}))); | ||
|
||
protected | ||
Buildings.Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Economizers.Subsequences.Tuning wseTun( | ||
final step=step, | ||
final wseOnTimDec=wseOnTimDec, | ||
final wseOnTimInc=wseOnTimInc) | ||
"Tuning parameter for the WSE outlet temperature calculation" | ||
annotation (Placement(transformation(extent={{-140,-100},{-120,-80}}))); | ||
|
||
Buildings.Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Economizers.Subsequences.PredictedOutletTemperature wseTOut( | ||
final heaExcAppDes=heaExcAppDes, | ||
final cooTowAppDes=cooTowAppDes, | ||
final TOutWetDes=TOutWetDes, | ||
final VHeaExcDes_flow=VHeaExcDes_flow) | ||
"Calculates the predicted WSE outlet temperature" | ||
annotation (Placement(transformation(extent={{-100,40},{-80,60}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Continuous.Add add2( | ||
final k2=-1) "Adder" | ||
annotation (Placement(transformation(extent={{-20,40},{0,60}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Logical.Pre pre "Logical pre" | ||
annotation (Placement(transformation(extent={{140,-60},{160,-40}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Continuous.Add add1( | ||
final k1=1, | ||
final k2=-1) "Adder" | ||
annotation (Placement(transformation(extent={{-100,-20},{-80,0}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol( | ||
final trueHoldDuration=holdPeriod, | ||
final falseHoldDuration=holdPeriod) | ||
"Keeps a signal constant for a given time period" | ||
annotation (Placement(transformation(extent={{140,20},{160,40}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Logical.And and2 "And" | ||
annotation (Placement(transformation(extent={{100,40},{120,60}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Continuous.Hysteresis hys( | ||
final uLow = TOffsetDis - hysDt/2, | ||
final uHigh = TOffsetDis + hysDt/2) | ||
"Hysteresis comparing CHW temperatures upstream and downstream WSE" | ||
annotation (Placement(transformation(extent={{-60,-20},{-40,0}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Logical.Timer timer | ||
"Measures the disable condition satisfied time " | ||
annotation (Placement(transformation(extent={{20,-20},{40,0}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Logical.FallingEdge falEdg | ||
"Falling edge to indicate the moment of disable" | ||
annotation (Placement(transformation(extent={{-100,-60},{-80,-40}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Logical.TrueHoldWithReset truHol( | ||
final duration=holdPeriod) | ||
"Holds a true signal for a period of time right after disable" | ||
annotation (Placement(transformation(extent={{-60,-60},{-40,-40}}))); | ||
|
||
Buildings.Controls.OBC.CDL.Logical.Nor nor | ||
"Not either of the inputs" | ||
annotation (Placement(transformation(extent={{-20,-20},{0,0}}))); | ||
|
||
equation | ||
connect(uTowFanSpeMax, wseTun.uTowFanSpeMax) annotation (Line(points={{-200,-100}, | ||
{-150,-100},{-150,-95},{-142,-95}}, color={0,0,127})); | ||
connect(TOutWet, wseTOut.TOutWet) | ||
annotation (Line(points={{-200,100},{-120,100},{-120,58},{-102,58}}, | ||
color={0,0,127})); | ||
connect(VChiWat_flow, wseTOut.VChiWat_flow) | ||
annotation (Line(points={{-200,-40},{-120,-40},{-120,50},{-102,50}}, | ||
color={0,0,127})); | ||
connect(pre.y,wseTun.uWseSta) | ||
annotation (Line(points={{162,-50},{170,-50},{170,-70},{-150,-70},{-150,-85}, | ||
{-142,-85}},color={255,0,255})); | ||
connect(TChiWatRet, add1.u1) | ||
annotation (Line(points={{-200,60},{-140,60},{-140,-4},{-102,-4}}, | ||
color={0,0,127})); | ||
connect(truFalHol.y, pre.u) | ||
annotation (Line(points={{162,30},{170,30},{170,-30},{130,-30},{130,-50},{138,-50}}, | ||
color={255,0,255})); | ||
connect(truFalHol.y, y) annotation ( | ||
Line(points={{162,30},{170,30},{170,80},{200,80}}, color={255,0,255})); | ||
connect(enaTWet.y, and2.u1) | ||
annotation (Line(points={{42,50},{98,50}}, color={255,0,255})); | ||
connect(truFalHol.u, and2.y) | ||
annotation (Line(points={{138,30},{130,30},{130,50},{122,50}}, | ||
color={255,0,255})); | ||
connect(timer.y, enaTChiWatRet.u) | ||
annotation (Line(points={{42,-10},{58,-10}}, color={0,0,127})); | ||
connect(TChiWatRetDow, add1.u2) | ||
annotation (Line(points={{-200,20},{-160,20},{-160,-16},{-102,-16}}, | ||
color={0,0,127})); | ||
connect(add1.y, hys.u) | ||
annotation (Line(points={{-78,-10},{-62,-10}},color={0,0,127})); | ||
connect(enaTChiWatRet.y, and2.u2) annotation (Line(points={{82,-10},{90,-10},{ | ||
90,42},{98,42}}, color={255,0,255})); | ||
connect(wseTun.y, wseTOut.uTunPar) annotation (Line(points={{-119,-90},{-110,-90}, | ||
{-110,42},{-102,42}},color={0,0,127})); | ||
connect(wseTOut.y, add2.u2) annotation (Line(points={{-78,50},{-50,50},{-50,44}, | ||
{-22,44}}, color={0,0,127})); | ||
connect(TChiWatRet, add2.u1) annotation (Line(points={{-200,60},{-140,60},{-140, | ||
70},{-50,70},{-50,56},{-22,56}}, color={0,0,127})); | ||
connect(add2.y, enaTWet.u) | ||
annotation (Line(points={{2,50},{18,50}}, color={0,0,127})); | ||
connect(wseTun.y, yTunPar) | ||
annotation (Line(points={{-119,-90},{200,-90}}, color={0,0,127})); | ||
connect(nor.y, timer.u) | ||
annotation (Line(points={{2,-10},{18,-10}}, color={255,0,255})); | ||
connect(hys.y, nor.u1) | ||
annotation (Line(points={{-38,-10},{-22,-10}}, color={255,0,255})); | ||
connect(truHol.y, nor.u2) annotation (Line(points={{-38,-50},{-30,-50},{-30, | ||
-18},{-22,-18}}, color={255,0,255})); | ||
connect(falEdg.y, truHol.u) | ||
annotation (Line(points={{-78,-50},{-62,-50}}, color={255,0,255})); | ||
connect(pre.y, falEdg.u) annotation (Line(points={{162,-50},{170,-50},{170, | ||
-70},{-120,-70},{-120,-50},{-102,-50}}, color={255,0,255})); | ||
connect(wseTOut.y, TWsePre) annotation (Line(points={{-78,50},{-50,50},{-50,34}, | ||
{116,34},{116,0},{200,0}}, color={0,0,127})); | ||
|
||
annotation (defaultComponentName = "wseSta", | ||
Icon(graphics={ | ||
Rectangle( | ||
extent={{-100,-100},{100,100}}, | ||
lineColor={0,0,127}, | ||
fillColor={255,255,255}, | ||
fillPattern=FillPattern.Solid), | ||
Text( | ||
extent={{-120,146},{100,108}}, | ||
lineColor={0,0,255}, | ||
textString="%name"), | ||
Rectangle( | ||
extent={{-82,64},{80,-56}}, | ||
lineColor={28,108,200}, | ||
fillColor={210,210,210}, | ||
fillPattern=FillPattern.Solid, | ||
borderPattern=BorderPattern.Raised), | ||
Polygon( | ||
points={{-82,64},{-16,8},{-82,-56},{-82,64}}, | ||
lineColor={175,175,175}, | ||
fillColor={175,175,175}, | ||
fillPattern=FillPattern.Solid), | ||
Rectangle( | ||
extent={{6,60},{72,-52}}, | ||
lineColor={28,108,200}, | ||
lineThickness=0.5), | ||
Line( | ||
points={{6,-52},{72,60}}, | ||
color={28,108,200}, | ||
thickness=0.5)}), | ||
Diagram(coordinateSystem(preserveAspectRatio=false, | ||
extent={{-180,-120},{180,120}})), | ||
Documentation(info="<html> | ||
<p> | ||
Waterside economizer (WSE) control sequence per ASHRAE RP-1711, March 2020, section 5.2.3. | ||
It implements the enable/disable conditions as provided in sections 5.2.3.1. and 5.2.3.2. | ||
</p> | ||
<p> | ||
The sequence controls the WSE status as follows: | ||
</p> | ||
<ul> | ||
<li> | ||
Enable WSE if it has been disabled for at least <code>holdPeriod</code> of time and the chilled water return | ||
temperature (CHWRT) upstream of WSE, <code>TChiWatRet</code>, is greater than the WSE predicted heat | ||
exchanger leaving water temperature (PHXLWT) increased in <code>TOffsetEna</code>. | ||
</li> | ||
<li> | ||
Disable WSE if it has been enabled for at least <code>holdPeriod</code> of time and CHWRT downstream of | ||
WSE, <code>TChiWatRetDow</code>, is greater than <code>TChiWatRet</code> decreased in <code>TOffsetDis</code> | ||
for <code>delDis</code> time period. | ||
</li> | ||
</ul> | ||
<p> | ||
The following state machine chart illustrates the transitions between WSE enabled and disabled state: | ||
</p> | ||
<p align=\"center\"> | ||
<img alt=\"Image of WSE enable-disable state machine chart\" | ||
src=\"modelica://Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/ChillerPlant/Economizer/WaterSideEconomizerEnableDisableStateGraph.png\"/> | ||
</p> | ||
<p> | ||
The WSE control sequence uses the following subsequences: | ||
</p> | ||
<ul> | ||
<li> | ||
Calculation of the PHXLWT at given conditions: | ||
<a href=\"modelica://Buildings.Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Economizers.Subsequences.PredictedOutletTemperature\"> | ||
Buildings.Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Economizers.Subsequences.PredictedOutletTemperature</a>. | ||
</li> | ||
<li> | ||
Calculation of the tuning parameter used as an input to PHXLWT calculation: | ||
<a href=\"modelica://Buildings.Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Economizers.Subsequences.Tuning\"> | ||
Buildings.Controls.OBC.ASHRAE.PrimarySystem.ChillerPlant.Economizers.Subsequences.Tuning</a>. | ||
</li> | ||
</ul> | ||
</html>", | ||
revisions="<html> | ||
<ul> | ||
<li> | ||
January 19, 2021, by Milica Grahovac:<br/> | ||
Added state chart illustration. | ||
</li> | ||
<li> | ||
October 13, 2018, by Milica Grahovac:<br/> | ||
First implementation. | ||
</li> | ||
</ul> | ||
</html>")); | ||
end Controller; |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing conditional instance clause to express the following constraint.
"Primary" should be added.