王高俊,黃河清,章明洪
(1.上海化工院檢測有限公司,上海 200062; 2.上?;ぱ芯吭河邢薰?,上海 200062)
社會生活的很多方面需要化學(xué)分析及其結(jié)果,例如貿(mào)易結(jié)算中商品的有效成分含量是否達(dá)標(biāo),環(huán)境檢測中關(guān)注的污染物是否超標(biāo),化學(xué)品的安全性能是否達(dá)標(biāo)或具有何種危險性等?;瘜W(xué)分析結(jié)果質(zhì)量的高低,往往對生產(chǎn)和生活產(chǎn)生較為重大的影響。在分析化學(xué)中,過去常以誤差或精密度作為測量結(jié)果質(zhì)量的表征,誤差是指測量結(jié)果與被測量的真值之間的差值,但是使用誤差對測量結(jié)果的質(zhì)量進(jìn)行評價存在普遍的局限性,因?yàn)檎嬷低遣豢芍?;精密度指按照?guī)定方法進(jìn)行分析得到的測量結(jié)果的分散性,其要求必須按照統(tǒng)一的“官方”方法進(jìn)行測量,且其不能反映測量結(jié)果的置信度,因此使用精密度對測量結(jié)果進(jìn)行質(zhì)量評價,也存在局限性?,F(xiàn)代化學(xué)分析領(lǐng)域,測量不確定度常常被用來表征測量結(jié)果的可信度。
測量不確定度表征了被測量的真值所處量值的范圍,通常采用95%的概率下,被測量真值落在被測量結(jié)果附近的范圍。測量不確定度評定的經(jīng)典方法為GUM 法,此方法由ISO 于1993 年提出[1]。GUM 法將測量不確定度的來源分為A、B 兩類,基于不確定度傳播理論,通過分析測量不確定度的來源,進(jìn)行計算合成,最終得到測量不確定的評定結(jié)果。但是此方法存在一些難以解決的問題,如復(fù)雜模型中不確定度傳播的計算難以進(jìn)行、不確定度來源的重復(fù)計算和遺漏等。為了解決這些問題,有人提出采用蒙特卡洛法進(jìn)行測量不確定度的評定。我國的JJF1059.2-2012《用蒙特卡洛法評定測量不確定度》對蒙特卡洛法進(jìn)行測量不確定度的評定進(jìn)行了詳細(xì)的規(guī)定和說明[2]。
自適應(yīng)蒙特卡洛法評定測量不確定度,其主要優(yōu)勢在于有效地解決了傳統(tǒng)評定方法中高階項(xiàng)展開困難、不確定度信息遺漏或重復(fù)計算等問題。自適應(yīng)蒙特卡洛法評定測量不確定度在測量領(lǐng)域已經(jīng)得到了一定的應(yīng)用[3-15]。采用自適應(yīng)蒙特卡洛法評定測量不確定度,需要對測量模型進(jìn)行多次“海量”數(shù)值模擬采樣,通常需要采用計算機(jī)編程的方式進(jìn)行大量計算,因此該方法的推廣存在一定的難度。現(xiàn)有用于蒙特卡洛法進(jìn)行測量不確定度評定的計算分析軟件,存在不支持自適應(yīng)計算[16]、支持獨(dú)立分量較少[17]、不支持過程變量和自定義變量名稱[18-19]等問題。筆者基于Python 語言,設(shè)計了自適應(yīng)蒙特卡洛法進(jìn)行測量不確定度評定的計算分析程序,為該方法提供更為高效便捷的工具。
設(shè)計的自適應(yīng)蒙特卡洛法評定測量不確定度,主要分為5 個階段,其測試步驟如圖1 所示。
(1)輸入階段。確定被測量與輸入量,輸入數(shù)學(xué)模型,輸入獨(dú)立變量的概率分布情況。首先需建立被測量的數(shù)學(xué)模型,并將數(shù)學(xué)模型中的輸入量分解至獨(dú)立變量。較為復(fù)雜的數(shù)學(xué)模型,需經(jīng)過多層分解,才能使輸入量成為獨(dú)立變量。
圖1 自適應(yīng)蒙特卡洛法評定測量不確定流程圖
例如化學(xué)分析中常見的使用分析儀器進(jìn)行定量的測量過程,被測量通常為目標(biāo)物質(zhì)的濃度cy,其數(shù)學(xué)模型通常按照式(1)計算:
現(xiàn)有的一些采用蒙特卡洛法評定測量不確定度的軟件,通常要求對被測量的數(shù)學(xué)模型進(jìn)行一次性輸入,即輸入上文中的數(shù)學(xué)模型ci。復(fù)雜的數(shù)學(xué)模型,不僅會增加輸入錯誤的可能性,同時降低了模型的可讀性。因此,本程序引入了過程參數(shù)的設(shè)計,降低被測量數(shù)學(xué)模型的復(fù)雜度,以提高模型的可讀性與易用性。
(2)傳播階段。依據(jù)輸入信息,抽取大量樣本,計算得到被測量的分布。通過對獨(dú)立變量進(jìn)行數(shù)值模擬,測量不確定度由獨(dú)立變量傳遞至過程參數(shù),進(jìn)一步傳遞給被測量,進(jìn)而完成測量不確定度的傳播。
(3)自適應(yīng)階段。依據(jù)已得到的被測量分布情況,與數(shù)值容差做比較,若被測量未穩(wěn)定,則返回傳播階段,繼續(xù)采樣,直至被測量分布穩(wěn)定。每輪采樣次數(shù)及數(shù)值容差,依據(jù)JJF 1059.2-2012 《用蒙特卡洛法評定測量不確定度》進(jìn)行設(shè)計,每輪采樣次數(shù)默認(rèn)設(shè)置為10 000 次。
(4)輸出階段。將采樣階段得到的所有被測量進(jìn)行排序,得到其分布函數(shù)的離散表示。
(5)報告階段。報告被測量的平均值及測量不確定度。
自適應(yīng)蒙特卡洛法評定測量不確定度的程序由Python 語言編寫,打包轉(zhuǎn)為exe 程序,方便使用,亦可通過Python 編譯器直接對源文件進(jìn)行使用。程 序 已 開 源 至github.com/kiddog99/Adaptive_MCM_workspace。程序的界面如圖2 所示。
圖2 自適應(yīng)蒙特卡洛法評定測量不確定度程序界面
以CNAS-GL006: 2019 《化學(xué)分析中不確定度的評估指南》中的例子A2 為例,說明本軟件的應(yīng)用方法。例中,使用鄰苯二甲酸氫鉀標(biāo)準(zhǔn)物質(zhì)對氫氧化鈉溶液進(jìn)行標(biāo)定。其中,被測量為氫氧化鈉的濃度cNaOH,其終點(diǎn)數(shù)學(xué)模型為式(6):
模型需要進(jìn)一步分解至獨(dú)立變量,其中過程模型:(1)m(KHP)通過差減稱量獲得,即m(KHP)=m(KHP1)-m(KHP2);(2)m(KHP)的計算包含分子式里4 種不同元素,即m(KHP)=M(C8)+M(H5)+M(O4)+M(K);(3)V取決于溫度和測量系統(tǒng)的校準(zhǔn),即V=V(T) (1+αdT)。
本測量過程涉及的獨(dú)立變量共10 個,列于表1。程序使用界面如圖3 所示,右側(cè)為輸入內(nèi)容展示界面,由上至下分別為終點(diǎn)數(shù)學(xué)模型、過程參數(shù)模型、獨(dú)立變量。其中,過程參數(shù)模型顯示框中,內(nèi)容包括過程參數(shù)名稱[如m(KHP)],計算過程[如m(KHP1)-m(KHP2)],以及包含的獨(dú)立變量[如m(KHP1)、m(KHP2)]。獨(dú)立變量顯示框中,內(nèi)容包括獨(dú)立變量名稱、分布方式及其關(guān)聯(lián)的過程參數(shù)。將終點(diǎn)數(shù)學(xué)模型、過程參數(shù)模型、獨(dú)立變量分別輸入自適應(yīng)蒙特卡洛法評定測量不確定度的程序,即可點(diǎn)擊“自動采樣”按鈕,得到模擬計算結(jié)果。
表1 氫氧化鈉的濃度數(shù)學(xué)模型中的獨(dú)立變量
如圖3 所示,以NaOH 溶液濃度的計算為例,點(diǎn)擊“開始采樣”按鈕,程序開始數(shù)值模擬采樣,并經(jīng)過自適應(yīng)算法,達(dá)到數(shù)值穩(wěn)定后,輸出計算結(jié)果。采樣結(jié)果中,被測量c(NaOH)的平均值為0.102 1,標(biāo) 準(zhǔn) 偏 差 為0.000 1,95% 置 信 區(qū) 間 為[0.102 0,0.102 3]。此輸出結(jié)果與CNAS-GL 006: 2019 《化學(xué)分析中不確定度的評估指南》中給出的參考結(jié)果一致,可以認(rèn)為程序的自適應(yīng)蒙特卡洛法模擬計算在本例中是準(zhǔn)確的。
圖3 程序使用界面及計算結(jié)果
基于Python 語言開發(fā)的自適應(yīng)蒙特卡洛法評定測量不確定度程序,界面簡潔,操作簡單,計算準(zhǔn)確,適用于任意多個獨(dú)立變量、任意多個過程參數(shù)及單一被測量的數(shù)學(xué)模型。其中,過程參數(shù)的設(shè)計,與蒙特卡洛法對被測量數(shù)學(xué)模型的分解思路相適應(yīng),降低了被測量數(shù)學(xué)模型的復(fù)雜度,提高了模型的可讀性與程序的易用性。自適應(yīng)蒙特卡洛法評定測量不確定度計算程序的開發(fā),可以有效地降低使用自適應(yīng)蒙特卡洛法進(jìn)行測量不確定評定的難度,相關(guān)的從業(yè)人員,不需要具備專業(yè)的編程知識,即可使用該軟件快速簡易地進(jìn)行測量不確定度的評定。這有利于從業(yè)人員提高對化學(xué)分析結(jié)果的認(rèn)識,提高我國化學(xué)分析行業(yè)的整體水平。
同時,應(yīng)該意識到,自適應(yīng)蒙特卡洛法,利用足夠大量的數(shù)值模擬采樣,達(dá)到獲取被測量真實(shí)分布情況。因此,自適應(yīng)蒙特卡洛法每次進(jìn)行模擬采樣,均存在隨機(jī)性。具體而言,每次采樣,每個獨(dú)立變量的數(shù)值均由random 模塊依據(jù)變量的分布概率密度生成。這導(dǎo)致自適應(yīng)蒙特卡洛法的評定結(jié)果總會有輕微的偏差,即評定結(jié)果無法再現(xiàn),這也是自適應(yīng)蒙特卡洛法評定測量不確定度程序的優(yōu)化方向。