modelPartialOperationalEnvelope

Indicates if the device operation is within a defined envelope

Extends from BaseClasses.PartialSafetyWithCounter (Safety control which adds an error counter to the I/O).

Information

Model to check if the operating conditions are inside the given boundaries. If not, the heat pump or chiller will switch off.

This safety control is mainly based on the operational envelope of the compressor. Refrigerant flowsheet and type will influence these values.

Limitations

  • Only three sides of the real envelope are implemented (Figures 2 and 3). The real operational envelope implies continuous operation. This means start-up from e.g. a cold heat pump supply temperature is possible. To avoid additional equations for startup and continuous operation, we neither implement the lower boundary for heating nor the upper boundary for cooling devices. This avoids the situation where the device can never be turned on.
  • From all the influences on the real envelope, the compressor frequency impacts the possible range of operation. However, the compressor speed-dependent envelopes are typcially not provided in datasheets. Further, including a third dimension requires 3D-table data. This is currently not supported by Buildings or Modelica Standard Library.

Existing envelopes

Technical datasheets often contain information about the operational envelope. The device records for heat pumps ( Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.TableData2DData) and chillers ( Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.TableData2DData) contain typical values. Older devices typically have lower limits while new refrigerant machines based on propane or advanced flowsheets are able to achieve temperature over 70 °C for heating.

Parameterization from datasheets

Depending on the underlying datasheet in use, you have to think thoroughly if you need inlet or outlet conditions, and if you are modelling a heat pump or chiller. Figure 1 depicts possible upper and lower boundaries as well as what variables the boundaries are defined with. Depending on your setup, you may have to transpose existing boundaries. For instance, when using an envelope designed for a heat pump in a chiller model, the useful side (column 2 of the data) is not the condenser but the evaporator. Thus, you have to switch columns 1 and 2. The following examples aim to explain how to obtain the envelopes:

If the model in use is a heat pump, the useful side is always the side of TConOutMea and TConInMea. In the chiller, the useful side is always the side of TEvaOutMea or TEvaInMea.

  1. The envelopes for air-to-water heat pumps often contain water supply temperature (TConOutMea) on the y-axis and ambient temperatures (TEvaInMea) on the x-axis. In these cases, tabUppHea is based on the y-axis maximal values and tabLowCoo based on the y-axis minimal values. Figure 2 depicts this setup.
  2. The envelopes for air-to-air devices often contain ambient inlet (TConInMea) as y and room (TEvaInMea) inlet temperatures as x. In these cases, tabUppHea is based on the x-axis maximal values and tabLowCoo based on the x-axis minimal values. Figure 3 depicts this setup.
  3. Compressor datasheets often provide evaporating and condensing temperatures or pressure levels. Those are not avaiable in the simpified model approach. Thus, you have to assume pinch temperatures to convert it to either in- or outflow temperature levels of the secondary side temperatures (i.e. TConOutMea, TConInMea, TEvaInMea, TEvaOutMea).

image

Figure 1: Possible upper and lower boundaries as well as temperature specifications in datasheets

image

Figure 2: Example for an air-to-water heat pump or chiller. The supply temperature is the temperature leaving the device into the hydraulic circuit of the building. Red crosses indicate the point to write into the 2D table in Modelica.

image

Figure 3: Example for an air-to-air heat pump or chiller. The room temperature acts as an inflow to the device. Red crosses indicate the point to write into the 2D table in Modelica.

Parameters

TypeNameDefaultDescription
Modelica.Units.SI.Temperature[:,2]tabUppHeaUpper boundary for heating with second column as useful temperature side
Modelica.Units.SI.Temperature[:,2]tabLowCooLower boundary for cooling with second column as useful temperature side
Modelica.Units.SI.TemperatureDifferencedTHys5Temperature deadband in the operational envelope
Operational Envelope
Booleanuse_TConOutHeatrueif true, use condenser outlet temperature for operational envelope in heating mode, otherwise use inlet
Booleanuse_TEvaOutHeafalseif true, use evaporator outlet temperature for operational envelope in heating mode, otherwise use inlet
Booleanuse_TConOutCoofalseif true, use useful side outlet temperature for operational envelope in cooling mode, otherwise use inlet
Booleanuse_TEvaOutCootrueif true, use evaporator outlet temperature for operational envelope in cooling mode, otherwise use inlet

Connectors

TypeNameDefaultDescription
Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.RefrigerantMachineControlBussigBus (from PartialSafety)Bus-connector for the heat pump
Modelica.Blocks.Interfaces.IntegerOutputerr (from PartialSafetyWithCounter)Integer for displaying number of errors during simulation
Modelica.Blocks.Interfaces.BooleanInputonOffSet (from PartialSafetyWithCounter)Device is set to turn on
Modelica.Blocks.Interfaces.BooleanOutputcanOpe (from PartialSafetyWithCounter)True if device can operate

Components

TypeNameDefaultDescription
Modelica.Blocks.MathInteger.TriggeredAdddisErr (from PartialSafetyWithCounter)Used to show if the error was triggered
Modelica.Blocks.Logical.NotnotVal (from PartialSafetyWithCounter)=true indicates a error
Modelica.Blocks.Sources.IntegerConstantintConOne (from PartialSafetyWithCounter)Used for display of current error
Modelica.Blocks.Routing.BooleanPassThroughbooPasThr (from PartialSafetyWithCounter)Used to keep the connection to the counter
Modelica.Blocks.Logical.AnderrAndSetOn (from PartialSafetyWithCounter)Error occured and the device should be on
Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.BaseClasses.BoundaryMapbouMapHeaOperational boundary map for heating operation
Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.BaseClasses.BoundaryMapbouMapCooOperational boundary map for cooling operation
Modelica.Blocks.Logical.LogicalSwitchswiHeaCooSwitch between heating and cooling envelope

Revisions