modelHP_AirWater_TSet
Extends from IDEAS.Fluid.HeatPumps.Interfaces.PartialDynamicHeaterWithLosses (Partial heater model incl dynamics and environmental losses).
Information
Description
Dynamic heat pump model, based on interpolation in performance tables for a Daikin Altherma heat pump. These tables are encoded in the heatSource model. If a different heat pump is to be simulated, create a different heatSource model with adapted interpolation tables.
The nominal power of the heat pump can be adapted, this will NOT influence the efficiency as a function of ambient air temperature, condenser temperature and modulation level.
The heat pump has thermal losses to the environment which are often not mentioned in the performance tables. Therefore, the additional environmental heat losses are added to the heat production in order to ensure the same performance as in the manufacturers data, while still obtaining a dynamic model with heat losses (also when heat pump is off). The heatSource will compute the required power and the environmental heat losses, and try to reach the set point.
See IDEAS.Thermal.Components.Production.Interfaces.PartialDynamicHeaterWithLosses for more details about the heat losses and dynamics.
Assumptions and limitations
- Dynamic model based on water content and lumped dry capacity
- Inverter controlled heat pump with limited power (based on QNom and interpolation tables in heatSource)
- Heat losses to environment which are compensated 'artifically' to meet the manufacturers data in steady state conditions
- No defrosting taken into account
- No enforced min on or min off time; Hysteresis on start/stop thanks to different parameters for minimum modulation to start and stop the heat pump
Model use
This model is based on performance tables of a specific heat pump, as specified by the heatSource model. If a different heat pump is to be simulated, create a different heatSource model with adapted interpolation tables.
- Specify medium and initial temperature (of the water + dry mass)
- Specify the nominal power QNom. There are two options: (1) specify QNom and put QDesign = 0 or (2) specify QDesign greater than 0 and QNom wil be calculated from QDesign as follows:
- QNom = QDesign * betaFactor / fraLosDesNom
- Connect TSet, the flowPorts and the heatPort to environment.
- Specify the minimum required modulation level for the boiler to start (modulation_start) and the minimum modulation level when the boiler is operating (modulation_min). The difference between both will ensure some off-time in case of low heat demands
See also IDEAS.Thermal.Components.Production.Interfaces.PartialDynamicHeaterWithLosses for more details about the heat losses and dynamics.
Validation
The model has been verified in order to check if the 'artificial' heat loss compensation still leads to correct steady state efficiencies according to the manufacturer data. This verification is integrated in the example model IDEAS.Thermal.Components.Examples.Boiler_validation.
Example
A specific heat pump example is given in IDEAS.Thermal.Components.Examples.HeatPump_AirWater.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.Power | QNom (from PartialDynamicHeaterWithLosses) | Nominal power | |
| Modelica.Units.SI.Time | tauHeatLoss (from PartialDynamicHeaterWithLosses) | 7200 | Time constant of environmental heat losses |
| Modelica.Units.SI.Mass | mWater (from PartialDynamicHeaterWithLosses) | 5 | Mass of water in the condensor |
| Modelica.Units.SI.HeatCapacity | cDry (from PartialDynamicHeaterWithLosses) | 4800 | Capacity of dry material lumped to condensor |
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialDynamicHeaterWithLosses) | Nominal mass flow rate | |
| Modelica.Units.SI.ThermalConductance | UALoss (from PartialDynamicHeaterWithLosses) | mWater*vol.mSenFac/tauHeatLoss | Thermal conductance, computed based on time constant and thermal mass |
| Modelica.Units.SI.Power | QDesign | 0 | Overrules QNom if different from 0. Design heat load, typically at -8 or -10 degC in Belgium. |
| Real | fraLosDesNom | 0.68 | Ratio of power at design conditions over power at 2/35degC |
| Real | betaFactor | 0.8 | Relative sizing compared to design heat load |
| Modelica.Units.SI.Power | QNomFinal | if abs(QDesign) < Modelica.Constants.small then QNom else QDesign/fraLosDesNom*betaFactor | Used nominal power in the heatSource model |
| Real | modulation_min | 20 | Minimal modulation percentage |
| Real | modulation_start | 35 | Min estimated modulation level required for start of HP |
| Flow resistance | |||
| Boolean | computeFlowResistance (from TwoPortFlowResistanceParameters) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dp (from TwoPortFlowResistanceParameters) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean | linearizeFlowResistance (from TwoPortFlowResistanceParameters) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM (from TwoPortFlowResistanceParameters) | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Boolean | dynamicBalance (from PartialDynamicHeaterWithLosses) | true | Set to true to use a dynamic balance, which often leads to smaller systems of equations |
| Boolean | homotopyInitialization (from PartialDynamicHeaterWithLosses) | true | = true, use homotopy method |
| Boolean | allowFlowReversal (from PartialDynamicHeaterWithLosses) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal. Used only if model has two ports. |
| Nominal condition | |||
| Modelica.Units.SI.PressureDifference | dp_nominal (from TwoPortFlowResistanceParameters) | Pressure difference | |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from LumpedVolumeDeclarations) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | substanceDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of independent mass fraction balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | traceDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of trace substance balance: dynamic (3 initialization options) or steady state |
| Advanced › Dynamics | |||
| Modelica.Fluid.Types.Dynamics | massDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state |
| Initialization | |||
| Medium.AbsolutePressure | p_start (from LumpedVolumeDeclarations) | Medium.p_default | Start value of pressure |
| Medium.Temperature | T_start (from LumpedVolumeDeclarations) | Medium.T_default | Start value of temperature |
| Medium.MassFraction[Medium.nX] | X_start (from LumpedVolumeDeclarations) | Medium.X_default | Start value of mass fractions m_i/m |
| Medium.ExtraProperty[Medium.nC] | C_start (from LumpedVolumeDeclarations) | fill(0, Medium.nC) | Start value of trace substances |
| Medium.ExtraProperty[Medium.nC] | C_nominal (from LumpedVolumeDeclarations) | fill(1E-2, Medium.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
| Dynamics | |||
| Real | mSenFac (from LumpedVolumeDeclarations) | 1 | Factor for scaling the sensible thermal mass of the volume |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.RealInput | TSet (from PartialDynamicHeaterWithLosses) | Temperature setpoint | |
| Modelica.Blocks.Interfaces.RealOutput | PEl (from PartialDynamicHeaterWithLosses) | Electrical consumption | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | heatPort (from PartialDynamicHeaterWithLosses) | heatPort for thermal losses to environment | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialDynamicHeaterWithLosses) | Fluid inlet | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialDynamicHeaterWithLosses) | Fluid outlet |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| IDEAS.BoundaryConditions.SimInfoManager | sim | ||
| Real | COP | Instanteanous COP | |
| Real | modulation | IDEAS.Utilities.Math.Functions.smoothMax(0, heatSource.modulation, 1) | Current modulation percentage |
| IDEAS.Fluid.HeatPumps.BaseClasses.HeatSource_HP_AW | heatSource | ||
| Modelica.Thermal.HeatTransfer.Sensors.HeatFlowSensor | heatFlowSensor | ||
| Modelica.Blocks.Sources.BooleanExpression | booleanExpression |
Revisions
-
February 4, 2025, by Jelger Jansen:
AddedModelica.Units.to one or multiple parameter(s) due to the removal ofimportin IDEAS/package.mo. See #1415 . -
September 10, 2020 by Filip Jorissen:
Fixed real equality comparison for #1172. -
June 5, 2018 by Filip Jorissen:
Cleaned up implementation for #821. -
March, 2014, by Filip Jorissen:
Annex60 compatibility -
May, 2013, by Roel De Coninck:
Propagation of heatSource parameters and better definition of QNom used. Documentation and example added -
2011, by Roel De Coninck:
First version