modelHeatPumpSystem
Extends from AixLib.Obsolete.Year2024.Systems.HeatPumpSystems.BaseClasses.PartialHeatPumpSystem (Partial model containing the basic heat pump block and different control blocks(optional)).
Information
Deprecation Warning
This model is deprecated, switch to the ModularReversible approach. Read https://github.com/RWTH-EBC/AixLib/wiki/Switch-from-model-HeatPump-to-ModularReversible for further information.
This model uses the heat pump model AixLib.Obsolete.Year2024.Fluid.HeatPumps.HeatPump to simulate a whole system, including controls, pumps and second heat generator.
A set of parameters is used to estimate the model parameters.
See AixLib.Obsolete.Year2024.Systems.HeatPumpSystems.BaseClasses.PartialHeatPumpSystem for information about the features of the heat pump system.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Medium_con.ThermodynamicState | stateCon_default (from PartialHeatPumpSystem) | Medium_con.setState_pTX(T = Medium_con.T_default, p = Medium_con.p_default, X = Medium_con.X_default[1:Medium_con.nXi]) | Medium state in condenser at default values |
| Medium_eva.ThermodynamicState | stateEva_default (from PartialHeatPumpSystem) | Medium_eva.setState_pTX(T = Medium_eva.T_default, p = Medium_eva.p_default, X = Medium_eva.X_default[1:Medium_eva.nXi]) | Medium state in evaporator at default values |
| AixLib.Fluid.Movers.Data.Generic | perEva (from PartialHeatPumpSystem) | ||
| AixLib.Fluid.Movers.Data.Generic | perCon (from PartialHeatPumpSystem) | ||
| Assumptions | |||
| Boolean | allowFlowReversal1 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Boolean | allowFlowReversal2 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | mFlow_conNominal (from PartialHeatPumpSystem) | Nominal mass flow rate, used for regularization near zero flow | |
| Modelica.Units.SI.MassFlowRate | mFlow_evaNominal (from PartialHeatPumpSystem) | Nominal mass flow rate | |
| Advanced | |||
| Medium1.MassFlowRate | m1_flow_small (from PartialFourPortInterface) | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Medium2.MassFlowRate | m2_flow_small (from PartialFourPortInterface) | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Design | |||
| Modelica.Units.SI.HeatFlowRate | QCon_nominal (from HeatPumpSystemParameters) | Nominal heating power of heat pump | |
| Modelica.Units.SI.Power | P_el_nominal (from HeatPumpSystemParameters) | Nominal electrical power, used for calculating nominal evaporator heat flow | |
| Modelica.Units.SI.ThermodynamicTemperature | TCon_nominal (from HeatPumpSystemParameters) | 308.15 | Nominal supply temperatur of the condenser |
| Modelica.Units.SI.ThermodynamicTemperature | TEva_nominal (from HeatPumpSystemParameters) | 283.15 | Nominal supply temperatur of the evaporator |
| Modelica.Units.SI.TemperatureDifference | dTEva (from HeatPumpSystemParameters) | 3 | Temperature difference at the evaporator |
| Modelica.Units.SI.TemperatureDifference | dTCon (from HeatPumpSystemParameters) | 5 | Temperature difference at the condenser |
| Modelica.Units.SI.SpecificHeatCapacityAtConstantPressure | cpEva (from HeatPumpSystemParameters) | Specific heat capacity of evaportor medium | |
| Modelica.Units.SI.SpecificHeatCapacityAtConstantPressure | cpCon (from HeatPumpSystemParameters) | Specific heat capacity of condenser medium | |
| Modelica.Units.SI.TemperatureDifference | dTPinchEva (from HeatPumpSystemParameters) | 8 | Pinch temperature in the evaporator |
| Modelica.Units.SI.TemperatureDifference | dTPinchCon (from HeatPumpSystemParameters) | 8 | Pinch temperature in the condenser |
| Real | percHeatLoss (from HeatPumpSystemParameters) | 0.1 | Percentage of heat losses in the heat exchangers to the nominal heating power |
| Modelica.Units.SI.HeatFlowRate | QEva_nominal (from HeatPumpSystemParameters) | QCon_nominal - P_el_nominal | Nominal thermal power at the evaporator of heat pump |
| System | |||
| Boolean | use_secHeaGen (from PartialHeatPumpSystem) | true | True if a bivalent setup is required |
| Modelica.Units.SI.HeatFlowRate | Q_flow_nominal (from PartialHeatPumpSystem) | Nominal heat flow rate of second heat generator. Used to calculate input singal y. | |
| Sink | |||
| Boolean | use_conPum (from PartialHeatPumpSystem) | true | True if pump or fan at condenser side are included into this model |
| Source | |||
| Boolean | use_evaPum (from PartialHeatPumpSystem) | true | True if pump or fan at evaporator side are included into this model |
| Heat Pump Control › Heating Curve | |||
| Boolean | use_tableData (from PartialHeatPumpSystem) | true | Choose between tables or function to calculate TSet |
| AixLib.DataBase.Boiler.DayNightMode.HeatingCurvesDayNightBaseDataDefinition | heatingCurveRecord (from PartialHeatPumpSystem) | AixLib.DataBase.Boiler.DayNightMode.HeatingCurves_Vitotronic_Day25_Night10() | Record with information about heating curve data |
| Real | declination (from PartialHeatPumpSystem) | 2 | Declination of heating curve |
| Real | day_hour (from PartialHeatPumpSystem) | 6 | Hour of day at which day mode is enabled |
| Real | night_hour (from PartialHeatPumpSystem) | 22 | Hour of day at which night mode is enabled |
| AixLib.Utilities.Time.Types.ZeroTime | zerTim (from PartialHeatPumpSystem) | AixLib.Utilities.Time.Types.ZeroTime.NY2017 | Enumeration for choosing how reference time (time = 0) should be defined. Used for heating curve and antilegionella |
| Heat Pump Control › Anti Legionella | |||
| Boolean | use_antLeg (from PartialHeatPumpSystem) | true | True if Anti-Legionella control is considered |
| Modelica.Units.SI.ThermodynamicTemperature | TLegMin (from PartialHeatPumpSystem) | 333.15 | Temperature at which the legionella in DWH dies |
| Modelica.Units.SI.Time | minTimeAntLeg (from PartialHeatPumpSystem) | Minimal duration of antilegionella control | |
| Boolean | weekly (from PartialHeatPumpSystem) | true | Switch between a daily or weekly trigger approach |
| Integer | trigWeekDay (from PartialHeatPumpSystem) | 5 | Day of the week at which control is triggered |
| Integer | trigHour (from PartialHeatPumpSystem) | 3 | Hour of the day at which control is triggered |
| Safety Control › General | |||
| Boolean | use_sec (from PartialHeatPumpSystem) | true | False if the Safety block should be disabled |
| Safety Control › On-/Off Control | |||
| Boolean | use_minRunTime (from PartialHeatPumpSystem) | false | False if minimal runtime of HP is not considered |
| Modelica.Units.SI.Time | minRunTime (from PartialHeatPumpSystem) | 300 | Minimum runtime of heat pump |
| Boolean | use_minLocTime (from PartialHeatPumpSystem) | false | False if minimal locktime of HP is not considered |
| Modelica.Units.SI.Time | minLocTime (from PartialHeatPumpSystem) | 300 | Minimum lock time of heat pump |
| Boolean | use_runPerHou (from PartialHeatPumpSystem) | false | False if maximal runs per hour of HP are not considered |
| Integer | maxRunPerHou (from PartialHeatPumpSystem) | 3 | Maximal number of on/off cycles in one hour |
| Boolean | pre_n_start (from PartialHeatPumpSystem) | false | Start value of pre(n) at initial time |
| Safety Control › Operational Envelope | |||
| Boolean | use_opeEnv (from PartialHeatPumpSystem) | true | False to allow HP to run out of operational envelope |
| Boolean | use_opeEnvFroRec (from PartialHeatPumpSystem) | false | Use a the operational envelope given in the datasheet |
| Obsolete.Year2024.DataBase.HeatPump.HeatPumpBaseDataDefinition | dataTable (from PartialHeatPumpSystem) | Data Table of HP | |
| Real[:,2] | tableUpp (from PartialHeatPumpSystem) | [0, 60; 5, 70; 30, 70] | Upper boundary of envelope |
| Modelica.Units.SI.TemperatureDifference | dTHystOperEnv (from PartialHeatPumpSystem) | 5 | Temperature difference used for both upper and lower hysteresis in the operational envelope. |
| Safety Control › Defrost | |||
| Boolean | use_deFro (from PartialHeatPumpSystem) | true | False if defrost in not considered |
| Real | minIceFac (from PartialHeatPumpSystem) | Minimal value above which no defrost is necessary | |
| Real | deltaIceFac (from PartialHeatPumpSystem) | 0.1 | Bandwitdth for hystereses. If the icing factor is based on the duration of defrost, this value is necessary to avoid state-events. |
| Boolean | use_chiller (from PartialHeatPumpSystem) | false | True if defrost operates by changing mode to cooling. False to use an electrical heater |
| Modelica.Units.SI.Power | calcPel_deFro (from PartialHeatPumpSystem) | Calculate how much eletrical energy is used to melt ice | |
| Safety Control › Anti Freeze Control | |||
| Boolean | use_antFre (from PartialHeatPumpSystem) | false | True if anti freeze control is part of safety control |
| Modelica.Units.SI.ThermodynamicTemperature | TantFre (from PartialHeatPumpSystem) | 276.15 | Limit temperature for anti freeze control |
| Initialization › Parameters | |||
| Modelica.Blocks.Types.Init | initType (from PartialHeatPumpSystem) | Modelica.Blocks.Types.Init.InitialState | Type of initialization (InitialState and InitialOutput are identical) |
| Initialization › Condenser | |||
| Modelica.Media.Interfaces.Types.AbsolutePressure | pCon_start (from PartialHeatPumpSystem) | Medium_con.p_default | Start value of pressure |
| Modelica.Media.Interfaces.Types.Temperature | TCon_start (from PartialHeatPumpSystem) | Medium_con.T_default | Start value of temperature |
| Modelica.Media.Interfaces.Types.MassFraction[Medium_con.nX] | XCon_start (from PartialHeatPumpSystem) | Medium_con.X_default | Start value of mass fractions m_i/m |
| Modelica.Units.SI.Temperature | TConCap_start | Medium_con.T_default | Initial temperature of heat capacity of condenser |
| Initialization › Evaporator | |||
| Modelica.Media.Interfaces.Types.AbsolutePressure | pEva_start (from PartialHeatPumpSystem) | Medium_eva.p_default | Start value of pressure |
| Modelica.Media.Interfaces.Types.Temperature | TEva_start (from PartialHeatPumpSystem) | Medium_eva.T_default | Start value of temperature |
| Modelica.Media.Interfaces.Types.MassFraction[Medium_eva.nX] | XEva_start (from PartialHeatPumpSystem) | Medium_eva.X_default | Start value of mass fractions m_i/m |
| Modelica.Units.SI.Temperature | TEvaCap_start | Medium_eva.T_default | Initial temperature of heat capacity at evaporator |
| Dynamics › Equation | |||
| Modelica.Fluid.Types.Dynamics | massDynamics (from PartialHeatPumpSystem) | Type of mass balance: dynamic (3 initialization options) or steady state (only affects fluid-models) | |
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialHeatPumpSystem) | Type of energy balance: dynamic (3 initialization options) or steady state (only affects fluid-models) | |
| Assumptions › Temperature sensors | |||
| Modelica.Units.SI.Time | tauSenT (from PartialHeatPumpSystem) | 1 | Time constant at nominal flow rate (use tau=0 for steady-state sensor, but see user guide for potential problems) |
| Boolean | transferHeat (from PartialHeatPumpSystem) | true | If true, temperature T converges towards TAmb when no flow |
| Modelica.Units.SI.Time | tauHeaTraEva (from PartialHeatPumpSystem) | 1200 | Time constant for heat transfer in temperature sensors in evaporator, default 20 minutes |
| Modelica.Units.SI.Temperature | TAmbEva_nominal (from PartialHeatPumpSystem) | 273.15 | Fixed ambient temperature for heat transfer of sensors at the evaporator side |
| Modelica.Units.SI.Time | tauHeaTraCon (from PartialHeatPumpSystem) | 1200 | Time constant for heat transfer in temperature sensors in condenser, default 20 minutes |
| Modelica.Units.SI.Temperature | TAmbCon_nominal (from PartialHeatPumpSystem) | 291.15 | Fixed ambient temperature for heat transfer of sensors at the condenser side |
| Assumptions › Evaporator | |||
| Boolean | allowFlowReversalEva (from PartialHeatPumpSystem) | false | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Boolean | addPowerToMediumEva (from PartialHeatPumpSystem) | true | Set to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations) |
| Assumptions › Condenser | |||
| Boolean | allowFlowReversalCon (from PartialHeatPumpSystem) | false | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Boolean | addPowerToMediumCon (from PartialHeatPumpSystem) | true | Set to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations) |
| Heat Pump | |||
| Boolean | use_revHP | true | True if the HP is reversible |
| Real | scalingFactor | 1 | Scaling-factor of HP |
| Heat Pump › Refrigerant cycle inertia | |||
| Boolean | use_refIne | true | Consider the inertia of the refrigerant cycle |
| Modelica.Units.SI.Frequency | refIneFre_constant | Cut off frequency representing inertia of refrigerant cycle | |
| Integer | nthOrder | 3 | Order of refrigerant cycle interia |
| Evaporator/ Condenser › Condenser | |||
| Modelica.Units.SI.Volume | VCon | Volume in condenser. Typical values range from 1 to 20 l, depending on the size of the heat pump and the mass flow rate. | |
| Modelica.Units.SI.PressureDifference | dpCon_nominal | Pressure drop at nominal mass flow rate. Only relevant if a mover is used. Try to select values to match the nominal mass flow rate. | |
| Real | deltaM_con | 0.1 | Fraction of nominal mass flow rate where transition to turbulent occurs |
| Boolean | use_conCap | true | If heat losses at capacitor side are considered or not |
| Modelica.Units.SI.HeatCapacity | CCon | Heat capacity of Condenser (= cp*m). If you want to neglace the dry mass of the condenser, you can set this value to zero | |
| Modelica.Units.SI.ThermalConductance | GConOut | percHeatLoss*QCon_nominal/(TCon_nominal - TAmbCon_nominal) | Constant parameter for heat transfer to the ambient. Represents a sum of thermal resistances such as conductance, insulation and natural convection. If you want to simulate a condenser with additional dry mass but without external heat losses, set the value to zero |
| Modelica.Units.SI.ThermalConductance | GConIns | QCon_nominal/dTPinchCon | Constant parameter for heat transfer to heat exchangers capacity. Represents a sum of thermal resistances such as forced convection and conduction inside of the capacity |
| Evaporator/ Condenser › Evaporator | |||
| Modelica.Units.SI.Volume | VEva | Volume in evaporator. Typical values range from 1 to 20 l, depending on the size of the heat pump and the mass flow rate. | |
| Modelica.Units.SI.PressureDifference | dpEva_nominal | Pressure drop at nominal mass flow rate. Only relevant if a mover is used. Try to select values to match the nominal mass flow rate. | |
| Real | deltaM_eva | 0.1 | Fraction of nominal mass flow rate where transition to turbulent occurs |
| Boolean | use_evaCap | true | If heat losses at capacitor side are considered or not |
| Modelica.Units.SI.HeatCapacity | CEva | Heat capacity of Evaporator (= cp*m). If you want to neglace the dry mass of the evaporator, you can set this value to zero | |
| Modelica.Units.SI.ThermalConductance | GEvaOut | percHeatLoss*QEva_nominal/(TEva_nominal - TAmbEva_nominal) | Constant parameter for heat transfer to the ambient. Represents a sum of thermal resistances such as conductance, insulation and natural convection. If you want to simulate a evaporator with additional dry mass but without external heat losses, set the value to zero |
| Modelica.Units.SI.ThermalConductance | GEvaIns | QEva_nominal/dTPinchEva | Constant parameter for heat transfer to heat exchangers capacity. Represents a sum of thermal resistances such as forced convection and conduction inside of the capacity |
| Initialization › System inertia | |||
| Real[nthOrder] | x_start | zeros(nthOrder) | Initial or guess values of states |
| Real | yRefIne_start | 0 | Initial or guess value of output (= state) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 (from PartialFourPort) | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 (from PartialFourPort) | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 (from PartialFourPort) | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 (from PartialFourPort) | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Blocks.Interfaces.RealInput | T_oda (from PartialHeatPumpSystem) | Outdoor air temperature | |
| Modelica.Blocks.Interfaces.RealInput | TAct (from PartialHeatPumpSystem) | Supply temperature for controls |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium1.MassFlowRate | m1_flow (from PartialFourPortInterface) | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp1 (from PartialFourPortInterface) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium2.MassFlowRate | m2_flow (from PartialFourPortInterface) | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp2 (from PartialFourPortInterface) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium1.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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 |
| AixLib.Fluid.Interfaces.PartialFourPortInterface | heatPump (from PartialHeatPumpSystem) | ||
| AixLib.Fluid.Movers.SpeedControlled_y | pumSin (from PartialHeatPumpSystem) | Fan or pump at sink side of HP | |
| AixLib.Fluid.Movers.SpeedControlled_y | pumSou (from PartialHeatPumpSystem) | Fan or pump at source side of HP | |
| AixLib.Fluid.Interfaces.PassThroughMedium | mediumPassThroughSin (from PartialHeatPumpSystem) | ||
| AixLib.Fluid.Interfaces.PassThroughMedium | mediumPassThroughSou (from PartialHeatPumpSystem) | ||
| SecHeatGen | secHeaGen (from PartialHeatPumpSystem) | ||
| AixLib.Fluid.Interfaces.PassThroughMedium | mediumPassThroughSecHeaGen (from PartialHeatPumpSystem) | Used if monovalent HP System | |
| AixLib.Obsolete.Year2024.Systems.HeatPumpSystems.BaseClasses.HPSystemController | hPSystemController (from PartialHeatPumpSystem) |
Contents
| Name | Description |
|---|---|