主题:【第六届原创】TOPAS中的各种晶粒尺寸解法

浏览0 回复23 电梯直达
iangie
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
维权声明:本文为iangie原创作品,本作者与仪器信息网是该作品合法使用者,该作品暂不对外授权转载。其他任何网站、组织、单位或个人等将该作品在本站以外的任何媒体任何形式出现均属侵权违法行为,我们将追究法律责任。

TOPAS中的各种晶粒尺寸解法

Xiaodong (Tony) Wang (仪器信息网iangie)
Centre of Material Research, Curtin University, Perth, WA 6150, Australia

从粉晶XRD(XRPD)中能得到粉晶尺寸(严格滴说是相干散射尺寸coherent scattering domain)是众所周知的技术. 其原理是亚微米级的微晶在布拉格角左右两侧的退相干不足造成了XRD峰的宽化. 前前后后关于从XRD线宽(line broadening)得出晶粒尺寸的研究不计其数. 其各种成果(公式)收纳在各种XRD分析软件中. 所以大家在使用XRD分析软件的时候, 请一定仔细阅读软件手册. 什么情况下使用哪个公式(勾选那个选项)要做到心中明亮才不至于得到错误的结果. 多吐槽一句: 制造业有个经典信条就是只要原料不变,生产工艺不变, 产品就一定不会变. 不少XRD分析者既不重视收谱的仪器参数设置(你给了钱,就要对测试部门有要求,不要他们测什么数据你就拿什么数据), 又把处理数据的分析软件当成一个有魔法的黑盒(软件不像硬件,你可以自己看手册钻研吧), 结果就是rubbish in rubbish out, 连所得结果的重复性都谈不上, 更别说结果是否正确了.

言归正传, 第一个发现并实现从XRD线宽中得出晶粒尺寸的伟人是Scherrer(谢乐). 在第一次世界大战的尾声, 谢老师发表了著名的谢乐公式, 晶粒尺寸与半高宽和衍射半角余弦之积成反比的规律第一次公诸于世. 不过令人悲哀的是在二十一世纪已经过去十多年的今天, 不少用XRD分析晶粒尺寸的研究者仍然只知道或者还在使用五四运动以前的公式. 事实上这一个世纪以来. 峰形分析(line profile analysis)肯定取得了长促的进步. 研究者们可以充分利用峰形而不仅仅是峰宽来得到样品更多的信息.
如果你要在TOPAS中使用古老的谢乐公式, 可以直接使用Scherrer宏.
macro Scherrer(p, fwhm, s, csize)
{prm = If(Abs(fwhm) < Abs(s),-9999,.1 Rad Lam (p)/(Cos(Get(xo) Deg_on_2) Sqrt((fwhm)^2-(s)^2))); : csize}
那个条件语句说明了谢乐公式是有使用条件的:晶粒太大则没有size broadening, 此时线宽等于或者小于仪器峰宽, 谢乐公式不适用. 注意公式中的仪器峰宽扣除是用平方扣除的, 这只适合高斯函数拟合的峰形. 大家用mathematica把两个高斯函数做一下卷积就会发现结果仍然是一个高斯函数,期望为两原期望相加,方差的平方等于原来两方差的平方和. 如果用洛伦兹峰形, 则应该用直接相减, 因为洛伦兹函数的卷积是期望相加,方差也相加. 以前版面上有人问Jade里面扣除仪器峰宽的指数项D值取1和2之间的什么数, 答案是要看你拟合的峰形是哪个函数比重较大. 这也是谢乐公司的缺点, 你永远不可能知道准确的D值.只能瞎猜一个,固定下来,以便同系列内比较.不过你报道的数据就没有普遍性了. 再罗嗦一句, 用了这个宏就不要再用其他的样品峰形卷积了, 不然得到的结果都不准.

正在中国的大跃进如火如荼的时候, Caglioti总结出的衍射线宽随衍射角的经验参数化关系可以认为是一次真正的跃进. 大家还应该可以从Jade中找到Caglioti公式. 这个公式可以看出使用Bragg-Brentano几何的仪器本身会造成衍射线宽化,但是还不能把仪器峰宽和样品峰宽成功分离开来. 不过对于用XRD来解晶体结构的研究者来说, 这已经足够了. 有了Caglioti公式, 他们可以用高斯峰形函数和洛伦兹峰形函数两者的组合还拟合XRD峰形, 毕竟他们关心的只是和晶格内原子密切相关的峰下面积. 峰形拟合得越好, 峰下面积在拟合中就越准确, 越有利于确定晶格内原子位置. 通过用这种经验法拟合峰形已经解出了大量的晶体结构.

Klug和Alexander在四人帮成立那年出版的专著《多晶和无定形材料x射线衍射步骤》中进一步讲解了他们在这本专著二十年前的第一版中提出了峰形卷积计算法. 实验测得的XRD峰形实际上是光源峰形,仪器峰形和样品峰形三者卷积的结果. Voigt函数作为高斯函数和洛伦兹函数的卷积被引入峰形处理. 当时的电脑计算能力有限,没能将这个基于物理意义推导的卷积算法实现. 这个概念被认为是现在基于卷积的全谱拟合软件的基础. TOPAS(及前身)便是第一个基于卷积算法的全谱拟合Rietveld程序.
加入了高斯洛伦兹两种函数拟合峰形的谢乐公式变形为:
macro ScherrerVoigt(p, fwhmg, fwhml, fwhmgi, fwhmli, csize)
{prm=p/Voigt_FWHM_GL(Sqrt((fwhmg)^2-(fwhmgi)^2),(fwhml)-(fwhmli)); : csize}
注意高斯半高宽对仪器峰宽的去除是平方相减,洛伦兹函数的仪器峰宽去除是直接相减. 显然, 两个函数分开算就不存在D取1还是取2的问题. 但是你得知道仪器峰宽的高斯成分和洛伦兹成分.

早在抗日战争进入转折的时候,Stokes和Wilson就注意到峰形比峰宽包含更多的信息.他们使用积分宽度(峰下面积除以峰高)来计算晶粒尺寸的折中的算法.其优点是不仅不再要求峰形能够被voigt函数所拟合, 又能利用整个峰形的信息.
在TOPAS中使用积分宽度来计算晶粒尺寸的macro是
macro ScherrerVoigtStokesWilson(p, fwhmg, fwhml, csize)
{prm = p/Voigt_Integral_Breadth_GL(fwhmg,fwhml); : csize}

可以看到Voigt函数峰宽计算晶粒尺寸和积分宽度计算晶粒尺寸这两条线是并行发展的. 那么哪个准呢? 科学的做法是都用, 让以后的研究者通过大量实验来判断哪个准. 在邓公拨乱反正那年, 双voigt方法被Langford提出来. 经过后来Balzar和Ledbetter的改进,形成了现在的双voigt法:

macro Voigt_FWHM_from_CS(csg, csl)
{#m_ifarg csg "" (1/(csl))
#m_else  #m_ifarg csl "" (1/(csg))
          #m_else Voigt_FWHM_GL((1/(csg)), (1/(csl)))
          #m_endif
#m_endif
}
macro IB_from_CS(csg, csl)
{#m_ifarg csg "" (1.570796326795/(csl))
#m_else  #m_ifarg csl "" (1.064467019431/(csg))
          #m_else  Voigt_Integral_Breadth_GL((1/(csg)), (1/(csl)))
          #m_endif
#m_endif
}
macro LVol_FWHM_CS_G_L(k, lvol, kf, lvolf, csgc, csgv, cslc, cslv)
{#m_argu csgc
#m_argu cslc
prm=(k)/IB_from_CS(CV(csgc, csgv), CV(cslc, cslv)); : lvol
prm=(kf)/Voigt_FWHM_from_CS(CV(csgc,csgv),CV(cslc,cslv));:lvolf
#m_ifarg csgv ""
#m_else CS_G(csgc, csgv)
#m_endif
#m_ifarg cslv ""
#m_else CS_L(cslc, cslv)
#m_endif
}
macro CS_G(c, v)
{#m_argu c
If_Prm_Eqn_Rpt(c, v, min .3 max 10000)
gauss_fwhm = 0.1 Rad Lam / (Cos(Th) CeV(c,v));
}
macro CS_L(c, v)
{#m_argu c
If_Prm_Eqn_Rpt(c, v, min .3 max 10000)
lor_fwhm = 0.1 Rad Lam / (Cos(Th) CeV(c,v));
}
这一套macro其实不难理解,可以用下图来表示:


这个"双Voigt"方法完全摒弃了峰形拟合后再扣除仪器参数的做法.而是通过使用卷积合成峰形,将仪器参数和光源参数连同样品信息一起卷积成计算谱, 在Rietveld迭代算法中精修出高斯size和洛伦兹size. 并给出积分宽度计算出的size和Voigt宽度计算出的size. 这个方法可以立即与仪器峰宽的基本参数计算法(Fundamental parameter approach)结合起来,对于处理一些有峰形非对称的实验谱有极大的帮助. 仔细做了TOPAS tutorial的同学应该知道那个用双Voigt法计算CeO2 size并跟Round Robin结果对比的例子.此方法是实践证明经得起实验检验的.

综上所述, TOPAS目前采用双Voigt方法是比较先进的晶粒尺寸(CSD)计算方法. 这一系列方法是与Scherrer谢乐公式一脉相承的. 此外, 计算晶粒尺寸还有通过傅里叶变换到倒易空间的方法, 有机会将在下次另外的帖子中介绍.

欢迎大家指正.
祝大家圣诞快乐~

为您推荐
您可能想找: 气相色谱仪(GC) 询底价
专属顾问快速对接
立即提交
可能感兴趣
yuxue
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
话说XRD是弗里德曼在1945年发明制造滴,第二次世界大战啊,呵呵

=========版主模式========
童鞋, 你这是在搞笑吗? 1913年Bragg公式就提出来了
赞贴
0
收藏
0
拍砖
0
2011/12/23 19:12:03 Last edit by iangie
feixiong5134
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
写的很好,就是里面的一些关键方程是乱码,影响了阅读。如果能看见就更好了,呵呵
iangie
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
社区=冬季=
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
悠悠王
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
哇,真是学习了。
问iangie版主,这个topas程序码,是哪能看到啊?
大陆
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
晶粒尺寸估算方法的回顾与对照,很有特色,看得出iangie对中国近代史很熟悉,竟能运用作时间坐标。
comments:
1.根据我对文字的理解,介绍的均是对个别峰的理解,为什么不谈及全谱拟合结果?将多个可用峰用来估算晶粒尺寸对结果的精准度提高是显而易见的。据我所知,gsas中LX与GP这两个参数涉及到晶粒尺寸估计。
2.从版主公布的macro script来看其解谱过程不够直观,不管怎样,相对多数人完全依赖软件求晶粒尺寸,版主所处理的黑盒子处于更低层次,更expert。不过如果能将其进一步develop下(不仅仅是晶粒尺寸,解卷法在很多领域均有应用),或者自己重构基本的解卷子程序,或者增加图形显示功能,都有价值。
该帖子作者被版主 feixiong51345积分, 2经验,加分理由:谢谢大陆兄的问题,学习了
大陆
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
此外,iangie版主在解卷过程中使用Iterative了没?
如果有,请问结束解卷Iterative的条件是什么?
xujun16
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
iangie师兄 学习了

大家都到了啊。呵呵。

参合一脚。

目前大家公认的,应该是fourier method比较准(相比几种方法中),因为此方法不用预先估计峰型参数。

而其他方法,scherrer, W-H, anisotropic 等等,表针了 不同的linear, area, volume distribution ,他们之间的误差是难免的。

谢谢!
该帖子作者被版主 feixiong51342积分, 2经验,加分理由:不错不错,学习学习
feixiong5134
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
iangie
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
Re大陆老师:
1.这个就是用于全谱拟合,TOPAS就是一个全谱拟合软件, 以上的宏可应用于所有hkl峰.
2.那些宏代码是专门为TOPAS写的,如果其他软件(GSAS应该是可以的)允许用户自己编写加入卷积的公式, 这些方法也可以很容易地移植.
直接用软件的解才是黑盒.用户自己编写宏,加入的卷积是白盒过程(更好的用户控制)
图形功能 解卷的核心程序是TOPAS这个平台本身就提供的.
3.所有Rietveld code都是循环迭代算法. TOPAS也不例外,TOPAS对不同的功能(Rietveld Refine, Pawley Refine等)用不同的收敛条件,带参数用户可调. 用户还可以直接加入penalty函数影响收敛过程.
该帖子作者被版主 feixiong51343积分, 2经验,加分理由:iangie大哥,牛,学习ing
猜你喜欢最新推荐热门推荐更多推荐
品牌合作伙伴