周云飛 李芳 安政 閆斐 鄧越萍 史明 王金策
【摘 要】 在瓦斯安全預(yù)測中,依據(jù)監(jiān)測數(shù)據(jù)隨時間的變化建立時間序列預(yù)測模型,并預(yù)測未來瓦斯危險因素的變化。本文利用C#和Matlab混合編程技術(shù)將Matlab集成化算法程序文件編譯為動態(tài)鏈接庫(DLL),C#在代碼中調(diào)用生成的DLL中的函數(shù),實(shí)現(xiàn)預(yù)測瓦斯?jié)舛扔嬎隳K,建立煤礦瓦斯預(yù)警系統(tǒng)的預(yù)測模型。根據(jù)監(jiān)測到的歷史數(shù)據(jù)分析并預(yù)測瓦斯所存在的風(fēng)險級別。
【關(guān)鍵詞】 Matlab;混合編程;時間序列;瓦斯預(yù)測
瓦斯預(yù)警技術(shù)的運(yùn)用為煤礦建立起信息集成系統(tǒng),可全面提升煤礦的安全管理水平。本文以西山煤電某煤礦為例,通過C#和Matlab混合編程完成系統(tǒng)計算模塊,構(gòu)建預(yù)警系統(tǒng),對煤礦瓦斯方面有一定現(xiàn)實(shí)意義。
1預(yù)測模型
時間序列預(yù)測隨時間變化收集瓦斯?jié)舛葦?shù)據(jù)來預(yù)測礦井未來瓦斯的涌出濃度,方法簡便且實(shí)用;灰色系統(tǒng)可以不考慮井下煤層地質(zhì)條件的復(fù)雜性,只是利用瓦斯涌出資料等有限信息,借助灰色預(yù)測模型進(jìn)行研究。因此,本系統(tǒng)應(yīng)用時間序列預(yù)測模型進(jìn)行計算分析。
時間序列是隨時間改變而隨機(jī)變化的序列。本文嘗試運(yùn)用時間序列分析中被廣泛應(yīng)用的ARMA方法對瓦斯的濃度進(jìn)行預(yù)測,并探討使用此模型進(jìn)行瓦斯?jié)舛阮A(yù)測的可行性。
2 C#與Matlab混合編程
C#是一種最新的、面向?qū)ο蟮木幊陶Z言,可編寫各種基于Microsoft.NET平臺的應(yīng)用程序。C#作為一門易學(xué)易用的編程語言,其執(zhí)行速度相對較快,界面友好。利用C#開發(fā)數(shù)據(jù)采集系統(tǒng)應(yīng)用界面,調(diào)用Matlab編寫的數(shù)據(jù)處理子程序,可實(shí)現(xiàn)應(yīng)用系統(tǒng)的快速開發(fā)。因此實(shí)現(xiàn)C#與Matlab混合編程,可以為科研工作和工程應(yīng)用提供有力的技術(shù)支持。
Matlab提供了與C#的程序接口,是先封裝MATLAB程序為dll文件,把dll文件放到bin或者應(yīng)用程序目錄里,實(shí)現(xiàn)在C#中調(diào)用Matlab編寫程序。本項目C#與Matlab混合編程方面主要借助visual studio 2010與Matlab的接口,將Matlab的程序文件(ARMA.M)編譯為動態(tài)鏈接庫(DLL),然后在vs 2010中進(jìn)行引用,便可以在vs 2010中調(diào)用其封裝生成的DLL中的函數(shù),實(shí)現(xiàn)算法。其基本思路如圖1所示:
算法一中armax是matlab中arma模型估計算法,aic是模型評價算法。算法二中,estimate是matlab中arma模型參數(shù)估計算法;forecast是matlab中arma模型預(yù)測算法。
在程序代碼中直接調(diào)用聲明的函數(shù)后,需注意函數(shù)調(diào)用過程中的參數(shù)傳遞問題,注意調(diào)試,不要修改調(diào)用文件。
3系統(tǒng)界面設(shè)計
本文在時間序列預(yù)測模型的基礎(chǔ)上,建立煤礦瓦斯安全預(yù)警集成系統(tǒng),主要對瓦斯?jié)舛葦?shù)據(jù)進(jìn)行分析,根據(jù)瓦斯?jié)舛葘ν咚刮kU級別作出5級預(yù)警(A-E)。
3.1系統(tǒng)用戶管理
3.1.1瓦斯預(yù)警登錄
預(yù)警指標(biāo)分為突出預(yù)警指標(biāo),針對不同的瓦斯?jié)舛韧怀銮闆r,系統(tǒng)顯示不同的預(yù)警等級。
此程序界面在登錄成功后會進(jìn)入到瓦斯預(yù)警數(shù)據(jù)輸入界面,如輸入用戶名或密碼總是錯誤,登錄三次仍然失敗,界面會提示用戶輸入失敗次數(shù)過多,直接退出程序,顯示如圖6所示。
A級預(yù)警級別最高,預(yù)示瓦斯?jié)舛任kU級別最大,E級預(yù)警級別最低,預(yù)示瓦斯?jié)舛认鄬^低。應(yīng)根據(jù)不同預(yù)警級別采取相應(yīng)措施保證煤礦工作面安全生產(chǎn)。
4結(jié)論
以某煤業(yè)公司煤層工作面為例,依據(jù)時間的變化來預(yù)測未來瓦斯危險因素的變化情況,建立時間序列預(yù)測模型。選用C#語言編程,利用C#-Matlab混合編程技術(shù)將Matlab程序文件(M)編譯為動態(tài)鏈接庫(DLL),C#在代碼中調(diào)用生成的DLL中的函數(shù),實(shí)現(xiàn)預(yù)測瓦斯?jié)舛扔嬎?,根?jù)不同瓦斯?jié)舛扰袆e煤礦工作面5種風(fēng)險級別。
【參考文獻(xiàn)】
[1]閆夏.基于預(yù)測模型的預(yù)警集成系統(tǒng)在瓦斯安全管理中的應(yīng)用[D].太原:太原理工大學(xué), 2010.
[2]劉西青.論國內(nèi)煤礦瓦斯監(jiān)測監(jiān)控系統(tǒng)現(xiàn)狀與發(fā)展[J].山西焦煤科技,2006(3):37-40.
[3]張延波,王金國.運(yùn)用神經(jīng)網(wǎng)絡(luò)預(yù)測礦井瓦斯涌出量方法的探討[J].江西煤炭科技,2004(3):26-27.
[4]韓路躍,杜行檢.基于MATLAB的時間序列建模與預(yù)測[J].計算機(jī)仿真,2005(4):105-107,182.
[5]李博偉,許飛云,楊會超.RBF-BL時間序列模型及在建模和預(yù)測中的應(yīng)用[J].東南大學(xué)學(xué)報(自然科學(xué)版),2020,50(2):368-376.
[6]邵海見,鄧星.基于RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)選擇方法的Mackey-Glass與Lorenz混沌時間序列預(yù)測建模[J].江蘇科技大學(xué)學(xué)報(自然科學(xué)版),2018,32(5):701-706.
[7]朱志松.VB與MATLAB混合編程探討[J].電子技術(shù)應(yīng)用,2003(2):6-17.
[8]蘇金明,阮沈勇.Matlab6實(shí)用指南[M].北京:電子工業(yè)出版社,2003.