轉自:微信公衆号 cfd之道
用來自記!!!!!
轉載連結:https://mp.weixin.qq.com/s/nhDoHNsTwenXZNBYkDVoVg
在液體噴霧過程中,常利用Rosin-Rammler方法來描述液滴粒徑分布。
本文内容來自Fluent UserGuide 25.3.14。
Rosin-Rammler方法利用以下方式描述粒徑與品質分數之間的函數關系:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SNmlDM2QWNzMTMkBjM5ITZ5UWO0AjM2QTOyQGMhVGO08CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
齊總\bar{d}為平均粒徑(Mean Diameter),n為尺寸分布指數(Spread Parameter)。
通過将粒徑分布資料拟合到Rosin-Rammler方程中,可以很容易地定義粒度分布。在這種方法中,完整的粒徑範圍被劃分為一組離散的粒度範圍。例如,假設粒徑資料服從以下分布:
粒徑範圍(微米) | 品質分數 |
---|---|
0~70 | 0.05 |
70~100 | 0.1 |
100~120 | 0.35 |
120~150 | 0.3 |
150~180 | 0.15 |
180~200 | 0.05 |
首先需要處理表中的資料,以累積品質分數的形式顯示:
粒徑(微米) | 超過粒徑的品質分數 |
---|---|
70 | 0.95 |
100 | 0.85 |
120 | 0.50 |
150 | 0.20 |
180 | 0.05 |
200 |
将表顯示成散點圖,如下圖所示。
利用Rosin-rammler函數拟合上面的資料。這種非線性估計極為麻煩,曲線拟合常常失敗。可以采用python對上表中的資料進行拟合。
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import numpy as np
x = np.array([70,100,120,150,180,200])
y = np.array([0.95,0.85,0.5,0.2,0.05,0])
# 防止對0取對數,故去掉最後一個元素
xx = np.array([70,100,120,150,180])
yp = np.array([0.95,0.85,0.5,0.2,0.05])
yy= np.log(yp)
'''
指定的公式,兩邊取對數然後拟合
'''
def func(x,a,b):
return -np.power(x/a,b)
popt, pcov = curve_fit(func, xx, yy)#函數拟合
# 繪制圖形
xx = np.linspace(70,200,num=50)
yvals=np.exp(func(xx,popt[0],popt[1]))
plot1=plt.plot(x, y, 'o',c='r',label='original values')
plot2=plt.plot(xx, yvals, 'b',linewidth=2,label='$fit: Y_d = e^{-(\\frac{d}{%5.5f})^{%5.5f}}$' % tuple(popt))
plt.xlabel('diameter(μm)')
plt.ylabel('mass fraction')
plt.legend(loc=1)
plt.show()
拟合結果如圖所示:
可看到拟合的系數a=134.247,b=3.7794。這裡為了防止對0取對數而丢失了一個點的資訊。
Fluent中采用另外一種估算方案。
先估算平均粒徑。當粒徑為平均粒徑時,此時品質分數:
此時線性插值得到平均粒徑:
可得到平均粒徑d=133.2μm。
有了平均粒徑,即可代入公式:
将表中的粒徑d代入公式中,求解得到多個n,再計算其平均值即可得到分布指數。
粒徑 | 品質分數 | n |
---|---|---|
70 | 0.95 | 4.682585 |
100 | 0.85 | 6.5445 |
120 | 0.5 | 3.845475 |
150 | 0.2 | 3.722698 |
180 | 0.05 | 3.53755 |
200 | ||
平均值 | 4.466562 |
可得到平均分布指數n=4.466562.
|
| | 平均值 | 4.466562 |
可得到平均分布指數n=4.466562.
[外鍊圖檔轉存中…(img-SGpXEVvs-1601943704493)]
看圖形拟合得還不錯。當然如果想要硬生生的拟合,也并不是不可以,不過搞起來麻煩一點罷了,不管從哪個角度來講,非線性拟合的複雜程度總是要大于代數計算。