partial model PartialElectric
"Base class for test model of chiller electric EIR"
package Medium1 =
Buildings.Media.ConstantPropertyLiquidWater "Medium model";
package Medium2 =
Buildings.Media.ConstantPropertyLiquidWater "Medium model";
parameter Modelica.SIunits.Power P_nominal=-per.QEva_flow_nominal/per.COP_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=
per.mEva_flow_nominal
"Nominal mass flow rate at evaporator";
parameter Modelica.SIunits.MassFlowRate mCon_flow_nominal=
per.mCon_flow_nominal
"Nominal mass flow rate at condenser";
replaceable Buildings.Fluid.Chillers.BaseClasses.PartialElectric chi
constrainedby Buildings.Fluid.Chillers.BaseClasses.PartialElectric(
redeclare package Medium1 = Medium1,
redeclare package Medium2 = Medium2,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
dp1_nominal=6000,
dp2_nominal=6000)
"Chiller model";
Buildings.Fluid.Sources.MassFlowSource_T sou1(nPorts=1,
redeclare package Medium = Medium1,
use_T_in=true,
m_flow=mCon_flow_nominal,
T=298.15);
Buildings.Fluid.Sources.MassFlowSource_T sou2(nPorts=1,
redeclare package Medium = Medium2,
use_T_in=true,
m_flow=mEva_flow_nominal,
T=291.15);
Buildings.Fluid.Sources.FixedBoundary sin1(
redeclare package Medium = Medium1,
nPorts=1);
Buildings.Fluid.Sources.FixedBoundary sin2(
redeclare package Medium = Medium2,
nPorts=1);
Modelica.Blocks.Sources.Ramp TSet(
duration=3600,
startTime=3*3600,
offset=273.15 + 10,
height=8)
"Set point for leaving chilled water temperature";
inner Modelica.Fluid.System system;
Modelica.Blocks.Sources.Ramp TCon_in(
height=10,
offset=273.15 + 20,
duration=3600,
startTime=2*3600)
"Condenser inlet temperature";
Modelica.Blocks.Sources.Ramp TEva_in(
offset=273.15 + 15,
height=5,
startTime=3600,
duration=3600)
"Evaporator inlet temperature";
replaceable parameter Buildings.Fluid.Chillers.Data.BaseClasses.Chiller per
constrainedby Buildings.Fluid.Chillers.Data.BaseClasses.Chiller
"Base class for performance data";
Modelica.Blocks.Sources.Pulse pulse(period=3600/2);
Modelica.Blocks.Logical.GreaterThreshold greaterThreshold(threshold=0.5);
Buildings.Fluid.FixedResistances.FixedResistanceDpM res1(
redeclare package Medium = Medium1,
m_flow_nominal=mCon_flow_nominal,
dp_nominal=6000)
"Flow resistance";
Buildings.Fluid.FixedResistances.FixedResistanceDpM res2(
dp_nominal=6000,
redeclare package Medium = Medium2,
m_flow_nominal=mEva_flow_nominal)
"Flow resistance";
equation
connect(sou1.ports[1], chi.port_a1);
connect(sou2.ports[1], chi.port_a2);
connect(TCon_in.y, sou1.T_in);
connect(TEva_in.y, sou2.T_in);
connect(TSet.y, chi.TSet);
connect(greaterThreshold.u, pulse.y);
connect(greaterThreshold.y, chi.on);
connect(chi.port_b1, res1.port_a);
connect(res1.port_b, sin1.ports[1]);
connect(chi.port_b2, res2.port_a);
connect(res2.port_b, sin2.ports[1]);
end PartialElectric;