XRD十问 物相定量分析难点何在?
1、为什么不能做物相定量分析
样品往往不是单一物相,因此,人们总想了解其中某种相的含量。人们的理解总是认为哪怕只是一种近似的结果也比没有结果要好。
为了要说明定量分析的问题,我们还是了解一下一张X射线衍射谱图中包含一些什么信息。这些信息主要有三个方面。也是三个方面的应用:
(1)衍射峰的位置
这方面的信息主要用于物相的鉴定、晶胞参数的精修、残余应力的测量。
(2)衍射峰的峰高或者面积,我们称之为强度
这方面的信息主要用于物相的含量、结晶度以及织构的计算。
(3)衍射峰的形状,我们称为线形
这方面的信息又包括两个方面。其一是衍射峰的宽度,我们可以用来计算亚晶尺寸的大小(常被称为晶粒大小)和微观应变的计算。另一个则是线的形状,主要是指峰形是否对称,这方面用来计算位错、层错等。不过,后者做的人少,研究也不是很完全,因此应用不是很广泛。
从上面的了解,我们应当知道,不同的实验目的实验的观察点不同,也就是强调的对象是不同的。如果仅仅为了鉴定物相,一个常规的实验条件就完全可以应付。如果要做晶胞的精修,则需要严格一些的实验条件。如果要做定量分析,我们的强调点是峰的强度。
我们为什么能利用衍射谱来做物相的含量分析呢?
其原理就是基于物相的含量W与该物相的衍射强度成正比。
可以简单地写成W=CI。W是物相的质量分数,I是该物相的衍射强度。C是一个系数,但不是一个常系数。不过,在一定条件下它是一个常数。遗憾的是,这个常数通常不能通过理论计算得出,而是需要通过实验来测量。每当实验条件改变(包括样品中的物相种类的改变、任一物相含量的改变、观察峰的改变、甚至于物相产地改变、所用辐射改变、晶粒尺寸改变……如此等等,不一而足)这个系数是变化的。
围绕如何想办法得到这个系数C,历代的大师和小师推导出了十几种具体的测量方法。而这些方法又是在某种环境下能使用在另一种环境下不能使用的。每种方法的不同要求等于给实验方法本身加上了一把锁,使得人们不能真正好好地、简便地利用它。
这些方法主要包括两方面: 一种是需要标样的称为“有标法”。也就是说,除了要测的样品,需要往样品中加入某种纯物质。而这些个纯物质往往是不易求得的。
比如,某人在合成一种新物质,总是发现合成物中有各种各样的杂质,他希望计算一下不同条件下这种新物质的含量。实验方法要求他提供这种新物质的纯样品。而实际情况是,他如果得到了这种新物质的纯样品也就是他合成成功的那一天,他还需要你来算个什么含量呢?
再举个例子,一位包工头发现,建的房子老是倒了,地基不行。因为地基里有含量很高的蒙脱土一下雨就膨胀,房子就会倒。他需要了解这种土里的蒙脱土含量到底有多少,他便可以通过改性的办法来解决问题。虽然,要得到蒙脱土的纯物质对某些人来说(一般实验室还是很难的)还是可以的,通过离心等一些方法可以得到。但是,得到的纯物质也许与原样品中的该物质结构发生某些变化。这样虽然得到了纯物质,但是,由于结构的变化,使C也变了。计算出来的结果还是不准。而且,当实验员告诉包工头,虽然我们可以做,但是一则计算结果可能不是很准确。二则经费需要很多时,包工头只能摇摇头,摆摆手,说声BbyeBye了。
由于有标法很难用,因此有人就着手研究“无标法”了。这些方法通过理论计算K(就是上式中C的一部分),或者按某种方法直接比强度。由于晶体结构的复杂性,理论计算C的可能性很小,目前实用的大概只有“钢中残留奥氏体的测量”(有国家标准)。直接比强度法理论是可行的。但是,也附加了很多种条件。比如,要测的样品中有两个相,需要另外提供一个也含有这样两个相(多一个或少一个都不行),含量又不同于待测样的附加样品。通过理论计算还是可以的。比如还原Co粉时,通常都同时存在两种结构的Co相(立方和六方)。如果刚好有一批这样的样品,就可能用这种方法来做含量计算,但是,老天保佑,千万别被氧化了,如果样品中还含有氧化钴,麻烦就来了。当然,如果,样品中含有10个相,就得至少提供这样的10个样品。想想,好不容易弄出一个样品来,还要另外去找9个相似的样品(都含有10个相同的相,而且含量不能相同),有可能吗?真不可能! 说了这些困难,也就是为了告诉你一个事实,为什么一般实验室在做物相鉴定时说得头头是道,而你想测物相含量时,他只有两个字回答你:不做!
2、变通的办法在哪里?
为了得到计算公式里的系数,有人将系数分为两部分:一部分与样品无关,也与仪器无关的常系数。另一部分则与样品及测量条件有关。弄出来一个称为“K值法”东西。
具体方法是:如果要测量样品中的X相,则先用纯的X物质与纯刚玉(α-Al2O3)按重量比1:1混合均匀,测量两者的衍射强度之比,这个比值称为这个物相X的K值。然后,在要测量的样品中加入一定量的刚玉粉(质量分数已知),再比这个加了“标样”的样品中待测相X与刚玉的衍射强度比。就能算出X相的含量。这里的麻烦是,为了要测X相的含量,必须得到X相的纯物质。它的计算公式就是Ix/Is=KxWx/Ws。这里的X是要测量含量的物相,S就是称之为标样的东西,也就是刚玉。I,W分别指衍射强度和质量分数。
有人可能在想,要是事先知道物相的K值都知道该多好呀。真的,1975年,F.h.Chung就想到了这个问题,他提出: 假如:
(1)样品中的每一个物相都是晶体相(不含有非晶)
(2)样品中的每一个物相的K值都是已知的
(3)通过一个计算公式,一次图谱扫描,就能计算出样品中的每个物相的含量。这个公式就是: Wx=Ix/[Kx(I1/K1+I2/K2+……In/Kn)]。这里假定一个样品中存在n个相,其中任一相x的含量Wx与X相的衍射强度成正比(分子),与它的K值成反比。分母还有另一个组成部分,就是所有相的衍射强度除以自己的K值。不知道你看懂了没有, 从这个公式你看出什么来了?要计算一个物相的含量(质量分数)。
需要知道两组数据:
(1)每一个物相的衍射强度,这倒不难,我们可以从衍射图上量出来。
(2)每一个物相的K值,这个K从何而来呢? 这里的K值是这样一个定义:用某种纯物质X与α Al2O3按重量比1:1混合均匀,测量两者的衍射强度之比。
这里的“衍射强度”被定义为峰的高度(不是面积)。 这个比值称为X物相的K值。这个K值只与物相结构有关,因此可以被写入PDF卡片。现在的电子版PDF卡片上有这样一个数据:I/Ic(RIR)=YYY。因此,我们也称为RIR值,其中I是卡片所列物相的最强线的峰高,而Ic是刚玉(α-Al2O3,Corundum)最强线的峰高。
我们国家已经给出了这个方法的标准,就是这么定义的。 这样一来,定量分析就变得如此简单!扫描一遍样品的衍射谱,从图上量出每个物相的衍射峰的峰高,再从PDF卡片上查出每个相的RIR值,就可以轻松地计算出全部物相的含量来。 真的,事实上,就是这么简单。你自己就可以做。再也不必求别人!。 这就是所谓的“绝热法”。绝热的意思是不再需要标样,因为样品中每一个物相的K值都已经知道,不需要与样品外的世界打交道。
3、真的就这么简单吗?
学过X射线衍射这门课的都知道(当然不是地球人都知道),上面所谓的“衍射强度”实际上的定义是积分强度。
从衍射图上看起来,就是衍射峰的面积。这里定义K值时,却用了衍射峰的高度。它们之间能通用吗? 也许是通用的。但有一个前提条件:所有物相、所有衍射峰的峰形完全相同!主要的是衍射峰的宽度要相同。否则就会存在误差! 因为,衍射峰的面积是高度乘以宽度。仔细的人会发现,最简单的面积计算公式是: 面积=峰高乘以半高宽 所谓半高宽就是指衍射峰一半高度处的宽度(FWHM)。 有的人会发现,用这个方法,计算出来的结果误差较大。这就是原因之一。不同的物相,不同的衍射角,衍射峰的宽度是不相同的。当然,如果样品中的物相晶粒都差不多,那么含量计算结果也差不多。 这里说的是差不多,不是说准确。因此,有人称之为“半定量”结果。
4、影响K值的因素有什么?
除了定义上的因素外,还有这么一些问题是要考虑的:
首先,晶粒大小的影响。比如,你在做的是纳米晶粒样品,也套用这个K值,误差会很大。我曾试过一个物相不同晶粒的K值,结果相差有多大,简直无法相象,真的差了10倍!这个10倍是要直接用于公式里的分母的。结果会怎么样呢?
其次,化学成份的影响。很多物相都不能算做纯物相,比如某种合金的固溶体,某种蒙脱石。虽然,他们的晶体结构大体上还是没有变化,但它的K值却变了。据分析,不同成分的固溶体,比如Al中可以溶解一些其它元素如Zn,Mg等,不同固溶度下的Al固溶体的K值肯定是不同的。对于合成样品,化学成分的微小差别也会影响K值。不同地域的蒙脱石,其K值可以相差很大。
再次,颗粒度。这里不是说晶粒度,而是说粉末的粒度。也是影响因素之一。
影响K值的还有晶体的结构,原子的占位与掺杂。
5、PDF卡片上该选RIR值?
关于K值,还有一个很让人困惑的问题。PDF卡片从1938年由J.D.Hanawalt开始发起制作,至今多少年没有算过。不过,今天已有多少卡片倒是大概知道,26万之余。
早期制作的卡片上没有RIR值,最近卡片上一般都标有这个数据。但是,26万张卡片并非26种不同的物相。实际的情况是,一种物相有多张不同的PDF卡片与之对应。比如MgZn2这种物相,它只有一种结构,但是,对应的卡片有5张之多。除2张早期的卡片上没有标RIR值外,另外3张上标有3个不同的RIR值。这就是让人困惑的问题。我该选哪张卡片上的数据呢?实际上,它们的差别不是很大,分别是3.41,3.43,3.52。随便选哪一张上的数据,对计算结果影响都不是很大。因为方法本身就是“半定量”的。不过,我还是不能教唆大家随便。
我认为,我们把这3张卡片都找出来,查看3张卡片上的衍射线与我们实测的衍射线对应情况,对应得最好的,包括强度大小匹配和衍射角的对应,就是我们要找的。 至于为什么会出现这种情况。还是因为它们的结构不同。有的卡片数据是实测出来的。有的人测得的数据可靠(卡片上标记为*),有的人测出来的不可靠,有的卡片是计算出来的(卡片上标记为C)。各人用的计算方法或者测量工具不同,当然就会得到不同的结果。也或者各人得到的物相途径不同,它们在结构上存在某些微小的差别,当然RIR值也会不同。
最后,说一句,你如果觉得PDF卡片上的RIR值不可靠,你完全可以自己来测RIR值。假如你有纯样品的话。你可以将其定义为衍射峰的面积之比,甚至可以定义为不用最强线的强度比,而选用次强或再次强线的强度之比(假如样品中物相的最强线有重叠时要这么做)。
6、什么是物相衍射强度?
强度表示为每秒的计数(Count per second, cps),一个物相总是有多个衍射峰,而且由于衍射角不同、多重因子不同、结构因子不同等因素,一个物相的不同衍射峰的高度是不相同的,当然,衍射峰的面积也会不同。
一般说一个物相的衍射强度不是指在扫描范围(2θ)内全部衍射峰的强度,而是指其最高的那个衍射峰的高度或者面积。当用高度来表示衍射强度时,可以称为线强度,而用面积来表示强度时称为积分强度。当然,没有哪一本书上这么死地规定一个物相的衍射强度。因此,也没有一本书上象这样详细地来说明一个物相的衍射强度到底是什么。
上面的说法仅是常用的方法,也是RIR值定义的方法。那么,能不能有别的方法来定义一个物相的衍射强度呢?当然可以,比如,你想使用某个物相的次强线的高度来作为该物相的衍射强度也未尝不可。但是,有一点你要明白。定量分析的计算式中的RIR值的定义也要跟着变,不能再使用最强峰的峰高来与刚玉的最强线峰高之比了。能不能用某一个扫描范围内一个物相全部或部分衍射峰的高度(或面积)之和来表示这个物相的衍射强度呢?当然可以,不过,同样地,RIR值的定义也要跟着变。
7、强度到底应该如何表示?
前面已经提到,衍射强度的定义与RIR值的定义有差别。因此,在计算物相的质量分数时到底应当用峰高还是用积分面积来作为衍射强度呢?如果使用峰高,则与衍射的积分强度定义相背,肯定会带来误差,如果使用积分强度,又与RIR值定义相背。因此,不论你使用哪个值来作为强度都会存在较大的误差。
现在,我们来看看,误差到底从哪里出来的。上面已经提到,只有当衍射峰的半高宽完全相同时,衍射峰高与面积相当。那么,在什么情况下会出现衍射峰的宽度不同呢?
(1)衍射峰宽度是衍射角的函数,不同衍射角的衍射峰宽度是不同的。这一点我们很能看得明白,低角度的衍射峰总是较窄,但当衍射角较高时,我们看到的衍射峰低而宽,有时漫散得我们都不想把它们扫描出来。
(2)不同晶粒尺寸的衍射峰宽度是不同的。细晶粒物相的衍射峰低而宽,结晶完好的粗晶粒物相的衍射峰锐而窄。
(3)存在应力的样品,同样使衍射峰变宽。
(4)如果存在微观的缺陷,会使衍射峰的线形变化,也会影响面积与峰高的关系。
当然,我们还得提一提结晶度的影响。一些结晶不好的物相,部分地存在非晶,当然会使衍射峰变宽变低。在一些粘土矿物中,这种现象表现得尤为明显。不知你注意了没有,上面的文字中多次用到低而宽,高而窄这样的词。这就是说,一个峰如果变宽了,势必会使峰变低,以保持衍射峰的面积基本不变。从这一点来看,如果各物相的衍射峰宽度不同,用面积来作为强度计算含量似乎要准确一些。
8、一个峰能表达一个物相强度吗?
上面说到,一般使用物相最强峰的峰高或者面积来表示这个物相的衍射强度。但是,真的对这样表示吗?如果你的样品是粉末,那么你知道粉末样品是什么形状的吗?
假如是完全球状的,那么,无论你怎么制备样品,结果都是无任何择优取向的。因此,用一个峰的强度就可以表述一个物相的强度。遗憾的是,没有几种粉末是真正球状的。更多的是其它形状。
比如,石墨往往是片状的,有些虽然不是片状的,但也是有棱有角的,或者你可以将它们想象为长方体,三角形等等。试想想,如果在样品的压片过程中,有人为的因素,比如抖动一下,结果会怎么样呢?粉末的排列是不是还会是完全无序的呢?肯定不是,它们总是会朝着“整齐”的姿态排列。这就是我们的不幸,因为粉末颗粒排列得越整齐,也就是它们越有序,越是我们所不期望的。
假如,我们所测量的样品是一个整个的块体,比如一块金属,也许刚刚铸造出来。情况算是很幸运的了。但是,我们的材料往往是要经过加工的。比如拉、拔、压、轧等等。在这个加工的过程中,晶粒总是通过一定的滑移面滑移,加工程度越高,晶粒排列得越整齐有序。我们称这种现象为“择优取向”或存在“织构”。一旦样品中存在择优取向,所测量出来的衍射峰强度就不能与理论计算的(按完全无序)结果一致。你会发现,我们通常测量的衍射谱与PDF卡片上的强度比完全不对应。
也许最强峰变成了最不强的峰了,甚至弱到看不到了。你还怎么用“该物相的最强峰”的强度来计算含量呢?也许有人会说,东方不亮西方亮,一个物相总会有一个最强峰呀。但是,此最强峰不是彼最强峰啊。它与本来的最强峰的衍射角、多重因子、结构因子等等都是不同的,是不可替代的!于是,有人就想到了一个事情:“一个物相的总散射强度应当是不变的”。试图使用一定散射区内的全部衍射峰的强度来作为物相的衍射强度,当然,此时的RIR值也要用此区域内的全部衍射峰强度来计算。这还算简单的想法,
还有人想出另一个点子,通过“极密度”来计算原来最强峰(因为存在择优取向变得不强了)应当有的强度。这个方法虽然说起来简单,但操作起来比较麻烦。实验时要采用较短波长的X射线,尽可能多地测量到物相的衍射线数。如果把计算方法编写成程序,就会变得简单一些。这不是一般科研工作者所要做的事情。甚至有些人连极密度是什么东西都不了解,怎么去做这个工作呢?(实在想知道,可以参考写有“织构”内容的X射线衍射教材)。办法总是人想出来的,你也可以参考相关的文献,想出自己的办法来。虽然,不管使用什么办法,都很难得到真正精确的结果,但总比不作任何处理要好一些。
9、假如我使用几种强度的表示方法来计算含量呢?
通过X射线衍射分析软件的“寻峰”功能。我们能得到衍射峰的峰高和峰面积,你不妨试试分别通过峰高和峰面积来计算物相的含量,然后再作个平均,也许会比单纯地使用峰高或峰面积来计算结果更准确一些。你会做峰形拟合吗?
X射线衍射峰的线形总是一种“钟罩”形函数,或者说可以使用一种钟罩形函数来拟合。你可以选择不同的峰形函数来做峰的拟合,看看哪个的误差最小,说明衍射峰能使用这种函数来拟合。拟合完成后,拟合函数的高度、宽度和面积就会列表出来。
这时,你又得到一组强度数据,分别用高度和面积计算物相含量,会得到怎样的结果呢?当然也可以加入到前面的两种结果中,作一个4个结果的平均。这只是我的建议,并非一定要这么做。当衍射峰没有重叠,没有宽化,没有变形时,4种结果没有多少差别。只有当存在这些因素时,才会出现差别。如果峰形重叠,使用拟合能将重叠峰分离开来,以消除其它物相附加的强度,单纯的寻峰是不能做到这一点的。但是,拟合时要特别注意背景线的取舍,拟合得不好可能会产生很大的误差。拟合峰数据用来计算一些粘土矿物的含量时,显得尤为有意义。因为这些物相的峰形往往不对称,矮而宽,底部拖得特别宽,而且多有重叠。单纯的寻峰数据使物相含量的计算结果偏小。不过,用拟合数据计算出来的又往往偏高。两者中和一下,也许与真实的结果差不离了。
10、有没有更好的办法?
历史在前进,技术在进步。60年代就有人(Riteveld)提出用“全谱拟合”的思想。所谓全谱拟合,就是用一个假想的函数来拟合实测的衍射谱。通过一步一步地迭代,使假想函数与实测线形的差别达到可能的最小值。
这个过程中,首先要输入的是样品中每个物相的晶体结构,通常需要精细的晶体结构,包括原子位置等等。考虑的因素也很多,比如晶格畸变、微观应变、原子错位等等。一步一步地进行,总会得到一个最终的值。
然后再通过这个函数的强度来计算物相的含量。当然,这个思想不全是为了物相的定量计算,可能得到的数据多种多样。包括精确的晶胞参数、微观应变、晶粒尺寸等等,不一而足。使用这样的程序需要你掌握较好的晶体学知识(不是那种仅仅知道晶体是有序排列的知识水平),而且还要知道物相的晶体结构,以及对X射线衍射较深的掌握。
有一个程序,叫做Maud,是一个什么国家的人写的,我懒得去看了,这个程序就能做。不过,这个人可能太忙或者太懒或者认为自己的程序还没有达到要写一个使用说明的程度,因此,他还没有写出一个帮助文件来。一切都靠自己去摸索,摸透了的就能用,也许花上几个月时间还没有摸出头绪来也是可能的。
在布鲁克的自带软件中有一个软件叫做TOPAS,能做这方面的工作,但是,真正会用的人可能不是很多。在帕纳科的 xpert highscore里也有一个模块,可以做这个工作。理学电机的仪器使用美国的软件JADE。为什么JADE里没有这样的模块呢?其实是有的。你看过它的菜单Options里有一个灰色的命令叫做“Easy quantitative”(快速定量)的东西吗?有的人安装上JADE后,一看这个东西是灰色的,总以为自己的软件来路不正,是不是少了什么。可以说,真的没少什么。因为本来就没有这个东西。我们在买Jade 5时就期望这个东西在新版本中变成黑的。但是,买了Jade 6以后,这个东西还是灰的。但是,也可以说真的是少了点东西。少了定量这一块。原因就是这一块需要单独购买。因为大家都不买,所有大家都没得用。我不知道为什么大家都不买。我想绝对不是因为大家都象我一样穷,可能的原因是,软件公司先有了菜单,后来想做这个程序,可能原先的想法相当于前面提到的半定量,帕纳科的软件里就有这个东西。但是,后来没有做了,因为技术进步了,形势改变了。现在干脆做成了一个很复杂的东西。这个东西也通过全谱拟合的方法来做定量分析。据说,这个东西的功能很强大,但是,要钱买。我没钱,没有买,因此也不知道到底怎么样。据说国内有人买了。不知道用得如何。另外,通过一些非X射线衍射专业的软件也能做这些工作,很多前辈在期刊上发表过一些论文。大家可以参考。
其它的,多余的,唠叨的话:有一些定量分析方法是专门的。比如,石油部有一个部颁标准,是针对粘土矿物定量分析的。不过,做一个样品不很容易,需要做多个实验,一个测试周期可能要一周左右。北京大学的江超华老师那里可以做这个工作,专业且收费应当算是很便宜。另一个国家标准是关于钢中残余奥氏体含量的测定。这个方法也比较成熟,不过,对于不同的钢有些差别。自己学学不是很难。国内会用Maud的人当数浙江大学分析测试中心的吕光烈老师。你如果对定量分析方法已经了解了个大概,你不妨去查一下文献,有N多的这方面的论文,多半是针对某些特定环境可以使用的一些方法。如果能拿来套用,则是你的幸运。
结晶度的计算实际上就是一种特殊的定量分析,其原理出自一个源头。知道怎么做定量,当然也会做结晶度的计算。
如果你还想知道得更多,比如无标样定量分析方法等等,可以参考李树棠老师的书,一本很老的书,我们当时的教材,叫做《金属X射线衍射与电子显微分析技术 1》在晶体之星可以下载到。后来,这本书叫做《晶体X射线衍射学基础》,冶金工业出版社出版,好象网上还没有电子版。也许书店有得卖。另外有一本叫做《X射线衍射技术及设备》,冶金工业出版社出版。丘利,胡玉和编著。你如果有这本书, X射线衍射方面的事情都可以先问它。如果你想通过全谱拟合的方法来计算定量,你得有一台好衍射仪。很多人都是用同步辐射光源来做。也有人用中子衍射来做。理学电机的18KW衍射仪也能做,因为它的功率大。不过,在衍射仪上做一个这样的测量需要几小时或者十几小时。