网络首发时间: 2016-07-11 13:34
稀有金属 2017,41(08),890-897 DOI:10.13373/j.cnki.cjrm.xy15112801
用MATLAB绘制Pb-Sn-Sb三维立体相图
周亮 孔令鑫 郁青春 刘大春 杨斌
昆明理工大学真空冶金国家工程实验室云南省有色金属真空冶金重点实验室
云南省复杂有色金属资源清洁利用国家重点实验室
摘 要:
借助Getdata Graph Digitizer图像数字化软件, 从三元相图液相面投影图提取原始数据;借助MATLAB编程软件, 调用回归函数 (regress) 输出液相面曲面方程的回归系数;调用MATLAB三维绘图函数 (plot3, mesh, surf) , 编写程序绘制Pb-Sn-Sb三维立体相图。结果表明:通过Getdata Graph Digitizer软件, 可以准确提取三元相图液相面投影图的等温线数据, 提高了人工手动读取数据的效率;通过拟合曲面方程法, 可以得到各个液相面曲面方程的回归系数和曲面方程, 拟合效果很好;MATLAB绘制的三维立体相图, 通过分析原始温度和拟合温度, 最大误差为5.8839℃, 最小误差为0.0297℃, 相对最大误差为2.23%, 相对最小误差为0.01%, 说明利用MATLAB绘制Pb-Sn-Sb三维立体相图的方法是准确可行的。利用已知三元相图液相面的曲面方程, 可以获得等温线之间任意组分的液相面理论温度, 进而为火法工艺提供一定的理论指导。
关键词:
MATLAB;Pb-Sn-Sb三维相图;Getdata Graph Digitizer;曲面拟合方程;
中图分类号: TG146.12
作者简介:周亮 (1990-) , 男, 甘肃武威人, 硕士研究生, 研究方向:三元合金体系相图和二次资源综合回收;E-mail:zhllut@126.com;;郁青春, 教授;电话:0871-65161583;E-mail:yqcy@163.com;
收稿日期:2015-12-04
基金:国家自然科学基金面上项目 (51474116);国家自然科学联合基金支持项目 (U1502271);云南省科学基金支持项目 (2014HA003) 资助;
Three-Dimensional Phase Diagrams of Pb-Sn-Sb Drawn by MATLAB
Zhou Liang Kong Lingxin Yu Qingchun Liu Dachun Yang Bin
Key Laboratory of Vacuum Metallurgy for Nonferrous Metal of Yunnan Province, The National Engineering Laboratory for Vacuum Metallurgy, Kunming University of Science and Technology
State Key Laboratory of Complex Nonferrous Metal Resources Clear Utilization in Yunnan Province
Abstract:
The original data were extracted from the ternary phase diagram liquid surface projection by Getdata Graph Digitizer image digitization software. The regression coefficients of liquid surface curved surface equations were got by regression function (regress) of MATLAB. The three-dimensional phase diagrams of Pb-Sn-Sb were plotted by writing programs with MATLAB in which the three dimensional plotting function (plot3, mesh, surf) was applied. The results showed that Getdata Graph Digitizer could extract theisotherm data of liquid surfacemore accurately and more effectively than manual read. By the fitting surface equation method, different surface equations and regression coefficients of liquid surface could be obtained and the fitting effect was good. By analyzing the original temperature and fitting temperature of three-dimensional phase diagrams, it was found that the maximum error was 5. 8839 ℃, the minimum error was 0. 0297 ℃, the relative maximum error was 2. 23%, the minimum relative error was 0. 01%. It was shown that drawing three-dimensional phase diagrams of Pb-Sn-Sb by MATLAB was accurate and feasible. Using the known liquid surface equation of ternary phase diagram on the surface, any theoretical temperature of liquid surface between the isotherms could be obtained, which provided certain theoretical guidance for pyrometallurgical process.
Keyword:
MATLAB; three-dimensional phase diagram of Pb-Sn-Sb; Getdata Graph Digitizer; surface fitting equations;
Received: 2015-12-04
相图是处于平衡状态下体系中的组成、物相和外界条件相互关系的几何描述, 是研究物料状态、性质及分离和提纯的重要依据。从20世纪70年代以来, 随着热力学、统计力学和溶液理论以及计算方法的发展, 相图研究从以相平衡的试验测定为主进入了热化学与计算机耦合研究的新阶段, 并发展成为介于热化学、相平衡和溶液理论预测计算技术之间的交叉学科分支———CALPHD (calculation of phase diagram) [1,2,3]。之后, 随着ThermoCalc, Fact Sage软件系统的出现与完善, 为人们研究相图提供了很好的相图计算工具, 但是它们只能绘制二元相图和多元体系的投影图、等温截面图等, 并不能绘制三维立体相图[4]。
恒压下, 三元相图必须在三维条件下才能完全表示其中各相之间的关系, 而传统上使用的三元相图都是其平面投影图, 平面图包含的信息少, 又需要很强的空间想象力才能把平面图中的三维信息还原到三维坐标中去, 这样就大大降低了人们使用三元相图解决实际问题的效率[5]。另外, 传统的三元相图, 从液相面投影图上仅能获得等温线上的温度值, 而对于两条等温线之间组成点的温度, 仍需要估算, 导致实际使用很不方便;而三维立体相图的绘制, 就有助于得到液相面任意组成的具体温度。因此, 有必要研究如何绘制三维立体相图, 建立相图的数字化系统, 提高使用相图的效率。
在相图的数字化系统中, 通常人们研究的大多都是二维相图, 而对于三维相图研究的较少。陈世荣等[6]应用Inprise公司的快速开发工具Delphi5编写三元相图自动绘制的专用程序, 可以快速、精确地绘制出满意的三元体系的平衡相图。赵玲[7]讨论了合金相图信息的存储与处理, 利用VB6.0编程工具作为系统开发平台, 建立了合金平衡相图的数字化处理系统软件。郑明[8]对三元相图的液相面投影图划分网格, 用插值的方法获得投影图中的原始数据, 利用MATLAB绘图函数绘制出了Al2O3-Si O2-Ti O2三维立体相图。李英等[9]以VC++为平台, 利用面向对象的编程技术和可视化技术, 研究开发了数字化相图和应用的软件, 采用曲线拟合的方法绘制了不同的相图曲线, 实现了相图应用的数字化。白平平等[10]借助MATLAB软件, 先后采用插值函数和曲面拟合的方法, 编写程序绘制出Ag-Pb-Sn三维立体相图。Kong等[11]通过分子相互作用体积模型 (molecular interaction volume model, MIVM) , 对Pb-Sn-Sb三元合金真空蒸馏分离的活度进行了预测。然而, 有关Pb-Sn-Sb三元体系三维立体相图的绘制未见报道。本文借助Getdata Graph Digitizer图像数据化软件提取相图原始数据, 采用操作简单且应用广泛的MATLAB编程语言, 绘制Pb-Sn-Sb三维立体相图, 进而为金属合金分离与提纯、材料加工成型与控制、产品成分设计与配料计算等工艺进一步研究提供重要的参考。
1 理论模型
目前, 三元相图在许多领域中有着重要的应用, 它既能具体反映实际三元体系的组成相及其温度转变的规律, 又能为理解多元体系组织及组织转变提供推理依据。随着计算机软件技术的快速发展, 利用计算机辅助工具[12,13]可以直观地显示出完整的三维立体相图、平面投影图、等温截面图和多温截面图等, 甚至可以用动态的形式来展现三维立体图。三元体系数字化相图的构筑[14], 就是研究如何根据底面投影图中的等温线数据在三维坐标系中把三维立体图形还原。
1.1 三维立体相图的绘制难点
绘制三维立体相图具有以下两大难点: (1) 原始数据的提取;三元系投影图中不但包含各组元的浓度, 还含有各个成分点所对应的温度值, 如何把平面图中的三维信息还原到三维坐标系中, 是绘制三维立体相图的关键。 (2) 液相面的绘制;如何根据液相面的数据, 回归出液相面的方程或求出等温线之间点的温度, 也是绘制三维立体相图的关键。
1.2 原始相图的选择
绘制液相面三维立体相图的关键是得到液相面上足够多的点, 即需要从原始相图中取得足够多的原始数据, 所以选择具有热力学性质一致性的原始相图意义重大, 从而保证绘制的三维立体相图准确精准。原始数据点的获取, 主要来自二元相图和三元相图液相面投影图。本文Pb-Sn、PbSb、Sb-Sn三个基本二元相图源自Fact Sage 6.4官方网站相图数据库, 如图1所示;Pb-Sn-Sb三元相图液相面投影图源自《美国金属手册》第3卷合金相图[15], 如图2所示。
图1 三个基本二元相图Fig.1 Three basic binary phase diagrams (a) Pb-Sn; (b) Pb-Sb; (c) Sb-Sn
图2 Pb-Sn-Sb液相面投影图Fig.2 Liquid projections of Pb-Sn-Sb
(a) Pb-Sn-Sbternary phase diagram; (b) Partial enlarged drawing
1.3 原始数据的提取
1.3.1 原始数据的坐标转换
在三元相图中, 三元系的组成通常采用罗策布浓度三角形[16]表示。组元的浓度通常可用质量分数或者摩尔分数表示, 组成点的坐标根据平行线作图规则确定。为了方便MATLAB在直角坐标系中绘制三维立体相图, 所以需要把三角形坐标转化为直角坐标表示。如图3所示, 表示Pb-Sn-Sb三元相图的简单示意图;选取Pb为坐标原点, 以Pb-Sn水平方向为X轴, 垂直方向为Y轴建立直角坐标系。在罗策布浓度三角形中, a表示Sn的摩尔分数, b表示Sb的摩尔分数, c表示Pb的摩尔分数;在直角坐标系中, x表示Sn的摩尔分数, y表示Sb的摩尔分数。对于图中任意一点F, 直角坐标F (x, y) 与三角坐标F (a, b) 的转换关系如下:
图3 直角坐标与三角坐标之间的转换关系Fig.3 Conversion relationship between rectangular coordinate and triangular coordinates
1.3.2 相图原始数据的提取
图2是Pb-Sn-Sb三元相图液相面的投影图, 为了构筑Pb-Sn-Sb液相面的三维立体图, 必须把投影图中的各条等温线重新还原到三维坐标系中。根据三元体系三角相图的原理, 只要从投影图中得到任意两个组元的浓度组成与温度的数值, 根据这些数值就可以构筑三维立体相图。根据相图数字化系统的研究分析, 在获取原始数据之前通常要对液相面投影图划分网格。原始数据库的数据主要有等温线与网格线交点数据、二元边界数据、节点 (网格线交点) 数据以及相界分界线 (共晶线、包晶线) 数据组成。其中, 等温线与网格线交点数据可以通过三元相图液相面投影图获取, 二元边界数据可以通过三个基本二元相图获取, 而对于节点数据和相界分界线数据, 本文借助MATLAB多项式拟合获得其温度值, 并输出至Excel表格方便之后绘制相图时调用和验证分析。对于相图数据的读取, 通常采用人工手动划分的方法, 存在误差偏大、精度低的特点, 从而影响三维相图绘制的准确性。
本文对于二元相图数据的读取, 借助Fact Sage官网下载的Viewer软件, 可以准确读取相图中某一点的组分浓度与其对应的温度, 将读取数据保存在Excel表格之中, 方便之后MATLAB主程序的调用。对于三元相图数据的读取, 借助Getdata Graph Digitizer图标图像数据化软件[17,18] (如图4所示) , 直接在三元相图中建立三角坐标系, 准确便利读取三元相图液相面的交点数据坐标, 并输出成特定需要的格式, 进一步方便Excel, Origin, MATLAB等软件的作图与调用。
1.4 用MATLAB绘制Pb-Sn-Sb三元立体相图
本文采用多元线性回归的思想, 借助MATLAB软件, 利用曲面拟合函数绘制Pb-Sn-Sb三维立体相图。对于三维立体相图, 液相面的数学拟合模型应根据情况而定, 一般选择采用平方表达式或立方表达式, 即:
式中:T表示温度;x1, x2表示三组元中任意两个组元的浓度;k0, k1, ……k9表示曲面方程的拟合系数。本文中液相面的曲面拟合方程, 采用立方表达式的形式如式 (5) :
对于式 (5) , 为了方便MATLAB多项式拟合, 采用线性回归的数学思想[19], 令:
将上述关系代入立方表达式, 则式 (5) 为:
1.4.1 拟合曲面方程法绘制Pb-Sn-Sb三维相图
调用MATLAB函数库中的regress函数回归进行模型分析, 将Y (温度) 和X (组分) 作为输入, 模型执行后将计算结果和相关系数返回输出, 具体regress函数完整的形式如下:
图4 Getdata Graph Digitizer的工作界面Fig.4 Working interface of Getdata Graph Digitizer
函数返回值中, b是模型回归系数向量, bint是模型回归系数置信度下的置信区间, r是模型残差序列, rint是残差序列的置信区间, stats输出模型的统计变量信息, 包括拟合度r2值, 模型显著性F值, 显著性概率P值以及模型方差的估计值。输出模型的有效性, 可通过线性拟合度r2值判断, 因此只需要表示出拟合度r2值即可, 表1为模型回归分析得到的回归系数和线性拟合度。
1.4.2 确定曲面方程的相界边界限制条件
调用MATLAB函数库中的polyfit函数进行多项式拟合[20], 确定出曲面方程的相界边界限制条件。假设由polyfit函数建立的多项式如下:
具体其调用方法为:p=polyfit (x, y, n) , 其中:x, y为已知的数据组, n为拟合多项式的阶数, 向量p返回输出拟合多项式的系数。一般来说, 多项式拟合中阶数n越大, 拟合精度越高;但是为了计算简单, 本文采用3阶以下的多项式限制条件, 表2为曲面方程的相界边界限制条件。
1.4.3 绘制三维立体相图
调用MATLAB中函数plot3绘制三维曲线图形, 语法格式为:plot3 (X1, Y1, Z1, Line Spec) , 其中X1, Y1, Z1是同型的向量或矩阵, 用参数Line Spec指定画线的线型、标记符号和颜色;调用MATLAB中函数mesh绘制三维网格图形, 语法格式为mesh (X, Y, Z) , 其中X, Y分别表示矩阵, 用参数Z定义网格线的颜色;调用MATLAB中函数surf绘制三维曲面图形, 具体使用语法与mesh函数相同[21]。
表1 曲面方程的回归系数和线性拟合度Table 1Regression-coefficient and linearfitting-coefficient of surface equations 下载原图
表1 曲面方程的回归系数和线性拟合度Table 1Regression-coefficient and linearfitting-coefficient of surface equations
表2 曲面方程的相界边界限制条件Table 2 Phase boundary restricted condition of surface equations 下载原图
表2 曲面方程的相界边界限制条件Table 2 Phase boundary restricted condition of surface equations
综上所述, 从表1可以看出, 通过多元线性拟合回归分析, 可以获得各个曲面方程的回归系数, 由此可以得到各个相区的曲面拟合方程, 而且各个相区的线性拟合度都为r2=1, 说明曲面方程相关性很好;从表2可以看出, 通过多项式拟合, 可以获得各个相界边界线的限制条件。根据上述过程绘制出Pb-Sn-Sb三元立体相图 (如图5所示) , 可以从不同的角度视角展示液相面的分布规律。
2 理论计算与分析
2.1 曲面拟合回归方程的验证
虽然借助MATLAB软件曲面拟合, 可以绘制出Pb-Sn-Sb三维立体相图, 为了进一步验证曲面拟合效果的可靠性, 将三元相图液相面投影图中等温线原始数据与拟合数据进行对比并分析 (如表3所示) 。
由表3可以看出, 对于相图中的任一组分点, 原始温度值与拟合温度值的最大误差为5.8839℃, 最小误差为0.0297℃, 相对最大误差为2.23%, 相对最小误差为0.01%。由此可以看出, 通过曲面拟合方程法绘制Pb-Sn-Sb三维立体相图是可靠的。
2.2 利用拟合曲面方程获得任意组分的温度
通过多元线性拟合回归, 已经得到了各个液相面的曲面拟合方程;通过三元体系的液相面投影图, 借助Getdata Graph Digitizer可以获得任意点的组分;然后利用MATLAB可以计算并输出等温线之间任意组分的理论液相面温度。虽然, MATLAB程序设计语言具有很强的绘图和图形处理功能, 但是执行速度缓慢且应用不是很普遍, 对于初学者有一定的难度。为了实现人机交互式工作, 所以采用面向对象的编程方法, 考虑采用Visual Basic编写相图系统, 通过外部控件可视化界面轻松直接调用MATLAB的绘图功能[22,23]。
图5 不同视角下的Pb-Sn-Sb三维相图Fig.5 Three-dimensional phase diagrams of Pb-Sn-Sb in different point of view
(a) Complete three-dimensional phase of Pb-Sn-Sb; (b) Phase diagram from view of Pb-Sn; (c) Phase diagram from view of Pb-Sb; (d) Phase diagram from view of Sn-Sb
表3 液相面回归计算与误差分析Table 3 Regression calculation and error analysis of liquid surface 下载原图
下载原表
表3 液相面回归计算与误差分析Table 3 Regression calculation and error analysis of liquid surface
3 结论
1.借助Fact-Sage和Getdata Graph Digitizer软件提取相图原始数据, 提高了人工手动读取数据的效率, 而且提高了数据的准确性, 方便Pb-Sn-Sb三维立体相图的绘制。
2.借助MATLAB曲面拟合方程法, 可以绘制出液相面的三维立体相图;通过回归计算和误差分析, 验证了曲面拟合法是可靠的;通过曲面拟合法得到曲面方程, 可以计算出等温线之间任意组分的液相面温度。
3.采用MATLAB和Visual Basic语言以及Excel相互结合, 可设计出操作界面简单的相图数字化系统。
参考文献
[1] Dai Z H, Lu J T, Kong G.Progress in study on CALPHAD approach[J].Materials Review, 2006, 20 (4) :94. (戴占海, 卢锦堂, 孔纲.相图计算的研究进展[J].材料导报, 2006, 20 (4) :94.)
[2] Li Y F, Xu H, Liu X L, Jin Z P.Progress of binary alloy phase diagram and a new method based on firstprinciple[J].Materials Review, 2010, 24 (2) :133. (李燕峰, 徐慧, 刘小良, 金展鹏.二元合金相图进展及基于第一性原理新方法[J].材料导报, 2010, 24 (2) :133.)
[3] Du Z M.CALPHAD technique and its applications[A].The 15th National Conference of Phase Diagrams of China and Multilateral Symposium on Phase Diagrams and Materials Design[C].Shenyang, 2010.18. (杜振民.CALPHAD技术及其应用[A].第十五届全国相图学术会议暨相图与材料设计国际研讨会[C].沈阳, 2010.18.)
[4] Qiao Z Y, Hao S M.New progress of CALPHAD approach[J].Journal of Materials and Metallurgy, 2005, 4 (2) :83. (乔芝郁, 郝士明.相图计算研究的进展[J].材料与冶金学报, 2005, 4 (2) :83.)
[5] Zhang Q Y, Zhuang H S.Handbook of Ternary Alloy Phase Diagrams[M].Beijing:Mechanical Industry Press, 2011.61. (张启运, 庄鸿寿.三元合金相图手册[M].北京:机械工业出版社, 2011.61.)
[6] Chen S R, Xia S P, Gao S Y.Program design and its application for drawing ternary phase diagram[J].Computers and Applied Chemistry, 2002, 19 (5) :607. (陈世荣, 夏树屏, 高世扬.三元相图绘制编程与应用[J].计算机与应用化学, 2002, 19 (5) :607.)
[7] Zhao L.Digital progressing of alloy phase equilibrium Graph[J].Journal of UEST of China, 2002, 31 (4) :366. (赵玲.合金平衡相图的数字化处理[J].电子科技大学学报, 2002, 31 (4) :366.)
[8] Zheng M.The Investigation on Digital Phase Diagram of Ternary Oxide System[D].Chongqing:Chongqing University, 2006.45. (郑明.三元氧化物相图的数字化研究[D].重庆:重庆大学, 2006.45.)
[9] Li Y, Gao Z, Gao M.Research on digital alloy phase diagrams[J].Computers and Applied Chemistry, 2006, 24 (3) :391. (李英, 高志, 高明.数字化合金相图的研究[J].计算机与应用化学, 2006, 24 (3) :391.)
[10] Bai P P, Liu D C, Kong L X, Ma M Y, Hu L, Yang B.Drawing method of Ag-Pb-Sn three-dimensional phase diagram[J].Chinese Journal of Rare Metals, 2013, 37 (6) :930. (白平平, 刘大春, 孔令鑫, 马明煜, 胡亮, 杨斌.Ag-Pb-Sn三维相图的绘制方法[J].稀有金属, 2013, 37 (6) :930.)
[11] Kong L X, Yang B, Xu B Q, Li Y F, Liu D C, Dai Y N.Application of molecular interaction volume model in separation of Pb-Sn-Sb ternary alloy by vacuum distillation[J].Transactions of Nonferrous Metals Society of China, 2013, 23 (8) :2408.
[12] Chen J H.The Development of Computer Aided Teaching Software for Ternary Phase Diagrams and Crystal Detect[D].Wuhan:Wuhan University of Hydraulic and Electrical Engineering, 2000.55. (陈建华.三元相图和晶体缺陷计算机辅助教学软件的开发[D].武汉:武汉水利电力大学, 2000.55.)
[13] Kang J W, Liu B C.Computer aided teaching system for multicomponent phase-equilibria[J].Shanghai Metals, 1998, 20 (2) :23. (康进武, 柳百成.多元平衡相图计算机辅助教学研究[J].上海金属, 1998, 20 (2) :23.)
[14] Dong L Y, Chen D F, Wang C J, Bai C G.Digital processing of Al2O3-Si O2-Ti O2ternary phase diagram[J].Journal of the Chinese Rare Earth Society, 2008, 22 (8) :101. (董凌燕, 陈登福, 汪传均, 白晨光.Al2O3-Si O2-Ti O2三元相图的数字化[J].中国稀土学报, 2008, 22 (8) :101.)
[15] ASM International.ASM Metals Handbook of Alloy Phase Diagram[M].The Materials Information Company, 2001.1676.
[16] Zhao J X, Zhang D L, Ma J, Li L B.Metallurgical Principle[M].Beijing:Metallurgical Industry Press, 2012.37. (赵俊学, 张丹力, 马杰, 李林波.冶金原理[M].北京:冶金工业出版社, 2012.37.)
[17] Li X L, Ren Y, Chen Y.Discussion on application of Graph Digitizer in metrological verification[J].Measurement and Testing Technology, 2014, 41 (2) :1. (黎晓玲, 任昀, 陈扬.Graph Digitizer在计量检定工作中的应用探讨[J].计量与测试技术, 2014, 41 (2) :1.)
[18] Hossam Z, Vu L H T, Ahmed A.How to extract data from graphs using Plot Digitizer or Getdata Graph Digitizer[J].Technical Report, 2015, 6:2.
[19] Yang H, Liu Q S, Zhong B.Mathematical Statistics[M].Beijing:High Education Press, 2014.126. (杨虎, 刘琼荪, 钟波.数理统计[M].北京:高等教育出版社, 2004.126.)
[20] Zhou K L, Deng C H.Basic and Applied Tutorial of MATLAB[M].Beijing:Peking University Press, 2007.74. (周开利, 邓春晖.MATLAB基础及其应用教程[M].北京:北京大学出版社, 2007.74.)
[21] Chen M.Handbook of Quick Efficiency Function on MATLAB[M].Beijing:Publishing House of Electronics Industry, 2012.249. (陈明.MATLAB函数功能速查效率手册[M].北京:电子工业出版社, 2012.249.)
[22] Ma P Y, Luo H R, Zhou S Z.Application of COM components based MATLAB and VB mixed programming method in mechanical reliability engineering[J].Computers Applications and Software, 2012, 29 (7) :189. (马培勇, 罗红润, 周思柱.基于COM组件的MATLAB和VB混编方法在机械可靠性工程中的应用[J].计算机应用与软件, 2012, 29 (7) :189.)
[23] Sun J, Cao X W.Combination of VB and MATLAB for design of image processing system[J].Mechanical Engineering and Automation, 2015, 8 (4) :25. (孙进, 曹肖伟.VB和MATLAB混合编程及其在图像处理软件中的应用[J].机械工程与自动化, 2015, 8 (4) :25.)