modelPartialHeatPump

Heat pump partial

Extends from IDEAS.Fluid.Interfaces.FourPortHeatMassExchanger, IDEAS.Fluid.HeatPumps.Interfaces.ModulationSecurity, IDEAS.Fluid.Interfaces.OnOffInterface.

Information

This partial model provides an implementation for a heat pump. Heat is drawn from the fluid at the 'Brine' side and injected into the 'Fluid' side. The model uses performance tables to calculate the COP and electrical power.

Main equations

The COP and electrical power Pel are read from performance tables as a function of the evaporator inlet temperature and the condensor outlet temperature:

COP = f1(T_out_condensor, T_in_evaporator)

P_el = f2(T_out_condensor, T_in_evaporator)

These values are used to calculate the thermal powers:

Q_condensor = P_el*COP

Q_evaporator = P_el*(COP-1)

If the parameter use_scaling is true, the powers of the heat pump will be scaled with QNom / QNomRef. The nominal mass flow rate of the heat pump is also scaled to correctly scale the pressure losses.

The models also allows partial load if use_modulationSignal is set to true. The modulation is assumed to be ideal and it works then as a scaling input of the power.

The heat pump compressor will be switched off when:

  1. The external control signal is false
  2. The over/under-temperature protection is activated

In this case P_el will become zero. The transition from on to off can happen discretely or through a filter using the parameter 'avoidEvents'.

Assumptions and limitations

  • The transient behaviour of the thermodynamic cycle is not simulated.
  • The fluid mass flow rates do not have an impact on the values of COP and P_el.
  • Modulation of the power is not supported.
  • Maximum temperatures of the evaporator and minimum temperatures of the condensor are not considered.
  • Defrosting cycles etc are not considered.

Typical use and important parameters

A record with the required parameters needs to be provided.

The parameter 'avoidEvents' can be used to avoid an event when activating the over/under-temperature protection. When avoidEvents is true the thermal mass of the condensor and evaporator are increased to avoid undercooling/overheating the heat pump while it is switching off and the mass flow rate is zero. This factor can be quite significant and depends on the 'riseTime'.

Options

  1. Typical options inherited through lumpedVolumeDeclarations can be used.

Validation

Examples of this model can be found in IDEAS.Fluid.Production.Examples.HeatPump_BrineWater, IDEAS.Fluid.Production.Examples.HeatPump_BrineWaterTset and IDEAS.Fluid.Production.Examples.HeatPump_Events

Parameters

TypeNameDefaultDescription
IDEAS.Fluid.HeatPumps.BaseClasses.HeatPumpDataheatPumpData
Booleanuse_TSetfalseTrue if the heat pump uses a set point temperature control
Realscaif use_scaling then P_the_nominal/heatPumpData.P_the_nominal else 1scaling factor for the nominal power of the heat pump
Advanced
Booleanuse_scalingfalsescale the performance data based on the nominal power
BooleanperfFromToutfalse= true, then recompute performance based on evaporator outlet temperature instead of directly using the inlet temperature
Booleanuse_modulationSignalfalseenables an input for modulating the heat pump ideally (no change of COP, just scaling of the electrical and thermal power)
Modelica.Units.SI.PowerP_the_nominalheatPumpData.P_the_nominalnominal thermal power of the heat pump
RealmSenFac1Factor to scale the thermal mass of the evaporator and condensor
Flow resistance
BooleancomputeFlowResistancetrue=true, compute flow resistance. Set to false to assume no friction
BooleanhomotopyInitializationtrue= true, use homotopy method

Components

TypeNameDefaultDescription
Modelica.Blocks.Tables.CombiTable2DspowerTableInterpolation table for finding the electrical power
Modelica.Blocks.Tables.CombiTable2DscopTable
Modelica.Blocks.Sources.RealExpressionQEvap
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlowprescribedHeatEvap
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlowprescribedHeatCond
Modelica.Thermal.HeatTransfer.Components.ThermalConductorthermalConductorLosses
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aheatLoss
Modelica.Blocks.Sources.RealExpressionQCond
Modelica.Units.SI.PowerP_elElectrical power consumption
Modelica.Units.SI.PowerP_evapThermal power of the evaporator (positive)
Modelica.Units.SI.PowerP_condThermal power of the condensor (positive)
Modelica.Units.SI.TemperatureTEvapInEvaporator inlet temperature
RealcopCOP of the heat pump
Modelica.Blocks.Sources.RealExpressionPElec
Modelica.Blocks.Interfaces.RealOutputPElectrical power consumption
Modelica.Blocks.Interfaces.RealInputmodModulation level
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensorT_out_cond
Modelica.Blocks.Sources.RealExpressionTEvapInExp

Revisions

  • January 2014 by Damien Picard:
    Remove unnecessary filters + add modulation temperature security to avoid overheating and undercooling and limit number of events.
  • December 2014 by Damien Picard:
    Make filter parameters final to avoid warning durings compilation.
  • December 2014 by Damien Picard:
    Add value to internal variable modulationRate_internal to close the equations when use_modulation_security is false. Add a modulation input.
  • November 2014 by Filip Jorissen:
    Added 'AvoidEvents' parameter, temperature protection and documentation.
  • March 2014 by Filip Jorissen:
    Initial version