吾生有涯 学海无涯
析模有界 知识无界

Rosin-Rammler参数估计

内容纲要

在液体喷雾过程中,常利用Rosin-Rammler方法来描述液滴粒径分布。

本文内容来自Fluent UserGuide 25.3.14。

Rosin-Rammler方法利用以下方式描述粒径与质量分数之间的函数关系:

齐总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 0

将表显示成散点图,如下图所示。

利用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 0

平均值 4.466562

可得到平均分布指数n=4.466562.

看图形拟合得还不错。当然如果想要硬生生的拟合,也并不是不可以,不过搞起来麻烦一点罢了,不管从哪个角度来讲,非线性拟合的复杂程度总是要大于代数计算。

本篇文章来源于微信公众号: CFD之道

赞(1) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《Rosin-Rammler参数估计》
文章链接:https://www.topcfd.cn/14045/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册