modelPartialHeatPump
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:
- The external control signal is false
- 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
- 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
| Type | Name | Default | Description |
|---|---|---|---|
| IDEAS.Fluid.HeatPumps.BaseClasses.HeatPumpData | heatPumpData | ||
| Boolean | use_TSet | false | True if the heat pump uses a set point temperature control |
| Real | sca | if use_scaling then P_the_nominal/heatPumpData.P_the_nominal else 1 | scaling factor for the nominal power of the heat pump |
| Advanced | |||
| Boolean | use_scaling | false | scale the performance data based on the nominal power |
| Boolean | perfFromTout | false | = true, then recompute performance based on evaporator outlet temperature instead of directly using the inlet temperature |
| Boolean | use_modulationSignal | false | enables an input for modulating the heat pump ideally (no change of COP, just scaling of the electrical and thermal power) |
| Modelica.Units.SI.Power | P_the_nominal | heatPumpData.P_the_nominal | nominal thermal power of the heat pump |
| Real | mSenFac | 1 | Factor to scale the thermal mass of the evaporator and condensor |
| Flow resistance | |||
| Boolean | computeFlowResistance | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | homotopyInitialization | true | = true, use homotopy method |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Tables.CombiTable2Ds | powerTable | Interpolation table for finding the electrical power | |
| Modelica.Blocks.Tables.CombiTable2Ds | copTable | ||
| Modelica.Blocks.Sources.RealExpression | QEvap | ||
| Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow | prescribedHeatEvap | ||
| Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow | prescribedHeatCond | ||
| Modelica.Thermal.HeatTransfer.Components.ThermalConductor | thermalConductorLosses | ||
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | heatLoss | ||
| Modelica.Blocks.Sources.RealExpression | QCond | ||
| Modelica.Units.SI.Power | P_el | Electrical power consumption | |
| Modelica.Units.SI.Power | P_evap | Thermal power of the evaporator (positive) | |
| Modelica.Units.SI.Power | P_cond | Thermal power of the condensor (positive) | |
| Modelica.Units.SI.Temperature | TEvapIn | Evaporator inlet temperature | |
| Real | cop | COP of the heat pump | |
| Modelica.Blocks.Sources.RealExpression | PElec | ||
| Modelica.Blocks.Interfaces.RealOutput | P | Electrical power consumption | |
| Modelica.Blocks.Interfaces.RealInput | mod | Modulation level | |
| Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor | T_out_cond | ||
| Modelica.Blocks.Sources.RealExpression | TEvapInExp |
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