Cross-platform vapor-compression refrigeration cycles analysis tool using SharpProp.
- How to install
- Unit safety
- VCRC components
- Simple single-stage VCRC
- Single-stage VCRC with recuperator
- Two-stage VCRC with incomplete intercooling
- Two-stage VCRC with complete intercooling
- Two-stage VCRC with parallel compression
- Two-stage VCRC with economizer
- Two-stage VCRC with economizer and parallel compression
- Two-stage VCRC with economizer and two-phase injection into the compressor
- Single-stage VCRC with an ejector as an expansion device
- Two-stage VCRC with an ejector as an expansion device and economizer
- Two-stage VCRC with an ejector as an expansion device, economizer and parallel compression
- Two-stage VCRC with an ejector as an expansion device, economizer and two-phase injection into the compressor
- Mitsubishi Zubadan VCRC (subcritical only)
- Entropy analysis
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.
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.
To analyze the vapor-compression refrigeration cycle (VCRC), it is first necessary to build it from individual components.
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 with 80 % isentropic efficiency:
using UnitsNet.NumberExtensions.NumberToRatio;
using VCRC;
var compressor = new Compressor((80).Percent());
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)
);
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 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 with 5 K temperature difference at "hot" side:
using UnitsNet;
using VCRC;
var recuperator = new Recuperator(TemperatureDelta.FromKelvins(5));
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 to the compressor and 5 K temperature difference at "cold" side:
using UnitsNet;
using VCRC;
var economizer = new EconomizerWithTPI(TemperatureDelta.FromKelvins(5));
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
Pressure-enthalpy chart (log P-h chart) for the transcritical cycle
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.
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
Schematic diagram
Pressure-enthalpy chart (log P-h chart) for the subcritical cycle
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.
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
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).