-
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.
Issue2770 air cooled chiller (7.0.x) (#2776)
* Apply changes to maintenance 70x branch * Update release notes * Removed white-space * Changed diagram size * Applied changes from issue2770_airCooledChiller Co-authored-by: Michael Wetter <[email protected]>
- Loading branch information
Showing
12 changed files
with
382 additions
and
21 deletions.
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
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
101 changes: 101 additions & 0 deletions
101
Buildings/Fluid/Chillers/Examples/BaseClasses/PartialElectric_AirCooled.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,101 @@ | ||
within Buildings.Fluid.Chillers.Examples.BaseClasses; | ||
partial model PartialElectric_AirCooled | ||
"Base class for test model of chiller electric EIR with air-cooled condenser" | ||
package Medium1 = Buildings.Media.Air "Medium model"; | ||
package Medium2 = Buildings.Media.Water "Medium model"; | ||
|
||
parameter Modelica.SIunits.Power P_nominal | ||
"Nominal compressor power (at y=1)"; | ||
parameter Modelica.SIunits.TemperatureDifference dTEva_nominal=10 | ||
"Temperature difference evaporator inlet-outlet"; | ||
parameter Modelica.SIunits.TemperatureDifference dTCon_nominal=10 | ||
"Temperature difference condenser outlet-inlet"; | ||
parameter Real COPc_nominal = 3 "Chiller COP"; | ||
parameter Modelica.SIunits.MassFlowRate mEva_flow_nominal | ||
"Nominal mass flow rate at evaporator"; | ||
parameter Modelica.SIunits.MassFlowRate mCon_flow_nominal | ||
"Nominal mass flow rate at condenser"; | ||
|
||
Sources.MassFlowSource_WeatherData sou1( | ||
redeclare package Medium = Medium1, | ||
m_flow=mCon_flow_nominal) | ||
"Weather data" | ||
annotation (Placement(transformation(extent={{-60,6},{-40,26}}))); | ||
Buildings.Fluid.Sources.MassFlowSource_T sou2( | ||
redeclare package Medium = Medium2, | ||
use_T_in=true, | ||
m_flow=mEva_flow_nominal, | ||
T=291.15) "Mass flow source" | ||
annotation (Placement(transformation(extent={{60,-6},{40,14}}))); | ||
Buildings.Fluid.Sources.Boundary_pT sin1( | ||
redeclare package Medium = Medium1, | ||
nPorts=1) "Pressure source" | ||
annotation (Placement( | ||
transformation( | ||
extent={{10,-10},{-10,10}}, | ||
origin={70,40}))); | ||
Buildings.Fluid.Sources.Boundary_pT sin2( | ||
redeclare package Medium = Medium2, | ||
nPorts=1) "Pressure source" | ||
annotation (Placement( | ||
transformation( | ||
extent={{-10,-10},{10,10}}, | ||
origin={-70,-20}))); | ||
Modelica.Blocks.Sources.Ramp TSet( | ||
duration=3600*6, | ||
startTime=197.25*24*3600, | ||
offset=273.15 + 5, | ||
height=5) "Set point for leaving chilled water temperature" | ||
annotation (Placement(transformation(extent={{-80,50},{-60,70}}))); | ||
Modelica.Blocks.Sources.Ramp TEva_in( | ||
offset=273.15 + 10, | ||
height=6, | ||
startTime=197*24*3600, | ||
duration=12*3600) | ||
"Evaporator inlet temperature" | ||
annotation (Placement(transformation(extent={{50,-40},{70,-20}}))); | ||
Modelica.Blocks.Sources.Pulse pulse(period=3600/2) | ||
"Pulse signal" | ||
annotation (Placement(transformation(extent={{-80,80},{-60,100}}))); | ||
Modelica.Blocks.Logical.GreaterThreshold greaterThreshold(threshold=0.5) | ||
"Greater threshold" | ||
annotation (Placement(transformation(extent={{-40,80},{-20,100}}))); | ||
Buildings.Fluid.FixedResistances.PressureDrop res1( | ||
redeclare package Medium = Medium1, | ||
m_flow_nominal=mCon_flow_nominal, | ||
dp_nominal=6000) "Flow resistance" | ||
annotation (Placement(transformation(extent={{32,30},{52,50}}))); | ||
Buildings.Fluid.FixedResistances.PressureDrop res2( | ||
dp_nominal=6000, | ||
redeclare package Medium = Medium2, | ||
m_flow_nominal=mEva_flow_nominal) "Flow resistance" | ||
annotation (Placement(transformation(extent={{-20,-30},{-40,-10}}))); | ||
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= | ||
Modelica.Utilities.Files.loadResource( | ||
"modelica://Buildings/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos")) | ||
annotation (Placement(transformation(extent={{-100,20},{-80,40}}))); | ||
equation | ||
connect(TEva_in.y, sou2.T_in) annotation (Line( | ||
points={{71,-30},{80,-30},{80,8},{62,8}}, | ||
color={0,0,127}, | ||
smooth=Smooth.None)); | ||
|
||
connect(greaterThreshold.u, pulse.y) annotation (Line( | ||
points={{-42,90},{-59,90}}, | ||
color={0,0,127}, | ||
smooth=Smooth.None)); | ||
connect(res1.port_b, sin1.ports[1]) annotation (Line( | ||
points={{52,40},{60,40}}, | ||
color={0,127,255}, | ||
smooth=Smooth.None)); | ||
connect(res2.port_b, sin2.ports[1]) annotation (Line( | ||
points={{-40,-20},{-60,-20}}, | ||
color={0,127,255}, | ||
smooth=Smooth.None)); | ||
connect(weaDat.weaBus, sou1.weaBus) annotation (Line( | ||
points={{-80,30},{-70,30},{-70,16.2},{-60,16.2}}, | ||
color={255,204,51}, | ||
thickness=0.5)); | ||
annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,120}})), Icon( | ||
coordinateSystem(extent={{-120,-100},{100,120}}))); | ||
end PartialElectric_AirCooled; |
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 |
---|---|---|
@@ -1 +1,2 @@ | ||
PartialElectric | ||
PartialElectric_AirCooled |
74 changes: 74 additions & 0 deletions
74
Buildings/Fluid/Chillers/Examples/ElectricEIR_AirCooled.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,74 @@ | ||
within Buildings.Fluid.Chillers.Examples; | ||
model ElectricEIR_AirCooled | ||
"Test model for chiller electric EIR with air-cooled condenser" | ||
extends Modelica.Icons.Example; | ||
extends Buildings.Fluid.Chillers.Examples.BaseClasses.PartialElectric_AirCooled( | ||
P_nominal=-per.QEva_flow_nominal/per.COP_nominal, | ||
mEva_flow_nominal=per.mEva_flow_nominal, | ||
mCon_flow_nominal=per.mCon_flow_nominal, | ||
sou1(nPorts=1), | ||
sou2(nPorts=1)); | ||
|
||
parameter Data.ElectricEIR.ElectricEIRChiller_York_YCAL0033EE_101kW_3_1COP_AirCooled | ||
per "Chiller performance data" | ||
annotation (Placement(transformation(extent={{60,80},{80,100}}))); | ||
|
||
Buildings.Fluid.Chillers.ElectricEIR chi( | ||
redeclare package Medium1 = Medium1, | ||
redeclare package Medium2 = Medium2, | ||
per=per, | ||
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, | ||
dp1_nominal=6000, | ||
dp2_nominal=6000) "Chiller model" | ||
annotation (Placement(transformation(extent={{0,0},{20,20}}))); | ||
|
||
equation | ||
connect(sou1.ports[1], chi.port_a1) annotation (Line( | ||
points={{-40,16},{0,16}}, | ||
color={0,127,255}, | ||
smooth=Smooth.None)); | ||
connect(chi.port_b1, res1.port_a) annotation (Line( | ||
points={{20,16},{26,16},{26,40},{32,40}}, | ||
color={0,127,255}, | ||
smooth=Smooth.None)); | ||
connect(sou2.ports[1], chi.port_a2) annotation (Line( | ||
points={{40,4},{20,4}}, | ||
color={0,127,255}, | ||
smooth=Smooth.None)); | ||
connect(chi.port_b2, res2.port_a) annotation (Line( | ||
points={{0,4},{-10,4},{-10,-20},{-20,-20}}, | ||
color={0,127,255}, | ||
smooth=Smooth.None)); | ||
connect(chi.on, greaterThreshold.y) annotation (Line( | ||
points={{-2,13},{-10,13},{-10,90},{-19,90}}, | ||
color={255,0,255}, | ||
smooth=Smooth.None)); | ||
connect(chi.TSet, TSet.y) annotation (Line( | ||
points={{-2,7},{-30,7},{-30,60},{-59,60}}, | ||
color={0,0,127}, | ||
smooth=Smooth.None)); | ||
annotation ( | ||
experiment( | ||
StartTime=17020800, | ||
StopTime=17064000, | ||
Tolerance=1e-06), | ||
__Dymola_Commands(file="modelica://Buildings/Resources/Scripts/Dymola/Fluid/Chillers/Examples/ElectricEIR_AirCooled.mos" | ||
"Simulate and plot"), | ||
Documentation(info="<html> | ||
<p> | ||
Example that simulates a chiller whose efficiency is computed based on the | ||
condenser entering and evaporator leaving fluid temperature. | ||
A bicubic polynomial is used to compute the chiller part load performance. | ||
This example is for an air-cooled chiller. | ||
</p> | ||
</html>", revisions="<html> | ||
<ul> | ||
<li> | ||
November 19, 2021 by David Blum:<br/> | ||
First implementation. | ||
</li> | ||
</ul> | ||
</html>"), | ||
Diagram(coordinateSystem(extent={{-120,-100},{100,120}})), | ||
Icon(coordinateSystem(extent={{-100,-100},{100,100}}))); | ||
end ElectricEIR_AirCooled; |
Oops, something went wrong.