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