鞏衛海
中海油能源發展股份有限公司銷售服務分公司(天津 300450)
原油作為國家的戰略資源之一,其地位是不可比擬的。原油貿易計量準確性直接影響著買賣雙方的經濟效益,如果在計量過程中出現問題,將會給國家的經濟發展造成重大損失,因此石油貿易計量工作是極為重要的[1-4]。GB/T 1885—1998《石油計量表》廣泛應用于石油計量領域,按商品分原油、石油產品、潤滑油三類,含相應標準密度和體積修正系數的人工查詢表格。GB/T 1885—1998 等效采用了ISO 91-2:1991《石油計量表第2部分:以20 ℃為標準溫度的表》的技術內容[5]。
GB/T 1885—1998 是石油計量過程中的重要依據,計量人員根據油品的視密度、試驗溫度、計量溫度,通過查表的方式,計算出石油的標準密度ρ和體積修正系數(Volume correction factor,以下簡稱VCF)。石油計量過程中,查表是一項麻煩而且枯燥的工作,并且查表過程中容易發生錯誤,給工作帶來不利影響,采用計算機或智能移動設備代替查表工作,簡化查表工作,有效地減少人為錯誤,提高計量準確度和計量管理水平,更好地把石油計量相關國家標準落實到實處[6-8]。在查閱文獻的基礎上,分析GB/T 1885—1998 的計算步驟。以原油為例,梳理計算流程,以計算機辦公軟件Excel 2010 中迭代函數功能和數字修約功能為原理,用迭代法實現了ρ和VCF的計算,并且開發出在智能移動設備Android 6.0 系統環境下的APP 版《石油計量表》,代替了人工查表,節省了工作時間,便于計量人員攜帶和使用,數據準確可靠。
《石油計量表》附錄B 給出了原油在20 ℃標準密度的簡明計算流程,如圖1 所示,其中原油、潤滑油及其他石油產品標準密度(20 ℃)的計算流程,虛線框內為原油、潤滑油及其他石油產品體積修正系數的計算流程,右邊大實線框內僅用于其他石油產品15 ℃密度的計算。

圖1 石油計量表計算流程簡圖
根據查閱的相關標準及資料,通過公式的分析、梳理和驗證,對圖1 進行了更為全面細化地總結,得出原油在20 ℃下標準密度的計算流程。
通過實驗數據中的視密度ρ'和視溫度t,計算出實際密度ρt;通過基礎數據K1、K0和A,可得到15 ℃石油體積膨脹系數α15的公式,再根據視溫度t通過指數函數e 得到15 ℃石油體積修正系數VCF15[9-11];最后根據迭代計算的原理,利用15 ℃石油體積修正系數VCF15和實際密度ρt,求出15 ℃標準密度ρ15。

通過常數K1、K0、A和15 ℃標準密度ρ15,得到15 ℃石油體積膨脹系數?15。

由式(1)和式(3)可計算出標準溫度為15 ℃時,石油在不同計量溫度下的體積修正系數VCF15。

利用實際密度ρt和體積修正系數VCF15,通過迭代計算實現標準密度ρ15。

利用標準密度ρ15和體積修正系數VCF15,計算出標準密度ρ20。
1)通過實驗數據的研究得出,石油在15 ℃下的密度為611~1 075 kg/m3時,K0=613.972 3,K1和A均為常數0[12-15]。同時可按照各種類型石油和標準密度分段,國際標準ISO 91-1-1992《石油計量表第1部分:以15 ℃和60 ℃為標準溫度的表》提供了體積膨脹系數?15中各參數K0、K1、A的經驗值,見表1。

表1 石油體積膨脹系數表
2)假設視密度ρ'的值賦給標準密度ρ15,得到的值再賦給(通過循環引用得到的標準密度ρ15新值),通過迭代使ρ15與ρ'15差值的絕對值小于給定的收斂精度,最后得到標準密度ρ15的真值[5]。
3)式(6)中Δt為20 ℃與15 ℃的差值。
4)20 ℃體積修正系數VCF20的求法與15 ℃體積修正系數VCF15求法的原理相同,區別在于視溫度t和Δt的關系。
迭代法也稱輾轉法,是一種不斷用變量的舊值遞推新值的過程,是一種數值計算中重要的逐次逼近方法。首先將方程改寫成某種等價形式,由等價形式構造迭代公式,選取方程的某個初始近似根X0,代入迭代公式反復校正根的近似值,直到滿足精度要求為止。利用迭代算法解決標準密度的算法,需要做好以下3 個方面的工作:確定迭代變量為視密度,求標準密度;建立標準密度的迭代關系式;對標準密度迭代過程進行控制。
以Excel2007 版為例開啟迭代計算的功能,設置迭代次數為99次,最大誤差為0.000 001,此時Excel 迭代計算功能成功開啟。圖2為在Excel 環境下制作的《石油計量表》。

圖2 Excel下《石油計量表》原油部分
3.2.1 15 ℃標準密度迭代計算公式的建立
根據圖2所示,Excel 中B4單元格為視溫度、C4單元格為視密度,15 ℃標準密度為B6單元格,假設H5單元格為迭代計算單元格,其計算公式為:
H5=ROUND(C4×(1-2.3×10-5×(B4-15)-2×10-8×(B4-15)2)÷EXP(-613.972 3÷H52×(B4-15)×(1+0.8×(B4-15)×613.972 3÷H52)),1)
此時H5 單元格屬于無限迭代計算狀態,必須將B6 單元格設置成等于H5 單元格后,方可計算出15℃標準密度為B6單元格的真值。
3.2.2 20 ℃標準密度迭代計算公式的建立
根據圖2所示,原理同15 ℃標準密度的計算方法一樣,20 ℃標準密度為C6 單元格,假設H6 單元格為迭代計算單元格其計算公式為:
H6=ROUND(C4×(1-2.3×10-5×(B4-20)-2×10-8×(B4-20)2)÷EXP(-613.972 3÷H62×(B4-20)×(1+0.8×(B4-20)×613.972 3÷H62)),1)
此時H6 單元格屬于無限迭代計算狀態,必須將C6 單元格設置成等于H6 單元格后,方可計算出20 ℃標準密度為C6單元格的真值。
以Android 系統為環境開發出的核心算法,實現15 ℃標準密度的迭代計算功能。同時20 ℃標準密度的迭代計算功能,核心算法原理同15 ℃標準密度核心算法一樣。
多數人對于數字修約所理解的概念往往是簡單的四舍五入方法,但是在石油計量領域,數字修約規則要滿足GB/T 8170—2008《數值修約規則與極限數值的表示和判定》的要求,采用四舍六入五成雙的理念。對于位數很多的近似數,當有效位數確定后,其后面多余的數字應該舍去,只保留有效數字最末一位,這種修約(舍入)規則是四舍六入五成雙,這里“四”是指小于等于4 時舍去,“六”是指大于等于6 時進上,“五”指的是根據5 后面的數字來定。當5 后有數時,舍5 入1;當5 后無有效數字時,需要分兩種情況來講,第一種為5前為奇數,舍5入1;第二種為5前為偶數,舍5不進。
在Excel 中開啟VBA 編程界面功能,編輯下列代碼即可開啟數字修約功能的腳本程序:
Function TRANVALUE(rng As Double,number As Integer)As Double
TRANVALUE=Round(rng,number)
End Function
腳本程序中“TRANVALUE函數”為四舍六入五成雙的數字修約函數,此函數必須在VBA的配合下才能正常使用。建立并保存好VBA腳本后,直接將所求的值套在此函數里面即可。根據圖2 中所示C6 單元格為20 ℃標準密度,將其進行數字修約后的公式為:
=TRANVALUE(C6,1)或者可以直接寫成下列公式:
=TRANVALUE(C4×(1-2.3×10-5×(B4-20)-2×
10-8×(B4-20)2)÷EXP(-613.972 3÷H62×(B4-20)×
(1+0.8×(B4-20)×613.972 3÷H62)),1)
根據相關標準,利用Excel 強大的函數功能和VBA(Microsoft Visual Basic 的宏版本)功能,建立了自動計算表格,與人工手動翻閱《石油計量表》的結果無偏差,終結了幾十年查表的工作方法,大大提高了工作效率,數據結果準確可靠。
在Android 系統為環境下通過迭代計算的原理得到標準密度的數據是沒有進行修約的,若要將結果精確到與人工查表無差異,則必須按照四舍六入五成雙的數字修約理念來實現,圖3為Android版部分功能圖。

圖3 Android版APP部分功能圖
《石油計量表》的數字化編制過程主要分為3個階段:一是要結合標準中原型公式的推演;二是利用計算機迭代公式的計算;三是數值修約規則的有效運行。以往的研究忽視了這三點,導致計算精度不高,結果不準確。通過在Excel 下實現《石油計量表》自動計算的理念,以迭代計算為技術支持、嚴格執行數字修約標準為創新點,經過1 年的反復調試和使用,在Android 系統為開發背景的前提下,制作出智能移動終端APP 版《石油計量表》軟件。該軟件經受了5年的數據考驗,其結果與國內、外同類型的軟件相比,精確度要遠遠高于其他軟件。其他石油計量軟件的誤差率多數在0.1‰~4‰,而該軟件誤差率為0.1‰,以計算結果準確率高的巨大優勢,由原先枯燥無味的人工查表以及不方便攜帶的電腦版石油計量軟件轉變成輕巧便捷的智能移動終端石油計量軟件,在提高工作效率的同時降低了誤差風險。在國家大力提倡“互聯網+”的背景時代下,該軟件具有可推廣價值并且將會占領未來石油計量的消費市場。