modelScrollWaterToWater

Model for a scroll water to water heat pump

Extends from Buildings.Fluid.HeatPumps.BaseClasses.PartialWaterToWater (Partial model for water to water heat pumps and chillers).

Information

Model for a water to water heat pump with a scroll compressor, as described in Jin (2002). The thermodynamic heat pump cycle is represented below.

image

The rate of heat transferred to the evaporator is given by:

Eva = ṁref ( hVap(TEva) - hLiq(TCon) ).

The power consumed by the compressor is given by a linear efficiency relation:

P = PTheoretical / η + PLoss,constant.

Heat transfer in the evaporator and condenser is calculated using an ε-NTU method, assuming constant refrigerant temperature and constant heat transfer coefficient between fluid and refrigerant.

Variable speed is achieved by multiplying the full load suction volume flow rate by the normalized compressor speed. The power and heat transfer rates are forced to zero if the resulting heat pump state has higher evaporating pressure than condensing pressure.

The model parameters are obtained by calibration of the heat pump model to manufacturer performance data. Calibrated model parameters for various heat pumps from different manufacturers are found in Buildings.Fluid.HeatPumps.Data.ScrollWaterToWater. The calibrated model is located in Buildings.Fluid.HeatPumps.Calibration.ScrollWaterToWater.

Options

Parameters TConMax and TEvaMin may be used to set an upper or lower bound for the condenser and evaporator. The compressor is disabled when these conditions are not satisfied, or when the evaporator temperature is larger than the condenser temperature. This mimics the temperature protection of heat pumps and moreover it avoids non-converging algebraic loops of equations, or freezing of evaporator medium. This option can be disabled by setting enable_temperature_protection = false.

Assumptions and limitations

The compression process is assumed isentropic. The thermal energy of superheating is ignored in the evaluation of the heat transferred to the refrigerant in the evaporator. There is no supercooling.

References

H. Jin. Parameter estimation based models of water source heat pumps. PhD Thesis. Oklahoma State University. Stillwater, Oklahoma, USA. 2002.

Parameters

TypeNameDefaultDescription
BooleanhomotopyInitialization (from PartialWaterToWater)true= true, use homotopy method
Booleanenable_variable_speed (from PartialWaterToWater)trueSet to true to allow modulating of compressor speed
Realscaling_factor (from PartialWaterToWater)1.0Scaling factor for heat pump capacity
Modelica.Units.SI.ThermalConductanceUACon (from PartialWaterToWater)Thermal conductance of condenser
Modelica.Units.SI.ThermalConductanceUAEva (from PartialWaterToWater)Thermal conductance of evaporator
Buildings.Fluid.HeatPumps.Data.ScrollWaterToWater.GenericdatHeaPumHeat pump data
Assumptions
BooleanallowFlowReversal1 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
BooleanallowFlowReversal2 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2
Nominal condition
Modelica.Units.SI.MassFlowRatem1_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.MassFlowRatem2_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedp1_nominal (from FourPortFlowResistanceParameters)Pressure difference
Modelica.Units.SI.PressureDifferencedp2_nominal (from FourPortFlowResistanceParameters)Pressure difference
Advanced
Medium1.MassFlowRatem1_flow_small (from PartialFourPortInterface)1E-4*abs(m1_flow_nominal)Small mass flow rate for regularization of zero flow
Medium2.MassFlowRatem2_flow_small (from PartialFourPortInterface)1E-4*abs(m2_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialFourPortInterface)false= true, if actual temperature at port is computed
Flow resistance › Medium 1
BooleancomputeFlowResistance1 (from FourPortFlowResistanceParameters)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp1 (from FourPortFlowResistanceParameters)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn1 (from FourPortFlowResistanceParameters)2Flow exponent for side 1, n=1 for laminar, n=2 for turbulent
BooleanlinearizeFlowResistance1 (from FourPortFlowResistanceParameters)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM1 (from FourPortFlowResistanceParameters)0.1Fraction of nominal flow rate where flow transitions to laminar
Flow resistance › Medium 2
BooleancomputeFlowResistance2 (from FourPortFlowResistanceParameters)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp2 (from FourPortFlowResistanceParameters)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn2 (from FourPortFlowResistanceParameters)2Flow exponent for side 2, n=1 for laminar, n=2 for turbulent
BooleanlinearizeFlowResistance2 (from FourPortFlowResistanceParameters)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM2 (from FourPortFlowResistanceParameters)0.1Fraction of nominal flow rate where flow transitions to laminar
Dynamics › Condenser
Modelica.Units.SI.Timetau1 (from PartialWaterToWater)60Time constant at nominal flow rate (used if energyDynamics1 <> Modelica.Fluid.Types.Dynamics.SteadyState)
Modelica.Units.SI.TemperatureT1_start (from PartialWaterToWater)Medium1.T_defaultInitial or guess value of set point
Dynamics › Evaporator
Modelica.Units.SI.Timetau2 (from PartialWaterToWater)60Time constant at nominal flow rate (used if energyDynamics2 <> Modelica.Fluid.Types.Dynamics.SteadyState)
Modelica.Units.SI.TemperatureT2_start (from PartialWaterToWater)Medium2.T_defaultInitial or guess value of set point
Dynamics › Evaporator and condenser
Modelica.Fluid.Types.DynamicsenergyDynamics (from PartialWaterToWater)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Temperature protection
Booleanenable_temperature_protection (from PartialWaterToWater)trueEnable temperature protection
Modelica.Units.SI.TemperatureTConMax (from PartialWaterToWater)ref.TCri - 5Upper bound for condenser temperature
Modelica.Units.SI.TemperatureTEvaMin (from PartialWaterToWater)275.15Lower bound for evaporator temperature
RealdTHys (from PartialWaterToWater)5Hysteresis interval width

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a1 (from PartialFourPort)Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_bport_b1 (from PartialFourPort)Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_aport_a2 (from PartialFourPort)Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Fluid.Interfaces.FluidPort_bport_b2 (from PartialFourPort)Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Blocks.Interfaces.BooleanOutputerrLowPre (from PartialWaterToWater)if true, compressor disabled since evaporator temperature is above upper bound
Modelica.Blocks.Interfaces.BooleanOutputerrHigPre (from PartialWaterToWater)if true, compressor disabled since condenser temperature is below lower bound
Modelica.Blocks.Interfaces.BooleanOutputerrNegTemDif (from PartialWaterToWater)if true, compressor disabled since condenser temperature is below evaporator temperature
Modelica.Blocks.Interfaces.RealInputy (from PartialWaterToWater)Modulating signal for compressor frequency, equal to 1 at full load condition
Modelica.Blocks.Interfaces.IntegerInputstage (from PartialWaterToWater)Current stage of the heat pump, equal to 1 at full load condition
Modelica.Blocks.Interfaces.RealOutputQCon_flow (from PartialWaterToWater)Actual heating heat flow rate added to fluid 1
Modelica.Blocks.Interfaces.RealOutputP (from PartialWaterToWater)Electric power consumed by compressor
Modelica.Blocks.Interfaces.RealOutputQEva_flow (from PartialWaterToWater)Actual cooling heat flow rate removed from fluid 2

Components

TypeNameDefaultDescription
Medium1.MassFlowRatem1_flow (from PartialFourPortInterface)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp1 (from PartialFourPortInterface)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium2.MassFlowRatem2_flow (from PartialFourPortInterface)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp2 (from PartialFourPortInterface)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium1.ThermodynamicStatesta_a1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow))Medium properties in port_a1
Medium1.ThermodynamicStatesta_b1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow)Medium properties in port_b1
Medium2.ThermodynamicStatesta_a2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow))Medium properties in port_a2
Medium2.ThermodynamicStatesta_b2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow)Medium properties in port_b2
Buildings.Fluid.HeatExchangers.EvaporatorCondensercon (from PartialWaterToWater)Condenser
Buildings.Fluid.HeatExchangers.EvaporatorCondensereva (from PartialWaterToWater)Evaporator
Buildings.Fluid.HeatPumps.Compressors.BaseClasses.PartialCompressorcom (from PartialWaterToWater)Compressor

Revisions

  • May 30, 2017, by Filip Jorissen:
    Revised documentation for temperature protection. See #769.
  • November 11, 2016, by Massimo Cimmino:
    First implementation.