在陶瓷坯釉料配方計算和成分設(shè)計中,多采用手工進(jìn)行,不僅耗費(fèi)大量人力,而且計算出的結(jié)果不一定是最優(yōu)解。近年來,國內(nèi)外學(xué)者開發(fā)研制了一些最優(yōu)化計算軟件,大多數(shù)采用FORTRAN、BASIC、ALOGOL 60等語言在DOS環(huán)境下編寫而成,當(dāng)滿足一定條件時,可得到較好的配料結(jié)果。但這些軟件普遍存在一些問題:①DOS下軟件界面不友好,不能實(shí)行人機(jī)對話,大量輸入?yún)?shù)需要使用者非常熟悉該軟件和設(shè)計該軟件的語言。②缺乏相應(yīng)的軟件管理及維護(hù)功能,對大量數(shù)據(jù)也缺乏相應(yīng)的管理功能。③沒有提供在線幫助。為此,我們采用C語言設(shè)計了坯釉料配方優(yōu)化程序,并利用Visual Foxpro 5.0開發(fā)工具編制了數(shù)據(jù)庫管理系統(tǒng)和軟件界面。
1 坯釉料配方最優(yōu)化計算
1.1 坯、釉料配方計算的一般過程及約束條件
配方計算是在已知坯、釉料化學(xué)組成和一組備擇原料化學(xué)組成的前提下,要求通過計算得到配方(即原料的配料比或配料組成),使得配方所得坯釉料的化學(xué)組成盡可能與設(shè)計的坯釉料化學(xué)組成接近。設(shè)Xij為第i種原料的第j種成分的百分比含量值,Yj為坯釉料配方和第j種成分的百分比含量值,n為所選原料種數(shù),m為成分個數(shù),fi(X)為第i種原料的百分比含量。按照要求,需解:
(1)若n=m,則上述方程組為一個n階線性方程組,可直接求解;但其解很有可能為負(fù)數(shù),且n=m這一條件通常很難滿足。
針對這一情況,很多人采用線性規(guī)劃的辦法來尋優(yōu),但其關(guān)系曲線在很多情況下是非線性的。再加上考慮原料的價格因素,這就成為一個多目標(biāo)規(guī)劃問題,我們決定采用復(fù)合形法來求解。
1.2 數(shù)學(xué)模型的建立
1.2.1 復(fù)合形法
復(fù)合形法是求解約束非線性最優(yōu)化問題的最佳解法,當(dāng)然對線性規(guī)劃問題依然有效。它來源于無約束非線性最優(yōu)化問題的單純形法。分析方程(1)中的約束條件是一個虛假負(fù)相關(guān)約束,當(dāng)?shù)仁絻蛇呁砸换鶞?zhǔn)fi(X)時,得到比率全是自由變量,這樣就在運(yùn)算中“消掉”了這一約束條件。但方程(1)中還隱藏著一個潛在的約束條件,即所以,這是一個求解 minf(X) (X∈En)并受約束于gu(X)<0 (u=1,2,…,k)的非線性最優(yōu)化問題。應(yīng)首先在設(shè)計空間內(nèi)選取n+1(或k,而n+1≤k≤2n)個初始點(diǎn),構(gòu)成一個初始復(fù)合形,并且這些初始點(diǎn)或所構(gòu)造的復(fù)合形要位于受約束條件限制的可行域內(nèi)。對于本項設(shè)計,復(fù)合形是由2n個點(diǎn)構(gòu)成的不規(guī)則多面體。之后對復(fù)合形進(jìn)行尋優(yōu)迭代計算,即利用復(fù)合形各頂點(diǎn)處目標(biāo)函數(shù)值的大小關(guān)系,判斷目標(biāo)函數(shù)值的下降方向,不斷丟掉函數(shù)最大的所謂最差點(diǎn)(Xh),代之以既使目標(biāo)函數(shù)值有所下降又能滿足所有約束條件的一個新點(diǎn),從而不斷地構(gòu)成新的復(fù)合形。如此重復(fù)計算,使新的復(fù)合形不斷地向可行域的最優(yōu)點(diǎn)移動和收縮,直至得到滿足收斂準(zhǔn)則的近似解為止。
1.2.2 目標(biāo)函數(shù)的確定
由方程(1),再考慮到原料價格因素,這就成為了多目標(biāo)規(guī)劃問題。計算中,我們引入兩個加權(quán)系數(shù),用一個加權(quán)系數(shù)表示價格,另一個加權(quán)系數(shù)表示各個分目標(biāo)函數(shù)的相對重要程度,它的選取決定了坯釉料的各種化學(xué)成分的計算結(jié)果值的偏差大小。因此,加權(quán)系數(shù)的選擇對本算法相當(dāng)重要,應(yīng)慎重考慮。這樣采用統(tǒng)一目標(biāo)的方法將各個值乘以加權(quán)系數(shù),就可求解一個目標(biāo)函數(shù)的最小值。它的實(shí)質(zhì)就是將各個目標(biāo)函數(shù)f1(X),f2(X),…,fn(X)統(tǒng)一到一個總的“統(tǒng)一目標(biāo)函數(shù)”f(X)中,即令f(X)=f{f1(X),f2(X),…,fn(X)}使問題轉(zhuǎn)化為求解min(f(X) X∈En) 且受約束于gu(X)<0 (u=1,2,…,k)的形式,把多目標(biāo)函數(shù)的最優(yōu)化問題轉(zhuǎn)化為單目標(biāo)函數(shù)的最優(yōu)化問題來求解。
由此,可得出以下數(shù)學(xué)模型:式中:wi——各種原料含量的加權(quán)值;
wj——化學(xué)成分含量的加權(quán)值;
f(X)——加權(quán)處理后的統(tǒng)一目標(biāo)函數(shù)。
1.3 最優(yōu)配方計算
其基本流程為: 程序采用Turbo C編成,并在Visual C++5.0平臺上編譯而成,運(yùn)算速度很快,優(yōu)于其他算法。計算初始,人機(jī)進(jìn)行對話,應(yīng)用人員參與決策,使配方計算精益求精,找到配方計算的最佳協(xié)調(diào)解。實(shí)際上,對于應(yīng)用者來說,這已成為一個多目標(biāo)的決策分析過程。
2 集成軟件設(shè)計
2.1 數(shù)據(jù)庫管理系統(tǒng)
Visual Foxpro 5.0是Microsoft公司1996年推出的基于Windows環(huán)境下的新一代數(shù)據(jù)庫管理系統(tǒng)開發(fā)平臺。它采用了在DBMS上引入面向?qū)ο蟮木幊碳夹g(shù),Rushmore、SQL等查詢技術(shù),具有良好的數(shù)據(jù)庫管理功能和極強(qiáng)的界面、幫助設(shè)計能力。本軟件包不僅在數(shù)據(jù)庫管理模塊上采用VFP5編成,而且其主要界面也采用它來設(shè)計。
2.2 程序的主要模塊
本軟件包主要包括五大模塊:數(shù)據(jù)庫數(shù)據(jù)管理、優(yōu)化計算、坯釉性能計算、系統(tǒng)維護(hù)、幫助系統(tǒng)。其結(jié)構(gòu)框圖如下:
2.2.1 坯釉性能計算模塊
本模塊大部分性能公式均采用文獻(xiàn)[10]編輯而成,坯釉的燒成溫度公式采用了文獻(xiàn)[11]上的新公式,計算較為準(zhǔn)確。
2.2.2 幫助系統(tǒng)
本軟件的幫助系統(tǒng)建立在運(yùn)行于Windows環(huán)境上的Windows-style在線幫助系統(tǒng)。采用Ms Word 7.0作為文字編輯器,用Windows 95中的畫筆繪制幫助畫面圖形,用HC31.exe進(jìn)行編譯,采用Windows Help(Winhelp.exe)作幫助引擎。其流程圖為:此幫助系統(tǒng)適用于Windows操作系統(tǒng)。
2.3 Visual Foxpro與C語言接口設(shè)計VFP應(yīng)用程序和C語言優(yōu)化程序的接口設(shè)計,我們采用方法為:用VFP設(shè)計軟件界面,并用與VFP配套的Visual C++5.0將C語言應(yīng)用程序編譯成可執(zhí)行的快速視窗應(yīng)用程序,通過Windows提供的PIF編輯器將它設(shè)定為可以運(yùn)行于Windows后臺的DOS程序。C程序參數(shù)通過共同約定的數(shù)據(jù)文件格式來獲得。輸入數(shù)據(jù)由VFP接收,然后將它轉(zhuǎn)為文本文件提供給優(yōu)化模塊,啟動優(yōu)化模塊進(jìn)行計算,計算結(jié)果以文本文件傳送給VFP設(shè)計界面顯示出來。
3 結(jié)語
采用VFP數(shù)據(jù)庫管理開發(fā)系統(tǒng)和C語言將數(shù)據(jù)庫技術(shù)與陶瓷配方優(yōu)化技術(shù)結(jié)合起來,開發(fā)的Windows版陶瓷配方系統(tǒng),功能強(qiáng)大,能滿足各類陶瓷生產(chǎn)廠家的要求;在線幫助使用戶不需培訓(xùn)便可很快學(xué)會使用該軟件包,值得推廣。