modelModular
Grey-box model for reversible and non-reversible chillers
Extends from Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.PartialReversibleRefrigerantMachine (Model for reversible heat pumps and chillers with a refrigerant cycle).
Information
Model of a reversible, modular chiller. This models allows combining any of the available modules for refrigerant heating or cooling cycles, inertias, heat losses, and safety controls. All features are optional.
Adding to the partial model (
Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.PartialReversibleRefrigerantMachine),
this model has the coo signal to choose
the operation mode of the chiller.
For more information, see Buildings.Fluid.HeatPumps.ModularReversible.UsersGuide.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | use_rev (from PartialReversibleRefrigerantMachine) | true | =true if the chiller or heat pump is reversible |
| Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.Data.Wuellhorst2021 | safCtrPar (from PartialReversibleRefrigerantMachine) | ||
| Modelica.Units.SI.Density | rhoCon (from PartialReversibleRefrigerantMachine) | MediumCon.density(staCon_nominal) | Condenser medium density |
| Modelica.Units.SI.SpecificHeatCapacity | cpCon (from PartialReversibleRefrigerantMachine) | MediumCon.specificHeatCapacityCp(staCon_nominal) | Condenser medium specific heat capacity |
| Modelica.Units.SI.Density | rhoEva (from PartialReversibleRefrigerantMachine) | MediumEva.density(staEva_nominal) | Evaporator medium density |
| Modelica.Units.SI.SpecificHeatCapacity | cpEva (from PartialReversibleRefrigerantMachine) | MediumEva.specificHeatCapacityCp(staEva_nominal) | Evaporator medium specific heat capacity |
| 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.HeatFlowRate | PEle_nominal (from PartialReversibleRefrigerantMachine) | Nominal electrical power consumption | |
| Modelica.Units.SI.HeatFlowRate | QCoo_flow_nominal | Nominal cooling capcaity | |
| Modelica.Units.SI.Temperature | TEvaCoo_nominal | Nominal temperature of the cooled fluid during cooling mode | |
| Modelica.Units.SI.Temperature | TConCoo_nominal | Nominal temperature of the heated fluid during cooling mode | |
| 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 |
| Boolean | allowDifferentDeviceIdentifiers (from PartialReversibleRefrigerantMachine) | false | if use_rev=true, device data for cooling and heating need to entered. Set allowDifferentDeviceIdentifiers=true to allow different device identifiers devIde |
| Boolean | calEff (from PartialReversibleRefrigerantMachine) | true | =false to disable efficiency calculation, may speed up the simulation |
| Real | limWarSca (from PartialReversibleRefrigerantMachine) | 0.05 | Allowed difference in scaling '|scaFacHea - scaFacCoo| / scaFacHea', if exceeded, a warning will be issued |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Real | ySet_small (from PartialReversibleRefrigerantMachine) | 0.01 | Threshold for relative speed for the device to be considered on |
| Safety control | |||
| Boolean | use_intSafCtr (from PartialReversibleRefrigerantMachine) | true | =true to enable internal safety control |
| Condenser › Dynamics | |||
| Modelica.Units.SI.Time | tauCon (from PartialReversibleRefrigerantMachine) | 30 | Condenser heat transfer time constant at nominal flow |
| Nominal condition - Pressure losses | |||
| Modelica.Units.SI.TemperatureDifference | dTCon_nominal (from PartialReversibleRefrigerantMachine) | Nominal temperature difference in condenser medium, used to calculate mass flow rate | |
| Modelica.Units.SI.MassFlowRate | mCon_flow_nominal (from PartialReversibleRefrigerantMachine) | Nominal mass flow rate of the condenser medium | |
| Modelica.Units.SI.PressureDifference | dpCon_nominal (from PartialReversibleRefrigerantMachine) | Pressure drop at nominal mass flow rate | |
| Modelica.Units.SI.TemperatureDifference | dTEva_nominal (from PartialReversibleRefrigerantMachine) | Nominal temperature difference in evaporator medium, used to calculate mass flow rate | |
| Modelica.Units.SI.MassFlowRate | mEva_flow_nominal (from PartialReversibleRefrigerantMachine) | Nominal mass flow rate of the evaporator medium | |
| Modelica.Units.SI.PressureDifference | dpEva_nominal (from PartialReversibleRefrigerantMachine) | Pressure drop at nominal mass flow rate | |
| Condenser › Flow resistance | |||
| Real | deltaMCon (from PartialReversibleRefrigerantMachine) | 0.1 | Fraction of nominal mass flow rate where transition to turbulent occurs |
| Real | nCon (from PartialReversibleRefrigerantMachine) | 2 | Flow exponent, n=1 for laminar, n=2 for turbulent |
| Condenser › Heat Losses | |||
| Boolean | use_conCap (from PartialReversibleRefrigerantMachine) | true | =true if using capacitor model for condenser heat loss estimation |
| Modelica.Units.SI.HeatCapacity | CCon (from PartialReversibleRefrigerantMachine) | 0 | Heat capacity of the condenser |
| Modelica.Units.SI.ThermalConductance | GConOut (from PartialReversibleRefrigerantMachine) | 0 | Outer thermal conductance for condenser heat loss calculations |
| Modelica.Units.SI.ThermalConductance | GConIns (from PartialReversibleRefrigerantMachine) | 0 | Inner thermal conductance for condenser heat loss calculations |
| Evaporator › Dynamics | |||
| Modelica.Units.SI.Time | tauEva (from PartialReversibleRefrigerantMachine) | 30 | Evaporator heat transfer time constant at nominal flow |
| Evaporator › Flow resistance | |||
| Real | deltaMEva (from PartialReversibleRefrigerantMachine) | 0.1 | Fraction of nominal mass flow rate where transition to turbulent occurs |
| Real | nEva (from PartialReversibleRefrigerantMachine) | 2 | Flow exponent, n=1 for laminar, n=2 for turbulent |
| Evaporator › Heat Losses | |||
| Boolean | use_evaCap (from PartialReversibleRefrigerantMachine) | true | =true if using capacitor model for evaporator heat loss estimation |
| Modelica.Units.SI.HeatCapacity | CEva (from PartialReversibleRefrigerantMachine) | 0 | Heat capacity of the evaporator |
| Modelica.Units.SI.ThermalConductance | GEvaOut (from PartialReversibleRefrigerantMachine) | 0 | Outer thermal conductance for evaporator heat loss calculations |
| Modelica.Units.SI.ThermalConductance | GEvaIns (from PartialReversibleRefrigerantMachine) | 0 | Inner thermal conductance for evaporator heat loss calculations |
| Assumptions › Evaporator | |||
| Boolean | allowFlowReversalEva (from PartialReversibleRefrigerantMachine) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Assumptions › Condenser | |||
| Boolean | allowFlowReversalCon (from PartialReversibleRefrigerantMachine) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Initialization › Parameters | |||
| Modelica.Blocks.Types.Init | initType (from PartialReversibleRefrigerantMachine) | Modelica.Blocks.Types.Init.InitialState | Type of initialization for refrigerant cycle dynamics (InitialState and InitialOutput are identical) |
| Initialization › Condenser | |||
| Modelica.Media.Interfaces.Types.AbsolutePressure | pCon_start (from PartialReversibleRefrigerantMachine) | MediumCon.p_default | Start value of pressure |
| Modelica.Media.Interfaces.Types.Temperature | TCon_start (from PartialReversibleRefrigerantMachine) | MediumCon.T_default | Start value of temperature |
| Modelica.Units.SI.Temperature | TConCap_start (from PartialReversibleRefrigerantMachine) | MediumCon.T_default | Initial temperature of heat capacity of condenser |
| Modelica.Media.Interfaces.Types.MassFraction[MediumCon.nX] | XCon_start (from PartialReversibleRefrigerantMachine) | MediumCon.X_default | Start value of mass fractions m_i/m |
| Initialization › Evaporator | |||
| Modelica.Media.Interfaces.Types.AbsolutePressure | pEva_start (from PartialReversibleRefrigerantMachine) | MediumEva.p_default | Start value of pressure |
| Modelica.Media.Interfaces.Types.Temperature | TEva_start (from PartialReversibleRefrigerantMachine) | MediumEva.T_default | Start value of temperature |
| Modelica.Units.SI.Temperature | TEvaCap_start (from PartialReversibleRefrigerantMachine) | MediumEva.T_default | Initial temperature of heat capacity at evaporator |
| Modelica.Media.Interfaces.Types.MassFraction[MediumEva.nX] | XEva_start (from PartialReversibleRefrigerantMachine) | MediumEva.X_default | Start value of mass fractions m_i/m |
| Dynamics › Equation | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialReversibleRefrigerantMachine) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state (only affects fluid-models) |
| Advanced › Flow resistance | |||
| Boolean | from_dp (from PartialReversibleRefrigerantMachine) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean | linearized (from PartialReversibleRefrigerantMachine) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Nominal condition - Heating | |||
| Modelica.Units.SI.HeatFlowRate | QHea_flow_nominal | 0 | Nominal heating capacity |
| Modelica.Units.SI.Temperature | TEvaHea_nominal | Nominal temperature of the heated fluid during heating mode | |
| Modelica.Units.SI.Temperature | TConHea_nominal | Nominal temperature of the cooled fluid during heating mode | |
Connectors
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 |
| PartialModularRefrigerantCycle | refCyc (from PartialReversibleRefrigerantMachine) | ||
| Modelica.Units.SI.HeatFlowRate | Q1_flow (from PartialReversibleRefrigerantMachine) | QCon_flow | Heat transferred into the medium 1 |
| Modelica.Units.SI.HeatFlowRate | Q2_flow (from PartialReversibleRefrigerantMachine) | QEva_flow | Heat transferred into the medium 2 |
| Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.EvaporatorCondenserWithCapacity | con (from PartialReversibleRefrigerantMachine) | Heat exchanger model for the condenser | |
| Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.EvaporatorCondenserWithCapacity | eva (from PartialReversibleRefrigerantMachine) | Heat exchanger model for the evaporator | |
| Buildings.HeatTransfer.Sources.PrescribedTemperature | varTOutEva (from PartialReversibleRefrigerantMachine) | Forces heat losses according to ambient temperature | |
| Buildings.HeatTransfer.Sources.PrescribedTemperature | varTOutCon (from PartialReversibleRefrigerantMachine) | Forces heat losses according to ambient temperature | |
| Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.Safety | safCtr (from PartialReversibleRefrigerantMachine) | Safety control models | |
| Buildings.Fluid.Sensors.MassFlowRate | mEva_flow (from PartialReversibleRefrigerantMachine) | Mass flow sensor at the evaporator | |
| Buildings.Fluid.Sensors.MassFlowRate | mCon_flow (from PartialReversibleRefrigerantMachine) | Mass flow sensor at the condenser | |
| RefrigerantCycleInertia | refCycIneCon (from PartialReversibleRefrigerantMachine) | Inertia model for condenser side | |
| RefrigerantCycleInertia | refCycIneEva (from PartialReversibleRefrigerantMachine) | Inertia model for evaporator side | |
| Modelica.Blocks.Sources.RealExpression | senTConIn (from PartialReversibleRefrigerantMachine) | Real expression for condenser inlet temperature | |
| Modelica.Blocks.Sources.RealExpression | senTEvaIn (from PartialReversibleRefrigerantMachine) | Real expression for evaporator inlet temperature | |
| Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.CalculateEfficiency | eff (from PartialReversibleRefrigerantMachine) | Calculate efficiencies of device | |
| Modelica.Blocks.Sources.BooleanConstant | conCoo | Locks the device in cooling mode if designated to be not reversible | |
| Modelica.Blocks.Logical.Not | notCoo | Not cooling is heating | |
| Modelica.Blocks.Logical.Hysteresis | hys | Outputs whether the device is on based on the relative speed |
Contents
| Name | Description |
|---|---|
Revisions
-
May 23, 2025, by Michael Wetter:
Added assertion against wrong parameterization.
This is for IBPSA #2013. -
February 25, 2025, by Antoine Gautier:
Added hysteresis that was removed from base class.
This is for IBPSA #1977. -
May 2, 2024, by Michael Wetter:
Refactored check for device identifiers.
This is for IBPSA, #1576. -
May 22, 2019, by Julian Matthes:
First implementation (see issue AixLib #715)