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

Issue1576 Heat pump model integration #1628

Merged
merged 470 commits into from
May 10, 2024
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
470 commits
Select commit Hold shift + click to select a range
003e251
fix html and remaining not useful names
Nov 10, 2023
f7dba66
Add data with currently working reference link, fix minor bad assignm…
Nov 10, 2023
1a19741
update description of m_flow warning
Nov 10, 2023
00fa364
adjust doc of bus and html
Nov 10, 2023
3b3d5d8
Revert protected include and &amp escape
Nov 10, 2023
90b755b
fix remaining errors and adjust unit in example
Nov 10, 2023
b8ff7a8
merged master
hcasperfu Nov 10, 2023
55d3735
updated results IBPSA.Fluid.Chillers
hcasperfu Nov 10, 2023
ec2c4b9
updated results IBPSA.Fluid.HeatPumps
hcasperfu Nov 10, 2023
762696d
html workaround
hcasperfu Nov 10, 2023
39de014
removed BOM
hcasperfu Nov 10, 2023
37a3b35
fix default value for COP and EER calculation
Nov 13, 2023
2eccb26
Add validation package for chiller carnot models, fix smaller model e…
Nov 13, 2023
82ffd5f
minor annotation fixes, fix missing input, add doc
Nov 14, 2023
6d92524
Add TableData2D.mo validation, fix table inputs
Nov 14, 2023
c431c83
fix BOM
Nov 14, 2023
8a57a87
Add comparative validation for heat pumps as well
Nov 14, 2023
bf879c6
fix heating carnot and change table values for heat pump
Nov 14, 2023
a844e48
updated results Fluid.Chillers
hcasperfu Nov 15, 2023
e173309
updated results Fluid.HeatPumps
hcasperfu Nov 15, 2023
7c20e52
fix T_start and wrong mos-names
Nov 16, 2023
aec9937
remove code duplicates
Nov 16, 2023
8c066b6
Add option for constant approach temperature, update doc
Nov 16, 2023
849f908
remove redundant Evaluate
Nov 16, 2023
c9ca834
Merge branch 'issue1576_heatPumpModelIntegration' of https://github.c…
Nov 16, 2023
970ffde
updated results Fluid.Chillers
hcasperfu Nov 16, 2023
eca9d7b
updated results Fluid.HeatPumps
hcasperfu Nov 16, 2023
8c59a23
excluded model from OMC
hcasperfu Nov 16, 2023
38719cf
minor text tweaks [ci skip]
hcasperfu Nov 17, 2023
cbd03f8
Update IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/BaseCl…
FWuellhorst Nov 17, 2023
dd48823
Update IBPSA/Fluid/HeatPumps/ModularReversible/ReversibleCarnotWithLo…
FWuellhorst Nov 17, 2023
6dfbb6b
Update IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/BaseC…
FWuellhorst Nov 17, 2023
1e6a5a9
Update IBPSA/Fluid/HeatPumps/ModularReversible/ReversibleCarnotWithLo…
FWuellhorst Nov 17, 2023
93b4f92
Update IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/Const…
FWuellhorst Nov 17, 2023
c7e1aa4
Update IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/Const…
FWuellhorst Nov 17, 2023
4df9e1c
Add changes based on review
Nov 17, 2023
e5c235b
fix missing change
Nov 17, 2023
d95342c
update reference results [ci skip]
Nov 17, 2023
0e79395
Update reference results
Nov 17, 2023
0e46338
minor text tweak [ci skip]
hcasperfu Nov 17, 2023
9b07fb9
removed trailing spaces
hcasperfu Nov 17, 2023
37680cd
removed trailing spaces
hcasperfu Nov 17, 2023
32436ce
[ci skip]
hcasperfu Nov 17, 2023
b3792b5
Update IBPSA/Fluid/HeatPumps/ModularReversible/UsersGuide.mo [ci skip]
FWuellhorst Nov 18, 2023
5d91624
Use default values for Boolean selectors to avoid errors in OM
Nov 18, 2023
97c5772
Corrected html
mwetter Dec 5, 2023
cb86666
Revised user's guide
mwetter Dec 5, 2023
63c8a7d
Changed 'Nominal Design' to 'Nominal condition' for consistency with …
mwetter Dec 5, 2023
bfb027c
Corrected capitalization
mwetter Dec 5, 2023
4120522
Added graphical annotations to records
mwetter Dec 5, 2023
ad6abfc
fix wrong path in html section, fix contribution link [ci skip]
FWuellhorst Dec 6, 2023
9c60776
Re-arrange models to avoid connections and blocks on the border [ci s…
FWuellhorst Dec 6, 2023
c6c73a3
move fuzzy logic to separate model, make preOnOff name clear and hope…
FWuellhorst Dec 6, 2023
1998b11
fix package.order, rm redundant limit
FWuellhorst Dec 6, 2023
0e262d4
Added contribution citation
mwetter Dec 6, 2023
18aa83c
Revised model and documentation
mwetter Dec 6, 2023
1507632
Revised documentation
mwetter Dec 6, 2023
114211a
Revised documentation
mwetter Dec 6, 2023
fe8645a
Revised models
mwetter Dec 6, 2023
1bc6f54
Reviewed implementation
mwetter Dec 6, 2023
df5cba1
Address review comments
FWuellhorst Dec 7, 2023
ad87d5e
fix hrefs
FWuellhorst Dec 7, 2023
7328299
fix hrefs [ci skip]
FWuellhorst Dec 7, 2023
6799294
Improved documentation
mwetter Dec 7, 2023
c4f97fe
Changed function to be differentiable
mwetter Dec 7, 2023
d5f8f2d
Corrected html
mwetter Dec 7, 2023
3d70615
Revised documentation
mwetter Dec 7, 2023
742fdd2
Refactored to use graphical implementation
mwetter Dec 7, 2023
67ac8ac
Reformatted file
mwetter Dec 7, 2023
5f26fa6
Removed spurios comment
mwetter Dec 7, 2023
03ceec8
Refactored to use graphical implementation, revised documentation
mwetter Dec 7, 2023
c312cb3
Replaced html with simple comma
mwetter Dec 7, 2023
a6aa494
Corrected html
mwetter Dec 7, 2023
379aa35
Removed BOM
mwetter Dec 7, 2023
ec91e2b
Add comment to fuzzy logic model
FWuellhorst Dec 8, 2023
7ba6205
Set default y_nominal to 1, add units and assertion
FWuellhorst Dec 8, 2023
ff7b3ee
clarify comment
FWuellhorst Dec 8, 2023
e70b43f
fix unit and description
FWuellhorst Dec 8, 2023
8290899
fix diagrams in examples
FWuellhorst Dec 8, 2023
66cbefd
Flipped hysteresis
mwetter Dec 8, 2023
a887663
Capitalized Carnot as it is a name
mwetter Dec 8, 2023
8a51a57
Corrected typo
mwetter Dec 8, 2023
c7d6bb3
Removed overlapping text
mwetter Dec 8, 2023
b44cc7e
Enabled LargeScaleWaterToWater_OneRoomRadiator for OpenModelica
mwetter Dec 8, 2023
3463a58
Merge branch 'master' into issue1576_heatPumpModelIntegration
mwetter Dec 8, 2023
6b387a2
Fix wrong use of y_nominal
FWuellhorst Dec 10, 2023
5e487dd
Added units to EER_nominal
mwetter Dec 12, 2023
6784599
Add units to COP as well
FWuellhorst Dec 14, 2023
4a4fdef
fix bad name ySet_nominal
FWuellhorst Dec 14, 2023
9e2f342
Rename quality grade to CarnotEffectiveness
FWuellhorst Dec 14, 2023
b1afe62
translate excel sheet, move to correct path
FWuellhorst Dec 14, 2023
9951b0f
rm BOM
FWuellhorst Dec 14, 2023
9d507e1
Remove non-existing plot variable due to separation of Carnot COP and…
FWuellhorst Dec 15, 2023
8715984
Added graphical annotation for table data
mwetter Dec 15, 2023
8034742
Added graphical annotation for table data
mwetter Dec 15, 2023
2a65fcf
Set displayUnit to Pa
mwetter Dec 15, 2023
504e87f
Corrected punctuation
mwetter Dec 15, 2023
ce3ace2
Formatted file
mwetter Dec 15, 2023
6675fdb
Corrected formatting
mwetter Dec 15, 2023
53439fd
Expanded comment to state what it is used for
mwetter Dec 15, 2023
cb8f1af
Added model name to assertion
mwetter Dec 15, 2023
1c21b47
Add better doc for y_nominal
FWuellhorst Dec 18, 2023
b8ad9b6
rm unnecessary defaults
FWuellhorst Dec 18, 2023
9066da6
improve doc and warning on datSou
FWuellhorst Dec 18, 2023
411baa9
fix BOM
FWuellhorst Dec 18, 2023
b881729
Formatted file
mwetter Dec 18, 2023
18230fd
Removed white space
mwetter Dec 18, 2023
d374bae
Changed pumps to use pre-configured pumps
mwetter Dec 18, 2023
3904802
Set displayUnit
mwetter Dec 18, 2023
d379aa0
Formatted file
mwetter Dec 18, 2023
2664ca2
Formatted file
mwetter Dec 18, 2023
f1e0d9b
Added icon
mwetter Dec 18, 2023
b7b0c0c
Set cp and rho as function of media
mwetter Dec 18, 2023
ade8c9a
Removed BOM
mwetter Dec 18, 2023
519d5df
Merge branch 'issue1576_heatPumpModelIntegration' into issue1576_heat…
mwetter Dec 18, 2023
76726b2
Add cpCon and cpEva to PartialRefrigerantCycle.mo, as it will be usef…
FWuellhorst Dec 19, 2023
92cffea
Use 200 Pa dp_nominal for air source devices
FWuellhorst Dec 19, 2023
bd8af39
Add better warnings for possibly wrong mass flow rates in 2D table data
FWuellhorst Dec 19, 2023
e2316ea
fix bad use of QCoo_flow_nominal and final setting of scaFac when com…
FWuellhorst Dec 19, 2023
e5d0b7b
fix bad use of QCoo_flow_nominal and final setting of scaFac when com…
FWuellhorst Dec 19, 2023
79c5a22
remove defaults and anti-freeze for air-source, fix doc
FWuellhorst Dec 19, 2023
eb43b15
Update reference results
FWuellhorst Dec 19, 2023
b40de93
Move required parameters to General tab and revisit other group and t…
FWuellhorst Dec 20, 2023
4ebe280
Merge pull request #1820 from ibpsa/issue1576_heatPumpModelIntegratio…
FWuellhorst Dec 20, 2023
3354350
Grouped parameters for condenser and evaporator, set dTEva_nominal = …
mwetter Dec 21, 2023
94aa25c
Grouped parameters for condenser and evaporator
mwetter Dec 21, 2023
be66e43
Negate tables
FWuellhorst Dec 22, 2023
0770750
add missing defaults in case of NoCooling / Heating
FWuellhorst Dec 22, 2023
0dde1f8
Negate ConstantCarnotEffectiveness.mo
FWuellhorst Dec 22, 2023
ced0034
Merge branch 'issue1576_heatPumpModelIntegration_removeCp_and_rho_par…
FWuellhorst Dec 22, 2023
40038dc
remote negate in RefrigerantCycle.mo and fix bad connection of con to…
FWuellhorst Dec 22, 2023
627a3ee
Split QUse to QHea and QCoo, fix balance
FWuellhorst Dec 22, 2023
44e4deb
fix error in Carnot approach due to negative sign
FWuellhorst Dec 28, 2023
623f00a
fix BOM
FWuellhorst Dec 28, 2023
a156827
update reference results
FWuellhorst Jan 3, 2024
e14ec6d
negate table data in validation model as well
FWuellhorst Jan 6, 2024
22b9281
add negative gain for EER calculation input
FWuellhorst Jan 6, 2024
b1be5e4
Merge branch 'master' into issue1576_heatPumpModelIntegration
mwetter Jan 10, 2024
6391ef7
Added LargeScaleWaterToWater_OneRoomRadiator to exclude list
mwetter Jan 10, 2024
b3f932a
make reverse models conditional
FWuellhorst Jan 11, 2024
6345059
Merge branch 'issue1576_heatPumpModelIntegration' of https://github.c…
FWuellhorst Jan 11, 2024
c470fdc
fix missing if
FWuellhorst Jan 15, 2024
6054160
add outputs, rename .mos files
FWuellhorst Jan 15, 2024
2a31416
rename reference results as well
FWuellhorst Jan 15, 2024
1ce865e
fix align of changed inputs [ci skip]
FWuellhorst Jan 15, 2024
88773e1
Removed final in displayUnit
mwetter Jan 15, 2024
eab10d6
Corrected format
mwetter Jan 15, 2024
5ad5b5e
add dummy defaults to avoid error on check for partial models
FWuellhorst Jan 15, 2024
8f04ae5
Merge branch 'issue1576_heatPumpModelIntegration' of https://github.c…
FWuellhorst Jan 15, 2024
edecd1f
Removed more final displayUnit entries
mwetter Jan 15, 2024
fb7c08d
Merge branch 'issue1576_heatPumpModelIntegration' of github.com:ibpsa…
mwetter Jan 15, 2024
b88d559
Removed all 'kW' declarations
mwetter Jan 15, 2024
cafa91c
Merge pull request #1828 from ibpsa/issue1576_heatPumpModelIntegratio…
FWuellhorst Jan 15, 2024
9b465b2
fix inlet and outlet assign in TableData2D
FWuellhorst Jan 16, 2024
585cc1a
move COP and EER calculation to top level
FWuellhorst Jan 16, 2024
857475a
Merge branch 'issue1576_heatPumpModelIntegration' of https://github.c…
FWuellhorst Jan 16, 2024
43a1c30
move model
FWuellhorst Jan 16, 2024
0e8ea23
revert wrong move, add Q1 and Q2_flow
FWuellhorst Jan 17, 2024
4a67187
fix connect to optional connector
FWuellhorst Jan 20, 2024
099452e
Update reference results
FWuellhorst Jan 22, 2024
cfa9252
Improve graphics view
FWuellhorst Feb 1, 2024
2485150
Improve control in all examples to avoid frequent switches and enable…
FWuellhorst Feb 1, 2024
09a25fb
fix BOM
FWuellhorst Feb 1, 2024
f593304
Use preconfigured pumps to avoid warnings about unspecified generic c…
FWuellhorst Feb 1, 2024
180c455
fix pedantic warnings aside from conditionally enabled coo
FWuellhorst Feb 2, 2024
ad6789d
Update reference results
FWuellhorst Feb 2, 2024
a33e510
fix BOM [ci skip]
FWuellhorst Feb 2, 2024
3704dd0
remove conditional reverse operation as it leads to pedantic warnings…
FWuellhorst Feb 2, 2024
81b7ce5
Update reference results
FWuellhorst Feb 2, 2024
4fdd8d3
fix wrong cp in table data
FWuellhorst Feb 3, 2024
2ca2e77
Change dTEva_nominal as an informative parameter
FWuellhorst Feb 5, 2024
1928c22
remove redundant safety record
FWuellhorst Feb 5, 2024
c445e0a
fix connections of OperationalEnvelope.mo in reversed mode
FWuellhorst Feb 28, 2024
adc727d
rework nominal condition approach for reversible operation, fix minor…
FWuellhorst Feb 29, 2024
02311e8
fix BOMs
FWuellhorst Feb 29, 2024
cdb8a67
fix wrong annotation
FWuellhorst Mar 1, 2024
cb5e624
add yMea as an output
FWuellhorst Mar 2, 2024
38af9d1
rm BOM
FWuellhorst Mar 4, 2024
9a1e90c
updated results
hcasperfu Mar 6, 2024
57854a5
fix bad unit
FWuellhorst Mar 11, 2024
fc24e79
Merge branch 'issue1576_heatPumpModelIntegration' of https://github.c…
FWuellhorst Mar 11, 2024
dc34155
Add generic pressure curve to avoid OM error
FWuellhorst Mar 11, 2024
b3baaa9
Revert "Add generic pressure curve to avoid OM error"
hcasperfu Mar 11, 2024
3090e29
updated results
hcasperfu Mar 11, 2024
757f127
added model to exclusion list
hcasperfu Mar 13, 2024
eaa8898
fixed figure size
hcasperfu Mar 14, 2024
21d6833
fixed figure positions
hcasperfu Mar 14, 2024
5fe814d
add second scaFac [skip ci]
FWuellhorst Mar 16, 2024
3c244ab
Merge branch 'issue1576_heatPumpModelIntegration' of https://github.c…
FWuellhorst Mar 16, 2024
d7b356b
Create partial TableData2D.mo model as requested, make LargeScaleWate…
FWuellhorst Apr 3, 2024
7e0eedb
add warnings about different scalings, rm default cooling values
FWuellhorst Apr 3, 2024
3456093
Update documentation for new approach
FWuellhorst Apr 3, 2024
4efca2b
fix BOM
FWuellhorst Apr 3, 2024
59b9079
rm OM exclude
FWuellhorst Apr 3, 2024
0b18dd8
rn examples
FWuellhorst Apr 3, 2024
8577123
rm reversible from model names
FWuellhorst Apr 3, 2024
18f29ba
fix bad extend
FWuellhorst Apr 3, 2024
d8379f8
fix bad rename of mos script in move_class
FWuellhorst Apr 5, 2024
63fb367
update reference results
FWuellhorst Apr 5, 2024
da49334
add models to exclude list as discussed in working group meeting
FWuellhorst Apr 9, 2024
017ab7e
fix filename in conf.yml
FWuellhorst Apr 10, 2024
de9596f
Calculate COP and EER with inversedXReg function
FWuellhorst Apr 12, 2024
9f4043e
address minor review comments
FWuellhorst Apr 12, 2024
35e0c26
fix BOM
FWuellhorst Apr 12, 2024
89cf7cd
Fix amb and use side in OperationalEnvelope
FWuellhorst Apr 12, 2024
471df69
fix BOM
FWuellhorst Apr 12, 2024
ca9f443
fix order of conf.yml [ci skip]
FWuellhorst Apr 15, 2024
7ac3441
Update reference results
FWuellhorst Apr 15, 2024
1cbfb1d
Update default and doc about reversibility
FWuellhorst Apr 15, 2024
274e3cd
Make redeclarations replaceable
FWuellhorst Apr 15, 2024
8a48ed9
Move TableData2D.mo
FWuellhorst Apr 15, 2024
91cc849
fix bad m_flow assignment
FWuellhorst Apr 15, 2024
0590633
fix BOM
FWuellhorst Apr 15, 2024
7fea166
remove default binding, update UsersGuide.mo with load and source, up…
FWuellhorst Apr 17, 2024
b2fe1ae
fix BOM [ci skip]
FWuellhorst Apr 17, 2024
540e0a4
Update UsersGuide.mo and docstring [ci skip]
FWuellhorst Apr 17, 2024
326dfde
fix missing defaults and enable annotation [ci skip]
FWuellhorst Apr 17, 2024
733433f
Update Reference results
FWuellhorst Apr 17, 2024
1f024ec
Resized connectors to be the same size, added labels
mwetter May 1, 2024
8bee8a6
Changed layout, added icons
mwetter May 1, 2024
c4ea984
Added icon
mwetter May 1, 2024
72a1550
Merge branch 'master' into issue1576_heatPumpModelIntegration
mwetter May 1, 2024
62395e7
Added comment
mwetter May 1, 2024
371d4eb
Removed line
mwetter May 1, 2024
433a2e4
Added full package name
mwetter May 1, 2024
9b9cf15
Removed non-used source block
mwetter May 1, 2024
be50582
Removed connector to itself
mwetter May 1, 2024
6c196f9
Removed use of string connectors
mwetter May 2, 2024
12cea1d
Changed datSou to devIde for consistency with data record naming
mwetter May 2, 2024
6ec5a11
Added parameter allowDifferentDeviceIdentifiers
mwetter May 2, 2024
a4b716c
Fixed formatting
mwetter May 2, 2024
af3cdc2
Corrected syntax error
mwetter May 2, 2024
be08c48
Corrected location of protected keyword
mwetter May 2, 2024
2920a6f
Merge branch 'issue1575_heatPumpModelIntegration' into issue1576_heat…
mwetter May 2, 2024
8111280
Set new boolean flag
mwetter May 2, 2024
ba0b499
Set new boolean flag
mwetter May 2, 2024
f02cce3
Removed checkbox
mwetter May 2, 2024
b0e18d3
Merge pull request #1872 from ibpsa/issue1576_heatPumpModelIntegratio…
mwetter May 2, 2024
4ad4543
Corrected typo (and line endings)
mwetter May 3, 2024
22bffa8
Corrected grammar
mwetter May 3, 2024
d9f33d4
Changed limWarDifSca to ratio rather than percentage, and renamed to …
mwetter May 3, 2024
fb3c61f
Updated user guide regarding scaling
mwetter May 3, 2024
4446027
Added icon
mwetter May 3, 2024
a866e71
Added icon
mwetter May 3, 2024
681efd5
Removed InflowTemperatureSensor.mo
mwetter May 3, 2024
a1f2e08
Changed layout
mwetter May 3, 2024
842406c
fix QUse usage
FWuellhorst May 6, 2024
645880c
change scaFac doc
FWuellhorst May 6, 2024
6d41c6c
Removed whitespace
mwetter May 8, 2024
83fc750
Merge branch 'master' into issue1576_heatPumpModelIntegration
mwetter May 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 184 additions & 0 deletions IBPSA/Fluid/Chillers/ModularReversible/BaseClasses/RefrigerantCycle.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
within IBPSA.Fluid.Chillers.ModularReversible.BaseClasses;
model RefrigerantCycle "Refrigerant cycle model of a chiller"
extends IBPSA.Fluid.HeatPumps.ModularReversible.BaseClasses.PartialModularRefrigerantCycle;

parameter Boolean allowDifferentDeviceIdentifiers=false
"if use_rev=true, device data for cooling and heating need to entered. Set allowDifferentDeviceIdentifiers=true to allow different device identifiers devIde"
annotation(Dialog(enable=use_rev));

replaceable model RefrigerantCycleChillerCooling =
IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.BaseClasses.NoCooling(
useInChi=true)
constrainedby
IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.BaseClasses.PartialChillerCycle
"Replaceable model for refrigerant cycle of a chiller in main operation mode"
annotation (choicesAllMatching=true);

replaceable model RefrigerantCycleChillerHeating =
IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.NoHeating(
useInHeaPum=true)
constrainedby
IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.PartialHeatPumpCycle
"Replaceable model for refrigerant cycle of a chiller in reversed operation mode"
annotation (Dialog(enable=use_rev),choicesAllMatching=true);

RefrigerantCycleChillerCooling refCycChiCoo
"Refrigerant cycle instance for cooling"
annotation (Placement(transformation(extent={{21,40},{60,80}}, rotation=0)));
RefrigerantCycleChillerHeating refCycChiHea
"Refrigerant cycle instance for heating"
annotation (Placement(transformation(extent={{-60,38},{-19,80}}, rotation=0)));

protected
parameter String devIde =
if use_rev then refCycChiHea.devIde else refCycChiCoo.devIde
"Data source for refrigerant cycle";

initial algorithm
if not allowDifferentDeviceIdentifiers then
assert(
devIde == refCycChiCoo.devIde,
"In " + getInstanceName() + ": Device identifiers devIde for reversible operation are not equal.
Cooling device identifier is '" + refCycChiCoo.devIde + "' but heating is '"
+ devIde + "'. To allow this, set 'allowDifferentDeviceIdentifiers=true'.",
AssertionLevel.error);
end if;
equation
connect(pasTrhModSet.u, sigBus.coo);

connect(sigBus,refCycChiHea.sigBus) annotation (Line(
points={{0,100},{0,92},{-39.3292,92},{-39.3292,80}},
color={255,204,51},
thickness=0.5));
connect(sigBus,refCycChiCoo.sigBus) annotation (Line(
points={{0,100},{0,92},{40.6625,92},{40.6625,80}},
color={255,204,51},
thickness=0.5));

connect(swiPEle.u2, sigBus.coo) annotation (Line(points={{2.22045e-15,-58},{
2.22045e-15,-2},{0,-2},{0,100}},
color={255,0,255}), Text(
string="%second",
index=1,
extent={{-3,6},{-3,6}},
horizontalAlignment=TextAlignment.Right));
connect(swiQEva.u2, sigBus.coo) annotation (Line(points={{-58,0},{0,0},{0,100}},
color={255,0,255}), Text(
string="%second",
index=1,
extent={{6,3},{6,3}},
horizontalAlignment=TextAlignment.Left));
connect(swiQCon.u2, sigBus.coo) annotation (Line(points={{58,0},{0,0},{0,100}},
color={255,0,255}), Text(
string="%second",
index=1,
extent={{-6,3},{-6,3}},
horizontalAlignment=TextAlignment.Right));
connect(refCycChiCoo.QEva_flow, swiQEva.u1) annotation (Line(points={{53.5,
38.3333},{53.5,24},{-10,24},{-10,8},{-58,8}}, color={0,0,127}));
connect(refCycChiCoo.QCon_flow, swiQCon.u1)
annotation (Line(points={{27.5,38.3333},{27.5,8},{58,8}}, color={0,0,127}));
connect(refCycChiCoo.PEle, swiPEle.u1) annotation (Line(points={{40.5,38.3333},
{40.5,-48},{8,-48},{8,-58}}, color={0,0,127}));
connect(refCycChiHea.PEle, swiPEle.u3) annotation (Line(points={{-39.5,36.25},{
-39.5,-48},{-8,-48},{-8,-58}}, color={0,0,127}));
connect(refCycChiHea.QCon_flow, swiQEva.u3) annotation (Line(points={{-53.1667,
36.25},{-53.1667,-8},{-58,-8}}, color={0,0,127}));
connect(refCycChiHea.QEva_flow, swiQCon.u3) annotation (Line(points={{-25.8333,
36.25},{-25.8333,-8},{58,-8}}, color={0,0,127}));

annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={
Rectangle(
extent={{-100,100},{100,-100}},
lineColor={238,46,47},
fillColor={0,0,0},
fillPattern=FillPattern.Solid),
Ellipse(
extent={{-24,88},{22,44}},
lineColor={28,108,200},
lineThickness=0.5),
Line(
points={{-16,82},{20,74}},
color={28,108,200},
thickness=0.5),
Line(
points={{-18,52},{20,58}},
color={28,108,200},
thickness=0.5),
Rectangle(
extent={{-98,40},{-60,-28}},
lineColor={28,108,200},
lineThickness=0.5),
Line(
points={{-20,-60},{-20,-70},{-20,-80},{20,-60},{20,-80},{-20,-60}},
color={28,108,200},
thickness=0.5),
Line(
points={{-122,34},{-66,34},{-82,10},{-66,-22},{-120,-22}},
color={28,108,200},
thickness=0.5),
Rectangle(
extent={{60,40},{98,-28}},
lineColor={28,108,200},
lineThickness=0.5),
Line(
points={{120,34},{64,34},{80,10},{64,-22},{118,-22}},
color={28,108,200},
thickness=0.5),
Line(
points={{-80,40},{-80,68},{-24,68}},
color={28,108,200},
thickness=0.5),
Line(
points={{22,66},{80,66},{80,40}},
color={28,108,200},
thickness=0.5),
Line(
points={{78,-28},{78,-70}},
color={28,108,200},
thickness=0.5),
Line(
points={{78,-70},{62,-70},{20,-70}},
color={28,108,200},
thickness=0.5),
Line(
points={{-80,-26},{-80,-68},{-20,-68}},
color={28,108,200},
thickness=0.5),
Text(
extent={{-151,147},{149,107}},
textColor={0,0,255},
fillPattern=FillPattern.HorizontalCylinder,
fillColor={0,127,255},
textString="%name")}), Diagram(coordinateSystem(preserveAspectRatio=false)),
Documentation(revisions="<html>
<ul>
<li>
May 2, 2024, by Michael Wetter:<br/>
Refactored check for device identifiers.<br/>
This is for <a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/1576\">IBPSA, #1576</a>.
</li>
<li>
<i>May 22, 2019,</i> by Julian Matthes:<br/>
First implementation (see issue <a href=
\"https://github.com/RWTH-EBC/AixLib/issues/715\">AixLib #715</a>)
</li>
</ul>
</html>", info="<html>
<p>
Modular refrigerant cycle model for chiller applications used in
the model <a href=\"modelica://IBPSA.Fluid.Chillers.ModularReversible.Modular\">
IBPSA.Fluid.Chillers.ModularReversible.Modular</a> and extending models
of the modular approach.
</p>
<p>
This model adds the replaceable model approaches for cooling and heating data
to the partial refrigerant cylce.
</p>
<p>
Further, an asseration warning is raised if the model approaches or
sources for performance data differ. This indicates that they are not
for the same device.
</p>
</html>"));
end RefrigerantCycle;
11 changes: 11 additions & 0 deletions IBPSA/Fluid/Chillers/ModularReversible/BaseClasses/package.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
within IBPSA.Fluid.Chillers.ModularReversible;
package BaseClasses "Package with base classes for IBPSA.Fluid.Chillers.ModularReversible"
extends Modelica.Icons.BasesPackage;

annotation (preferredView="info", Documentation(info="<html>
<p>
This package contains base classes that are used to construct the models in
<a href=\"modelica://IBPSA.Fluid.Chillers.ModularReversible\">IBPSA.Fluid.Chillers.ModularReversible</a>.
</p>
</html>"));
end BaseClasses;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
RefrigerantCycle
92 changes: 92 additions & 0 deletions IBPSA/Fluid/Chillers/ModularReversible/CarnotWithLosses.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
within IBPSA.Fluid.Chillers.ModularReversible;
model CarnotWithLosses
"Reversible chiller using Carnot approach with losses (frost, heat, inertia)"
extends IBPSA.Fluid.Chillers.ModularReversible.Modular(
QHea_flow_nominal=PEle_nominal*refCyc.refCycChiHea.COP_nominal,
redeclare model RefrigerantCycleChillerHeating =
IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness
(
PEle_nominal=PEle_nominal,
redeclare
IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting
iceFacCal,
etaCarnot_nominal=etaCarnot_nominal,
use_constAppTem=true,
TAppCon_nominal=TAppCon_nominal,
TAppEva_nominal=TAppEva_nominal),
redeclare model RefrigerantCycleChillerCooling =
IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness
(
redeclare
IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.FunctionalIcingFactor
iceFacCal(redeclare function icingFactor =
IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.Functions.wetterAfjei1997),
TAppCon_nominal=TAppCon_nominal,
TAppEva_nominal=TAppEva_nominal,
etaCarnot_nominal=etaCarnot_nominal),
final allowDifferentDeviceIdentifiers=false,
redeclare model RefrigerantCycleInertia =
IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Inertias.VariableOrder
(
final refIneFreConst=1/refIneTimCon,
final nthOrd=1,
initType=Modelica.Blocks.Types.Init.InitialOutput));

parameter Real etaCarnot_nominal=0.3 "Constant Carnot effectiveness";
parameter Modelica.Units.SI.TemperatureDifference TAppCon_nominal=if
cpCon < 1500 then 5 else 2
"Temperature difference between refrigerant and working fluid outlet in condenser"
annotation(Dialog(group="Nominal condition"));
parameter Modelica.Units.SI.TemperatureDifference TAppEva_nominal=if
cpEva < 1500 then 5 else 2
"Temperature difference between refrigerant and working fluid outlet in evaporator"
annotation(Dialog(group="Nominal condition"));
parameter Modelica.Units.SI.Time refIneTimCon = 300
"Refrigerant cycle inertia time constant for first order delay"
annotation(Dialog(group="Refrigerant cycle inertia"));
parameter Integer nthOrd=1 "Order of refrigerant cycle interia"
annotation(Dialog(group="Refrigerant cycle inertia"));


annotation (Documentation(revisions="<html>
<ul>
<li>
<i>October 2, 2022</i> by Fabian Wuellhorst:<br/>
First implementation (see issue <a href=
\"https://github.com/ibpsa/modelica-ibpsa/issues/1576\">#1576</a>)
</li>
</ul>
</html>", info="<html>
<p>
Model of a reversible chiller.
</p>
<p>
This model extends
<a href=\"modelica://IBPSA.Fluid.Chillers.ModularReversible.Modular\">
IBPSA.Fluid.Chillers.ModularReversible.Modular</a> and selects the
constant Carnot effectiveness module for chillers
(<a href=\"modelica://IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness\">
IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness</a>)
and heat pumps
(<a href=\"modelica://IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness\">
IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness</a>)
to model a reversible chiller.
For the heating operation, the nominal approach temperatures are used
as a constant to avoid nonlinear system of equations.
</p>
<p>
Furthermore, losses are enabled to model
the chiller with a more realistic behaviour:
</p>
<ul>
<li>Heat losses to the ambient (can be disabled)</li>
<li>Refrigerant inertia using a first order delay</li>
<li>Evaporator frosting assuming an air-sink chiller</li>
</ul>
<p>
For more information, see
<a href=\"modelica://IBPSA.Fluid.HeatPumps.ModularReversible.UsersGuide\">
IBPSA.Fluid.HeatPumps.ModularReversible.UsersGuide</a>.
</p>
</html>"));
end CarnotWithLosses;
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
within IBPSA.Fluid.Chillers.ModularReversible.Controls.Safety;
model OperationalEnvelope
"Indicates if the chiller operation is within a defined envelope"
extends
HeatPumps.ModularReversible.Controls.Safety.BaseClasses.PartialOperationalEnvelope;
Modelica.Blocks.Logical.Not notCoo "=true for heating" annotation (Placement(
transformation(
extent={{-10,-10},{10,10}},
rotation=0,
origin={-50,0})));
equation
if use_TEvaOutHea then
connect(bouMapHea.TUseSid, sigBus.TEvaOutMea) annotation (Line(points={{-84.2,
82},{-104,82},{-104,-61},{-119,-61}}, color={0,
0,127}));
else
connect(bouMapHea.TUseSid, sigBus.TEvaInMea) annotation (Line(points={{-84.2,
82},{-104,82},{-104,-61},{-119,-61}}, color={0,
0,127}));
end if;
if use_TConOutCoo then
connect(bouMapCoo.TAmbSid, sigBus.TConOutMea) annotation (Line(points={{-84.8,
-62},{-104,-62},{-104,-61},{-119,-61}},
color={0,0,127}));
else
connect(bouMapCoo.TAmbSid, sigBus.TConInMea) annotation (Line(points={{-84.8,
-62},{-104,-62},{-104,-61},{-119,-61}},
color={0,0,127}));
end if;
if use_TConOutHea then
connect(bouMapHea.TAmbSid, sigBus.TConOutMea) annotation (Line(points={{-84.8,
58},{-104,58},{-104,-60},{-106,-60},{-106,-61},{-119,-61}},
color={0,0,127}));
else
connect(bouMapHea.TAmbSid, sigBus.TConInMea) annotation (Line(points={{-84.8,
58},{-104,58},{-104,-60},{-112,-60},{-112,-61},{-119,-61}},
color={0,0,127}));
end if;
if use_TEvaOutCoo then
connect(bouMapCoo.TUseSid, sigBus.TEvaOutMea) annotation (Line(points={{-84.2,
-38},{-104,-38},{-104,-60},{-112,-60},{-112,-61},{-119,-61}},
color={0,0,127}));
else
connect(bouMapCoo.TUseSid, sigBus.TEvaInMea) annotation (Line(points={{-84.2,
-38},{-104,-38},{-104,-60},{-112,-60},{-112,-61},{-119,-61}},
color={0,0,127}));
end if;
connect(notCoo.y, swiHeaCoo.u2)
annotation (Line(points={{-39,0},{-6,0}}, color={255,0,255}));
connect(notCoo.u, sigBus.coo) annotation (Line(points={{-62,0},{-70,0},{-70,
-8},{-104,-8},{-104,-60},{-112,-60},{-112,-61},{-119,-61}},
color={255,0,255}), Text(
string="%second",
index=1,
extent={{-6,3},{-6,3}},
horizontalAlignment=TextAlignment.Right));
annotation (Diagram(coordinateSystem(extent={{-120,-120},{120,120}})),
Documentation(revisions="<html><ul>
<li>
<i>November 26, 2018</i> by Fabian Wuellhorst:<br/>
First implementation (see issue <a href=
\"https://github.com/RWTH-EBC/AixLib/issues/577\">AixLib #577</a>)
</li>
</ul>
</html>", info="<html>
<p>
Model to check if the operating conditions of a chiller are inside
the given boundaries. If not, the heat pump or chiller will switch off.
</p>
<p>
Read the documentation of
<a href=\"modelica://IBPSA.Fluid.HeatPumps.ModularReversible.Controls.Safety.BaseClasses.PartialOperationalEnvelope\">
IBPSA.Fluid.HeatPumps.ModularReversible.Controls.Safety.BaseClasses.PartialOperationalEnvelope</a>
for more information.
</p>

</html>"));
end OperationalEnvelope;
Loading
Loading