立井井筒动态监测软件的设计与实现

2021-01-15 01:16顾海荣张雅倩苏燕芹郭项伟
实验室研究与探索 2020年12期
关键词:窗体调用井筒

顾海荣, 张雅倩, 叶 敏, 苏燕芹, 郭项伟

(长安大学公路养护装备国家工程实验室,西安710064)

0 引 言

采矿事故的频繁发生造成了严重的经济损失和人员伤亡[1]。钻孔救援是近年来出现的一种新型快速救援方式,通过地面大直径钻孔,配合提升装备实现被困人员的快速救援[2]。由于救援提升过程大多是在装有套管的井筒内进行,套管在地层压力等因素的作用下可能会发生变形破坏,对救援工作造成不利影响。

现有的井筒变形监测技术多数局限于对局部变形的监测。常见的监测方法是在垂直方向设置基准,然后测量不同深度井筒与基准距离,对井筒变形情况进行分析。郭同江等[3]在井筒内部罐笼的灌道外侧悬挂4 根钢丝,选择成对角状态的2 根钢丝与井筒交点作为监测点,测量不同深度监测点至钢丝的距离,获取不同深度中心坐标,完成井筒变形监测。刘尚国等[4]针对井筒深度过大的情况,提出长距离情况下激光作为基准的监测方法,达到减小误差的效果。这些方法可以有效监测井筒局部变形,但是对井筒的变形监测局限于部分深度,监测范围覆盖不全面。在救援过程中,救援设备在井筒内上下移动,增加了井筒变形监测的难度。

房华光[5]从变形监测点位置的布设等角度进行分析变形情况,并以MATLAB为编程环境构建井筒模型。段友祥等[6]在模型基础上对其进行光滑处理并对井壁加以渲染,很好地实现立体效果。蒋必辞等[7]采用坐标旋转法构建了井壁外壳。本文提出了井筒变形动态监测试验方案以及基于Windows窗体应用程序和OpenGL类库(SharpGL)的软件实现方案,最终通过LabVIEW调用界面完成了井筒变形动态监测软件设计,实时显示井筒变形情况。

1 立井井筒动态监测系统

1.1 井筒变形动态监测试验方案

搭建实验平台模拟矿井环境,采用非接触式井径测量装置模拟救生舱,电动机带动控制测量装置上下移动。将6 个激光位移传感器呈60°均匀布置在井径测量装置水平面上,保证传感器的测量射线共面且射线反向延长线相交于一点。在测量装置上下移动过程中,使用激光位移传感器采集传感器到井壁的距离数据,将采集的距离数据转化为电信号后传输至模数转换模块,模数转换模块将电信号转化为数字信号后经信号传输通道传送至上位机用于处理及显示。

6个激光位移传感器在井壁上形成6 个光点,每3个光点构造1 个以井壁为外接圆的三角形,通过解析三角形模型确定对应高度的井筒直径。在同一深度,取20 组直径数据的最小值作为这个截面的通过直径。如图1 所示为井筒直径解析原理图,图中:P1、P2、P3为激光传感器的激光输出端口;A、B、C 为井壁上的对应光点。

根据余弦公式,有:

图1 井筒直径解析原理图

设三角形ABC面积为S,根据海伦公式,有:

采用三角形外接圆法计算井筒直径,井筒半径R为

同一截面上,通过O1点坐标以及O1到井壁上6个点的距离可以获得井壁上6 点坐标,进而利用6 点坐标采用最小二乘法拟合圆,获得东西方向偏移量和南北方向偏移量。通过计算钢丝绳的移动距离获得井深数据。

监测方案很好地解决了竖直方向监测范围覆盖不全面的情形,能实时获得不同深度井筒截面数据。

1.2 井筒模型构建

井筒变形分为横向和纵向。横向变形的主要表现形式为水平位移,包括水平面东西方向偏移量、南北方向偏移量、井筒半径变化;纵向变形表现为垂深变化[8]。井筒模型可以看作由多个不同深度的圆截面拼接而成,基于动态监测时所获截面的井筒半径以及圆心坐标可以构建井筒模型。

首先建立坐标系,如图2 所示,取井筒井口位置为坐标原点O,从上至下为Y轴正方向,正东方向为X轴正方向,正南方向为Z轴正方向。

图2 O-XYZ坐标系

在三维直角坐标系中绘图时需要将井深转换为垂深[9]。理论计算基本参数为:测段长度ΔL,mm;东西向增量ΔE,mm;南北向增量ΔN,mm;水平方向位移变化矢量和ΔS,mm;垂深增量ΔH,mm;井斜角α;方位角φ。如图3 所示为井筒模型构建基本参数示意图。

图3 井筒模型构建基本参数示意图

计算公式为:

如表1 所示为试验和计算所得的井筒变形监测数据。

表1 井筒变形监测试验相关数据

2 井筒模型软件设计

2.1 基本思路

OpenGL作为编程接口,通常用于视觉图形和3D游戏开发中[10]。它可以应用在不同的平台,而且调用非常方便[11]。Windows窗体应用程序作为一个平台,可以很方便地实现图像更新[12]。SharpGL 是一个OpenGL被封装后的C#类库集合,将C#和SharpGL联合,开发图形程序可以提高效率[13]。相比于MFC 框架,在Windows窗体应用程序中使用SharpGL 有更强的可掌控性。因此,本文在VisualC#下建立Windows窗体应用程序,结合OpenGL类库(SharpGL)构建井筒模型。通过Access数据库[14]链接Excel表格,在编程中获取数据库路径,最终通过LabVIEW调用窗体应用程序实现Excel 表格中数据改变,窗体图形随之相应变化的效果,即实现动态变化。如图4 所示为软件关系示意图。

图4 软件关系示意图

2.2 软件设计功能

(1)为了方便在救援过程中及时地观察到井筒变形是否超限,对于圆心坐标偏差较大以及所测直径过小的部分用不同颜色标记。圆心坐标偏差包括东西方向偏差值和南北方向偏差值,偏差值过大或直径过小用红色显示。井筒变形在安全界限以内用青色显示。竖井井筒底部相对稳定,所以以最底部截面半径以及圆心坐标建立井筒模型,作为参考模型观察垂直方向变形情况。

如图5 所示为水平偏差对井筒变形范围影响示意图。本示例将东西方向和南北方向偏差值的最大范围控制在10 mm以内,即水平面内的总偏差值安全范围在mm(约14.14 mm)以内。本示例井筒内径为606 mm,救生舱舱体外径为560 mm,井筒直径的变化范围在31.86 mm 以内,即在救生舱总偏移值不超过14.14 mm 时,井筒内径只要大于591.86 mm 就在安全范围内。

图5 水平偏差对井筒变形范围影响示意图(mm)

(2)井筒变形图不仅要求满足监测作用,在图形界面也应具有良好的视觉效果。在监测过程中,为了将已监测部分全部显示在窗体中,不论监测装置运行到什么位置,已经监测部分井筒的变形图可以根据长度自动伸缩比例。

(3)在救援过程中,救生舱是持续运行的,因此相关数据实时变化。当到达某一深度,若井筒变形超出安全界限,用户可以对危险部分进行缩放、平移及旋转。

2.3 调用窗体应用程序界面

LabVIEW是一种图形化编程语言,使用简单、便捷[15]。动态链接库(DLL)是Windows 操作系统的基础[16],它独立于编程语言,因此大多数语言编写的DLL都可为LabVIEW 所用[17-18]。在Visual Studio 中显示井筒变形界面需要点击“运行”,改变表格中数据需要重新点击“运行”方可观察到界面变化。但是在LabVIEW中调用DLL 文件则不同,Excel 表格中数据改变,Access 数据库中数据随之改变,LabVIEW 中的图形界面也随之改变,实现了动态监测。

将Visual Studio中编好的程序打包为DLL 文件。调用C#编程的DLL文件需要选择构造器节点。利用属性节点、构造器节点以及调用节点调用DLL 文件,最终实现直接在LabVIEW中显示窗体应用程序界面。这样不仅可以观察到井筒变形动态图,也可以节省电脑空间内存。如图6 所示为根据试验数据所获得的井筒变形动态监测界面。

图6 井筒变形动态监测界面(mm)

井筒变形示例图中整体框架使图形显得更有立体感。当变形图中出现红色时,用户收到信号及时停止提升救援装置(本示例图中未出现红色表示截面圆心坐标偏移量以及井筒半径变化值满足要求)。用户可以根据实际要求设置偏差值安全界限、直径安全界限以及自动伸缩比例,直径大于安全界限并且偏移量小于安全界限时,救援提升装备正常运行。若两者有一个不满足,则需要停止提升救援装置。

本项目在LabVIEW中建立相关界面,井筒运行过程中,可实时显示井深数据、半径大小等相关数据。用户可根据实例自行标注刻度。

3 结 语

本文基于Visual C#和LabVIEW 软件并结合OpenGL类库实现井筒变形动态监测,很大程度提高安全系数以及救援效率:用电动机控制井径测量装置上下移动实时获得不同深度井筒截面数据,扩大竖直方向井筒变形监测范围,提高救援工作的安全性。基于Visual C#编程环境,创建Windows窗体应用程序并将C#语言与SharpGL 联合开发程序构建井筒变形模型,程序简洁且方便调用。调用窗体应用程序界面可以通过直接改变Excel表格中数据改变窗体应用程序界面显示图形,实现井筒变形动态监测,而且可以节省内存,加快软件运行速度。整套软件的开发具有普遍适用性,为后续对救援井实施动态监测提供一定的参考价值。用户可以根据自身需求增加救援装置提升速度、稳定性监测等实用性功能。

猜你喜欢
窗体调用井筒
再谈满井放矿
井筒压力波动条件下钻井液侵入煤岩实验研究
核电项目物项调用管理的应用研究
试谈Access 2007数据库在林业档案管理中的应用
系统虚拟化环境下客户机系统调用信息捕获与分析①
复杂地段副斜井井筒施工方法的选择
利用RFC技术实现SAP系统接口通信
基于计算流体力学技术研究多层合采气井井筒携液能力
WinCE.net下图形用户界面的开发
C++语言中函数参数传递方式剖析