基于三维引擎的变电站二次系统三维模型库设计及管理系统

国网新疆电力有限公司经济技术研究院、南京五采智电电力科技有限公司的研究人员周二彪、李忠政、赵军、李清、朱如意,在2020年第8期《电气技术》杂志上撰文,针对当前输变电工程中变电站二次系统三维建模关键技术的缺失,广泛调研变电站各类二次对象,面向不同电压等级、不同类型的设备,在建模的范围与深度和模型的属性两方面进行深度研究。
采用Unity3D三维引擎配合3DMax建模开发一款模型库设计软件,建立二次对象三维基本模型库;基于二次系统基本模型库采用图形化的方法搭建模型,形成二次对象组合模型库;支持模型的上传、下载、索引及版本的管理。通过二次对象模型库设计及管理系统的研究,确保了输变电工程模型库的完整,实现了模型库的标准化和共享化的目标,达到了二次系统三维的工程化水平。
三维建模及运维应用已逐步进入到了各个行业领域,如电力、石化、建筑等,成为国内外高水平公司在工程设计、工程管理及工程实施、运行阶段的重要辅助手段。目前,国网电气一次专业、土建专业三维数字化技术的研究及应用已趋于标准化且进入推广阶段。
随着国网公司《输变电工程三维设计模型交互规范》系列标准的发布,电网信息模型(grid infor- mation model, GIM)进入工程化阶段,达到了统一模型构建方法、数据组织、编码统一和交互规则的目的。同时,《三维设计通用模型库应用目录(2018版)》的发布,统一建模了14大类电气一次设备、动力设施、水工暖通设施等471个三维通用模型,按照统一的模型深度、技术参数和接口建模,实现模型的通用性和标准化。三维设计的标准化建设成果已日趋成熟并进入推广应用阶段。
但是,在输变电工程三维设计相关标准和模型库目录中,只规定了线路及变电一次设备的建模规范和数字化移交要求,缺少变电站二次系统三维设计方面相关的关键技术研究,比如二次对象模型库、二次回路逻辑文件、二次应用接口文件等,导致输变电工程三维设计数字化移交不完整、数字档案不齐全。
其中,变电二次方面更多的是体现功能原理,较难的是二次三维实物模型,相关的三维数字化方面的研究还较少,二次系统三维数字化方面仍处于起步阶段。变电站二次三维建模方面的缺失影响智能变电站工程三维设计覆盖范围和应用效果,同时制约着二次系统三维全景可视化展示及高效运检。
针对二次对象的三维模型不完整,对变电站各类二次对象进行广泛调研,确立二次三维建模的范围、深度和参数,构建全面完善的二次对象三维模型并形成有效的模型管理库,将对电网建设和生产阶段产生积极作用。同时,现有的三维模型建立手段较为复杂,开发一款具有基本模型库设计、组合模型库设计、模型库管理等功能的智能变电站二次对象模型库设计软件,具有重要的意义。
1  整体方案设计
基于“输变电工程三维设计系列标准”,三维设计以数据库为支撑、三维模型为依托,通过数据驱动模型,从二维到三维,完成总体设计。针对三维设计配置及三维全景可视化的需求,三维软件平台的选择和使用极为重要。
对工程设计而言,软件的简明、清晰、低成本是提升工程质量的重要因素,并且也决定了这款三维软件的可推广性。选定的三维引擎应既能支撑PC端和移动端的三维场景可视化,又能从开发复杂性、开发周期以及后期维护等方面考虑。
本文选取Unity3D和3DMax,以3DMax为建模工具、Unity3D为引擎,开发一款模型库设计软件作为模型展示管理的平台,配合数据库将变电站二次系统三维模型进行专业化整合分类,统一在该平台下协同设计,以符合设计流程及体系文件的要求,满足实际工程中各项功能的需要。数字化三维模型库设计软件平台架构如图1所示。
图1  模型库设计软件平台架构图
模型库设计软件以SQL sever、Unity3D以及3DMax为基础平台配合模型及模型信息数据库进行开发,同时包含基本模型库和组合模型库两个库。
应用层面包括三维模型库设计平台和管理平台,三维模型库设计平台包括对模型分类设计、模型组装设计、模型参数设计、模型优化设计以及模型贴图渲染设计;管理平台包含对模型的导入导出管理、数据库及模型库的管理。软件最后输出的成果即为二次对象三维模型以及二次对象模型Word清单。
2  基础层简介
2.1  三维建模工具3DMax
3DMax是Autodesk公司开发的一款三维建模以及制作动画的软件,目前已经在各个领域(如建筑设计、广告设计、游戏等)被广泛应用。
相比其他的一些三维建模软件,3DMax在建模能力、模型优化、模型精度方面有着较大的优势,具体如下所述:1)功能强大,极强的建模能力,极好的扩展性,有很多插件供用户选择;2)界面优质,操作方便,易上手;3)软件的稳定性好,兼容性好;4)可以导出绝大多数通用的模型格式。
2017年底国家电网公司已制定印发了8项就输变电工程三维设计展开的标准,将变电站二次对象三维模型作为三维设计技术实施的具体对象。模型是各方面工作、实现数据有效传递的基石,应遵循“标准统一、兼容交互、模型通用”三项原则。因此,选择功能强大的3DMax对复杂多样的二次对象进行建模,可以大大提高模型设计的效率及精度,实现模型的标准通用化。
2.2  三维引擎Unity3D
Unity3D是丹麦Unity Technologies公司开发的多平台的游戏开发引擎,是一个全面的多平台的综合型游戏开发工具。相比传统的游戏开发引擎,Unity3D的编辑器界面非常友好,如图2所示,将大部分的开发工作以可视化的方式提供给了开发人员。
Unity引擎的功能专业且非常强大,它最显著的特点就是可跨平台开发。一个完整的Unity3D开发的程序是由若干个场景(scene)组合起来的,而每个场景包含许多的对象模型(game object),这些对象模型都是由脚本(script)来控制其行为的。
图2  Unity3D编辑器界面
图2所示为在3DMax中建好的设备模型导入到Unity3D中进行效果展示,可以看出Unity3D界面中有5种视图:项目视图、游戏视图、场景视图、层次视图以及监测视图。
以本项目为例,各个视图作用如下:
1)项目视图。存放二次对象模型库设计软件所用到的所有资源文件,如二次对象模型、脚本文件、贴图材质等。
2)游戏视图。对二次对象模型进行各种复杂的编辑之后,点击运行按钮,可以展示模型的最终效果。
3)场景视图。对模型进行一系列操作,包括移动、放大缩小、旋转、上材质等。
4)层次视图。存放当前场景中所有用到的模型对象以及摄像机、地形、粒子效果、UI等。
5)监测视图。点击选中的对象,可以预览该对象的属性,并且可以加以修改。
3  三维模型库的设计
本文基于Unity3D引擎,实现变电站二次对象三维模型设计软件的开发。从实际工程二次对象三维建模以及程序设计管理角度考虑,智能变电站的所有二次对象的三维建模及呈现,同一类对象尤其二次设备,不同厂家的外观、面板、背板结构都不统一。
故为提高设计效率,本文设计基本模型库及组合模型库两个模型库。无论二次对象在基本模型库还是组合模型库,都存在各式各样的分类,并且,两个库之间也存在着一定的依存关系,如图3所示。
图3  三维模型库存储管理树状节点图
3.1  基本模型库建立
随着国网公司“四统一、四规范”的发布,对测控、交换机、网关机等自动化设备进行了信息模型、菜单显示的统一及参数配置的规范等,同时对一些二次设备的外观进行了统一,但是规范并未涵盖保护、合并单元、智能终端等设备,故对基本模型库可以按照规范进行扩展设计,对屏柜、设备、线缆、硬压板、端子排等不同的二次对象分别建立最小化基本模型,以提高工程设计及配置效率。
屏柜方面包括线路保护屏柜、测控屏等以及屏体、屏眉等。二次设备方面包括机箱、面板、插件、端口等。线缆方面包括光缆、电缆、尾缆、纤芯、跳纤等。端子排方面包括标识、类型等。由此,细化最小模型。表1—表5分别为各个基本模型的分类,至于暂时未涵盖的内容可以后期通过模型库管理功能中的模型添加功能进行完善。
表1  屏柜模型分类
表2  二次设备模型分类
表3  线缆模型分类
表4  端子排模型分类
表5  硬压板模型分类
针对基本模型库中的模型,可以将其分为简单模型和复杂模型。简单模型可直接通过查看CAD图纸获取尺寸信息,复杂模型则需要对实物对象进行三维点云扫描才能获取尺寸,然后拍摄相应部位的照片(贴图用)。
简单模型和复杂模型建模方式也完全不同,简单模型的建模方式主要有创建标准基本体、扩展标准体和样线条,复杂模型则主要通过复合、放样和挤出的方式进行建模。
模型创建完之后,需要对模型的位置旋转角度等进行基本参数的修改,最后对模型进行贴图渲染,真实还原二次对象模型。基本模型库的具体建模流程如图4所示。
图4  基本模型库具体建模流程
1)简单模型创建
通过3DMax制作所有的模型几乎都是在简单模型的基础上加以编辑组装修改得到的。简单模型包括常见的立方体、球体、胶囊体等。以一个检修硬压板为例加以说明。看似简单的一个压板,也是通过将近20个简单模型通过各种组装、变形、挤出、封口等编辑操作得到的,如图5所示。
图5  检修硬压板模型组装前后图
(1)标准基本体。通过3DMax自带的标准基本体功能,可以创建一些简单的三维模型,如长方体、球体、圆柱体等。
(2)扩展基本体。通过扩展基本体功能可以创建异面体、切角长方体、切角圆柱体等模型。
(3)样线条。可以创建一些线条类的模型,如弧线、一些曲面等。
2)复杂模型创建
智能变电站二次系统三维模型均属于复杂模型,需要在简单模型的基础上对其进行一系列的复杂操作,从而得到相应的模型。常见的复杂操作有复合操作、放样操作、挤出操作。
(1)复合操作。复合模型是指两个或者多个模型组合叠加形成的模型,布尔复合方式是最常用的,可以选取操作对象的并集、交集、切割等种类。根据不同的操作模式得到不同的复合模型。
(2)放样操作。放样操作是指将一个二维图形对象作为剖面,沿着某个路径构造出复杂模型的过程。通常这样的二维图形为封闭的二维曲线,如圆、多边形、梯形等。
(3)挤出操作。挤出模型原理与放样模型类似。挤出操作需要给定模型的一个剖面,然后通过挤出修改器,可以对模型的截面进行挤出操作,设定挤出的深度及方向,然后通常还要对模型进行封口操作,这样才能得到封闭的实体模型。
3)参数修改
不管是简单模型还是复杂模型,都会有相应的参数修改面板,通过修改面板上的参数可以对模型进行微调,以有效提高模型的设计精度。除了模型自身的结构参数外,还有模型的位置信息参数,在三维空间内每一个模型都有X、Y、Z坐标,这3个参数决定了模型的位置以及旋转的角度。
图6所示为一个二次设备的模型,把它从项目文件中提取到场景视图中,并且选中该模型,从最右侧的监测视图中可以看到该设备模型的长宽高、旋转角度、大小基本信息以及材质信息和绑在该模型上的脚本等。
图6  二次设备模型信息图
4)贴图及材质渲染设置
通过材质编辑器可以为模型设定相应的材质。材质的来源有很多种,纯色的、木质的、金属的等。在材质编辑器中设置好之后,就可以将材质附着到模型上,这样在模型编辑器窗口中就可以看见带有材质的模型了,即材质效果图。
为了减少计算机CPU的计算时间,使得传输速度加快,利用烘焙功能将光照信息贴到贴图上去。在利用3DMax中高质量的材质效果与Unity3D结合后,模型的灯光效果看起来很有视觉感,材质和光照都非常清晰,具有立体感,这样就能真实地还原二次系统三维模型。为了规范模型的光照信息,模型库中所有模型都采用纯粹的自然光照。
5)3DMax中模型导出
在3DMax中,建好对象模型之后就可以进行导出操作,非常简单,可以选择多模型导出,也可以只导出单个模型。强大的3DMax支持导出多种格式的模型,如图7所示。因为Unity3D中所用的模型大多数为.obj格式,所以本文中所有模型都是.obj格式的。
3.2  组合模型库建立
组合模型库的设计包括物理层面和信息层面两部分,物理层面基于基本模型库进行二次对象的三维模型拼接,信息层面描述二次对象的基本属性以及特殊属性。
物理层面主要基于基本模型库,拼接一个或者多个基本模型形成一个相对独立且完整的二次对象的组合模型。
图7  模型的导出
信息层面主要面向二次设备,包括设备类型、设备名称、设备型号、设备版本、生产厂商、所属间隔、额定电流、额定电压、PMS设备ID号、电网标识系统编码、物料编码等,为各个阶段的模型移交提供保障,并可以在模型进行展示时进行关联性展示。
遵循《输变电工程三维设计模型交互规范》系列标准,使一、二次模型得以交互,即二次设备模型库能够与一次设备模型库进行无缝衔接。可以将一次设备模型导入模型库中,编译解析过后就可以将一次设备模型和二次设备模型进行自由拼接。
1)二次对象模型的组装
将3DMax中创建好的二次对象模型导入到Unity3D中,导入过程中需要对模型进行一些简单的处理,以防止一些材质信息的丢失。同时采用LZMA的压缩算法,将一个15MB左右的模型文件压缩为2MB左右,以达到网络传输速度的要求。
将模型文件导入到模型库设计软件后,可以对模型进行组装,组装成一个完整的端子排或是设备、屏柜等。以前模型的组装几乎都是通过配置文件来设置模型的三维坐标,但是二次对象种类、数量繁多,所以本文开发了一个模型控制器,用来控制模型的位置信息以及旋转角度信息。图8所示为组装屏柜的实时画面。
图8  组装屏柜的实时画面
组装模型操作步骤如下:
(1)鼠标拾取对象
鼠标拾取对象主要采用的是射线检测的方法,从屏幕发射一条射线,鼠标的位置即射线射向的位置,射线碰到的第一个物体即要操作的对象模型。如图9所示,A、B、C 3个对象模型,如果鼠标指向C,那么射线检测到的物体即为C对象模型。
图9  鼠标拾取模型对象
(2)鼠标控制对象
每个对象模型都挂了一个Transform组件,这个组件显示信息就是对象模型的位置信息、旋转角度信息以及大小信息,如图10所示。
图10  模型的Transform组件
通过修改面板上的数值就可以控制对象模型的位置、角度以及大小,而本文的控制器可以直接通过鼠标控制对象模型,鼠标拾取对象模型后,左击按住移动,对象模型就会跟着移动,相应的Transform上的值也会跟着变化;右击按住移动,对象模型就会跟着进行旋转;为防止模型大小被随意更改,又考虑到用户可能需要放大模型进行仔细观察,故本文通过改变摄像机的位置,根据相似三角形原理拉近或拉远对象模型,以达到放大和缩小的效果,如图11所示。
图11  改变摄像机位置效果示意图
2)二次对象模型优化处理
在对二次对象模型组装完成后,为了降低场景的复杂度,提高场景显示实时性,减少性能消耗,加快处理速度,需要对模型进行优化处理。
针对不同的二次对象模型,选择的优化模型方法也不同。
(1)减面工具。一些(如保护装置、ODF等)结构比较复杂,表面细化分明,弧面较多,需要大量的顶点和多边形的对象模型,渲染起来会十分浪费计算机空间,影响渲染的速度和质量。减面工具的原则是在保持模型不变的情况下,尽可能地减少模型的面数。
(2)模型合并。基本模型库中的模型进行组装之后,有些模型可以进行合并,比如插件端口组装到板卡上,这样就成了一个整体,无法再被单独选中。
(3)优化材质与贴图。模型创建完成后都要加上材质与贴图。本文以模型的最优原则为准,几乎所有的模型都是利用标准材质,只有极少数的对象(如设备液晶显示屏的颜色)采用高光控制。组装起来的模型可以重新上材质,可以选择对基本模型的材质进行覆盖,也可以进行材质合并。
(4)细节层次(level-of-detail, LOD)技术。用不同的细节程度来展现模型对象,在渲染场景时,LOD细节层次技术的机制是根据视点离对象模型的距离使用适当的层次来展现物体,当摄像机距离试点模型比较近时,采用的是高精度LOD模型绘制;反之,则采用低精度的LOD模型进行绘制。这种技术可以大幅度减少显示多边形的数量,极大提高渲染速度。表6所示为LOD层次模型精度表。
表6  LOD层次模型精度表
一级模型属于精细模型,用户视点位置距离模型6m范围之内,能够观察到模型的细节纹理特征,此时模型是提供最精细的方式供用户观测。
二级模型属于精简模型,用户视点位置距离模型6m范围之外,模型的一些网格信息和纹理特征被忽视,此时模型以精简模型显示给用户。以端子排为例进行LOD层次划分,图12(a)、图12(b)所示分别为端子排的精细模型和精简模型。
图12  端子排精细模型和精简模型
4  三维模型库的管理
三维模型库的功能设计是实现对基本模型库以及组合模型库的有效管理。确定模型库的体系结构之后,应配套相应的管理系统以便从宏观、整体的角度管理模型库中的二次对象模型资源,维护模型库的独立性和完整性,这样才能快速获取所需模型,实现对已有模型数据集合的有效查询及接口引用。
从最基本的管理维护功能和应用功能考虑,管理系统应该具备如下功能:模型预览及信息属性查询、组合模型的保存导出、添加模型和删除模型。各功能具体任务如下:
1)模型预览和信息属性查询功能是指可以通过导航的搜索按钮寻找目标对象模型以及显示模型的对应信息。如图13所示。
图13  模型库设计软件搜索功能
2)组合模型的保存导出功能是指用户从基本模型库中选择模型完成组装之后,点击保存按钮,将组合模型保存至组合模型库中,完成保存后可以将模型导出成.obj等常用的模型格式。考虑到与一次设备进行良好的兼容,也可以导出成.gim格式的模型,如图14所示。
图14  模型库设计软件保存功能
3)添加模型功能是指将模型库中没有的模型加入模型库中,通过3DMax新建模型,同步数据库中关于该模型的文件属性以及一些材质贴图等,然后通过脚本文件配置好后,放入已经部署好的数据库,本地客户端运行时就会自动加载新增加的模型,其原理如图15所示。
4)删除模型是指永久性删除模型库中的模型,删除模型文件以及数据库中的模型信息,用户只需要选择删除对象,点击删除按钮即可,如图16所示。
图15  添加模型原理图
图16  模型库设计软件删除功能
5  结论
本文面向智能变电站二次系统,研究和梳理了现有的三维模型数字化、信息化规范要求,提出了二次系统进行三维建模的方法、范围、深度,在设计阶段对三维模型进行有效管理,并实现与现阶段数字化移交文件的交互。
建立二次对象的基本模型库和组合模型库供三维设计时调用,提高了二次对象的建模深度,实现了模型的统一管理、统一发布。在二次三维设计时,可直接调用模型库中的二次对象模型,而无需手动拼出该模型,很大程度上改善了出图形式,提升了三维出图深度和设计效率。
(0)

相关推荐