-
Notifications
You must be signed in to change notification settings - Fork 164
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This merges the reversible, modular chiller and heat pump models
- Loading branch information
Showing
234 changed files
with
25,854 additions
and
17 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
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
191 changes: 191 additions & 0 deletions
191
Buildings/Fluid/Chillers/ModularReversible/BaseClasses/RefrigerantCycle.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,191 @@ | ||
within Buildings.Fluid.Chillers.ModularReversible.BaseClasses; | ||
model RefrigerantCycle "Refrigerant cycle model of a chiller" | ||
extends Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.PartialModularRefrigerantCycle; | ||
replaceable model RefrigerantCycleChillerCooling = | ||
Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.BaseClasses.NoCooling( | ||
useInChi=true) | ||
constrainedby | ||
Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.BaseClasses.PartialChillerCycle | ||
"Replaceable model for refrigerant cycle of a chiller in main operation mode" | ||
annotation (choicesAllMatching=true); | ||
|
||
replaceable model RefrigerantCycleChillerHeating = | ||
Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.NoHeating( | ||
useInHeaPum=true) | ||
constrainedby | ||
Buildings.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 if use_rev | ||
"Refrigerant cycle instance for heating" | ||
annotation (Placement(transformation(extent={{-60,38},{-19,80}}, rotation=0))); | ||
|
||
protected | ||
Buildings.Utilities.IO.Strings.StringPassThrough strPasThr | ||
"String pass through to enable conditional string data"; | ||
Buildings.Utilities.IO.Strings.Constant conStrSou( | ||
final k=refCycChiCoo.datSou) | ||
"Constant String data source"; | ||
|
||
initial algorithm | ||
assert( | ||
strPasThr.y == refCycChiCoo.datSou, | ||
"In " + getInstanceName() + ": Data sources for reversible operation are not equal. | ||
Cooling data source is " + refCycChiCoo.datSou + ", heating data source is " | ||
+ strPasThr.y + ". Only continue if this is intended.", | ||
AssertionLevel.warning); | ||
equation | ||
if use_rev then | ||
connect(refCycChiHea.datSouOut, strPasThr.u); | ||
else | ||
connect(QEva_flow, refCycChiCoo.QEva_flow) annotation (Line( | ||
points={{-110,0},{-90,0},{-90,24},{54,24},{54,38.3333},{53.5,38.3333}}, | ||
color={0,0,127}, | ||
pattern=LinePattern.Dash)); | ||
connect(refCycChiCoo.QCon_flow, QCon_flow) annotation (Line( | ||
points={{27.5,38.3333},{27.5,20},{92,20},{92,0},{110,0}}, | ||
color={0,0,127}, | ||
pattern=LinePattern.Dash)); | ||
connect(refCycChiCoo.PEle, PEle) annotation (Line( | ||
points={{40.5,38.3333},{40.5,-90},{0,-90},{0,-110.5},{0.5,-110.5}}, | ||
color={0,0,127}, | ||
pattern=LinePattern.Dash)); | ||
connect(conStrSou.y, strPasThr.u); | ||
end if; | ||
|
||
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> | ||
<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://Buildings.Fluid.Chillers.ModularReversible.ModularReversible\"> | ||
Buildings.Fluid.Chillers.ModularReversible.ModularReversible</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
11
Buildings/Fluid/Chillers/ModularReversible/BaseClasses/package.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,11 @@ | ||
within Buildings.Fluid.Chillers.ModularReversible; | ||
package BaseClasses "Package with base classes for Buildings.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://Buildings.Fluid.Chillers.ModularReversible\">Buildings.Fluid.Chillers.ModularReversible</a>. | ||
</p> | ||
</html>")); | ||
end BaseClasses; |
1 change: 1 addition & 0 deletions
1
Buildings/Fluid/Chillers/ModularReversible/BaseClasses/package.order
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 @@ | ||
RefrigerantCycle |
72 changes: 72 additions & 0 deletions
72
Buildings/Fluid/Chillers/ModularReversible/Controls/Safety/OperationalEnvelope.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,72 @@ | ||
within Buildings.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_TAmbSidOut then | ||
connect(bouMapCoo.TAmbSid, sigBus.TConOutMea) annotation (Line(points={{-84.8, | ||
-62},{-116,-62},{-116,-61},{-119,-61}}, | ||
color={0,0,127})); | ||
connect(bouMapHea.TAmbSid, sigBus.TConOutMea) annotation (Line(points={{-84.8, | ||
58},{-104,58},{-104,-60},{-112,-60},{-112,-61},{-119,-61}}, | ||
color={0,0,127})); | ||
else | ||
connect(bouMapCoo.TAmbSid, sigBus.TConInMea) annotation (Line(points={{-84.8, | ||
-62},{-118,-62},{-118,-61},{-119,-61}}, | ||
color={0,0,127})); | ||
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_TUseSidOut then | ||
connect(bouMapHea.TUseSid, sigBus.TEvaOutMea) annotation (Line(points={{-84.2, | ||
82},{-104,82},{-104,-60},{-112,-60},{-112,-61},{-119,-61}}, | ||
color={0,0,127})); | ||
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(bouMapHea.TUseSid, sigBus.TEvaInMea) annotation (Line(points={{-84.2, | ||
82},{-104,82},{-104,-60},{-112,-60},{-112,-61},{-119,-61}}, | ||
color={0,0,127})); | ||
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://Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.BaseClasses.PartialOperationalEnvelope\"> | ||
Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.BaseClasses.PartialOperationalEnvelope</a> | ||
for more information. | ||
</p> | ||
</html>")); | ||
end OperationalEnvelope; |
36 changes: 36 additions & 0 deletions
36
Buildings/Fluid/Chillers/ModularReversible/Controls/Safety/package.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,36 @@ | ||
within Buildings.Fluid.Chillers.ModularReversible.Controls; | ||
package Safety "Contains typical safety controllers for chillers" | ||
extends Modelica.Icons.Package; | ||
|
||
annotation (Icon(graphics={ | ||
Ellipse( | ||
extent={{-48,-12},{48,80}}, | ||
lineColor={0,0,0}, | ||
fillColor={91,91,91}, | ||
fillPattern=FillPattern.Solid), | ||
Ellipse( | ||
extent={{-36,0},{36,68}}, | ||
lineColor={0,0,0}, | ||
fillColor={255,255,255}, | ||
fillPattern=FillPattern.Solid), | ||
Rectangle( | ||
extent={{-60,34},{60,-66}}, | ||
lineColor={0,0,0}, | ||
fillColor={91,91,91}, | ||
fillPattern=FillPattern.Solid), | ||
Rectangle( | ||
extent={{-10,-16},{10,-56}}, | ||
lineColor={0,0,0}, | ||
fillColor={255,255,255}, | ||
fillPattern=FillPattern.Solid), | ||
Ellipse( | ||
extent={{-14,-26},{16,2}}, | ||
lineColor={0,0,0}, | ||
fillColor={255,255,255}, | ||
fillPattern=FillPattern.Solid)}), Documentation(info="<html> | ||
<p> | ||
Package with safety controls typically | ||
applied in chiller devices. | ||
</p> | ||
</html>")); | ||
end Safety; |
1 change: 1 addition & 0 deletions
1
Buildings/Fluid/Chillers/ModularReversible/Controls/Safety/package.order
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 @@ | ||
OperationalEnvelope |
13 changes: 13 additions & 0 deletions
13
Buildings/Fluid/Chillers/ModularReversible/Controls/package.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,13 @@ | ||
within Buildings.Fluid.Chillers.ModularReversible; | ||
package Controls "Package of control sequences" | ||
extends Modelica.Icons.VariantsPackage; | ||
|
||
annotation ( | ||
preferredView="info", | ||
Documentation( | ||
info="<html> | ||
<p> | ||
This package contains control sequences. | ||
</p> | ||
</html>")); | ||
end Controls; |
1 change: 1 addition & 0 deletions
1
Buildings/Fluid/Chillers/ModularReversible/Controls/package.order
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 @@ | ||
Safety |
49 changes: 49 additions & 0 deletions
49
Buildings/Fluid/Chillers/ModularReversible/Data/TableData2D/EN14511/Carrier30XWP1012_1MW.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,49 @@ | ||
within Buildings.Fluid.Chillers.ModularReversible.Data.TableData2D.EN14511; | ||
record Carrier30XWP1012_1MW | ||
"Carrier 30XW-P 1012 with roughly 1 MW cooling output" | ||
extends Buildings.Fluid.Chillers.ModularReversible.Data.TableData2D.Generic( | ||
tabQEva_flow=[0,298.15,303.15,308.15,313.15,318.15; 278.15,-1003000,-968000, | ||
-932000,-894000,-854000; 280.15,-1054000,-1035000,-995000,-954000,-911000; 283.15, | ||
-1102000,-1120000,-1096000,-1050000,-1002000; 288.15,-1181000,-1199000,-1226000, | ||
-1227000,-1170000; 291.15,-1227000,-1244000,-1275000,-1311000,-1278000], | ||
tabPEle=[0,298.15,303.15,308.15,313.15,318.15; 278.15,158954,181955,208036, | ||
237766,271111; 280.15,159215,182218,208159,237905,271131; 283.15,159479, | ||
182708,208762,238095,271545; 288.15,160462,183333,209573,239648,272727; | ||
291.15,161024,183752,210396,240550,274249], | ||
mCon_flow_nominal=49.85, | ||
mEva_flow_nominal=49.85, | ||
dpCon_nominal=32000, | ||
dpEva_nominal=44000, | ||
tabLowBou=[293.15,276.15; 323.15,276.15], | ||
devIde="Carrier30XWP1012", | ||
use_TConOutForOpeEnv=true, | ||
use_TEvaOutForOpeEnv=true, | ||
use_TConOutForTab=false, | ||
use_TEvaOutForTab=true); | ||
|
||
annotation ( | ||
Icon(coordinateSystem(preserveAspectRatio=false)), | ||
Diagram(coordinateSystem(preserveAspectRatio=false)), | ||
Documentation(info="<html> | ||
<p> | ||
Performance data for Daikin FTXM20R_RXM20R for the cooling mode. | ||
</p> | ||
<p> | ||
Boundaries are for dry-bulb temperature. | ||
</p> | ||
<h4>References</h4> | ||
<p> | ||
Carrier, Water-Cooled Liquid Chillers Pro-Dialog plus, 30XW- 30XWHDaikin | ||
<a href=\"http://www.carrier.com.kw/pdf/pdf/Chilled%20Water%20Products/30XW.pdf\"> | ||
http://www.carrier.com.kw/pdf/pdf/Chilled%20Water%20Products/30XW.pdf</a> | ||
</p> | ||
</html>", 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>")); | ||
end Carrier30XWP1012_1MW; |
Oops, something went wrong.