Main Content

Refrigerant Modernization

This example shows how to retrofit a Simscape™ cooling cycle that uses R410a to utilize R32, which is a refrigerant with a lower Global Warming Potential (GWP). The process involves modifying the nominal mass flow rate and refrigerant charge, while retaining the original evaporator and condenser specifications. For more information on designing a cooling cycle, see Model a Refrigeration Cycle and Refrigeration Cycle (Air Conditioning).

Model

The initial model is an air-conditioning system that uses R410a for a light commercial building with an area of 600m2 and a thermal load of 65 kW.

open_system("RefrigerantModernization");

The model uses a Two-Phase Fluid Predefined Properties (2P) block to model R410a.

open_system('RefrigerantModernization/Refrigerant Properties')

Original Model Behavior

The model assumes the following nominal operating conditions:

  • Thermal load = 65 kW

  • Nominal condensing temperature = 45 °C

  • Nominal superheating = 5 deltaK

  • Nominal evaporating temperature = 5 °C

  • Nominal subcooling = 5 deltaK

  • Environment (heat sink) temperature = 30 °C

Execute the model and see that the building air temperature is controlled.

open_system("RefrigerantModernization/Results")
sim("RefrigerantModernization")

Double-click the P-H Diagram block to verify that the thermodynamic states reasonably match the nominal operating conditions.

Monitor the energy flow rates between the components and the coefficient of performance (COP). The COP falls within the typical range of COP values.

RefrigerantModernizationPlot1Power

Figure RefrigerantModernization contains 2 axes objects. Axes object 1 with title Energy Flow Rate (kW) contains 5 objects of type line. These objects represent Condenser Heat Flow, Evaporator Heat Flow, Compressor Work, Condenser Fan Work, Evaporator Fan Work. Axes object 2 with title Coefficient of Performance, xlabel Time (s) contains an object of type line.

The superheating and subcooling align with the nominal conditions, and the valve is adequately open when operating.

RefrigerantModernizationPlot3Superheat

Figure RefrigerantModernization contains 2 axes objects. Axes object 1 with title Subcooling and Superheat (deltaK) contains 2 objects of type line. These objects represent Condenser Subcooling, Evaporator Superheat. Axes object 2 with title Thermostatic Expansion Valve Opening Fraction, xlabel Time (s) contains an object of type line.

Refrigerant Upgrade

Many countries are phasing out refrigerants like R410a because of their high GWP. This example shows how to convert the system to use R32, which is a modern refrigerant with a lower GWP. The saturation pressures at the evaporating and condensing temperature change slightly when using the new refrigerant:

Temperature

R410a Saturation pressure

R32 Saturation pressure

5 °C

0.936 MPa

0.951 MPa

45 °C

2.734 MPa

2.795 MPa

Because these are only slight pressure changes, the mechanical strain to the evaporator and condenser remains almost the same between the two refrigerants.

Update the refrigerant by executing:

set_param('RefrigerantModernization/Refrigerant Properties','fluid','fluids.two_phase_fluid.utilities.enum.Fluid.R32')

Double-click the Refrigerant Properties block to verify.

Refrigerant Charge

To calculate the charge density, set the model Stop time to zero and simulate the model.

set_param("RefrigerantModernization", "StopTime", "0")
sim("RefrigerantModernization")

Calculate the mean charge density of the cycle. In this model, the condenser, evaporator, and liquid receiver have masses and volumes to include in the calculation.

m_cond_2p = simlog_RefrigerantModernization.Condenser.two_phase_fluid_1.mass.series.values('kg'); % [kg] Two-phase fluid mass in Condenser
V_cond_2p = pi*(cond_D/2)^2*cond_tube_row_width*cond_num_tube_rows*cond_num_tubes_per_row; % [m3] Tube volume in Condenser
m_evap_2p = simlog_RefrigerantModernization.Evaporator.two_phase_fluid_1.mass.series.values('kg'); % [kg] Two-phase fluid mass in Evaporator
V_evap_2p = pi*(evap_D/2)^2*evap_tube_row_width*evap_num_tube_rows*evap_num_tubes_per_row; % [m3] Tube volume in Evaporator

m_receiver_2p = simlog_RefrigerantModernization.Liquid_Receiver.mass.series.values('kg'); % [kg] Two-phase fluid mass in Liquid Receiver
V_receiver_2p = pi*(receiver_D/2)^2*receiver_H; % [m3] Volume of Liquid Receiver 

m_total = m_cond_2p + m_evap_2p + m_receiver_2p;
V_total = V_cond_2p + V_evap_2p + V_receiver_2p;

meanChargeDensity = m_total / V_total;
disp("The mean charge density is " + meanChargeDensity + "kg/m3")
The mean charge density is 158.5871kg/m3

The mean charge density is 159kg/m3, which is suitable for using R32. An undercharged cycle can struggle to converge or initialize. You can modify the refrigerant charge by adjusting the parameters of the components that influence the mass and volume of the two-phase fluid in the cycle. For example, you can adjust the initial vapor quality of the Condenser Evaporator (2P-MA) block.

Original System Behavior with New Refrigerant

Execute the simulation with the new refrigerant.

set_param("RefrigerantModernization", "StopTime", "3600")
open_system("RefrigerantModernization/Results")
sim("RefrigerantModernization")

See that the temperature excessively oscillates.

The subcooling and superheating are higher than the nominal value of 5 deltaK.

RefrigerantModernizationPlot3Superheat

Figure RefrigerantModernization contains 2 axes objects. Axes object 1 with title Subcooling and Superheat (deltaK) contains 2 objects of type line. These objects represent Condenser Subcooling, Evaporator Superheat. Axes object 2 with title Thermostatic Expansion Valve Opening Fraction, xlabel Time (s) contains an object of type line.

Redesigned System for New Refrigerant

To address this behavior, reanalyze the cycle using the P-H diagram of R32. The nominal operating conditions specify the enthalpies at the inlet and outlet of the evaporator. For example, in the cycle using R410a, the enthalpies need to be 266 kJ/kg and 428 kJ/kg, respectively. With these enthalpies and the thermal load 65 kW, the mass flow rate required for steady state is 65 kW/(428 kJ/kg - 266 kJ/kg) = 0.4 kg/s. To effectively cool the system, the nominal mass flow rate should be larger than this value. Using the nominal mass flow rate to 0.5 kg/s resulted in a reasonable simulation with R410a, but it led to the excessive temperature oscillations when using R32. Check the nominal mass flow rate that was used.

mdot_nominal % [kg/s]
mdot_nominal = 
0.5000

A new nominal mass flow rate mitigates the oscillations that are attributed to cooling too fast. According to the P-H diagram of R32 and the nominal operating conditions, the enthalpies at the inlet and outlet of the evaporator should be 279 kJ/kg and 522 kJ/kg, respectively. At steady state with a thermal load of 65 kW, the required mass flow rate is

m˙R32steady=65kW522kJ/kg-279kJ/kg=0.27kg/s

The corresponding mass flow rate with R410a is 0.4 kg/s.

To accommodate this change in the mass flow rate at steady state, reduce the nominal mass flow rate by the ratio of the two mass flow rates.

m˙R32nominal=(0.5kg/s)(0.270.4)=0.34kg/s

Execute the following expression to update the nominal mass flow rate used in the Condenser, Evaporator, and Flow Resistance blocks.

mdot_nominal = 0.34; % [kg/s]

Perform the simulation to see that the temperature is well-controlled.

open_system("RefrigerantModernization/Results")
sim("RefrigerantModernization")

Double-click the P-H Diagram to see that the cycle aligns with the nominal operating conditions.

Monitor the energy flow rates and COP.

RefrigerantModernizationPlot1Power

Figure RefrigerantModernization contains 2 axes objects. Axes object 1 with title Energy Flow Rate (kW) contains 5 objects of type line. These objects represent Condenser Heat Flow, Evaporator Heat Flow, Compressor Work, Condenser Fan Work, Evaporator Fan Work. Axes object 2 with title Coefficient of Performance, xlabel Time (s) contains an object of type line.

The pressures, temperatures, and mass flow rate are also comparable to the nominal operating conditions.

RefrigerantModernizationPlot2PMdot

Figure RefrigerantModernization contains 3 axes objects. Axes object 1 with title Pressure (MPa) contains 2 objects of type line. These objects represent Condenser, Evaporator. Axes object 2 with title Saturation Temperature (degC) contains 2 objects of type line. These objects represent Condenser, Evaporator. Axes object 3 with title Mass Flow Rate (kg/s), xlabel Time (s) contains an object of type line.

The superheating and subcooling are close to the nominal value of 5 deltaK, and the valve is opened to reasonable values during operation.

RefrigerantModernizationPlot3Superheat

Figure RefrigerantModernization contains 2 axes objects. Axes object 1 with title Subcooling and Superheat (deltaK) contains 2 objects of type line. These objects represent Condenser Subcooling, Evaporator Superheat. Axes object 2 with title Thermostatic Expansion Valve Opening Fraction, xlabel Time (s) contains an object of type line.

Fine-Tuning Refrigerant Charge

Although the cycle above closely matches the nominal conditions, the subcooling is slightly higher than the nominal value of 5 deltaK. Removing some refrigerant from the cycle decreases the subcooling. Increasing the initial vapor quality of the Condenser block, where the two-phase fluid volume is fixed, reduces the total refrigerant charge. The initial vapor quality was 0.25 in the previous simulations. Increase the initial vapor quality.

set_param("RefrigerantModernization/Condenser","x_init_2P","0.27"); 

Simulate the cycle again.

open_system("RefrigerantModernization/Results")
sim("RefrigerantModernization")

Verify that the subcooling is now well matches the nominal value 5 deltaK.

RefrigerantModernizationPlot3Superheat

Figure RefrigerantModernization contains 2 axes objects. Axes object 1 with title Subcooling and Superheat (deltaK) contains 2 objects of type line. These objects represent Condenser Subcooling, Evaporator Superheat. Axes object 2 with title Thermostatic Expansion Valve Opening Fraction, xlabel Time (s) contains an object of type line.

Related Topics