練洪銘
玉林市檢驗檢測研究院(廣西 玉林 537000)
燃油加油機是對機動車所添加燃油體積進行計量,從而進行貿(mào)易結(jié)算的測量系統(tǒng),是國家重點管理的計量器具,列入了強檢目錄實施強制檢定。隨著汽車成為家庭普遍的代步工具,人們對燃油加油機準確度的關(guān)注度隨著燃油價格的上升也逐漸升高。燃油加油機示值的準確度關(guān)乎著老百姓的錢袋子,也關(guān)乎著公眾對計量準確性的信心。這就要求計量人員嚴格控制檢定過程各測量不確定度分量的產(chǎn)生,更加有效地消除檢定過程中的誤差,從而提升計量檢定的準確度。因此,對燃油加油機示值誤差的測量不確定度進行分析是至關(guān)重要的。測量不確定度是一個非負參數(shù),是依據(jù)相關(guān)的信息,用于表征賦予被測量值分散性[1]。評定的方法有采用不確定度傳遞律法(GUM)和蒙特卡洛法(MCM)。目前,MCM法主要是使用MATLAB、MCM Alchimia等軟件進行模擬,但因其使用收費及操作復雜性不能被廣泛接受。而近期流行的高級動態(tài)語言Python具有免費開源、跨多平臺、用途廣泛、函數(shù)庫齊全的優(yōu)點,使用者可以交互式運行命令,能方便及時地調(diào)試、校驗數(shù)據(jù),非常適用于科學計算,因此也逐漸被計量工作者使用?;谝陨戏治?,本文以評定燃油加油機示值誤差測量不確定度為例,具體介紹了如何使用Python軟件來實現(xiàn)MCM法評定,并將評定結(jié)果與GUM法的評定結(jié)果展開了對比研究。
依據(jù)燃油加油機檢定規(guī)程,采用容量比較法,在最大流量點(0.9Qmax≤Q≤1.0Qmax),使用符合規(guī)程要求的標準器二等標準金屬量器(容積為100 L,MPE±0.025 L)和輔助設(shè)備溫度計(MPE±0.3℃),對加油機進行示值誤差檢定[2]。首先將檢定介質(zhì)汽油注入標準金屬量器中直到加油機示值VJ達到100 L左右,讀取標尺刻度H,計算20℃時的標準容積VB,再計算出汽油溫度補償后的體積VBt,用VJ減去VBt,重復測量3次,所得的差值的平均值,即為加油機的示值誤差ΔV。
式中:VB為20℃時標準器的標準容積,L;tJ為油槍出口油溫(替代加油機流量計出口油溫),℃;tB為標準器內(nèi)油溫,℃;βB為標準器材質(zhì)(不銹鋼)的體膨脹系數(shù),為50×10-6℃-1;βY為檢定介質(zhì)(汽油)的體膨脹系數(shù),為12×10-4℃-1。
選擇一臺穩(wěn)定的加油機重復測量10次,測得數(shù)據(jù)見表1。
表1 測量數(shù)據(jù)
測量時tJ平均值為30.5℃,tB平均值為30.2℃,取tJ-tB=0.3℃。10次測量,加油機示值誤差的平均值----ΔV=0.115 L。
MCM法是一個對概率分布隨機抽樣進而散布傳播的通用數(shù)值方法,當測量模型具有多個輸入量且可由概率密度函數(shù)表征,并且輸出量單一時,可采用MCM法評定,MCM法可有效克服GUM法理論假設(shè)和近似的不足,直接應用數(shù)學模型計算,不需要另外計算各分量之間的協(xié)方差,不會為簡化評定過程而忽略部分影響因素,對于非線性傳遞模型,輸入量的PDF明顯非對稱,輸出量的PDF顯著背離正態(tài)分布和t分布情況下的測量不確定度評定,MCM法更加準確可靠[3]。
MCM法是首先通過分析輸入量X i的概率分布,獲得X i的概率密度函數(shù)(PDF),然后對各PDF進行隨機抽樣,輸入到數(shù)學模型中計算出yr,進而獲得輸出量Y的PDF,輸出量的最佳估計值,標準不確定度和包含區(qū)間等信息可由Y的PDF計算得到,整個評定分為4個步驟[4]。具體評定流程及利用Python實現(xiàn)的方式見表2。
表2 MCM評定方法
結(jié)合表1測量數(shù)據(jù),MCM法評定測量不確定度的完整Python代碼如下[5-6]。
#導入系統(tǒng)文件
import random
import numpy as np
from scipy import stats
#定義示值誤差計算函數(shù)
def V_error():
VB=100.00-3.95*(H20-H)/1000#標準容積計算公式,計量頸f根據(jù)證書為3.95
VBt=VB*(1+βY*(tJ-tB)+βB*(tB-20))
ΔV=VJ-VBt
returnΔV
#循環(huán)模擬計算主體
M=1000000
#創(chuàng)建一個空數(shù)組接收輸出量
ΔVs=[]
#循環(huán)M次
for i in range(M):
#H20為均勻分布,由證書得均值為97.88,半寬為0.025%,隨機生成1個數(shù)值
H20=np.random.uniform(97.88*(1-2.5e-4),97.88*(1+2.5e-4))
#H為正態(tài)分布,以測量數(shù)據(jù)平均值46.77,標準偏差5.81為參數(shù),隨機生成3個數(shù)值,取平均值賦值H
H=np.mean(np.random.normal(46.77,5.81,3))
#βY,βB為正態(tài)分布,標準偏差均為2.5×10-6
βY=np.random.normal(12e-4,2.5e-6)
βB=np.random.normal(50e-6,2.5e-6)
#tJ,tB為均勻分布,半寬0.3℃
tJ=np.random.uniform(30.5-0.3,30.5+0.3)
tB=np.random.uniform(30.2-0.3,30.2+0.3)
#VJ為正態(tài)分布,由測量數(shù)據(jù)得期望值為100.00,標準偏差為0.0127
VJ=np.random.normal(100.00,0.0127)
#將各輸入量輸入到定義的函數(shù)中計算,結(jié)果賦值于ΔV
ΔV=V_error()
#將每個ΔV加入到數(shù)組ΔVs中,循環(huán)M次后結(jié)束
ΔVs.append(ΔV)
#對數(shù)組ΔVs運算,輸出平均值及標準偏差
mean=np.mean(ΔVs)
std=np.std(ΔVs)
print("平均值為%f"%mean)
print("標準偏差為%f"%std)
#輸出包含區(qū)間,平均值作為loc參數(shù),標準偏差為scale參數(shù)
ΔVs_95=stats.norm.interval(0.95,loc=mean,scale=std)
print(ΔVs_95)
#以上代碼,可根據(jù)實際測量數(shù)據(jù),修改相關(guān)參數(shù)后,在Python編譯器中運行,即可得結(jié)果,注意不要省略代碼前的縮進。#后文字為注釋,可省略。
通過對加油機示值誤差數(shù)學模型及測量過程的分析,測量不確定度的主要來源是測量重復性、標準器誤差、溫度計誤差、金屬量器及檢定介質(zhì)隨溫度變化而產(chǎn)生的誤差等方面,如圖1所示。
圖1 不確定度主要來源
各不確定度分量的詳細評定可參考文獻[7],本文不做詳述,評定結(jié)果匯總見表3。
表3 不確定度分量評定結(jié)果匯總表
取置信概率p=95%,有效自由度veff=100,查分布表,k=1.984,則擴展不確定度為:
U95=k×u c=0.034 7×1.984=0.069 L
將MCM法和GUM法評定結(jié)果列于表4,并將包含區(qū)間在圖2數(shù)軸上表示出來。比較兩者的評定結(jié)果。MCM法評定的示值誤差平均值及標準不確定度均略小于GUM法的評定結(jié)果;當置信概率p=95%時,MCM法評定的包含區(qū)間要略窄于GUM法評定的包含區(qū)間。其原因可能為:①GUM法假設(shè)各個變量不相關(guān),保守估計了這些量值,評定結(jié)果增加了部分不可靠的測量不確定度;②GUM法評定計算測量重復性不確定度時,重復性引入的不確定度包含了數(shù)學模型中自變量導致的部分不確定度,對這部分不確定度進行了重復計算;③GUM法計算擴展不確定度的有效自由度時,各分量的自由度為估計值,計算出來的有效自由度為估算值,造成包含因子k的取值有差異。相比之下,MCM法評定是對各分量進行抽樣,輸入到數(shù)學模型中計算,避免了重復計算某些不確定度,而且能夠?qū)⑺幸蛩鼐紤]進來,使評定結(jié)果更為完整,更符合客觀事實[9]。此外由計算機統(tǒng)計出置信概率的包含區(qū)間,更為準確,更為可靠。
表4 測量不確定度評定結(jié)果
基于Python模擬計算的MCM法,代碼簡潔,操作簡單,相關(guān)模擬計算均由計算機完成,計算速度快,精度高,避免了人為疏忽造成的計算錯誤;評定過程無關(guān)數(shù)學模型的復雜性,不需要進行復雜的求導計算傳播系數(shù),也不需要計算復雜的自由度,可直接計算出結(jié)果。在計算的便捷性上,MCM法優(yōu)于GUM法。
圖2 兩種評定方法包含區(qū)間在數(shù)軸上的比較
根據(jù)MCM法模擬計算的數(shù)據(jù),繪制示值誤差的分布直方圖并擬合核密度估計曲線,如圖3所示。可以看出,示值誤差的概率分布具有正態(tài)分布的形態(tài),符合GUM法基于中心極限定理的正態(tài)分布假設(shè)的理論基礎(chǔ),對GUM法評定的正確性進行了驗證[10]。因此,在實際工作中,在簡化及近似的情況下,GUM法可用于評定加油機示值誤差測量不確定度,評定結(jié)果較MCM法稍保守,但差異不大。在準確度要求較高時,宜采用MCM法進行評定。
圖3 概率分布直方圖及核密度估計曲線
通過本文的示例,MCM法評定測量不確定度具有適用范圍廣,評定過程簡單、人工計算量少,計算精度高的特點,評定結(jié)果較GUM法客觀、準確、可靠,可以作為GUM法的補充及驗證。MCM法依賴于計算機進行模擬計算,而Python作為一種免費的高級可視化編程語言,具有編程簡單、通用性強及硬件要求低的特點,其豐富的數(shù)據(jù)庫、多樣的函數(shù)及簡潔的代碼,能在MCM評定中快捷、準確地自動處理幾何級倍數(shù)的數(shù)組、矩陣及向量運算,能簡單便捷地獲得平均值、標準不確定度、包含區(qū)間等內(nèi)容并提供可視化的圖表,給計量工作者在實際工作中運用MCM評定提供了可能。本文基本涵蓋了MCM評定所需的Python代碼,方便參考使用。