Buildings.Fluid.HeatPumps.Compressors

Package with compressor models

Information

This package contains components models for compressors.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Fluid.HeatPumps.Compressors.ReciprocatingCompressor ReciprocatingCompressor Model for a reciprocating compressor, based on Jin (2002)
Buildings.Fluid.HeatPumps.Compressors.ScrollCompressor ScrollCompressor Model for a scroll compressor, based on Jin (2002)
Buildings.Fluid.HeatPumps.Compressors.Validation Validation Collection of models that validate the compressor models
Buildings.Fluid.HeatPumps.Compressors.BaseClasses BaseClasses Package with base classes for compressors

Buildings.Fluid.HeatPumps.Compressors.ReciprocatingCompressor Buildings.Fluid.HeatPumps.Compressors.ReciprocatingCompressor

Model for a reciprocating compressor, based on Jin (2002)

Buildings.Fluid.HeatPumps.Compressors.ReciprocatingCompressor

Information

Model for a reciprocating processor, as detailed in Jin (2002). 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.

Variable speed is acheived by multiplying the full load piston displacement 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.

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. 2012.

Extends from Buildings.Fluid.HeatPumps.Compressors.BaseClasses.PartialCompressor (Partial compressor model).

Parameters

TypeNameDefaultDescription
replaceable package refR410ARefrigerant in the component
VolumeFlowRatepisDis Piston displacement [m3/s]
RealcleFaccleFac( min = 0, final...Clearance factor [1]
EfficiencyetaEle Electro-mechanical efficiency of the compressor [1]
PowerPLosPLos( ...Constant part of the compressor power losses [W]
AbsolutePressurepDro Pressure drop at suction and discharge of the compressor [Pa]
TemperatureDifferencedTSupdTSup( ...Superheating at compressor suction [K]
Initialization
AbsolutePressurepEva.start100e3Pressure of saturated vapor at evaporator temperature [Pa]
AbsolutePressurepCon.start1000e3Pressure of saturated liquid at condenser temperature [Pa]
AbsolutePressurepDis.start1000e3Discharge pressure of the compressor [Pa]
AbsolutePressurepSuc.start100e3Suction pressure of the compressor [Pa]
SpecificVolumevSuc.start1e-4Specific volume of the refrigerant at suction of the compressor [m3/kg]

Connectors

TypeNameDescription
HeatPort_aport_aRefrigerant connector a (corresponding to the evaporator)
HeatPort_bport_bRefrigerant connector b (corresponding to the condenser)
input RealInputyModulating signal for compressor frequency, equal to 1 at full load conditions [1]
output RealOutputPElectric power consumed by compressor [W]

Modelica definition

model ReciprocatingCompressor "Model for a reciprocating compressor, based on Jin (2002)" extends Buildings.Fluid.HeatPumps.Compressors.BaseClasses.PartialCompressor; parameter Modelica.SIunits.VolumeFlowRate pisDis "Piston displacement"; parameter Real cleFac( min = 0, final unit = "1") "Clearance factor"; parameter Modelica.SIunits.Efficiency etaEle "Electro-mechanical efficiency of the compressor"; parameter Modelica.SIunits.Power PLos(min = 0) "Constant part of the compressor power losses"; parameter Modelica.SIunits.AbsolutePressure pDro "Pressure drop at suction and discharge of the compressor"; parameter Modelica.SIunits.TemperatureDifference dTSup(min = 0) "Superheating at compressor suction"; Modelica.SIunits.MassFlowRate m_flow "Refrigerant mass flow rate"; Modelica.SIunits.Power PThe "Theoretical power consumed by the compressor"; Modelica.SIunits.Efficiency COP(start=5) "Heating COP of the compressor"; protected Modelica.SIunits.IsentropicExponent k(start = 1.2) "Isentropic exponent of the refrigerant"; Real pisDis_norm "Normalized piston displacement at part load conditions"; equation // Limit compressor speed to the full load speed pisDis_norm = Buildings.Utilities.Math.Functions.smoothLimit(y, 0.0, 1.0, 0.001); if isOn then // Suction pressure pSuc = Buildings.Utilities.Math.Functions.smoothMin(pEva - pDro, pCon - pDro, 0.01*ref.pCri); // Discharge pressure pDis = pCon + pDro; // Refrigerant mass flow rate k = ref.isentropicExponentVap_Tv(TSuc, vSuc); m_flow = pisDis_norm*pisDis/vSuc*(1 + cleFac - cleFac*(PR)^(1/k)); // Theoretical power of the compressor PThe = k/(k-1) * m_flow*pSuc*vSuc*((PR)^((k-1)/k)-1); // Power consumed by the compressor P = PThe/etaEle + PLos; // Temperature at suction of the compressor TSuc = port_a.T + dTSup; // Energy balance of the compressor port_a.Q_flow = m_flow * (hEva - hCon); port_b.Q_flow = - (port_a.Q_flow + P); -port_b.Q_flow = P * COP; else // Heat pump is turned off k = 1.0; pSuc = pEva; pDis = pCon; m_flow = 0; PThe = 0; P = 0; TSuc = port_a.T; port_a.Q_flow = 0; port_b.Q_flow = 0; COP = 1.0; end if; end ReciprocatingCompressor;

Buildings.Fluid.HeatPumps.Compressors.ScrollCompressor Buildings.Fluid.HeatPumps.Compressors.ScrollCompressor

Model for a scroll compressor, based on Jin (2002)

Buildings.Fluid.HeatPumps.Compressors.ScrollCompressor

Information

Model for a scroll processor, as detailed in Jin (2002). 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.

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.

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. 2012.

Extends from Buildings.Fluid.HeatPumps.Compressors.BaseClasses.PartialCompressor (Partial compressor model).

Parameters

TypeNameDefaultDescription
replaceable package refR410ARefrigerant in the component
RealvolRatvolRat( min = 1.0, fin...Built-in volume ratio [1]
VolumeFlowRateV_flow_nominalV_flow_nominal( ...Refrigerant volume flow rate at suction at full load conditions [m3/s]
MassFlowRateleaCoeleaCoe( min = 0)Leakage mass flow rate at a pressure ratio of 1 [kg/s]
EfficiencyetaEle Electro-mechanical efficiency of the compressor [1]
PowerPLosPLos( ...Constant part of the compressor power losses [W]
TemperatureDifferencedTSupdTSup( ...Superheating at compressor suction [K]
Initialization
AbsolutePressurepEva.start100e3Pressure of saturated vapor at evaporator temperature [Pa]
AbsolutePressurepCon.start1000e3Pressure of saturated liquid at condenser temperature [Pa]
AbsolutePressurepDis.start1000e3Discharge pressure of the compressor [Pa]
AbsolutePressurepSuc.start100e3Suction pressure of the compressor [Pa]
SpecificVolumevSuc.start1e-4Specific volume of the refrigerant at suction of the compressor [m3/kg]

Connectors

TypeNameDescription
HeatPort_aport_aRefrigerant connector a (corresponding to the evaporator)
HeatPort_bport_bRefrigerant connector b (corresponding to the condenser)
input RealInputyModulating signal for compressor frequency, equal to 1 at full load conditions [1]
output RealOutputPElectric power consumed by compressor [W]

Modelica definition

model ScrollCompressor "Model for a scroll compressor, based on Jin (2002)" extends Buildings.Fluid.HeatPumps.Compressors.BaseClasses.PartialCompressor; parameter Real volRat( min = 1.0, final unit = "1") "Built-in volume ratio"; parameter Modelica.SIunits.VolumeFlowRate V_flow_nominal(min=0) "Refrigerant volume flow rate at suction at full load conditions"; parameter Modelica.SIunits.MassFlowRate leaCoe( min = 0) "Leakage mass flow rate at a pressure ratio of 1"; parameter Modelica.SIunits.Efficiency etaEle "Electro-mechanical efficiency of the compressor"; parameter Modelica.SIunits.Power PLos(min = 0) "Constant part of the compressor power losses"; parameter Modelica.SIunits.TemperatureDifference dTSup(min = 0) "Superheating at compressor suction"; Modelica.SIunits.MassFlowRate m_flow "Refrigerant mass flow rate"; Modelica.SIunits.MassFlowRate mLea_flow "Refrigerant leakage mass flow rate"; Modelica.SIunits.Power PThe "Theoretical power consumed by the compressor"; Modelica.SIunits.Efficiency COP(start=5) "Heating COP of the compressor"; protected Modelica.SIunits.IsentropicExponent k(start = 1.2) "Isentropic exponent of the refrigerant"; Real v_norm "Normalized refrigerant volume flow rate at suction at part load conditions"; Real PRInt(start = 2.0) "Built-in pressure ratio"; equation PRInt = volRat^k; // Limit compressor speed to the full load speed v_norm = Buildings.Utilities.Math.Functions.smoothLimit(y, 0.0, 1.0, 0.001); if isOn then // Suction pressure pSuc = pEva; // Discharge pressure pDis = pCon; // Refrigerant mass flow rate mLea_flow = leaCoe*PR; m_flow = v_norm* Buildings.Utilities.Math.Functions.smoothMax( V_flow_nominal/vSuc - mLea_flow, 1e-5*V_flow_nominal/vSuc, 1e-6*V_flow_nominal/vSuc); // Theoretical power of the compressor k = ref.isentropicExponentVap_Tv(TSuc, vSuc); // If the external pressure ratio does not match the built-in pressure ratio PThe = v_norm * k/(k - 1.0) * pSuc * V_flow_nominal * (((k - 1.0)/k) * PR/volRat + 1.0/k * PRInt^((k - 1.0)/k) - 1.0); // This equation reduces to the equation for the built-in pressure ratio // if the external pressure ratio matches the built-in pressure ratio: // PThe = v_norm * k/(k - 1.0) * pSuc*v_flow * ((PRInt)^((k - 1.0)/k) - 1.0) // Temperature at suction of the compressor TSuc = port_a.T + dTSup; // Power consumed by the compressor P = (PThe/etaEle + PLos); // Energy balance of the compressor port_a.Q_flow = m_flow * (hEva - hCon); port_b.Q_flow = - (port_a.Q_flow + P); -port_b.Q_flow = P * COP; else // Heat pump is turned off k = 1.0; pSuc = pEva; pDis = pCon; mLea_flow = 0.0; m_flow = 0.0; PThe = 0.0; P = 0.0; TSuc = port_a.T; port_a.Q_flow = 0.0; port_b.Q_flow = 0.0; COP = 1.0; end if; end ScrollCompressor;