Python 中稳态流动能量方程建模
稳态流动能量方程 (SFEE) 是能量守恒定律在开放系统中的应用。下图是开放系统的示意图,其中流体从 𝑖 进入,从 𝑒 出口。红色虚线表示控制体积 (CV) 的控制面 (CS)。
入口和出口参数如下表所示:
参数 | 入口 | 出口 |
---|---|---|
压力 | pi | pe |
速度 | Vi | Ve |
密度 | Pi | Pe |
比容 | vi | ve |
焓 | hi | he |
面积 | Ai | Ae |
基准面 | zi | ze |
对于单个输入和输出系统(如上所示),SFEE 可以写成:
$$\mathrm{\dot{E}_I+\dot{Q}=\dot{E}_e+\dot{W}_{shaft}}$$
其中,$\mathrm{\dot{Q}}$ 和 $\mathrm{\dot{W}_{shaft}}$ 代表传给 CV 的 CS 的热传递速率和从 CV 的 CS 输出的轴功。$\mathrm{\dot{E}_𝑖}$ 和 $\mathrm{\dot{E}_𝑒}$ 表示随着质量流入和流出 CV 的能量。等式 1 的展开形式显示在等式 2 中。
$$\mathrm{\dot{m}_I(h_i+\frac{v^{2}_i}{2}+gzi)+\dot{m}=m_e(h_e+\frac{v^{2}_e}{2}+gz_e)\dot{W}_{shaft}}$$
公式 1 和 2 适用于单个输入和输出,但如果存在多个输入输出以及多个热相互作用,则公式变为:
$$\mathrm{\sum \dot{E}_I+\sum\dot Q=\sum \dot{E}_e+\dot{W}_{Shaft}}$$
$$\mathrm{\sum(\dot{m}_I(h_i+\frac{v^{2}_i}{2}+))+\sum\dot Q=\sum(\dot{m}_e(h_e+\frac{v^{2}_e}{2}+gze))+\dot{W}_{shaft}}$$
除了这些方程之外,还需要求解质量守恒。事实上,必须先求解质量守恒,然后再求解能量方程。因此,对于多输入输出控制体积,进入系统的净质量应等于离开系统的净质量。
$$\mathrm{\sum m_i=\sum m_e}$$
没有直接的方法可以在 Python 中对上述方程进行建模,因此,将根据手头的具体问题进行建模。我们将创建一个程序的 case 类型结构,在其中为方程中每个缺失的条目创建函数。
以下函数是为单个入口和出口开发的:
用于计算焓
def Enthaply(T,c): """ Enter temperature in deg C """ return c*(T+273)
排放/质量流量
def mass_flow(ρ,a,v): return ρ*a*v
入口焓
def SFEE_hi(he,vi,ve,zi,ze,Q,W,mi,me): """ h: in kJ/kg v: m/s z: m/s Q: kW W: kW m: kg/s """ return (me*(he+1.E-3*ve**2/c+1.E-3*g*ze)+W-Q)/mi-(1.E-3*vi**2/2+1.E3*g*zi)
出口焓
def SFEE_he(hi,vi,ve,zi,ze,Q,W,mi,me): """ h: in kJ/kg v: m/s z: m/s Q: kW W: kW m: kg/s """ return (mi*(hi+1.E-3*vi**2/2+1.E-3*g*zi)-W+Q)/me-(1.E-3*ve**2/2+1.E3*g*ze)
热传递
def SFEE_Q(hi,he,vi,ve,zi,ze,W,mi,me): """ h: in kJ/kg v: m/s z: m/s W: kW m: kg/s """ return me*(he+1.E-3*ve**2/2+1.E-3*g*ze)-mi*(hi+1.E-3*vi**2/2+1.E3*g*zi)+W
轴功
def SFEE_W(hi,he,vi,ve,zi,ze,Q,mi,me): """ h: in kJ/kg v: m/s z: m/s Q: kW m: kg/s """ return mi*(hi+1.E-3*vi**2/2+1.E-3*g*zi)-me*(he+1.E-3*ve**2/2+1.E3*g*ze)+Q
入口速度
def SFEE_vi(hi,he,ve,zi,ze,Q,W,mi,me): """ h: in kJ/kg v: m/s z: m/s Q: kW W: kW m: kg/s W: kW """ a= (me*(he+1.E-3*ve**2/2+1.E-3*g*ze)+W-Q)/mi return sqrt(2000*(a-(hi+1.E-3*g*zi)))
出口速度
def SFEE_ve(hi,he,vi,zi,ze,Q,W,mi,me): """ h: in kJ/kg v: m/s z: m/s Q: kW W: kW m: kg/s W: kW """ a= (mi*(hi+1.E-3*vi**2/2+1.E-3*g*zi)-W+Q)/me return sqrt(2000*(a-(he+1.E-3*g*ze)))
让我们举几个例子来演示这些函数的使用。
示例 1
在一个绝热喷嘴中,入口和出口压力分别为 31 巴和 1 巴,入口温度为 527°C。气体的比热为 1 kJ/kg-K,𝛾 = 1.4。如果入口速度可以忽略不计,则估计出口速度。
解决方案:在这种情况下,我们首先必须计算出口温度。由于喷嘴是绝热的,因此出口温度将计算为:
$$\mathrm{T_2=(\frac{p_2}{p_1})^{\frac{y-1}{y}}}$$
此外,由于这是喷嘴,所以:$\mathrm{ 𝑊 = 0, z_i = z_e = 1.0, m_i = m_e=1.0}$
此问题的 Python 代码如下:
from math import * # Adiabatic exponent γ=1.4 # Specific heat c= 1 # Heat and work Q=W=0 # Inlet temperature and pressure Ti = 800 pi = 31 # Exit pressure pe = 1 # datum at inlet and exit zi=ze=1 # mass flow rate at inlet and exit mi=me=1 # velocity at inlet vi=0 # Evaluating exit temperature based on adiabatic condition Te=Ti*(pe/pi)**(1-1/γ) # in Kelvin # Evaluating inlet and exit enthalpy hi=Enthaply(Ti,c) he=Enthaply(Te,c) # Calling function to evaluate exit velocity Ve=SFEE_ve(hi,he,vi,zi,ze,Q,W,mi,me) print(f"Ve = {round(Ve,3)} m/s")
程序的输出将为:
Ve = 1000.093 m/s
示例 2
空气 (𝑅 = 0.287 kJ/kg-K,$\mathrm{c_p}$ = 1.005 kJ/kg-K,和 𝛾 = 1.4) 依次流过压缩机、加热器和涡轮机,如图所示。当压力和温度分别为 276 kPa 和 316 K 时,从压缩机出来的空气的体积流量为 2.33 $\mathrm{m^3/s}$。然后在加热器中以相同的压力将空气加热到 703 K。从加热器中,空气流过一个产生 1860 kW 功率的涡轮机。从涡轮机到周围环境的热损失为 90 kW。涡轮机出口处的空气温度(K)是多少?
解决方案 - 压缩机出口处的排放量 = 2.33 $\mathrm{m^3/s}$,$\mathrm{𝑝_1}$ = 276 kPa,$\mathrm{𝑇_1}$ = 316 K,$\mathrm{𝑝_2}$ = 276 kPa,$\mathrm{𝑇_2}$ = 703 K,$\mathrm{𝑊_𝑡}$ = 1860 kW,$\mathrm{𝑄_𝑡}$ = 90 kW。在此问题中,由于没有提及速度和基准面,因此我们将认为它们可以忽略不计。
由于这是一个稳态问题,因此我们必须首先根据压缩机的出口条件找到质量流量,并直接查看涡轮机并计算出口焓,最后计算温度。
此问题的 Python 程序如下:
from math import * # Adiabatic exponent γ=1.4 # Specific heat c= 1.005 # Characteristic gas const. R=0.287 # Data at compressor exit disc =2.33 #m^3/s p1=276 #kPa T1=316 #K # Data at heater exit p2=276 #kPa T2=703 #K # Data for turbine Wt=1860 #kW Qt=-90 #kW. # Evaluating mass flow rate ρ1=p1/(R*T1) m=ρ1*disc # Enthalpy at heater exit h2=Enthaply(T2,c) # Velocity and pressure at Turbine exit and inlet v2=v3=0 z2=z3=0 # obtaining enthalpy at turbine exit h3=SFEE_he(h2,v2,v3,z2,z3,Qt,Wt,m,m) # Temperature at turbine exit T3=h3/c print(f'T3 = {round(T3,3)} K')
程序的输出将为:
T3 = 429.364 K
结论
在本教程中,已在 Python 中对稳态流动能量方程进行了建模。开发了不同的函数,并通过两个示例展示了其实现。