本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
摘 要: 关键词: 储油罐;立罐;数据模型;三维建模;数字石化
数字石化是指以计算机信息技术为手段全面实现石化设备、石化设施和企业的数字化、网络化、智能化和可视化[1-3]。石化企业设备、设施以及厂区的三维可视化以及相应的管理信息系统都是数字石化的一部分内容。现如今,三维建模已经在很多领域得到了发展和应用,如地矿部门[4-6]、石油存储地层建模[7-9]、数字城市[10-11]等,却鲜有石化方面的三维模拟研究见诸公众。
大型储油罐是石化企业最重要的设备之一,它具有很大的容积,有着广泛的应用。一些大的石化企业都有专门的场地存放储油罐,其数量往往达到几百甚至上千个,这为石化企业的管理带来了困难。为了能够在短时间内对这些储油罐进行动态管理(例如储油罐的储油量、消防等),研究储油罐的三维模拟就显得十分重要和有意义,这也为“数字石化”的发展提供了理论基础。本文将以最常见的储油罐--圆柱形立罐为例,主要针对其三维数据模型、三维数据结构及建模方法进行研究,并以VC++为程序设计语言,以OpenGL为三维图形显示工具,对所研究的数据模型、数据结构及构模方法进行验证。
1 储油罐的分类及三维数据模型
1.1 储油罐的分类
储油罐是储存油品的容器,它是石油库的主要设备。储油罐按材质可分金属油罐和非金属油罐;按所处位置可分地下油罐、半地下油罐和地上油罐;按安装形式可分立式、卧式;按形状可分圆柱形、方箱形和球形[12]。由于立罐具有代表性,本文将以圆柱形的立罐为研究对象,进行三维模型的构建。
1.2 储油罐的三维数据模型
三维空间构模方法研究是目前3DGIS领域研究的热点问题。许多专家和学者在此领域都做了有益的探索,总共提出了20多种空间构模方法,可分为基于面模型、基于体模型和基于混合模型的三大类构模体系[4,13-14]。由于储油罐是一种空间实体,具有规则的边界,而内部又是中空的实体,所以基于体元模型的构模方法不适用于构建三维储油罐。本文利用面向对象分析的方法将立罐三维建模的基本元素抽象为点、线、面三大类,如图1所示。
点类主要包括储油罐测量点、离散点等,线类有特征连接线,面类主要有基础面元、储油罐的底面、侧面、顶面等。这样储油罐的体模型就可以由这些基本构模元素通过一定的构模方法构建。这里需要强调的是,特征连接线是由用户指定的用于连接特征点的线段。在三维构模过程中,体的生成主要由特征连接线构成。基础面元主要由特征连接线构成,通常有三角形面元和四边形面元两种类型,在三维空间表面模型表达上,三角形面元要优于四边形面元[15]。这种通过面、边、点来定义实体的位置和形状的数据模型就是边界表示模型[4](B_rep),图1表达了立罐的三维边界表示模型。
2 储油罐的三维数据结构
根据上述的三维数据模型,用C++语言描述立罐的三维数据结构如下:
struct 3DPOINT//空间点结构
{
long PointID;//点的ID号
float x, y, z; //点的三维坐标
}
struct LINE//线结构
{
long LineID; //线的ID号
3DPOINT StartPoint;//起点坐标
3DPOINT EndPoint;//终点坐标
}
struct TRIANGLE//基础面元
{
long TriID;//三角形ID号
3DPOINT p1, p2, p3;//三角形顶点坐标
LINE line1, line2, line3; //三角形边
}
struct SURFACE//面结构
{
Long SurfaceID;//面的ID号
TRIANGLE *Tri;//三角形串
}
class LG
{
public:
long LgID; //立罐的ID号
3DPOINT CenterPoint;//立罐中心点三维坐标
float h1;//立罐柱体高度
float h2;//顶盖高
float r;//罐底半径
int precision;//罐顶模拟精度40
int m_type;//罐顶模拟类型,1,采用直线;
//2,采用正弦曲线
CString material;//材质
COLORREF rgb;//颜色
…//其他一些属性信息(自重,容积等)
};
立罐的三维数据结构直接描述了构成立罐模型的基础元素,有利于三维立罐程序的设计及三维可视化操作。
3 储油罐的三维构模方法及步骤
储油罐的三维模型构建总的思路是化复杂为简单,即首先将罐体进行剖分;然后对剖分后的各个部分分别建模;最后再将这些剖分的模型集成起来。以立罐为例,先将立罐剖分成底面、侧面、顶面、斜梯等部分;再对剖分后的底面、侧面、顶面等分别建模,此时,已经将复杂的立罐体模型简化为面模型;然后把这些面模型集成在一起构成体模型。
根据上述的边界表示数据模型,结合线框构模原理对立罐三维模型进行构建。其构模步骤如下:
(1)把立罐剖分成底面、侧面、顶面和斜梯等。
(2)首先,对底面进行模型构建。由于底面是一圆面,采用一正多边形对其进行逼近,本实例中,以正四十边形来模拟底面。假定底面圆心点的三维坐标为(x_center,y_center,z_center),半径为r,利用式(1)可以求出正四十边形所有顶点的三维坐标,再对底面进行三角化,即每两个相邻的顶点与圆心构成一个三角形,如图2所示,A、B为正四十边形上的两个顶点,这两个顶点与圆心O就可以构成三角形面ABO(基础面元),整个底面就可以由这样40个三角形面片构成。
4 实验模拟
针对上述提出的储油罐的三维数据模型、数据结构及构模方法,在Windows XP环境下,以VC++6.0为程序设计语言,以OpenGL三维图形函数包为可视化工具[16]进行程序设计,图5为立罐三维模型构建的参数设置对话框,所构模型如图6所示。
通过对立罐的数据模型、数据结构及建模方法的研究,得出以下认识:(1)对储油罐进行分类后,以立罐作为典型实例进行建模研究,给出了其空间构模的基本元素,并对这些基本元素的数据结构进行了定义;(2)提出的先剖分后建模的思路是可行的。对剖分后的各个部分分别进行建模和详细探讨,并对复杂的顶部曲面采用正弦函数法进行模拟,达到了良好的效果;(3)结合具体的建模方法及步骤,经过程序设计进行实验模拟。实验证实本文所提出的数据模型、数据结构以及建模方法是可行的。
参考文献
[1] 王权.解析石油行业信息化[J].数字化工,2004(12):5-7.
[2] 惠宁,王魁生.油气田技术设备引进管理信息系统综述[J].网络与信息,2008(8):78.
[3] HENDERSON M.Review of Marathon’s digital oilfield proof of concept[R].Global Energy forum.2008.
[4] 吴立新,史文中.地理信息系统原理与算法[M].北京:科学出版社,2003.
[5] Zhang Zhihua,Hou Enke,Zhao Zhou,et al.An improved symmetrical modeling method on 3D tunnel modeling[C]. 2009 International Conference on Computer modeling and simulation.Macau,IEEE CS,2009:251-256.
[6] 侯恩科,吴立新.面向地质建模的3D体元拓扑数据模型研究[J].武汉大学学报信息科学版,2002,27(5):467-472.
[7] 朱广社.三维地质建模及数值模拟技术在油藏开发中的应用[J].地质与资源,2005,14(1):67-70.
[8] 吴永彬,张义堂,刘双双,等.基于PETREL的油藏三维可视化地质建模技术[J].钻采工艺,2007,30(5):65-66.
[9] 马春生,周瑜,赵磊,等.三维可视化地质建模和油藏数模一体化技术在剩余油描述与挖潜中的研究与应用[J].内蒙古石油化工,2001,27(2):1-31.
[10] 占嵩,陈辉,商蕾.城市道路交通可视化建模及仿真研究[J].交通与计算机,2008,26(6):43-46.
[11] 朱庆,李渊.道路网络模型研究综述[J].武汉大学学报信息科学版,2007,32(6):471-476.
[12] 百度百科.储油罐[EB/OL].[2011-1-24].http://baike.baidu.com/view/3118978.htm.
[13] SCIANNA A,AMMOSCATO A.3DGIS data model using open source software[A].Core Spatial Databases-Updating,Maintence and Services-from Theory to Practice[C].ISPRS,2010,38:120-125.
[14] FRISO P,PETER V O,BARIS M K.A tetrahedronized irregular network based DBMS approach for 3D topographic data modeling[J].Progress in Spatial Data Handling,2006(10):581-598.
[15] 侯恩科,张志华,邓念东,等.OpenGL环境下两种巷道三维建模方法的比较[J].矿业研究与开发,2009,29(5):59-62.
[16] RICHARD S W,BENJAMIN L.OpenGL超级宝典[M].徐波,译.北京:人民邮电出版社,2004. |