基于易语言的盘煤系统设计与实现

2015-05-30 17:27轩立军
中小企业管理与科技·上旬刊 2015年11期
关键词:软件设计三角网三维重建

摘 要:为了有效解决煤炭单位测量存煤量,提出了一种实用、便捷的GPS_RTK盘煤系统方案,给出了盘煤系统的可行性分析及基本原理。通过易语言中文编程语言设计并开发盘煤系统。系统功能部分包括数据维护、DEM重建、体积计算及成果输出。详细给出了法向量建立凸多边形算法,逐点插入法建立三角网算法。

关键词:盘煤系统;软件设计;GPS_RTK;三维重建;三角网

1 概述

随着国家经济的快速发展,采煤技术的不断提高,近年来国外内涌现出了很多年产量超过千万吨的大型矿井。这些大型矿井往往每旬至少要对矿内所有煤堆的堆煤量进行测算一次,以便实时了解煤炭产量,为下一步的生产计划提供科学依据。

然而,大多数煤炭矿井目前还是采用人工丈量煤堆煤量。这种方法不仅浪费人力物力,而且计量精度较差。此外,人工丈量还需要推土机对煤堆进行平场,同时还需要三至四个人协作来进行煤堆测算,不利于管理数据化,不利于提高经济效益。

结合GPS_RTK地面测量,设计并开发一款盘煤系统。将快速采集到的煤堆观测网数据进行数据筛选,科学计算,使盘煤工作简单、快捷、科学,尤为重要。

2 可行性分析

①GPS_RTK基于载波相位观测值实时定位技术,可以快速采集到煤堆表面各特征点的三维空间数据,精度可达到厘米级精度。使用轻巧便携,操作简单,性能可靠。

②GPS_RTK单次采集特征点三维数据,给出厘米级定位结果,历时不到一秒钟。整个盘煤工作只需要单人即可快速完成,省去多人协作的步骤。

③盘煤系统数据接口与GPS_RTK数据接口、AutoCAD图形文件格式、Excel数据格式对接,方便不同用户的平台搭接。

④盘煤系统性能可靠,界面友好,操作方便,计算方法科学精确。避免人工计算错误,减少人工绘图误差。

⑤盘煤系统搭载数據维护模块,用户可修改(修正或批量加常数)、导出坐标点数据。图形化成果可导出AutoCAD格式,便于成果的查询、打印与数据共享。

3 盘煤系统的基本原理

盘煤系统的基础数据来源于GPS_RTK采集到的煤堆表面尽可能多的特征点三维空间数据(X,Y,Z坐标)。将这些特征点三维空间数据快速导入到盘煤系统中,系统自动对这些特征点的空间位置信息进行逐一比对校验,去除重复点及错误点。

利用筛选后的特征点三维空间数据构建DEM(数字高程模型),使每个煤堆形成由多个三棱柱组成的煤堆观测网。

利用每个三棱柱的平均棱高及底面面积,逐一计算每个三棱柱的体积。将所有三棱柱的体积进行累加,即得出煤堆的体积。

最后,用煤堆的容重乘以煤堆的体积,获得煤堆的煤量。

4 系统功能及主要算法

盘煤系统由四个模块组成,它们分别是基础数据维护,DEM(数字高程模型)重建,体积计算,成果输出(如图1所示)。

4.1 数据维护

由于GPS_RTK采集到的煤堆特征点数据可能因基站-移动站距离过大及用户误操作,产生重复点、距离过远或距离过近的错误点。盘煤系统第一步要做的工作就是提供给用户一个友好的数据维护界面,并高亮显示重复点、距离过远或距离过近的错误点,以便用户完成数据的新增、修改、删除、校验工作。

4.2 DEM(数字高程模型)重建

将所有经过筛选后的特征点三维空间数据导入系统后,系统利用逐点插入法构建DEM(数字高程模型)。

逐点插入法构建DEM,基本步骤如下:

①首先不考虑特征点的Z坐标,只考虑特征点的X、Y坐标。这样,所有特征点可视为在同一水平面内。利用法向量法对这些特征点进行遍历,构成一个包含所有特征点的凸多边形。

②在凸多边形内部建立一个初始三角形网,然后迭代③④步骤,直到所有数据点处理完毕。

③插入未处理的数据点P,在三角网中找出包含P点的三角形t,连接P与三角形t的三个顶点,生成新的三角形。

④利用局部LOOP算法优化三角网。

⑤最后,删除外部多余三角形。

4.3 体积计算模块

通过DEM的建立,可以清晰的看出煤堆的体积实际上可剖分为所有三棱柱的体积之和。由于多数煤炭单位煤场在堆煤前都已经过平场,这里我们近似认为所有三棱柱的底面和煤堆底面共面。GPS_RTK采集到的煤堆堆底特征点Z坐标平均值作为底参考面的高程。

三棱柱体积:V=V=SH

三棱柱的柱高:H=(z+z+z)-h

底参考面的高程:hZ(式中Z为煤堆堆底特征点)

三棱柱的底面积:

S=ab·sin<,>

=ab·

=

=

=

在体积计算模块中,系统为用户提供煤堆堆底面积(占地面积)及煤堆体积的实时显示。用户只需输入煤的容重,即可得出煤堆的煤量。

4.4 成果数据输出模块

考虑到数据的共享性,本系统搭载数据维护功能和成果数据图形化输出功能。在数据维护阶段,用户可将数据点进行新增、修改(修正或批量加常数)、删除等操作。坐标数据点可以*.CSV(逗号分隔Excel文件格式)、*.TXT(制表符或逗号分隔的文本文件格式)、*.DAT(CASS文件坐标格式)输出。在煤堆体积计算完成后,用户可将DEM(数字高程模型)三角网图形及煤堆占地面积、容重等文字信息以*.DXF(AutoCAD图形文件格式)输出。

5 关键代码

5.1 法向量建立凸多边形

XL.起点=寻找MinX (A)

'寻找X坐标最小的点最为初始向量XL的起点

删除成员(XL.起点,所有点集)

......

计次循环首(1,取数组成员数(所有点集))

变量循环首 (1, 取数组成员数(所有点集) , i)

XL.终点=所有点集[i]

L=(XL.终点.X坐标-XL.起点.X坐标)×(XL.终点.Y坐标-XL.起点.Y坐标)

'所有点集[i]作为向量终点,并记录每个向量的斜率l

变量循环尾 ()

Lmin=寻找MinL(l)

'遍历所有向量斜率l,寻找斜率最小向量Lmin

删除成员(Lmin.终点,所有点集)

加入成员(Lmin.终点,凸多边形点集)

L.起点=Lmin.终点

......

计次循环尾 ()

5.2 DEM建立

计次循环首(1,取数组成员数(三角网))

t=初始三角形()

'构建初始三角形t

......

变量循环首 (1, 取数组成员数(p) , i)

L1=(t [2].X坐标-t[1].X坐标)×(t[2].Y坐标-t [1].Y坐标)-(p[i].X坐标-t [2].X坐标)×(p[i].Y坐标-t [2].Y坐标)>0

'判断p[i]点是否在向量t.[1]→t[2]的左(右)侧。如果p[i]在向量t[1]→t[2]左(右)侧,则L1为真

L2=(t [3].X坐标-t[2].X坐标)×(t[3].Y坐标-t [2].Y坐标)-(p[i].X坐标-t [3].X坐标)×(p[i].Y坐标-t [3].Y坐标)>0

L3=(t [1].X坐标-t[3].X坐标)×(t[1].Y坐标-t [3].Y坐标)-(p[i].X坐标-t [1].X坐标)×(p[i].Y坐标-t [1].Y坐标)>0

如果真 (L1 且 L2 且 L3)

'如果p[i]点在三角形t三边组成向量的同一侧,则说明p[i]点在三角形t内部

加入三角形集(t[1],t[2],p[i])

'连接t[1],t[2],p[i],组成新的三角形

加入三角形集(t[2],t[3],p[i])

加入三角形集(t[3],t[1],p[i])

如果真结束

......

变量循环尾 ()

......

计次循环尾 ()

6 结束语

本系统利用GPS_RTK的数据采集功能在煤堆观测网上进行数据采集,通过逐点插入法将采集到的煤堆特征点三维空间数据进行三维重建,计算煤堆体积达到煤量测算的目的,使盘煤工作简单化、精细化,盘煤成果数据化、图形化,便于煤矿单位存煤管控和效益评估工作,发展前景广阔。

参考文献:

[1]刘云,夏兴东,黄北生.基于分治算法与逐点插入法的Delaunay三角网建立算法的改进[J].现代测绘,2010(04):14-16.

[2]李矿伟.GPS-RTK测量技术在矿山的应用[J].科技与企业,2015(5):114-114.

作者简介:

轩立军(1987-),助理工程师,2010年畢业于河南理工大学测绘工程专业,现任神华宁夏煤业集团金凤煤矿地测科技术员。

猜你喜欢
软件设计三角网三维重建
基于Mimics的CT三维重建应用分析
针对路面建模的Delaunay三角网格分治算法
基于STC单片机的厨房智能安全管控系统的设计
基于STM8S903K3的序列打螺丝夹具的软件设计
基于关系图的无人机影像三维重建
一种VHDL语言代码重用的方法
三维重建结合3D打印技术在腔镜甲状腺手术中的临床应用
多排螺旋CT三维重建在颌面部美容中的应用
清华山维在地形图等高线自动生成中的应用
在AutoCAD环境下不规则三角网构建及等高线生成