Expander - Semi-Empirical Model

Model description

The model is based on the semi-empirical model proposed by Lemort (2008) for scroll expanders.

Class description

class component.expander.expander_semi_empirical.ExpanderSE[source]

Component: Volumetric expander

Model: Semi-empirical model.

Reference: V. Lemort, “Contribution to the Characterization of Scroll Machines in Compressor and Expander Modes,” Dec. 2008.

Descritpion:

This model is used to simulate the performance of a volumetric expander. This model has been used to characterize both scroll and screw expanders. The parameters of the model need to be calibrated with experimental datas to represent the real behavior of the expander.

Assumptions:

  • Steady-state operation.

Connectors:

su (MassConnector): Mass connector for the suction side.

ex (MassConnector): Mass connector for the exhaust side.

W (WorkConnector): Work connector.

Q_amb (HeatConnector): Heat connector for the ambient heat transfer.

Parameters:

AU_amb: Heat transfer coefficient for the ambient heat transfer. [W/K]

AU_su_n: Nominal heat transfer coefficient for the suction side heat transfer. [W/K]

AU_ex_n: Nominal heat transfer coefficient for the exhaust side heat transfer. [W/K]

d_su1: Pressure drop diameter. [m]

m_dot_n: Nominal mass flow rate. [kg/s]

A_leak: Leakage area. [m^2]

W_dot_loss_0: Constant loss in the compressor. [W]

alpha: Proportionality rate for mechanical losses. [-]

C_loss: Torque losses. [N.m]

rv_in: Inlet volume ratio. [-]

V_s: Swept volume. [m^3]

mode: Mode of operation (‘N_rot’ if N_rot is given in the inputs or ‘m_dot’ if m_dot is given in the inputs).

Inputs:

P_su: Suction side pressure. [Pa]

T_su: Suction side temperature. [K]

P_ex: Exhaust side pressure. [Pa]

fluid: Suction side fluid. [-]

N_rot: Rotational speed. [rpm] or m_dot: Mass flow rate. [kg/s]

T_amb: Ambient temperature. [K]

Ouputs:

eta_is: Isentropic efficiency. [-]

h_ex: Exhaust side specific enthalpy. [J/kg]

T_ex: Exhaust side temperature. [K]

W_dot_exp: Compressor power. [W]

m_dot: Mass flow rate. [kg/s] or N_rot: Rotational speed. [rpm]

epsilon_v: Volumetric efficiency. [-]

Example of use


from labothappy.component.expander.expander_semi_empirical import ExpanderSE

simu_mode = "M_N"

"Example of a semi-empirical expander component"
# Inputs: N_rot, T_amb, P_su, h_su, P_ex, fluid 
#         OR m_dot, T_amb, P_su, h_su, P_ex, fluid
# Parameters: AU_amb, AU_su_n, AU_ex_n, d_su1, m_dot_n, A_leak, W_dot_loss_0, alpha, C_loss, 
# rv_in, V_s, mode

if simu_mode == "P_N":

    #-------------------------------------------------------------------------------------------#
    "First case: N_rot and P_ex known + m_dot unknown"
    #-------------------------------------------------------------------------------------------#
    # Create an instance of the expander component
    expander = ExpanderSE()
    "1. Inputs set through connectors"
    # Set properties for su connector
    expander.su.set_properties(P=4*1e5, T=273.15+70, fluid='R1233zd(E)')
    expander.ex.set_properties(P=1.1*1e5)
    
    # Set properties for ex connector
    expander.ex.set_properties(P=1.1*1e5)
    
    # Set rotational speed
    
    # expander.W.set_N_rot(6000)
    expander.set_inputs(N_rot = 6000)
    
    # Set ambient temperature
    expander.Q_amb.set_T_amb(293)
    
    # "2. Inputs set directly"
    # expander.set_inputs(
    #     N_rot=6000,
    #     T_amb=298.15,
    #     P_su=400000,
    #     h_su=485571,
    #     P_ex=110000,
    #     fluid='R1233zd(E)'  # Make sure to include fluid information
    # )
    
    expander.set_parameters(AU_amb=8.33758799e+00, AU_su_n=6.67152053e-01, AU_ex_n=3.21181352e+01, d_su1=6.31789061e-03, m_dot_n=0.1, 
                A_leak=1.00000000e-10, W_dot_loss_0=8.19123951e-01, alpha= 7.79756524e-02, C_loss=4.68294054e-01, rv_in=1.7, V_s=0.0000712,
                mode = 'P_N')
    
    # Check the setup
    expander.print_setup()
    
    # Solve the expander component
    expander.solve()
    
    # Print the results
    expander.print_results()

elif simu_mode == "P_M":

    #-------------------------------------------------------------------------------------------#
    "Second case: m_dot and P_ex known + N_rot unknown "
    #-------------------------------------------------------------------------------------------#
    # Create an instance of the expander component
    expander = ExpanderSE()
    "1. Inputs set through connectors"
    # Set properties for su connector
    expander.su.set_fluid('R1233zd(E)')
    expander.su.set_p(4*1e5)
    expander.su.set_T(273.15+70)  # Sets h_su -> OK for inputs
    expander.su.set_m_dot(0.1)
    
    # Set properties for ex connector
    expander.ex.set_p(1.1*1e5)
    
    # Set ambient temperature
    expander.Q_amb.set_T_cold(293)
    
    "2. Inputs set directly"
    expander.set_inputs(
        m_dot=0.1,
        T_amb=298.15,
        P_su=400000,
        h_su=485571,
        P_ex=110000,
        fluid='R1233zd(E)'  # Make sure to include fluid information
    )
    
    expander.set_parameters(AU_amb=8.33758799e+00, AU_su_n=6.67152053e-01, AU_ex_n=3.21181352e+01, d_su1=6.31789061e-03, m_dot_n=0.1, 
                A_leak=1.00000000e-10, W_dot_loss_0=8.19123951e-01, alpha= 7.79756524e-02, C_loss=4.68294054e-01, rv_in=1.7, V_s=0.0000712,
                mode = 'P_M')
    
    # Check the setup
    expander.print_setup()
    
    # Solve the expander component
    expander.solve()
    
    # Print the results
    expander.print_results()

elif simu_mode == "M_N":
    
    #-------------------------------------------------------------------------------------------#
    "Third case: N_rot and m_dot known + P_ex unknown"
    #-------------------------------------------------------------------------------------------#
    # Create an instance of the expander component
    expander = ExpanderSE()
    "1. Inputs set through connectors"
    # Set properties for su connector
    expander.su.set_fluid('R1233zd(E)')
    expander.su.set_p(4*1e5)
    expander.su.set_T(273.15+70)  # Sets h_su -> OK for inputs
    expander.su.set_m_dot(0.1)
    
    
    # # Set rotational speed
    expander.W.set_N_rot(8055.33)
    
    
    #Set ambient temperature
    expander.Q_amb.set_T_cold(293)
    
    "2. Inputs set directly"
    expander.set_inputs(
        m_dot=0.1,
        T_amb=298.15,
        P_su=400000,
        T_su=273.15+70,
        N_rot=8055.33,
        fluid='R1233zd(E)'  # Make sure to include fluid information
    )
    
    expander.set_parameters(AU_amb=8.33758799e+00, AU_su_n=6.67152053e-01, AU_ex_n=3.21181352e+01, d_su1=6.31789061e-03, m_dot_n=0.1, 
                A_leak=1.00000000e-10, W_dot_loss_0=8.19123951e-01, alpha= 7.79756524e-02, C_loss=4.68294054e-01, rv_in=1.7, V_s=0.0000712,
                mode = 'M_N')
    
    # Check the setup
    expander.print_setup()
    
    # Solve the expander component
    expander.solve()
    
    # Print the results
    expander.print_results()
    
    

References

Lemort, V. (2008). Contribution to the Characterization of Scroll Machines in Compressor and Expander Modes [Doctoral thesis, ULiège - Université de Liège]. ORBi-University of Liège. https://hdl.handle.net/2268/135317