二维与三维同步交互技术在变电站仿真系统中的应用
2011-11-15郭连仲张纪平郭浩森齐锦会唐振江
郭连仲,张纪平, 郭浩森, 齐锦会, 唐振江
(1.河北省电力公司职业技术培训中心,河北 保定 071051;2.华北电力大学,北京 102206)
近年来,由于计算机软硬件技术的进步,变电站仿真系统逐步扩展了三维虚拟现实功能,通过二维画面仿真“远方”监控,将三维设备场景用于“就地”操作,使仿真更加逼真,因此在变电站相关培训中越来越受到认可。在河北省名府220 kV数字化变电站仿真系统研发中,通过在Delphi中引入VRP Active插件及VRP-SDK开发包的方法,采用嵌入式编程技术,实现二维监控仿真与三维虚拟设备的同步交互功能,解决二维对三维设备的快速定位问题,节省在三维中查找设备所耗时间,提高仿真系统的培训效率。
1 传统仿真系统存在的问题
目前,变电站仿真系统中采用的三维技术包括OPENGL、VRP、3C等,都能实现三维场景效果。VRP作为流行的三维开发平台,可对三维模型进行烘焙处理,保证了模型的视觉效果;同时,VRP本身提供了二次开发包(VRP-SDK)和相应的插件,支持Delphi、VB、VC++等环境的嵌入式调用,为技术人员利用熟悉的工具实现三维功能的二次开发提供了便利。在以往的三维仿真培训系统中,二维系统与三维系统为相互独立的程序,二者间通过数据库建立间接联系,造成三维设备模型不容易进行定位,需要学员花费较多时间熟悉三维场景的操作,方能找到“就地”设备,给培训过程增加了额外负担,影响了培训效率。其问题在于2个独立程序间的联系需通过访问磁盘数据进行,三维“就地”设备不能直接接受二维“远方”操作的控制,操作功能受限,如果将二者合并为一个程序并通过WINDOWS消息机制相互联系,使得三维设备直接接受来自二维画面的指令,就可实现二维、三维界面设备同步。
2 二维与三维同步交互技术方案
在河北省名府数字化变电站仿真系统中,选用了Delphi作为主要开发工具,完成了设备操作和保护动作仿真主程序;变电站三维设备场景是由VRP平台提供的.VRP文件,该文件是通过三维 Max建模后经VRP加工生成。实现二者间的交互操作,需要设计合适的接口。一种方法是间接法,即二维、三维独立编程,通过访问同一个数据库建立联系;另一种方法是直接法,即通过在Delphi Ide中引入VRP插件并调用VRP-SDK脚本函数的方法,即嵌入式编程方法,将二维和三维整合成一个程序。嵌入式编程方法相当于扩展了Delphi的功能,可以直接利用WINDOWS消息机制,程序运行效率好于间接法。该数字化变电站仿真系统采用直接法的方案,其流程如图1所示。经过以下流程,即可实现二维监控与三维仿真的数据关联机制的交互操作。
2.1 插件导入
在Delphi Ide平台导入ActiveVrp插件,出现OCX控件图标,如图2所示。
图1 二维与三维同步交互技术方案示意
图2 将ActiveVrp插件导入Delphi示例
在窗口中添加该控件,可以作为VRP(三维)文件的容器(container),进而使用SDK脚本函数,其函数调用方法与Delphi自身函数调用方法相同。
2.2 创建二维和三维窗口
在二维窗口添加Timage控件,调用变电站二维主接线图及断路器、开关等图形控件。在三维窗口添加VRP控件,程序运行时调用变电站三维场景VRP文件。在二维窗口文件中添加对三维窗口文件的引用,以便二维窗口能够调用三维窗口函数,实现对三维设备的同步控制,如相机切换、设备动作(动画)。
在VRP-SDK中提供了一个脚本函数,即ExecuteVrpScript(功能参数),各种功能通过不同的参数变化来实现对以物体名或组为对象的操作行为,如切换相机、播放动画、设置相机移动速度等。SDK提供了2个相机函数,分别为动态相机和静态相机,前者为以物体名称为参数进行调用的相机,后者为预设的相机。显然,动态相机具有灵活性的特点,方便程序调用。如图3代码所示。
需要说明的是,要实现二维与三维的同步功能,需要事先确定二维控件和三维物体的命名规则,所有设备在二维和三维中采用统一的设备名称或规定的前缀和后缀相关联,以便将该名称作为参数调用动态相机,实现二维界面对三维设备的聚焦和动画控制;同理,通过另一个脚本函数VrpEvent,可实现三维对二维设备的控制。
图3 在Delphi程序中使用的VRP-SDK脚本函数
3 二维与三维同步交互功能的实现
通过以上的互动方法及步骤,实现了基于该技术的数字化变电站三维仿真系统。在该系统中设计并实现了以下内容:统一二维及三维系统物体的命名规则;设计了二维及三维系统仿真内容的逻辑互动关系;实现二维界面对三维系统的准确定位。
a. 二维及三维系统的命名规则必须统一,能够便于识别和交互。如232断路器的命名规则:二维窗口图形控件名为img_dl232,断路器名为232;三维窗口物体组名:232,动触头:232;位置指示器,232_wz,合闸状态指示灯:232_D1。通过这种方法实现了二维、三维系统物体命名统一。
b. 为了实现其主要的逻辑对应与控制,下面给出通过二维控制三维画面的控制代码实例,见图4。
图4 二维对三维界面的控制代码
代码是Delphi中引用VRP-SDK控制函数实现二维监控画面对三维场景物体进行控制的实例,其中设备名称作为过程的参数。例如,在二维画面点击232断路器图标,则三维画面聚焦到232断路器;如果在二维画面拉开232断路器,则三维画面232断路器及相应的指示器(灯)以动画形式同步变化。其效果如图5所示,当在二维窗口点击232断路器图标时,三维画面直接聚焦到相应的断路器位置,可直接看到该断路器的当前分合状态;继续拉、合操作,则出现同步动画效果。
同理,在三维画面中对其设备(物体)进行操作,通过设备物体名称索引方法,亦可实现设备状态的改变,并达到与二维画面相一致的效果。
图5 二维界面对三维界面的定位
4 应用效果
实际培训中,采用“一托二”的屏幕显示方式,分别显示二维监控画面和三维现场画面,即1台计算机7配2个显示屏,主屏显示二维画面,副屏显示三维画面。这种配置使仿真系统二维、三维界面相配合,通过鼠标点击二维界面的设备图标即可快速准确地定位三维设备。
2011年8月,在河北省电力公司职业技术培训中心保定分部举办的两期数字化变电站运行维护培训全程采用了该仿真系统,共有来自省公司所属6个供电公司和超高压公司的48名变电运行人员参加了培训。通过二维与三维的同步交互功能,学员能够很快熟悉仿真操作,提高培训效率。两期的培训质量测评结果均达到了93分以上,应用该系统进行培训取得了预期效果。
5 结束语
以上介绍了在Delphi中引入VRP Active插件,并直接调用VRP-SDK函数的嵌入式编程技术,延展了Delphi的功能,实现了对三维设备的直接定位和操控。在实际培训应用中的效果表明,该技术应用于变电站三维仿真系统培训,节省了对三维操作的学习时间,提高了培训效率。
参考文献:
[1] 梁 水,赛奎春.Delphi开发典型模块大全(修订版)[M].北京:人民邮电出版社, 2010.
[2] 祝铂渝,龚庆武,姜芳芳.具有三维交互功能的变电站仿真培训系统[J].中国农村水利水电,2005,31(11):95-97.
[3] 李 华,陈伟伟.基于虚拟现实建模语言的弹道可视化仿真[J].探测与控制学报,2009,31(1):77-80.