在陶瓷坯釉料配方计算和成分设计中,多采用手工进行,不仅耗费大量人力,而且计算出的结果不一定是最优解。近年来,国内外学者开发研制了一些最优化计算软件,大多数采用FORTRAN、BASIC、ALOGOL 60等语言在DOS环境下编写而成,当满足一定条件时,可得到较好的配料结果。但这些软件普遍存在一些问题:①DOS下软件界面不友好,不能实行人机对话,大量输入参数需要使用者非常熟悉该软件和设计该软件的语言。②缺乏相应的软件管理及维护功能,对大量数据也缺乏相应的管理功能。③没有提供在线帮助。为此,我们采用C语言设计了坯釉料配方优化程序,并利用Visual Foxpro 5.0开发工具编制了数据库管理系统和软件界面。
1 坯釉料配方最优化计算
1.1 坯、釉料配方计算的一般过程及约束条件
配方计算是在已知坯、釉料化学组成和一组备择原料化学组成的前提下,要求通过计算得到配方(即原料的配料比或配料组成),使得配方所得坯釉料的化学组成尽可能与设计的坯釉料化学组成接近。设Xij为第i种原料的第j种成分的百分比含量值,Yj为坯釉料配方和第j种成分的百分比含量值,n为所选原料种数,m为成分个数,fi(X)为第i种原料的百分比含量。按照要求,需解:
(1)若n=m,则上述方程组为一个n阶线性方程组,可直接求解;但其解很有可能为负数,且n=m这一条件通常很难满足。
针对这一情况,很多人采用线性规划的办法来寻优,但其关系曲线在很多情况下是非线性的。再加上考虑原料的价格因素,这就成为一个多目标规划问题,我们决定采用复合形法来求解。
1.2 数学模型的建立
1.2.1 复合形法
复合形法是求解约束非线性最优化问题的最佳解法,当然对线性规划问题依然有效。它来源于无约束非线性最优化问题的单纯形法。分析方程(1)中的约束条件是一个虚假负相关约束,当等式两边同除以一基准fi(X)时,得到比率全是自由变量,这样就在运算中“消掉”了这一约束条件。但方程(1)中还隐藏着一个潜在的约束条件,即所以,这是一个求解 minf(X) (X∈En)并受约束于gu(X)<0 (u=1,2,…,k)的非线性最优化问题。应首先在设计空间内选取n+1(或k,而n+1≤k≤2n)个初始点,构成一个初始复合形,并且这些初始点或所构造的复合形要位于受约束条件限制的可行域内。对于本项设计,复合形是由2n个点构成的不规则多面体。之后对复合形进行寻优迭代计算,即利用复合形各顶点处目标函数值的大小关系,判断目标函数值的下降方向,不断丢掉函数最大的所谓最差点(Xh),代之以既使目标函数值有所下降又能满足所有约束条件的一个新点,从而不断地构成新的复合形。如此重复计算,使新的复合形不断地向可行域的最优点移动和收缩,直至得到满足收敛准则的近似解为止。
1.2.2 目标函数的确定
由方程(1),再考虑到原料价格因素,这就成为了多目标规划问题。计算中,我们引入两个加权系数,用一个加权系数表示价格,另一个加权系数表示各个分目标函数的相对重要程度,它的选取决定了坯釉料的各种化学成分的计算结果值的偏差大小。因此,加权系数的选择对本算法相当重要,应慎重考虑。这样采用统一目标的方法将各个值乘以加权系数,就可求解一个目标函数的最小值。它的实质就是将各个目标函数f1(X),f2(X),…,fn(X)统一到一个总的“统一目标函数”f(X)中,即令f(X)=f{f1(X),f2(X),…,fn(X)}使问题转化为求解min(f(X) X∈En) 且受约束于gu(X)<0 (u=1,2,…,k)的形式,把多目标函数的最优化问题转化为单目标函数的最优化问题来求解。
由此,可得出以下数学模型:式中:wi——各种原料含量的加权值;
wj——化学成分含量的加权值;
f(X)——加权处理后的统一目标函数。
1.3 最优配方计算
其基本流程为: 程序采用Turbo C编成,并在Visual C++5.0平台上编译而成,运算速度很快,优于其他算法。计算初始,人机进行对话,应用人员参与决策,使配方计算精益求精,找到配方计算的最佳协调解。实际上,对于应用者来说,这已成为一个多目标的决策分析过程。
2 集成软件设计
2.1 数据库管理系统
Visual Foxpro 5.0是Microsoft公司1996年推出的基于Windows环境下的新一代数据库管理系统开发平台。它采用了在DBMS上引入面向对象的编程技术,Rushmore、SQL等查询技术,具有良好的数据库管理功能和极强的界面、帮助设计能力。本软件包不仅在数据库管理模块上采用VFP5编成,而且其主要界面也采用它来设计。
2.2 程序的主要模块
本软件包主要包括五大模块:数据库数据管理、优化计算、坯釉性能计算、系统维护、帮助系统。其结构框图如下:
2.2.1 坯釉性能计算模块
本模块大部分性能公式均采用文献[10]编辑而成,坯釉的烧成温度公式采用了文献[11]上的新公式,计算较为准确。
2.2.2 帮助系统
本软件的帮助系统建立在运行于Windows环境上的Windows-style在线帮助系统。采用Ms Word 7.0作为文字编辑器,用Windows 95中的画笔绘制帮助画面图形,用HC31.exe进行编译,采用Windows Help(Winhelp.exe)作帮助引擎。其流程图为:此帮助系统适用于Windows操作系统。
2.3 Visual Foxpro与C语言接口设计VFP应用程序和C语言优化程序的接口设计,我们采用方法为:用VFP设计软件界面,并用与VFP配套的Visual C++5.0将C语言应用程序编译成可执行的快速视窗应用程序,通过Windows提供的PIF编辑器将它设定为可以运行于Windows后台的DOS程序。C程序参数通过共同约定的数据文件格式来获得。输入数据由VFP接收,然后将它转为文本文件提供给优化模块,启动优化模块进行计算,计算结果以文本文件传送给VFP设计界面显示出来。
3 结语
采用VFP数据库管理开发系统和C语言将数据库技术与陶瓷配方优化技术结合起来,开发的Windows版陶瓷配方系统,功能强大,能满足各类陶瓷生产厂家的要求;在线帮助使用户不需培训便可很快学会使用该软件包,值得推广。