Skip to content

Cross-platform vapor-compression refrigeration cycles analysis tool

License

Notifications You must be signed in to change notification settings

portyanikhin/VCRC

Repository files navigation

VCRC

Build & Tests CodeQL NuGet Platform License codecov

Cross-platform vapor-compression refrigeration cycles analysis tool using SharpProp.

Navigation

How to install

Add it via CLI (you also need to explicitly add SharpProp):

dotnet add package SharpProp
dotnet add package VCRC

Or go to NuGet Gallery | SharpProp and NuGet Gallery | VCRC for detailed instructions.

Unit safety

All calculations are unit safe (thanks to UnitsNet). This allows you to avoid errors associated with incorrect dimensions of quantities, and will help you save a lot of time on their search and elimination. In addition, you will be able to convert all values to many other dimensions without the slightest difficulty.

VCRC components

To analyze the vapor-compression refrigeration cycle (VCRC), it is first necessary to build it from individual components.

Evaporator

For example:

  • Refrigerant: R32.
  • Evaporating temperature (dew point): 5 °C.
  • Superheat: 5 K.
using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);

Compressor

Compressor with 80 % isentropic efficiency:

using UnitsNet.NumberExtensions.NumberToRatio;
using VCRC;

var compressor = new Compressor(80.Percent());

Condenser (for subcritical VCRCs)

For example:

  • Refrigerant: R32.
  • Condensing temperature (bubble point): 45 °C.
  • Subcooling: 3 K.
using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);

Gas cooler (for transcritical VCRCs)

For R744, the absolute pressure in the gas cooler is optional. If this is not specified, then the optimal pressure will be calculated automatically in accordance with this article:

Yang L. et al. Minimizing COP loss from optional high pressure correlation for transcritical CO2 cycle // Applied Thermal Engineering. – 2015. – V. 89. – P. 656-662.

For example:

  • Refrigerant: R744.
  • Outlet temperature: 40 °C.
  • Pressure (optional for R744): 105 bar.
using SharpProp;
using UnitsNet.NumberExtensions.NumberToPressure;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var gasCoolerWithSpecifiedPressure = new GasCooler(
    FluidsList.R744,
    40.DegreesCelsius(),
    105.Bars()
);
Console.WriteLine(gasCooler.Pressure.Bars);                      // 100.448
Console.WriteLine(gasCoolerWithSpecifiedPressure.Pressure.Bars); // 105

Ejector

Ejector with 90 % isentropic efficiency of the nozzle, suction section and diffuser:

using UnitsNet.NumberExtensions.NumberToRatio;
using VCRC;

var ejector = new Ejector(90.Percent());

Ejector with 90 % isentropic efficiency of the nozzle and suction section and 80 % isentropic efficiency of the diffuser:

using UnitsNet.NumberExtensions.NumberToRatio;
using VCRC;

var ejector = new Ejector(90.Percent(), 90.Percent(), 80.Percent());

Recuperator

Recuperator with 5 K temperature difference at "hot" side:

using UnitsNet;
using VCRC;

var recuperator = new Recuperator(TemperatureDelta.FromKelvins(5));

Economizer

Economizer with 5 K temperature difference at "cold" side and 5 K superheat:

using UnitsNet;
using VCRC;

var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);

Economizer with two-phase injection into the compressor

Economizer with two-phase injection to the compressor and 5 K temperature difference at "cold" side:

using UnitsNet;
using VCRC;

var economizer = new EconomizerWithTPI(TemperatureDelta.FromKelvins(5));

Simple single-stage VCRC

Schematic diagram

SimpleVCRC scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical SimpleVCRC log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical SimpleVCRC log P-h chart

List of points

  • Point 1 - evaporator outlet / compression stage suction.
  • Point 2s - isentropic compression stage discharge.
  • Point 2 - compression stage discharge / condenser or gas cooler inlet.
  • Point 3 - condenser or gas cooler outlet / EV inlet.
  • Point 4 - EV outlet / evaporator inlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperature:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var cycle = new SimpleVCRC(evaporator, compressor, condenser);
Console.WriteLine(cycle.EER);                // 4.348012113427724
Console.WriteLine(cycle.COP);                // 5.348012113427722
Console.WriteLine(cycle.Point2.Temperature); // 88.76 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var cycle = new SimpleVCRC(evaporator, compressor, gasCooler);
Console.WriteLine(cycle.EER);                // 2.607514554616747
Console.WriteLine(cycle.COP);                // 3.6075145546167464
Console.WriteLine(cycle.Point2.Temperature); // 88.36 °C

Single-stage VCRC with recuperator

Schematic diagram

VCRCWithRecuperator scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithRecuperator log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithRecuperator log P-h chart

List of points

  • Point 1 - evaporator outlet / recuperator "cold" inlet.
  • Point 2 - recuperator "cold" outlet / compression stage suction.
  • Point 3s - isentropic compression stage discharge.
  • Point 3 - compression stage discharge / condenser or gas cooler inlet.
  • Point 4 - condenser or gas cooler outlet / recuperator "hot" inlet.
  • Point 5 - recuperator "hot" outlet / EV inlet.
  • Point 6 - EV outlet / evaporator inlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperature:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var recuperator = new Recuperator(TemperatureDelta.FromKelvins(5));
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var cycle = new VCRCWithRecuperator(
    evaporator,
    recuperator,
    compressor,
    condenser
);
Console.WriteLine(cycle.EER);                // 4.201006672315493
Console.WriteLine(cycle.COP);                // 5.201006672315493
Console.WriteLine(cycle.Point3.Temperature); // 120.68 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var recuperator = new Recuperator(TemperatureDelta.FromKelvins(5));
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var cycle = new VCRCWithRecuperator(
    evaporator,
    recuperator,
    compressor,
    gasCooler
);
Console.WriteLine(cycle.EER);                // 2.711892365925208
Console.WriteLine(cycle.COP);                // 3.7118923659252077
Console.WriteLine(cycle.Point3.Temperature); // 120.88 °C

Two-stage VCRC with incomplete intercooling

Schematic diagram

VCRCWithIIC scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithIIC log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithIIC log P-h chart

List of points

  • Point 1 - evaporator outlet / first compression stage suction.
  • Point 2s - first isentropic compression stage discharge.
  • Point 2 - first compression stage discharge.
  • Point 3 - second compression stage suction.
  • Point 4s - second isentropic compression stage discharge.
  • Point 4 - second compression stage discharge / condenser or gas cooler inlet.
  • Point 5 - condenser or gas cooler outlet / first EV inlet.
  • Point 6 - first EV outlet / separator inlet.
  • Point 7 - separator vapor outlet / injection of cooled vapor into the compressor.
  • Point 8 - separator liquid outlet / second EV inlet.
  • Point 9 - second EV outlet / evaporator inlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperatures:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var cycle = new VCRCWithIIC(evaporator, compressor, condenser);
Console.WriteLine(cycle.EER);                // 4.617699450573777
Console.WriteLine(cycle.COP);                // 5.617699450573777
Console.WriteLine(cycle.Point2.Temperature); // 47.65 °C
Console.WriteLine(cycle.Point4.Temperature); // 85.53 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var cycle = new VCRCWithIIC(evaporator, compressor, gasCooler);
Console.WriteLine(cycle.EER);                // 2.931496855532257
Console.WriteLine(cycle.COP);                // 3.9314968555322563
Console.WriteLine(cycle.Point2.Temperature); // 47.43 °C
Console.WriteLine(cycle.Point4.Temperature); // 75.83 °C

Two-stage VCRC with complete intercooling

Schematic diagram

VCRCWithCIC scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithCIC log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithCIC log P-h chart

List of points

  • Point 1 - evaporator outlet / first compression stage suction.
  • Point 2s - first isentropic compression stage discharge.
  • Point 2 - first compression stage discharge.
  • Point 3 - separator vapor outlet / second compression stage suction.
  • Point 4s - second isentropic compression stage discharge.
  • Point 4 - second compression stage discharge / condenser or gas cooler inlet.
  • Point 5 - condenser or gas cooler outlet / first EV inlet.
  • Point 6 - first EV outlet / separator inlet.
  • Point 7 - separator liquid outlet / second EV inlet.
  • Point 8 - second EV outlet / evaporator inlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperatures:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var cycle = new VCRCWithCIC(evaporator, compressor, condenser);
Console.WriteLine(cycle.EER);                // 4.726096383578692
Console.WriteLine(cycle.COP);                // 5.7260963835786916
Console.WriteLine(cycle.Point2.Temperature); // 47.65 °C
Console.WriteLine(cycle.Point4.Temperature); // 62.48 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var cycle = new VCRCWithCIC(evaporator, compressor, gasCooler);
Console.WriteLine(cycle.EER);                // 2.759856520794663
Console.WriteLine(cycle.COP);                // 3.759856520794664
Console.WriteLine(cycle.Point2.Temperature); // 47.43 °C
Console.WriteLine(cycle.Point4.Temperature); // 56.91 °C

Two-stage VCRC with parallel compression

Schematic diagram

VCRCWithPC scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithPC log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithPC log P-h chart

List of points

  • Point 1 - evaporator outlet / first compression stage suction.
  • Point 2s - first isentropic compression stage discharge.
  • Point 2 - first compression stage discharge.
  • Point 3 - separator vapor outlet / second compression stage suction.
  • Point 4s - second isentropic compression stage discharge.
  • Point 4 - second compression stage discharge.
  • Point 5 - condenser or gas cooler inlet.
  • Point 6 - condenser or gas cooler outlet / first EV inlet.
  • Point 7 - first EV outlet / separator inlet.
  • Point 8 - separator liquid outlet / second EV inlet.
  • Point 9 - second EV outlet / evaporator inlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperatures:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var cycle = new VCRCWithPC(evaporator, compressor, condenser);
Console.WriteLine(cycle.EER);                // 4.678905539800198
Console.WriteLine(cycle.COP);                // 5.678905539800197
Console.WriteLine(cycle.Point2.Temperature); // 88.76 °C
Console.WriteLine(cycle.Point4.Temperature); // 62.48 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var cycle = new VCRCWithPC(evaporator, compressor, gasCooler);
Console.WriteLine(cycle.EER);                // 2.960053557904453
Console.WriteLine(cycle.COP);                // 3.960053557904454
Console.WriteLine(cycle.Point2.Temperature); // 88.36 °C
Console.WriteLine(cycle.Point4.Temperature); // 56.91 °C

Two-stage VCRC with economizer

Schematic diagram

VCRCWithEconomizer scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithEconomizer log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithEconomizer log P-h chart

List of points

  • Point 1 - evaporator outlet / first compression stage suction.
  • Point 2s - first isentropic compression stage discharge.
  • Point 2 - first compression stage discharge.
  • Point 3 - second compression stage suction.
  • Point 4s - second isentropic compression stage discharge.
  • Point 4 - second compression stage discharge / condenser or gas cooler inlet.
  • Point 5 - condenser or gas cooler outlet / first EV inlet / economizer "hot" inlet.
  • Point 6 - first EV outlet / economizer "cold" inlet.
  • Point 7 - economizer "cold" outlet / injection of cooled vapor into the compressor.
  • Point 8 - economizer "hot" outlet / second EV inlet.
  • Point 9 - second EV outlet / evaporator inlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperatures:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);
var cycle = new VCRCWithEconomizer(
    evaporator,
    compressor,
    condenser,
    economizer
);
Console.WriteLine(cycle.EER);                // 4.53620654385269
Console.WriteLine(cycle.COP);                // 5.53620654385269
Console.WriteLine(cycle.Point2.Temperature); // 47.65 °C
Console.WriteLine(cycle.Point4.Temperature); // 87.14 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);
var cycle = new VCRCWithEconomizer(
    evaporator,
    compressor,
    gasCooler,
    economizer
);
Console.WriteLine(cycle.EER);                // 2.972706326019418
Console.WriteLine(cycle.COP);                // 3.972706326019418
Console.WriteLine(cycle.Point2.Temperature); // 47.43 °C
Console.WriteLine(cycle.Point4.Temperature); // 81.12 °C

Two-stage VCRC with economizer and parallel compression

Schematic diagram

VCRCWithEconomizerAndPC scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithEconomizerAndPC log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithEconomizerAndPC log P-h chart

List of points

  • Point 1 - evaporator outlet / first compression stage suction.
  • Point 2s - first isentropic compression stage discharge.
  • Point 2 - first compression stage discharge.
  • Point 3 - economizer "cold" outlet / second compression stage suction.
  • Point 4s - second isentropic compression stage discharge.
  • Point 4 - second compression stage discharge.
  • Point 5 - condenser or gas cooler inlet.
  • Point 6 - condenser or gas cooler outlet / first EV inlet / economizer "hot" inlet.
  • Point 7 - first EV outlet / economizer "cold" inlet.
  • Point 8 - economizer "hot" outlet / second EV inlet.
  • Point 9 - second EV outlet / evaporator inlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperatures:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);
var cycle = new VCRCWithEconomizerAndPC(
    evaporator,
    compressor,
    condenser,
    economizer
);
Console.WriteLine(cycle.EER);                // 4.596749553808057
Console.WriteLine(cycle.COP);                // 5.596749553808058
Console.WriteLine(cycle.Point2.Temperature); // 88.76 °C
Console.WriteLine(cycle.Point4.Temperature); // 68.27 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);
var cycle = new VCRCWithEconomizerAndPC(
    evaporator,
    compressor,
    gasCooler,
    economizer
);
Console.WriteLine(cycle.EER);                // 3.0072874874974658
Console.WriteLine(cycle.COP);                // 4.007287487497467
Console.WriteLine(cycle.Point2.Temperature); // 88.36 °C
Console.WriteLine(cycle.Point4.Temperature); // 65.56 °C

Two-stage VCRC with economizer and two-phase injection into the compressor

Schematic diagram

VCRCWithEconomizerAndTPI scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithEconomizerAndTPI log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithEconomizerAndTPI log P-h chart

List of points

  • Point 1 - evaporator outlet / first compression stage suction.
  • Point 2s - first isentropic compression stage discharge.
  • Point 2 - first compression stage discharge.
  • Point 3 - second compression stage suction.
  • Point 4s - second isentropic compression stage discharge.
  • Point 4 - second compression stage discharge / condenser or gas cooler inlet.
  • Point 5 - condenser or gas cooler outlet / first EV inlet / economizer "hot" inlet.
  • Point 6 - first EV outlet / economizer "cold" inlet.
  • Point 7 - economizer "cold" outlet / injection of two-phase refrigerant into the compressor.
  • Point 8 - economizer "hot" outlet / second EV inlet.
  • Point 9 - second EV outlet / evaporator inlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperatures:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);
var cycle = new VCRCWithEconomizerAndTPI(
    evaporator,
    compressor,
    condenser,
    economizer
);
Console.WriteLine(cycle.EER);                // 4.646833169057064
Console.WriteLine(cycle.COP);                // 5.646833169057064
Console.WriteLine(cycle.Point2.Temperature); // 47.65 °C
Console.WriteLine(cycle.Point4.Temperature); // 62.48 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);
var cycle = new VCRCWithEconomizerAndTPI(
    evaporator,
    compressor,
    gasCooler,
    economizer
);
Console.WriteLine(cycle.EER);                // 2.778725656175372
Console.WriteLine(cycle.COP);                // 3.778725656175373
Console.WriteLine(cycle.Point2.Temperature); // 47.43 °C
Console.WriteLine(cycle.Point4.Temperature); // 56.91 °C

Single-stage VCRC with an ejector as an expansion device

Schematic diagram

VCRCWithEjector scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithEjector log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithEjector log P-h chart

List of points

  • Point 1 - separator vapor outlet / compression stage suction.
  • Point 2s - isentropic compression stage discharge.
  • Point 2 - compression stage discharge / condenser or gas cooler inlet.
  • Point 3 - condenser or gas cooler outlet / ejector nozzle inlet.
  • Point 4 - ejector nozzle outlet.
  • Point 5 - ejector mixing section inlet.
  • Point 6 - ejector diffuser outlet / separator inlet.
  • Point 7 - separator liquid outlet / EV inlet.
  • Point 8 - EV outlet / evaporator inlet.
  • Point 9 - evaporator outlet / ejector suction section inlet.
  • Point 10 - ejector suction section outlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperature:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var ejector = new Ejector(90.Percent(), 90.Percent(), 80.Percent());
var cycle = new VCRCWithEjector(evaporator, compressor, condenser, ejector);
Console.WriteLine(cycle.EER);                // 4.832330373984365
Console.WriteLine(cycle.COP);                // 5.832251779509525
Console.WriteLine(cycle.Point2.Temperature); // 79.05 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var ejector = new Ejector(90.Percent(), 90.Percent(), 80.Percent());
var cycle = new VCRCWithEjector(evaporator, compressor, gasCooler, ejector);
Console.WriteLine(cycle.EER);                // 3.404191144711264
Console.WriteLine(cycle.COP);                // 4.404140144895948
Console.WriteLine(cycle.Point2.Temperature); // 69.77 °C

Two-stage VCRC with an ejector as an expansion device and economizer

Schematic diagram

VCRCWithEjectorAndEconomizer scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithEjectorAndEconomizer log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithEjectorAndEconomizer log P-h chart

List of points

  • Point 1 - separator vapor outlet / first compression stage suction.
  • Point 2s - first isentropic compression stage discharge.
  • Point 2 - first compression stage discharge.
  • Point 3 - second compression stage suction.
  • Point 4s - second isentropic compression stage discharge.
  • Point 4 - second compression stage discharge / condenser or gas cooler inlet.
  • Point 5 - condenser or gas cooler outlet / first EV inlet / economizer "hot" inlet.
  • Point 6 - first EV outlet / economizer "cold" inlet.
  • Point 7 - economizer "cold" outlet / injection of cooled vapor into the compressor.
  • Point 8 - economizer "hot" outlet / ejector nozzle inlet.
  • Point 9 - ejector nozzle outlet.
  • Point 10 - ejector mixing section inlet.
  • Point 11 - ejector diffuser outlet / separator inlet.
  • Point 12 - separator liquid outlet / second EV inlet.
  • Point 13 - second EV outlet / evaporator inlet.
  • Point 14 - evaporator outlet / ejector suction section inlet.
  • Point 15 - ejector suction section outlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperatures:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var ejector = new Ejector(90.Percent(), 90.Percent(), 80.Percent());
var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);
var cycle = new VCRCWithEjectorAndEconomizer(
    evaporator,
    compressor,
    condenser,
    ejector,
    economizer
);
Console.WriteLine(cycle.EER);                // 4.780603519591169
Console.WriteLine(cycle.COP);                // 5.780519699589865
Console.WriteLine(cycle.Point2.Temperature); // 41.82 °C
Console.WriteLine(cycle.Point4.Temperature); // 79.97 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var ejector = new Ejector(90.Percent(), 90.Percent(), 80.Percent());
var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);
var cycle = new VCRCWithEjectorAndEconomizer(
    evaporator,
    compressor,
    gasCooler,
    ejector,
    economizer
);
Console.WriteLine(cycle.EER);                // 3.4970089179388735
Console.WriteLine(cycle.COP);                // 4.496949450753824
Console.WriteLine(cycle.Point2.Temperature); // 40.93 °C
Console.WriteLine(cycle.Point4.Temperature); // 70.26 °C

Two-stage VCRC with an ejector as an expansion device, economizer and parallel compression

Schematic diagram

VCRCWithEjectorEconomizerAndPC scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithEjectorEconomizerAndPC log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithEjectorEconomizerAndPC log P-h chart

List of points

  • Point 1 - separator vapor outlet / first compression stage suction.
  • Point 2s - first isentropic compression stage discharge.
  • Point 2 - first compression stage discharge.
  • Point 3 - economizer "cold" outlet / second compression stage suction.
  • Point 4s - second isentropic compression stage discharge.
  • Point 4 - second compression stage discharge.
  • Point 5 - condenser or gas cooler inlet.
  • Point 6 - condenser or gas cooler outlet / first EV inlet / economizer "hot" inlet.
  • Point 7 - first EV outlet / economizer "cold" inlet.
  • Point 8 - economizer "hot" outlet / ejector nozzle inlet.
  • Point 9 - ejector nozzle outlet.
  • Point 10 - ejector mixing section inlet.
  • Point 11 - ejector diffuser outlet / separator inlet.
  • Point 12 - separator liquid outlet / second EV inlet.
  • Point 13 - second EV outlet / evaporator inlet.
  • Point 14 - evaporator outlet / ejector suction section inlet.
  • Point 15 - ejector suction section outlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperatures:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var ejector = new Ejector(90.Percent(), 90.Percent(), 80.Percent());
var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);
var cycle = new VCRCWithEjectorEconomizerAndPC(
    evaporator,
    compressor,
    condenser,
    ejector,
    economizer
);
Console.WriteLine(cycle.EER);                // 4.84250403965006
Console.WriteLine(cycle.COP);                // 5.8424191343251834
Console.WriteLine(cycle.Point2.Temperature); // 80.82 °C
Console.WriteLine(cycle.Point4.Temperature); // 67.52 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var ejector = new Ejector(90.Percent(), 90.Percent(), 80.Percent());
var economizer = new Economizer(
    TemperatureDelta.FromKelvins(5),
    TemperatureDelta.FromKelvins(5)
);
var cycle = new VCRCWithEjectorEconomizerAndPC(
    evaporator,
    compressor,
    gasCooler,
    ejector,
    economizer
);
Console.WriteLine(cycle.EER);                // 3.5310640266642546
Console.WriteLine(cycle.COP);                // 4.53100398036674
Console.WriteLine(cycle.Point2.Temperature); // 73.07 °C
Console.WriteLine(cycle.Point4.Temperature); // 62.08 °C

Two-stage VCRC with an ejector as an expansion device, economizer and two-phase injection into the compressor

Schematic diagram

VCRCWithEjectorEconomizerAndTPI scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

Subcritical VCRCWithEjectorEconomizerAndTPI log P-h chart

Pressure-enthalpy chart (log P-h chart) for the transcritical cycle

Transcritical VCRCWithEjectorEconomizerAndTPI log P-h chart

List of points

  • Point 1 - separator vapor outlet / first compression stage suction.
  • Point 2s - first isentropic compression stage discharge.
  • Point 2 - first compression stage discharge.
  • Point 3 - second compression stage suction.
  • Point 4s - second isentropic compression stage discharge.
  • Point 4 - second compression stage discharge / condenser or gas cooler inlet.
  • Point 5 - condenser or gas cooler outlet / first EV inlet / economizer "hot" inlet.
  • Point 6 - first EV outlet / economizer "cold" inlet.
  • Point 7 - economizer "cold" outlet / injection of two-phase refrigerant into the compressor.
  • Point 8 - economizer "hot" outlet / ejector nozzle inlet.
  • Point 9 - ejector nozzle outlet.
  • Point 10 - ejector mixing section inlet.
  • Point 11 - ejector diffuser outlet / separator inlet.
  • Point 12 - separator liquid outlet / second EV inlet.
  • Point 13 - second EV outlet / evaporator inlet.
  • Point 14 - evaporator outlet / ejector suction section inlet.
  • Point 15 - ejector suction section outlet.

Examples

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperatures:

For the subcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var ejector = new Ejector(90.Percent(), 90.Percent(), 80.Percent());
var economizer = new EconomizerWithTPI(TemperatureDelta.FromKelvins(5));
var cycle = new VCRCWithEjectorEconomizerAndTPI(
    evaporator,
    compressor,
    condenser,
    ejector,
    economizer
);
Console.WriteLine(cycle.EER);                // 4.874001351966284
Console.WriteLine(cycle.COP);                // 5.873917103015547
Console.WriteLine(cycle.Point2.Temperature); // 41.82 °C
Console.WriteLine(cycle.Point4.Temperature); // 61.76 °C

For the transcritical cycle

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R744,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var gasCooler = new GasCooler(FluidsList.R744, 40.DegreesCelsius());
var ejector = new Ejector(90.Percent(), 90.Percent(), 80.Percent());
var economizer = new EconomizerWithTPI(TemperatureDelta.FromKelvins(5));
var cycle = new VCRCWithEjectorEconomizerAndTPI(
    evaporator,
    compressor,
    gasCooler,
    ejector,
    economizer
);
Console.WriteLine(cycle.EER);                // 3.1791454424406136
Console.WriteLine(cycle.COP);                // 4.179085189888726
Console.WriteLine(cycle.Point2.Temperature); // 40.93 °C
Console.WriteLine(cycle.Point4.Temperature); // 52.59 °C

Mitsubishi Zubadan VCRC (subcritical only)

Schematic diagram

VCRCMitsubishiZubadan scheme

Pressure-enthalpy chart (log P-h chart) for the subcritical cycle

VCRCMitsubishiZubadan log P-h chart

List of points:

  • Point 1 - evaporator outlet / recuperator "cold" inlet.
  • Point 2 - recuperator "cold" outlet / first compression stage suction.
  • Point 3s - first isentropic compression stage discharge.
  • Point 3 - first compression stage discharge.
  • Point 4 - second compression stage suction.
  • Point 5s - second isentropic compression stage discharge.
  • Point 5 - second compression stage discharge / condenser inlet.
  • Point 6 - condenser outlet / first EV inlet.
  • Point 7 - first EV outlet / recuperator "hot" inlet.
  • Point 8 - recuperator "hot" outlet / second EV inlet / economizer "hot" inlet.
  • Point 9 - second EV outlet / economizer "cold" inlet.
  • Point 10 - economizer "cold" outlet / injection of two-phase refrigerant into the compressor.
  • Point 11 - economizer "hot" outlet / third EV inlet.
  • Point 12 - third EV outlet / evaporator inlet.

Example

To calculate the energy efficiency ratio (aka cooling coefficient, aka EER), the coefficient of performance (aka heating coefficient, aka COP) and the compressor discharge temperatures:

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var economizer = new EconomizerWithTPI(TemperatureDelta.FromKelvins(5));
var cycle = new VCRCMitsubishiZubadan(
    evaporator,
    compressor,
    condenser,
    economizer
);
Console.WriteLine(cycle.EER);                // 4.392768334506883
Console.WriteLine(cycle.COP);                // 5.392751672812034
Console.WriteLine(cycle.Point3.Temperature); // 67.82 °C
Console.WriteLine(cycle.Point5.Temperature); // 62.48 °C

Entropy analysis

You can perform an entropy analysis of each VCRC mentioned earlier. This analysis allows us to estimate with high accuracy the distribution of energy loss due to non-equilibrium and irreversibility of working processes in the refrigeration machine. Thanks to this, you can easily estimate the energy loss to compensate for the production of entropy in each part of the refrigeration cycle and make decisions that will help increase its efficiency.

For example, simple single-stage VCRC, 18 °C indoor temperature, 35 °C outdoor temperature:

using SharpProp;
using UnitsNet;
using UnitsNet.NumberExtensions.NumberToRatio;
using UnitsNet.NumberExtensions.NumberToTemperature;
using VCRC;

var evaporator = new Evaporator(
    FluidsList.R32,
    5.DegreesCelsius(),
    TemperatureDelta.FromKelvins(5)
);
var compressor = new Compressor(80.Percent());
var condenser = new Condenser(
    FluidsList.R32,
    45.DegreesCelsius(),
    TemperatureDelta.FromKelvins(3)
);
var cycle = new SimpleVCRC(evaporator, compressor, condenser);
var result = cycle.EntropyAnalysis(
    18.DegreesCelsius(),
    35.DegreesCelsius()
);
Console.WriteLine(result.ThermodynamicPerfection);        // 25.39 %
Console.WriteLine(result.MinSpecificWorkRatio);           // 25.39 %
Console.WriteLine(result.CompressorEnergyLossRatio);      // 20 %
Console.WriteLine(result.CondenserEnergyLossRatio);       // 20.83 %
Console.WriteLine(result.GasCoolerEnergyLossRatio);       // 0 %
Console.WriteLine(result.ExpansionValvesEnergyLossRatio); // 12.39 %
Console.WriteLine(result.EjectorEnergyLossRatio);         // 0 %
Console.WriteLine(result.EvaporatorEnergyLossRatio);      // 21.4 %
Console.WriteLine(result.RecuperatorEnergyLossRatio);     // 0 %
Console.WriteLine(result.EconomizerEnergyLossRatio);      // 0 %
Console.WriteLine(result.MixingEnergyLossRatio);          // 0 %
Console.WriteLine(result.AnalysisRelativeError);          // 1.27e-13 %

In addition, you can perform entropy analysis in the range of indoor and outdoor temperatures (see an example).