资源描述:
第 45 卷 第 1 期 煤田地质与勘探 Vol. 45 No.1 2017 年 2 月 COAL GEOLOGY 3. Research Institute of Yanchang Petroleum Group Co. Ltd., Xi’an 710075, China Abstract Correction computation of borehole deviation in coalfield is an important basic work for determination of stratigraphic boundaries and coal seam coordinates, plan drawing of exploration line section and reserves, affect directly the calculation of reserves. The traditional hole deviation correction has been made with the aid of Excel, manual is time and efforts demanding and error-prone. Based on geological practice, the authors developed a batch processing program for borehole deviation by applying VBA embedded in Excel from the basic heoretical knowledges of calculation for borehole deviation correction and applied it well in the coal exploration pro- ject of Qingshan coal mine in Jiangzhou, Duyun City, Guizhou Province. Keywords Excel; VBA; hole deviation; calculation ; deviation measurement point; coal seam 孔斜是指在钻进过程中,钻孔的实际空间位置 与设计空间位置发生偏离,即实际钻孔方向偏离设 计井轴方向。钻孔深度、顶角及方位角决定了钻孔 在地下空间的位置,这 3 个因素称钻孔空间形态 3 要素,也是钻孔孔斜处理的基础数据。在煤田钻探 中孔斜普遍存在, 孔斜易对需要探明的煤层在层位、 厚度上产生误判断,严重时甚至产生遗漏,直接导 致地质资料不准确[1]。 孔斜的校正计算在煤田钻探中起重要作用。准 确计算测斜资料可以得知钻孔的具体位置,进而得 知各煤层特别是可采煤层的具体位置,为钻探剖面 图和平面储量图的绘制提供较精确的基础资料,是 煤炭储量校正的关键一步,在煤田地质工作中处于 重要地位。 孔斜校正的方法较多,如计算法、图解法、面 网法和查表法等,最常用的为计算法和图解法[2]。 近年来,钻孔孔斜的校正基本上使用计算法并借助 Excel 电子表格来处理, 但需要手动逐孔输入大量数 据、公式,耗费大量精力,且易出错[3-4]。 事实上,Excel 不仅具有强大的制表功能,它还 内置了强大的面向 Excel 对象的程序设计语言 VBA。 VBA 的使用使 Excel 的自动化程度得到进一 步提升,使用户能更有针对性、更高效地完成大批 量的数据处理工作[5-7]。 ChaoXing 42 煤田地质与勘探 第 45 卷 1 程序编制理论及公式 在孔斜批量计算程序中,运用计算法中的垂向 倾斜投影法来计算某孔段止点坐标、测斜点及各地 层界线和煤层相对孔口的坐标增量。 1iii Lhh-- 1 式中 Li为两测斜点间距离,即某孔段钻孔斜长, m; hi为该测斜点深度, m; hi-1上一测斜点深度, m。 1 /2 iii JJJ - 2 式中 iJ为平均顶角,;Ji为该测斜点顶角,; Ji-1为上一测斜点顶角,。 1 /2 iii QQQ- 3 式中 i Q为平均方位角, ; Qi为该测斜点方位角, ;Qi-1为上一测斜点方位角,。 cos iii ZLJΔ sincos iiii XLJQΔ sinsin iiii YLJQΔ 4 如图 1 所示,ΔZi为某孔段测斜点标高增量, ΔXi、ΔYi为某段的平面增量[2]。 图 1 孔斜计算示意图 Fig.1 The sketch map of hole deviation calculation 1iii YYY - Δ 1iii XXX - Δ 1iii ZZZ - Δ 5 式中 Yi、Xi、Zi分别为该测斜点横坐标、纵坐标和 标高,Yi-1、Xi-1、Zi-1分别为上一测斜点横坐标、纵 坐标和标高。 比例尺为 1︰10 000 时,在剖面图上测斜点相 对孔口坐标的坐标增量 00 0.1 - Δ- ii XXX 00 0.1 ii YYY - Δ- 6 式中 ΔXi-0、ΔYi-0分别为在剖面图上测斜点相对孔 口的纵坐标增量和横坐标增量,mm;X0、Y0分别为 孔口纵坐标和横坐标。 根据测斜点深度和坐标计算煤层坐标。 11 / iiiiii Y YhhYYhh--- 11 / iiiiii X XhhXXhh--- 11 / iiiiii Z ZhhZZhh--- 7 式中 Y、X、Z 分别为煤层或地层界线横坐标、纵 坐标和标高,m;h 为煤层或地层界线深度,m;Yi、 Xi、Zi分别为深度小于该煤层或地层界线深度,且 与该煤层或地层界线深度相邻的测斜点的横坐标、 纵坐标和标高,m;hi为对应该测斜点深度,m;Yi1、 Xi1、Zi1分别为该测斜点下一点的横坐标、纵坐标和 标高,m;hi1为对应的该测斜点下一点的深度,m。 2 编制过程 2.1 数据准备 a. 编制孔斜计算程序之前,将各孔的测斜数据 深度、顶角、方位角和孔口坐标输入到代码工作 薄名为”各孔测井顶角方位角及孔口坐标.xls”的工 作表中,一个钻孔建立一个工作表,并命名工作表 为孔号。 b. 将各孔综合成果表钻探数据和测井数据, 包括该孔各地层界线深度、煤层深度等数据按照孔 号命名并存入名为”综合成果表”的文件夹下,将”综 合成果表”文件夹和代码工作薄保存在同一目录中。 2.2 孔斜计算窗体编制 具体编制方法按以下几步完成。 a. 在代码工作薄的第一张工作表中,插入 CommandButton 命令按钮,并命名为”钻孔孔斜计算” 。 b. 进入代码编辑窗口,在该按钮单击事件过程 中, 用 User1.Show 语句调用 “孔斜计算窗体” , 即运行程序时,单击命令按钮“钻孔孔斜计算”弹 出“孔斜计算窗体” 。 c. 单击代码编辑窗口主菜单中的“插入>用户 窗体”选项插入孔斜计算窗体,设置窗体的 picture 属性插入背景图片,修改 height、width、left、top 等设置窗体尺寸和位置。 d. 在孔斜计算窗体中插入 label、textbox 和 CommandButton 控件,并设置 3 个控件的属性 height、left 等设置控件尺寸;backstyle 设置背景为 透明;caption 设置 CommandButton 显示名称为“运 行程序” ;设置 textbox 的 Multiline 为 True 写入多行 文字[8],设置 label 的 caption 属性和 textbox 的 text 属性写出程序的名称和使用说明等[9-10]图 2。 e. 在命令按钮“运行程序”的单击事件中,运 用 call 语句调用“孔斜计算模块” ,即运行程序时, 单击“运行程序”开始孔斜计算。 2.3 孔斜计算模块编制 孔斜计算模块为该程序的核心部分,包括测斜 点坐标增量计算和地层界线、煤层坐标增量计算两 部分。单击代码编辑窗口主菜单中的“插入>模块” 选项插入模块,建立一个名为“孔斜计算”的 Sub ChaoXing 第 1 期 王乔等 应用 Excel VBA 编制煤田钻孔孔斜批量处理程序 43 过程。 图 2 孔斜计算窗体 Fig.2 The window for borehole deviation calculation 用 VBA.MkDir ThisWorkbook.Path “\孔斜计 算表”语句新建一个与代码工作薄路径目录相同且 名为“孔斜计算表”的文件夹,用来保存新生成的 各孔孔斜计算表。 在代码工作薄中, 每一个钻孔占用一个工作表, 而每一个钻孔的孔斜计算需要建立一个工作薄,即 可根据代码工作薄中工作表名称孔号和工作表数 量来新建名为“*孔斜计算表”的工作薄*为孔号 并存入“孔斜计算表”的文件夹。 建 立 For i 1 To ThisWorkbook.Worksheets. Countnext i 循环,在此循环中,用 Workbooks.Add 语句生成新的工作薄,定义新生成工作薄为 kxjsb。 设 置单元格的格式并输入文字 Merge 方法合并单元格, Font.Name 和 Font.Size 等设置单元格字体,单元格的 HorizontalAlignment 和 VerticalAlignment 均设置为 xlCenter 使字体居中[11],并输入文字制作表头,最终 格式如表 1 中 Range“A1P5”单元格区域数据格式。 2.3.1 测井各测斜点坐标增量计算 在 For i 1 To This Workbook.Worksheets. Countnext i 循环中,用 Copy 和 PasteSpecial 方法 将代码工作薄中该孔测井资料和孔口坐标复制到生 成的孔斜计算表中,如表 1 中 N1、N2、N3 单元格 为孔口坐标值,Range“B6D10” 单元格区域数据 为测斜点深度、顶角、方位角数据。 根据式1式6编制代码在 kxjsb 工作薄的 sheet1 工作表中计算测斜点间距、平均顶角、平均方 位角、测斜点坐标和坐标增量等,用 Application. Round 对计算结果进行四舍五入,保留两位小数。 kxjsb 工作薄第六行数据计算孔口和第六行以下数 据计算所用 Excel 公式不尽相同, 所以先计算第六行 数据,然后在前述循环中嵌套循环 For j 7 To kxjsb. Sheets“Sheet1”.Range“b65536”.End xlUp. Row next j,计算第 7 行及以下数据。计算结果如表 1 中 Range“E6P10” 单元格区域数据所示。 2.3.2 地层界线和煤层坐标增量计算 首先判断综合成果表文件夹中是否存有当前孔 斜计算钻孔对应的的综合成果表。在 For i 1 To ThisWorkbook.Worksheets.Countnext i 循环中,用 DirThisWorkbook.Path “\综合成果表\” This- Workbook.Sheetsi.Name “综合成果表.xls”来表 示该钻孔的综合成果表,用 if 条件判断语句判断该 综合成果表工作薄路径是否为空,如果不为空则用 Workbooks.Open 方法打开该孔综合成果表。 复制综合成果表中数据到 kxjsb 工作薄的 sheet1。嵌套使用 For m 30 To Workbooks This- Workbook.Sheetsi.Name “ 综 合 成 果 .xls”. Sheets“sheet1”.Range“b65536”.EndxlUp.Row 循 环语句遍历综合成果表的 sheet1 工作表,将表格中 的地层界线名和煤层名及对应深度复制到该孔孔斜 计算表中,如表 1 中 Range“A12B16” 单元格区域 数据所示。代码如下 ①kxjsb.Sheets“Sheet1”.Cellskxjsb.Sheets“Sh eet1”.Range“a65536”.EndxlUp Up.Row 1, 1 WorkbooksThisWorkbook.Sheetsi.Name “综合成 果表.xls”.Sheets“sheet1”.Cellsm, 9; kxjsb.Sheets“Sheet1”.Cellskxjsb.Sheets“Sh② eet1”.Range“a65536”.EndxlUp.Row, 2 Work- booksThisWorkbook.Sheetsi.Name “综合成果 表.xls”.Sheets“sheet1”.Cellsm, 12。用 workbooks ThisWorkbook.Sheetsi.Name “综合成果表.xls”. Close 关闭该综合成果表工作薄。 嵌套循环语句For n 1 To kxjsb.Sheets“Sheet1”. Range“a65536”.EndxlUp.Row 遍历 kxjsb 工作薄 sheet1 工作表, 用 Insert 方法在测斜点坐标增量计算 数据下插入一空白行,将测斜点孔斜计算和地层界 线、煤层孔斜计算分为两部分。 再次嵌套循环语句 For o n 2 To kxjsb.Sheets “Sheet1”.Range“a65536”.EndxlUp.Row, 根据式7 编制代码计算地层界线和煤层的孔斜数据坐标、 坐标 增量。 视需要将某些单元格的 NumberatLocal 值 设置为”0.00_ “使单元格数值显示为保留两位小数。 用 SaveAs 方法将 kxjsb 工作薄命名并保存为“* 孔斜计算表” 工作薄*为孔号, 用 Close 方法关闭[12], 孔斜计算过程全部完成。 3 应用实例 此程序应用于贵州省都匀市江洲镇青山煤矿 ChaoXing 44 煤田地质与勘探 第 45 卷 预留资源储量核实及勘探项目,运行完检查孔 斜计算表数据,测斜点和地层界线、煤层孔斜数据 按照公式处理准确,表格格式设置清晰明了,每一 个钻孔生成一个工作薄并按钻孔名称和指定路径保 存在孔斜计算表文件夹下,符合规范和设计要求, 完全达到了孔斜处理的目的,如表 1 所示。 表 1 孔斜计算程序应用实例 Table 1 Application example of batch processing program for borehole deviation 4 结 论 a. Excel 内置的 VBA 语言具有功能强大、 易于操 作、数据可以直接在 EXCEL 中输出、计算结果准确 清晰的特点,在地质数据处理工作中具有广阔的应用 空间。 b. 与传统孔斜数据处理方法相比,无论钻孔数 目多寡,孔的深度大小, 煤田钻孔孔斜批量处理程 序 均能做到一键生成, 准确性和快捷性均有大幅度 提高, 符合规范和项目要求, 此方法和程序值得推广 应用。 参考文献 [1] 余立超. 测斜技术在钻孔施工中的应用[J]. 科技信息,2009, 23328-329. YU Lichao. Application of inclinometer technology in drilling[J]. Science Technology Ination,2009,23328-329. [2] 于文林,尹军,徐庆国. 钻孔孔斜参数的计算与研究[J]. 山东 煤炭科技,2015,11151-152. YU Wenlin, YIN Jun, XU Qingguo. Calculation and study on the parameters of borehole deviation[J]. Shandong Coal Science and Technology,2015,11151-152. [3] 李海明. WFSD-2 孔二开孔斜分析及纠斜施工[J]. 探矿工程 岩土钻掘工程,2012,39121-24. LI Haiming. Analysis on the second opening of WFSD-2 hole and deviation correction construction[J]. Exploration Engineer- ing RockSoil Drilling and Tunneling,2012,39121-24. [4] 赵国富. 基岩大口径垂直钻孔施工实践[J]. 探矿工程岩土钻 掘工程,2010,37349-51. ZHAO Guofu. Construction practice of vertical borehole with large diameter in bedrock[J]. Exploration Engineering RockSoil Drilling and Tunneling,2010,37349-51. [5] 王乔,窦延宝,石立华,等. 应用 Excel VBA 编制煤田钻孔 综合成果整理程序[J]. 煤田地质与勘探,2016,44127-30. WANG Qiao, DOU Yanbao, SHI Lihua, et al. Program compiling for coal field drilling comprehensive results by Excel VBA[J]. Coal Geology Exploration,2016,44127-30. [6] 卢向科,王平均,张利辉,等. Excel VBA 在矿山测量中的应 用[J]. 煤炭技术,2009,2811118-119. LU Xiangke, WAND Pingjun, ZHANG Lihui, et al. Application of Excel VBA to mine surveying[J]. Coal Technology,2009, 2811118-119. [7] 孙立伟,马江全. Excel 在钻探地质编录中的应用[J]. 矿业快 报,2004,201248-50. SUN Liwei,MA Jiangquan. Application of Excel in compilation and record of drilling geology[J]. Express Ination of Mining Industry,2004,201248-50. [8] 张峋. Excel VBA 入门与典型案例[M]. 北京清华大学出版 社,2007. [9] 王成春, 萧雅云. EXCEL VBA2003 程序设计实例导航[M]. 北 京中国铁道出版社,2005. [10] 郭刚. Excel VBA 入门与应用典型实例[M]. 北京科学出版 社,2009. [11] 王鸿儒. Excel VBA 程序设计[M]. 北京中国铁道出版社, 2005. [12] 罗刚君. Exclel VBA 程序开发自学宝[M]. 北京电子工业出 版社,2009. 责任编辑 范章群 ChaoXing
展开阅读全文