面向变电站布置自动审核的设计规范可视化编程

2021-03-03 09:54李福林宋元斌
制造业自动化 2021年2期
关键词:外墙编程可视化

李福林,宋元斌,吴 冰,严 伟

(1.上海交通大学 船舶海洋与建筑工程学院,上海 200240;2.国家电网浙江省电力有限公司经济技术研究院,杭州 310008;3.浙江华云清洁能源有限公司,杭州 310008)

0 引言

设计阶段的合规性审核将影响变电站建成后的安全与可靠运行,可以从设计源头消除事故隐患。变电站布置设计的合规性审核包括检查各电气设备及建(构)筑物的空间布局等是否符合相关设计规范的要求。目前,变电站布置的合规性审核主要依赖人工完成,工作量大、耗时长、且易产生错漏[1]。实现变电站布置的合规性自动化审核是解决上述问题的一条重要途径。

近年,工程设计的自动审核在施工隐患识别[2]、防火[3]等领域取得积极进展。相关研究表明,设计合规性自动审核的关键模块是将设计规范转译为机器可执行的程序[4]。目前常见的规则编码方法有2种:硬编码法[5]和语义网[6,7]。前者将规范直接编写为命令式程序语言检查信息模型,如新加坡CORENET项目[8]聘请专业软件公司开发规则对象库FORNAX并使用C++语言编写审核规则。这类方法对领域专家的编程能力要求高且审核系统不透明、可维护性差。而部分学者提出的基于语义网的编码方法,借助语义网与本体建模将规范转换为描述式逻辑语言,与命令式程序语言相比编码难度有所降低。例如Lu等[9]通过简单的“IF…ELSE…”模板将屋顶开口尺寸设计规范编写为SWRL规则并利用Jess引擎推理评判设计的合规性。为了审核变电站布置的合规性,除了需要逻辑语言描述的设计规则外,还涉及大量的图形几何和空间分析算法,此类过程用逻辑语言表述极其复杂[10]。更加困难的是,一般工程技术人员难以在短时间内掌握上述编码方法,而且编码成果的可读性差,工程技术专家难以审核和维护编码成果,而计算机专家对规则的理解又存在局限性。

近年来,可视化编程得到广泛应用,它主要是让用户以绘制流程图的形式编写程序[11,12]。在梳理变电站布置规则构成的共性要素基础上,笔者提出面向变电站布置自动审核的设计规范可视化编程方法,主要包括一个三层结构的可视化编程框架和编程步骤,并详细定义了节点、端子与流的类型,以期降低设计规则的编码难度,同时提高自动审核工具的可维护性和透明性,从而更好地辅助变电站布置设计的自动审核。

1 变电站布置设计规则

在设计规范中,变电站布置的设计规则可以归纳为五个方面:

1)工作环境:电气设备应布置在合理场地且周边自然环境满足装置安全运行的要求。

2)电气安全空间:带电体之间以及与其他设施之间应保持足够距离以避免强电场击穿介质闪络放电而引起各种短路、火灾和爆炸事故。

3)围挡防护:在部分电气设备周围需布置围挡防护以防止人和物过分触及或接近。

4)防火消防:电气设备的布置应考虑防火要求,并设置必要的消防设施。

5)可维修性:电气设备之间,以及电气设备与建(构)筑物之间,应预留足够的空间以满足检修的要求。

上述五类布置设计规则的审核推理与运算主要需要以下三类计算功能的支持:

1)基本代数运算:算术运算、逻辑运算及关系运算功能等。

2)空间分析:主要负责计算对象之间的空间关系等信息,如“在变压器、配电装置和裸导线的正上方不应布置灯具”[13](《20KV及以下变电所设计规范》6.4.3条)。

3)几何模型计算:主要负责计算对象的几何模型等信息,如“配电装置中电气设备的栅状遮拦高度不应小于1.2m。”[14](《3~110KV高压配电装置设计规范》5.3.7条)。

以《3~110KV高压配电装置设计规范》为例,各类布置规则涉及的基本计算功能需求如表1所示。

表1 基本计算功能需求统计

总体上,空间分析和几何模型计算是规则编码的重点,它们都涉及较为复杂的几何(形体)计算或空间分析算法,此类算法不易采用逻辑语言描述;尽管也可采用硬编码法转译,但对设计专家的编程能力要求高,编码难度大。

2 布置设计规则的可视化编程框架

可视化编程的核心思想是将各类基本计算功能封装于节点内部,各个节点用数据流和控制流加以连接形成程序。基于上述编程思想,工程技术专家可专注于布置设计规则表述本身而不需要考虑具体的编程细节。为了实现上述可视化编程思想,需要提出一个框架,从可视化编程的要素与层次方面规定设计规则的程序。

2.1 可视化编程系统框架

图1展示了布置设计规范可视化编程的三层框架,自底向上为别为基础层、复用层和规则层。

图1 设计规范的可视化编程框架

最底层为基础层,包含预定义的各类节点、端子、流。节点不仅封装了前述的3类基本计算功能,还封装了设计模型访问等功能。端子是节点的数据输入和输出接口,流是实现数据传递和流程控制的方式,包括数据流和控制流2类。以空间拓扑分析节点为例,图2展示了其各个要素。

图2 节点示例

另外,节点的设计还需考虑其泛用性和合适的颗粒度,以保证节点的复用性强,且易于专家理解和使用。以图2中的空间拓扑分析节点为例,其泛用性表现在能够判断两个任意对象的拓扑关系而不局限于特定对象;而合适颗粒度则表现为领域专家仅需要关心节点的输入和输出,而无需了解节点内部封装的3DR27等复杂计算模型[15]。

中间的复用层包含专家利用基本功能节点编写设计规则的一些中间结果,它们由专家二次封装形成复用节点以便于在其他规则的编程中重复使用,例如“外墙”、“带电构件”等概念。复用节点之间也可相互引用并进一步封装。

最顶层为规则层,专家基于复用层和基础层,通过获取审核对象、规范编码、合规性评价三步构建最终的数字化审核规则。复用层与规则层的节点组合和连接信息均可采用XML格式记录。

2.2 节点类型

布置设计规则的详细节点类型如表2所示。

表2 节点类型

2.3 端子类型

节点的端子是数据的入口和出口,主要数据类型及其标识如表3所示。

表3 节点端子数据类型

为了保证节点的泛用性,本文基于国家电网有限公司针对变电站三维设计提出的电网信息模型(Grid Information Modeling,GIM)[16],定义了由图形数据段和非图形数据段组成的内部类GIMObject,从而统一设计对象的数据类型。此外,数据格式之间应具备一定的兼容性,例如浮点型兼容整型、GIM对象型兼容三维模型对象型等。

2.4 流的类型

1)数据流:运行过程中节点间的数据流转,包括基本的数据类型,例如整型、浮点型、布尔型等。

2)控制流:控制程序执行的逻辑顺序,一般包括分支和循环控制。

首先在必要的功能节点输入端子上额外增加布尔控制型输入端子以定义该节点是否执行。其次,将循环结构嵌入节点内部实现循环控制,其中内部循环分为2类:全循环与分组循环。全循环是指遍历输入数组中的每一个元素进行运算;分组循环是指在处理多个数组输入时,以相同数组索引的元素为一组进行遍历计算。以空间拓扑分析节点为例,假设分析类型为判断分析对象(bj,j=1,2)是否在参考对象(ai,i=1,2)内部,那么全循环和分组循环的计算过程分别如图3(a)~图3(b)所示。

图3 带有循环的节点计算过程

如图3(a)所示,全循环控制遍历数组A,B中的每一个元素,共进行4次运算,最终输出满足拓扑关系的元素数组,并使用统一的数组索引指示对象间的关系(即对象b1,b2在a1内部,b2在a2内部);而如图3(b)所示,分组循环控制以相同数组索引的元素为组遍历,共进行2次运算,最终输出满足拓扑关系的元素数组(即对象b1在a1内部,b2在a2内部)。全循环与分组循环的本质区别在于是否考虑多个输入数组对应元素间的关系。

3 布置设计规则的可视化编程步骤

3.1 审核对象获取

当审核的设计对象在模型中已经明确定义时,可直接使用模型数据访问节点查询。查询的约束条件通常包括对象的类型(如变压器,裸导线)、属性(如额定电压、安装场所)、关系(如对象所属的上级系统)等,而对象图形方面的约束则通过几何模型计算中的相关节点实现。当审核对象未在模型中明确定义时(如外墙),需要通过计算获取审核对象。

3.2 规范编码

获取审核对象后,按照规范内容进行编程,若待审核信息已经在模型中显式定义,则可直接从审核对象中抽取,例如变压器的额定电压、安装位置等;若待审核信息未在模型中显式定义,如变压器与裸导线的空间拓扑关系,则需要利用相关基础节点或复用节点进一步计算获取。

3.3 合规性评价

获取待审核的信息后,与设计规范中的标准进行比较并评价审核信息的合规性。

4 案例验证

本文基于Grasshopper平台开发了变电站布置设计规则的可视化编程原型系统,以复杂的布置设计规则的编码为例,实现某变电站GIM模型的合规性自动审核,验证所提出方法的有效性和实用性,其他布置规则的编码过程类似。案例数据来源如下:

GIM模型数据:某变电站工程设计GIM模型实例。为支持对GIM模型数据访问,本文提前解析GIM模型并将其导入MySQL数据库,每类构件的信息借助属性子表和模型子表分别记录并通过构件ID关联,构件间的关系通过关系表记录。属性子表每一列记录构件的一个属性字段,模型子表记录三维模型OBJ对象序列化后的二进制文件。此外,基于GIM模型信息分类代码表建立规范表述与GIM模型之间的映射关系。

审核规则:《3~110KV高压配电装置设计规范》第5.4.8条[14]:“当火灾危险类别为丙、丁、戊类的生产建筑物外墙距屋外油浸变压器外廓5m以内时,在变压器高度以上3m的水平线以下及外廓两侧各加3m的外墙范围内,不应有门、窗或通风孔。”

专家根据该条规则审图的思路如下:首先查找距离屋外油浸变压器5m以内的相关建筑物外墙,之后将变压器外廓向距离最近的外墙面投影(图4中A区域),最后审核投影面轮廓外加3m的外墙范围内(图4中立方体B)是否有门、窗和通风孔存在。

图4 设计规则5.4.8的空间关系

显然该规则涉及过程性的知识表示(在变压器高度以上…及外廓两侧…外墙范围内),因此难以基于语义网转译;另一方面,尽管采用硬编码可以完成该规则编码,但对于一般工程技术人员编码难度很高,而且编码成果十分复杂,难以在后续进行审核和维护。基于本文提出的设计规范可视化编程框架完成该条规则的编码:

1)审核对象获取:图5(a)~图5(b)分别展示了待审核对象“屋外油浸变压器”以及“门、窗、通风孔”的可视化编程过程。

图5 搜索构件对象的可视化程序

GIM对象选择节点根据约束条件自动生成查询语句并向模型数据库发送数据请求,例如图5(a)生成的查询语句如下:

其中,Transformer_ATT、Transformer_MOD分别为变压器的属性子表和模型子表。之后,GIM对象选择节点将返回的数据反序列化,并进一步转化为GIMObject数据格式输出,从而供下游节点使用。

图6 搜索外墙的的可视化程序

图7 设计规则5.4.8的可视化程序

图6展示了待审核对象“火灾危险类别为丙、丁、戊类的生产建筑物外墙”的编码过程,由于“外墙”对象未在设计模型中明确定义,通过判断墙与其所在的建筑物是否内切以确定是否为外墙。由于需要找到所有外墙,因此空间拓扑分析节点采用全循环。封装上述规则的中间表示(例如“外墙”),并作为复用层成果,以便在转译其他规则时使用。

2)规范编码:封装所有审核对象获取过程后,规则最终编码结果如图7所示。首先,通过软碰撞检测节点获得所有屋外变压器外廓5m以内的外墙,构成软碰撞对象序列对(节点1全循环);之后取变压器和外墙的OBB包围盒,计算外墙包围盒中距离相应变压器最近的面模型,即距离最近的外墙面(节点2分组循环);接着,将变压器包围盒向其对应的最近面模型做三维投影计算(节点3分组循环),并将投影面向两侧及上方缓冲3m形成二维缓冲区;最后,以该二维缓冲区域为拉伸面,向最近墙面法向量的反方向拉伸,拉伸距离为外墙墙体厚度,形成的三维拉伸体即为禁止门、窗、通风孔对象存在的三维空间区域(节点4分组循环)。

3)合规性评价:通过空间拓扑分析节点,判断审核对象门、窗、通风孔是否在拉伸体内存在(节点5全循环),形成该条规则最终的可视化程序。

利用该规则审核某变电站GIM模型实例,执行规则后节点5的输出端子均为空值,表示拉伸体内不存在门、窗、通风孔。通过进一步查看中间结果,可发现不存在外墙与屋外油浸变压器发生软碰撞(如图8所示),即说明屋外油浸变压器外廓5m的范围内不存在外墙,该设计模型能够满足图4所示的设计规则的要求。

图8 规则5.4.8的合规性自动审核结果

从上述布置设计规则编码过程可以看出,可视化编程过程直观,工程技术专家采用可视化编程方法可以自行对复杂的布置规则进行编码;编码成果透明度高、可读性强,有利于后续专家对规则编码成果进行审核和维护。若后续规范发生修订变更,专家可在原有可视化程序的基础上继续修改,从而避免软件工程师维护代码所带来的高昂成本和潜在错误。

5 结语

本文在归纳变电站设计规范中布置规则编码所需功能基础上,提出设计规范的可视化编程的三层框架,并着重规范了其中的节点、端子、流的类型;案例研究表明,一般设计人员采用可视化编程的方式可以直观地对变电站布置的设计规则进行编码,编码成果更加易于理解、审核和维护。

虽然目前该方法只是针对变电站设计的布置规则编码进行了初步尝试,但由于该方法的框架普遍适用性,在对节点功能进行拓展后也可用于其他类型的设计合规性审核,这是笔者目前正在进行的研究。

猜你喜欢
外墙编程可视化
基于CiteSpace的足三里穴研究可视化分析
思维可视化
编程,是一种态度
外墙防渗工程技术在房屋建筑工程中的应用
元征X-431实测:奔驰发动机编程
编程小能手
基于CGAL和OpenGL的海底地形三维可视化
纺织机上诞生的编程
“融评”:党媒评论的可视化创新
外墙XR新型保温材料的施工