周云飞 李芳 安政 闫斐 邓越萍 史明 王金策
【摘 要】 在瓦斯安全预测中,依据监测数据随时间的变化建立时间序列预测模型,并预测未来瓦斯危险因素的变化。本文利用C#和Matlab混合编程技术将Matlab集成化算法程序文件编译为动态链接库(DLL),C#在代码中调用生成的DLL中的函数,实现预测瓦斯浓度计算模块,建立煤矿瓦斯预警系统的预测模型。根据监测到的历史数据分析并预测瓦斯所存在的风险级别。
【关键词】 Matlab;混合编程;时间序列;瓦斯预测
瓦斯预警技术的运用为煤矿建立起信息集成系统,可全面提升煤矿的安全管理水平。本文以西山煤电某煤矿为例,通过C#和Matlab混合编程完成系统计算模块,构建预警系统,对煤矿瓦斯方面有一定现实意义。
1预测模型
时间序列预测随时间变化收集瓦斯浓度数据来预测矿井未来瓦斯的涌出浓度,方法简便且实用;灰色系统可以不考虑井下煤层地质条件的复杂性,只是利用瓦斯涌出资料等有限信息,借助灰色预测模型进行研究。因此,本系统应用时间序列预测模型进行计算分析。
时间序列是随时间改变而随机变化的序列。本文尝试运用时间序列分析中被广泛应用的ARMA方法对瓦斯的浓度进行预测,并探讨使用此模型进行瓦斯浓度预测的可行性。
2 C#与Matlab混合编程
C#是一种最新的、面向对象的编程语言,可编写各种基于Microsoft.NET平台的应用程序。C#作为一门易学易用的编程语言,其执行速度相对较快,界面友好。利用C#开发数据采集系统应用界面,调用Matlab编写的数据处理子程序,可实现应用系统的快速开发。因此实现C#与Matlab混合编程,可以为科研工作和工程应用提供有力的技术支持。
Matlab提供了与C#的程序接口,是先封装MATLAB程序为dll文件,把dll文件放到bin或者应用程序目录里,实现在C#中调用Matlab编写程序。本项目C#与Matlab混合编程方面主要借助visual studio 2010与Matlab的接口,将Matlab的程序文件(ARMA.M)编译为动态链接库(DLL),然后在vs 2010中进行引用,便可以在vs 2010中调用其封装生成的DLL中的函数,实现算法。其基本思路如图1所示:
算法一中armax是matlab中arma模型估计算法,aic是模型评价算法。算法二中,estimate是matlab中arma模型参数估计算法;forecast是matlab中arma模型预测算法。
在程序代码中直接调用声明的函数后,需注意函数调用过程中的参数传递问题,注意调试,不要修改调用文件。
3系统界面设计
本文在时间序列预测模型的基础上,建立煤矿瓦斯安全预警集成系统,主要对瓦斯浓度数据进行分析,根据瓦斯浓度对瓦斯危险级别作出5级预警(A-E)。
3.1系统用户管理
3.1.1瓦斯预警登录
预警指标分为突出预警指标,针对不同的瓦斯浓度突出情况,系统显示不同的预警等级。
此程序界面在登录成功后会进入到瓦斯预警数据输入界面,如输入用户名或密码总是错误,登录三次仍然失败,界面会提示用户输入失败次数过多,直接退出程序,显示如图6所示。
A级预警级别最高,预示瓦斯浓度危险级别最大,E级预警级别最低,预示瓦斯浓度相对较低。应根据不同预警级别采取相应措施保证煤矿工作面安全生产。
4结论
以某煤业公司煤层工作面为例,依据时间的变化来预测未来瓦斯危险因素的变化情况,建立时间序列预测模型。选用C#语言编程,利用C#-Matlab混合编程技术将Matlab程序文件(M)编译为动态链接库(DLL),C#在代码中调用生成的DLL中的函数,实现预测瓦斯浓度计算,根据不同瓦斯浓度判别煤矿工作面5种风险级别。
【参考文獻】
[1]闫夏.基于预测模型的预警集成系统在瓦斯安全管理中的应用[D].太原:太原理工大学, 2010.
[2]刘西青.论国内煤矿瓦斯监测监控系统现状与发展[J].山西焦煤科技,2006(3):37-40.
[3]张延波,王金国.运用神经网络预测矿井瓦斯涌出量方法的探讨[J].江西煤炭科技,2004(3):26-27.
[4]韩路跃,杜行检.基于MATLAB的时间序列建模与预测[J].计算机仿真,2005(4):105-107,182.
[5]李博伟,许飞云,杨会超.RBF-BL时间序列模型及在建模和预测中的应用[J].东南大学学报(自然科学版),2020,50(2):368-376.
[6]邵海见,邓星.基于RBF神经网络结构选择方法的Mackey-Glass与Lorenz混沌时间序列预测建模[J].江苏科技大学学报(自然科学版),2018,32(5):701-706.
[7]朱志松.VB与MATLAB混合编程探讨[J].电子技术应用,2003(2):6-17.
[8]苏金明,阮沈勇.Matlab6实用指南[M].北京:电子工业出版社,2003.