论文部分内容阅读
摘要:为提高当前变电站运维操作技能培训与考核的规范性和易用性,设计并开发了变电站仿真培训系统的三维实操教案功能。该功能基于变电站三维仿真培训平台开发,以变电站运维的典型操作和作业指导书为依据,提供包含案例生成、管理和运行的实操教案管理,可依据变电站实际运维操作规范生成教案,提高实操教案的规范性和可维护性,可基于案例给予学习引导,提高实操培训与考核的易用性。对本系统与现有的几种实操培训方式进行比较性论述,无论在教案维护方便性、教案规范性、教案定制能力和实际培训效果上,都有明显优势。
关键词:三维;仿真培训;交互式;变电站;实操教案
作者简介:黄曙(1979-),男,广东汕头人,广东电网公司电力科学研究院,高级工程师;曹丽娟(1984-),女,湖北黄石人,广东电网公司电力科学研究院,工程师。(广东 广州 510080)
中图分类号:G726 文献标识码:A 文章编号:1007-0079(2014)15-0170-04
变电站运行值班人员的安全技能水平是电网安全生产的重要因素。当前各电网公司对运行值班人员的实操培训和考核主要还是在变电站一次现场开展,需要在生产管理中做出相应的计划安排,影响了电网的正常运行,无法做到随时随地开展。而基于虚拟现实的仿真培训系统解决了该矛盾,它以虚拟变电站代替实际一次现场,既能保证培训和考核的要求,又对实际电网无影响,是目前电力运行人员安全生产培训的重要手段之一。基于虚拟现实的变电站仿真培训产品总结起来主要包括两种类型:教材式和交互式。前者主要是各培训机构根据需要,以一些实操规范过程为剧本,采用三维技术进行编排,形成带有简单交互的媒体教材,[1,2,4]其特点是流程清晰、学习使用简单,但真实感和扩展性差;后者则以虚拟变电站环境漫游控制、设备交互操作仿真为核心,提供一个虚拟的变电站运行场景,[5,6]其特点是真实感和实操交互能力强,但由于无实操过程引导,学习使用较困难。
本系统结合两者特点,在交互变电站三维仿真平台基础上开发实操教案管理系统,既提供交互式的操作环境,又以案例为主线给予提示和引导,降低了使用难度。提供教案维护可依据变电站运维的实际操典和作业指导书,通过在仿真平台中实际操作来自动生成教案,使得无需开发就可以增、删、改教案库,不断丰富教案库,拓宽了培训内容的覆盖面。
一、系统架构设计
实操教案是在变电站三维仿真平台的基础上开发,如图1所示。变电站三维仿真平台提供电网的数据仿真、网络拓扑分析、三维场景制作、漫游控制和交互操作的基础技术支持;三维实操教案系统包括案例引擎、案例维护、案例学习和案例考核,提供一套从案例制作、管理到执行的完整过程。平台与教案相结合,使得仿真培训按照案例的方式进行,减少了三维仿真的盲目性和使用难度,又使得案例学习具有实用性。
二、变电站三维仿真平台
变电站三维仿真平台是基于OSG开源三维开发包开发的,[9,10]可以提供一套变电站三维交互式仿真环境,将真实的变电站虚拟化,实现包括设备管理、场景渲染、漫游、定位、导航等功能模块,支持变电站运维所有交互式操作,并提供仿真培训服务程序来记录和处理操作、执行仿真拓扑计算以保证设备状态和操作的合理性,如图2所示。
三、三维实操教案设计
三维教案管理系统主要包括教案数据结构、教案引擎、教案维护以及学习和考核工作台等模块。
1.教案数据结构
教案是实操学习与考核的核心内容,包括教案管理设计和案例结构设计,如图3所示。教案管理按专业分层管理所有案例,实现案例的添加、删除、修改和存储,以及监视当前案例的执行状态;案例结构包括案例基本属性(如名称、专业、任务说明等)、变电站初始状态数据(即断面数据)、行进路线、工作间隔和操作步骤列表;变电站初始状态数据包括变电站及其所有设备的断面数据、设备的分合位置、设备状态、设备缺陷和故障信息,用来保证案例执行时都具有正确的一致的环境;行进路线是教案中引导学员进入正确工作位置的指示信息,将在地面上以箭头方式显示,包括出发位置、路径线和终点;工作间隔是记录工作必须在哪个间隔,以判断是否误入间隔;操作步骤列表是一组按照执行先后顺序排列的步骤表。操作步骤包括名称、序号、类型、操作对象、结果、关键字、提示信息等内容,提示信息用于学习模式下给学员的提示信息,关键字是用于操作步骤比较,以判断实际操作与案例的操作步骤是否吻合,由操作对象、操作输入参数连接组成。教案管理和案例结构组成了教案系统的实体数据集。
2.教案定制
三维仿真平台提供满足变电站运维要求的操作和设备状态、故障、缺陷的表现。教案制作就是要将表现和操作按照变电站实操规范的要求,组织成一个具有正确变电站初始状态和正确的操作流程的案例,制作流程如图4所示。
教员进入三维仿真环境中案例维护工作台,创建或打开一个案例,有了这个案例后,教员在变电站场景中的各种操作都会自动记录在案例数据结构中。教员可以在场景中设置故障点,设置设备位置状态和缺陷来制作初始现场环境;教员可以编辑案例基本属性如名称、专业类型、任务说明;可以在场景中按照变电站运行操作规范的具体操作步骤要求将整个过程做一遍,包括受令确认、选取工具、开工作票、设护栏、挂标牌、挂接地线、唱票、操作压板、操作开关刀闸等,每个操作都会在案例的步骤列表中按执行的先后顺序自动生成一个操作步骤。操作完成后,还可以对案例的内容进行修改和编辑,比如修改步骤提示信息、修改工作路径等。案例完成后保存在教案管理中,教员可以根据需要调出案例,并测试案例是否达到预期要求。测试完成后,即可将该案例发布到案例数据库中。
3.教案运行
教案运行模块实现教案在学习和考核两种模式下的运行。学习模式是以信息提示引导学员自我学习和掌握案例,考核模式则在学员操作中不给予提示,以考核学员对案例的熟悉程度。教案运行模块根据入口不同而进入学习或考核模式。对于这两种模式,教案运行模块的执行流程完全一样,区别是学习模式提供教案选择与教案任务说明提示,并在执行过程中每一个步骤均有操作提示和错误提示。而考核模式教案被教员指定,并且除了开始的任务说明和最终的完成提示外,不提供任何提示信息。 在学习模式下,教案引擎启动并下载最新的教案库,根据教案库生成教案管理对象,并以UI界面分层显示案例列表,以供学员选择。
从案例载入开始,教案运行模块的执行主要是通过教案引擎实现,具体步骤如下:一是创建教案引擎,设置当前教案,教案引擎自动清除场景,并下载该案例的数据。二是场景渲染。教案引擎通知三维仿真平台的渲染模块,根据当前案例信息渲染新的变电站场景,并用当前案例的数据来初始化场景的设备位置、状态、缺陷和故障,将视角定位在工作路径的出发点,激活本案例的第一个操作步骤,等待过户的操作。三是交互操作。学员在场景内根据案例的步骤要求进行操作,教案运行模块捕捉每一次操作,并通过消息传递给案例引擎进行操作信息与当前步骤的比较。如果正确,则允许操作执行,并激活下一步骤;如果不正确,则取消本次操作,直到学员执行了正确的操作才会激活下一步骤。该过程不断循环,直到所有步骤都激活并完成。四是记录和汇总。教案运行模块记录学员的所有操作步骤,包括正确操作和错误操作,最后汇总,形成完整的考核报告。
四、关键实现技术
1.三维模型与设备数据的关联
变电站场景三维模型建模完成后,需要对其中设备模型的表现和行为进行定义,为模型中每个辅助节点配置相应的信息,包括设备信息、操作定义和显示定义。
设备信息是用来记录模型与仿真数据库中设备对象的关系,一般包括设备名、设备ID、设备别名、设备类型、设备说明等内容。
显示定义是定义如何根据仿真库中设备状态数据、缺陷数据改变相应的显示。通过总结和技术条件,采用五种方式来实现:一是切换模型方式;二是粒子效果;三是切换纹理图片;四是DOF变换;五是动画路径。显示定义主要定义设备的状态和缺陷对应的显示方式,以及需要的参数。表1是一项显示定义的结构,一个辅助节点对应多项显示定义。
表1 显示定义结构示例
编号 条件 显示方式 参数
1 状态=分 切换图片 open.png
2 状态=合 切换图片 close.png
3 缺陷F3=1 粒子效果 冒烟效果
4 缺陷F4=1 例子效果 电弧效果
操作定义是在交互式环境中用户点击三维模型时应该产生的效果,包括操作的类型和目标。操作的类型是指当鼠标点击该模型时触发的变化类型,经过调查分析,主要包括四种类型:一是简单发送命令,模型本身无变化。二是DOF旋转方式。三是切换方式。它是一种通过几个模型的简单切换来达到“动”的效果。四是动画路径。它是一种较复杂的动作方式。操作的目标和仿真系统息息相关,指示该操作的执行要实现何种目的,包括普通动作(门操作)、就地操作、空开操作、压板操作、场景切换、调二维图形等,当执行时这些目标将作为操作命令发送到仿真培训服务程序,以改变变电站的状态或网络结构。因此,操作定义的人机界面需要定义包括操作参数(DOF参数、是否连续动作等)和操作目标参数(操作类型、操作命令参数、是否五防校验等)。表2是操作定义的结构,一个节点只对应一项动作决策。
表2 操作定义结构
节点操作 参数 值示例
操作参数 操作类型 DOF变换
DOF参数 MP="2"
MR="2"
MH="2"
是否重复 否
操作命令 类型 压板操作
命令参数 空开类型=远方就地
是否五防 否
整个场景的定义信息以场景为单位存储在对应的配置文件中,记录每个辅助节点的标识和定义信息,在运行环境中将加载这些信息到辅助节点对象中,在场景渲染和操作时根据这些定义来实现设备状态显示和执行鼠标键盘的操作。
2.案例引擎设计
案例引擎是一个控制类,提供案例运行的准备工作、案例状态管理、操作步骤、实际操作判断等接口,来协助案例运行模块完成整个案例的执行过程。其主要接口设计如下:
class M3dCaseEngine
{
M3dCase* CurCase();//当前案例
void InitCase(M3dCase* ca); //设置当前案例并初始化
void Start();//执行案例
void Stop();//终止案例执行
void NextStep();//执行下一步骤
bool IsNextStepValid();//判断下一步骤是否有效
int GetStatus ();/获取当前案例的执行状态
bool CheckStep(congest MOperation& op ); //检查当前操作是否正确
bool CheckBayErr( float x,float y,float z ); //检查移动位置是否误入间隔
};
根据现场工作安全规范要求,施工人员必须在允许的间隔内施工,误入其他间隔属于操作错误。案例引擎载入案例信息,包括所在变电站所有间隔及其坐标范围数据。当角色在场景中漫游时,案例运行模块实时获取角色坐标并调用案例引擎的CheckBayErr方法,在该方法里计算角色坐标是否落在非案例操作所允许的间隔,从而检查出角色是否误入间隔。
3.分布式场景协同技术
在三维仿真培训场景中存在多学员在同一场景操作的情况,同时教员也会随时加入到场景中观察学员的操作过程,因此本系统采用分布式场景协同技术,设计了“行为标识码—角色描述表—行为信息报文”的同步信息组织与描述方式,并采用发布—订购机制加以传输。
报文头包括消息类型、行为标识、发送者、接受者、信息数据等内容,如下设计: struct RtiPackageHead
{
int16 byMsgType;//消息类型
int16 byOperType;//行为标识
char[64] sender;//发送者
char{64} receiver;//接收者
uint32 nDataLen;//信息体长度
char[1] dataBuf;//信息体数据
}
以教员订阅某个学员场景为例描述场景协同过程,如图5所示。
4.案例引导路径自动生成
模拟现场施工人员进入现场施工,必须按照指定路线行进,因此在学习模式下三维仿真平台在变电站场景的地面渲染显示出操作人员的正确行进路线,以便于学员熟悉行进路线。本系统采用的方法是案例制作时记录行进路线数据(路径),包括起点、若干个中间点和终点坐标。场景渲染时,根据教案的路径数据自动生成巡视路径的指示箭头。绘制过程如下:一是设置路径的颜色、路径宽度宽等参数。二是创建osg::Group对象pnode。三是绘制起点osg::Geode对象并加入pnode,以起点为圆心在地面圆盘对象;绘制沿线osg::Geode对象并加入pnode,按照路径点和路径宽度,自动生成绘制本路径的多边形顶点,最后绘制出路径多边形,并以路径颜色来指定形体的材质颜色。四是绘制终点指示箭头的osg::Geode对象并加入pnode。以终点和倒数第二点的线段为方向,以终点为顶点计算箭头三角形的顶点坐标,然后绘制该三角形,形成箭头。五是将pnode加入场景根节点。至此引导路径完成。
5.用具姿态自动调整
为了真实模拟学员使用某些用具(如操作杆、验电杆)的情形,必须调整该用具模型在场景中使用时的位置,使用具姿态保持在视点和操作点之间。经过分析,“用具”初始创建为沿X轴正向,并在原点。当其沿z轴中心旋转α,再沿y轴旋转角度β,并平移到T点位置,刚好放置在视点O和目标点T的对角线上,姿态刚好近似真实情况,如图6所示。
旋转角度α、β计算公式如下:
工具上信号灯的状态更新,以验电杆为例,其顶端有指示灯,辅助指示有电无电状态,因此需要获取验电杆的OSG三维模型中指示灯节点,并更新其颜色显示。
//创建工具节点ganNode后,对其进行检索。
MNodeVisitor finder( "SW_LIGHT" );
ganNode->accept(finder);
std::vector> lights = NodeFinder.getNodeList();
std::vector>::iterator it;
for( it = lights.begin();it!=lights.end();++it)
{
osg::Switch* sl =dynamic_cast( (*it).get() );
if (sl)
{
sl ->setUpdateCallback( new MSignalCallback() );
}
}
在信号回调对象MSignalCallback中,获取当前验电结果数据,并根据数据对指示灯节点切换显示“灰”“红”子节点,就实现了验电杆信号指示灯效果。同理也可用于其他的工具指示。
五、结语
以实操案例管理的思路开发变电站三维仿真培训系统,通过变电站三维仿真平台提供模拟变电站运行和操作的完整环境支持,结合可定制维护的教案系统,有效地解决了培训系统使用不易、教案与实际操作规程不符、教案制作维护困难等问题,使得变电站运维培训系统更加实用化,并在广东电网公司电力科学研究院的实际应用中得到验证。
参考文献:
[1]邓见光,潘晓衡,袁华强.一种虚拟场景的动态建模与实时仿真方法[J].计算机应用与软件,2012,(4):20-25.
[2]张荻.基于虚拟现实技术的远程教育在电力系统仿真培训中应用[J].武汉电力职业技术学院学报,2012,(3).
[3]胡世东,赵翠莲,等.面向虚拟训练的DirectX可视化仿真系统开发[J].计算机应用与软件,2012,(9):126-131.
[4]代文章.电力企业职工技能培训研究[J].中国电力教育,2013,
(14).
[5]杜言.基于网络三维技术的电力安全工作规程仿真培训考核系统[J].广东科技,2012,(21):113-115.
[6]乔卉,龚庆武,江传文,等.面向电力培训的三维交互仿真平台的设计与实现[J].电力自动化设备,2013,(6):157-162.
[7]尹福荣,李红军,张志生.220kV变电站三维仿真系统的应用[J].云南电力技术,2011,(1).
[8]张洪波,李秋燕.220kV智能变电站仿真培训系统的研究与开发[J].云南电力技术,2012,(23):30-34.
[9]肖鹏,刘更代,徐明亮.OpenSceneGraph三维渲染引擎编程指南[M].北京:清华大学出版社,2009.
[10]王锐,钱学雷.OpenSceneGraph三维渲染引擎设计与实现[M].北京:清华大学出版社,2009.
(责任编辑:孙晴)
关键词:三维;仿真培训;交互式;变电站;实操教案
作者简介:黄曙(1979-),男,广东汕头人,广东电网公司电力科学研究院,高级工程师;曹丽娟(1984-),女,湖北黄石人,广东电网公司电力科学研究院,工程师。(广东 广州 510080)
中图分类号:G726 文献标识码:A 文章编号:1007-0079(2014)15-0170-04
变电站运行值班人员的安全技能水平是电网安全生产的重要因素。当前各电网公司对运行值班人员的实操培训和考核主要还是在变电站一次现场开展,需要在生产管理中做出相应的计划安排,影响了电网的正常运行,无法做到随时随地开展。而基于虚拟现实的仿真培训系统解决了该矛盾,它以虚拟变电站代替实际一次现场,既能保证培训和考核的要求,又对实际电网无影响,是目前电力运行人员安全生产培训的重要手段之一。基于虚拟现实的变电站仿真培训产品总结起来主要包括两种类型:教材式和交互式。前者主要是各培训机构根据需要,以一些实操规范过程为剧本,采用三维技术进行编排,形成带有简单交互的媒体教材,[1,2,4]其特点是流程清晰、学习使用简单,但真实感和扩展性差;后者则以虚拟变电站环境漫游控制、设备交互操作仿真为核心,提供一个虚拟的变电站运行场景,[5,6]其特点是真实感和实操交互能力强,但由于无实操过程引导,学习使用较困难。
本系统结合两者特点,在交互变电站三维仿真平台基础上开发实操教案管理系统,既提供交互式的操作环境,又以案例为主线给予提示和引导,降低了使用难度。提供教案维护可依据变电站运维的实际操典和作业指导书,通过在仿真平台中实际操作来自动生成教案,使得无需开发就可以增、删、改教案库,不断丰富教案库,拓宽了培训内容的覆盖面。
一、系统架构设计
实操教案是在变电站三维仿真平台的基础上开发,如图1所示。变电站三维仿真平台提供电网的数据仿真、网络拓扑分析、三维场景制作、漫游控制和交互操作的基础技术支持;三维实操教案系统包括案例引擎、案例维护、案例学习和案例考核,提供一套从案例制作、管理到执行的完整过程。平台与教案相结合,使得仿真培训按照案例的方式进行,减少了三维仿真的盲目性和使用难度,又使得案例学习具有实用性。
二、变电站三维仿真平台
变电站三维仿真平台是基于OSG开源三维开发包开发的,[9,10]可以提供一套变电站三维交互式仿真环境,将真实的变电站虚拟化,实现包括设备管理、场景渲染、漫游、定位、导航等功能模块,支持变电站运维所有交互式操作,并提供仿真培训服务程序来记录和处理操作、执行仿真拓扑计算以保证设备状态和操作的合理性,如图2所示。
三、三维实操教案设计
三维教案管理系统主要包括教案数据结构、教案引擎、教案维护以及学习和考核工作台等模块。
1.教案数据结构
教案是实操学习与考核的核心内容,包括教案管理设计和案例结构设计,如图3所示。教案管理按专业分层管理所有案例,实现案例的添加、删除、修改和存储,以及监视当前案例的执行状态;案例结构包括案例基本属性(如名称、专业、任务说明等)、变电站初始状态数据(即断面数据)、行进路线、工作间隔和操作步骤列表;变电站初始状态数据包括变电站及其所有设备的断面数据、设备的分合位置、设备状态、设备缺陷和故障信息,用来保证案例执行时都具有正确的一致的环境;行进路线是教案中引导学员进入正确工作位置的指示信息,将在地面上以箭头方式显示,包括出发位置、路径线和终点;工作间隔是记录工作必须在哪个间隔,以判断是否误入间隔;操作步骤列表是一组按照执行先后顺序排列的步骤表。操作步骤包括名称、序号、类型、操作对象、结果、关键字、提示信息等内容,提示信息用于学习模式下给学员的提示信息,关键字是用于操作步骤比较,以判断实际操作与案例的操作步骤是否吻合,由操作对象、操作输入参数连接组成。教案管理和案例结构组成了教案系统的实体数据集。
2.教案定制
三维仿真平台提供满足变电站运维要求的操作和设备状态、故障、缺陷的表现。教案制作就是要将表现和操作按照变电站实操规范的要求,组织成一个具有正确变电站初始状态和正确的操作流程的案例,制作流程如图4所示。
教员进入三维仿真环境中案例维护工作台,创建或打开一个案例,有了这个案例后,教员在变电站场景中的各种操作都会自动记录在案例数据结构中。教员可以在场景中设置故障点,设置设备位置状态和缺陷来制作初始现场环境;教员可以编辑案例基本属性如名称、专业类型、任务说明;可以在场景中按照变电站运行操作规范的具体操作步骤要求将整个过程做一遍,包括受令确认、选取工具、开工作票、设护栏、挂标牌、挂接地线、唱票、操作压板、操作开关刀闸等,每个操作都会在案例的步骤列表中按执行的先后顺序自动生成一个操作步骤。操作完成后,还可以对案例的内容进行修改和编辑,比如修改步骤提示信息、修改工作路径等。案例完成后保存在教案管理中,教员可以根据需要调出案例,并测试案例是否达到预期要求。测试完成后,即可将该案例发布到案例数据库中。
3.教案运行
教案运行模块实现教案在学习和考核两种模式下的运行。学习模式是以信息提示引导学员自我学习和掌握案例,考核模式则在学员操作中不给予提示,以考核学员对案例的熟悉程度。教案运行模块根据入口不同而进入学习或考核模式。对于这两种模式,教案运行模块的执行流程完全一样,区别是学习模式提供教案选择与教案任务说明提示,并在执行过程中每一个步骤均有操作提示和错误提示。而考核模式教案被教员指定,并且除了开始的任务说明和最终的完成提示外,不提供任何提示信息。 在学习模式下,教案引擎启动并下载最新的教案库,根据教案库生成教案管理对象,并以UI界面分层显示案例列表,以供学员选择。
从案例载入开始,教案运行模块的执行主要是通过教案引擎实现,具体步骤如下:一是创建教案引擎,设置当前教案,教案引擎自动清除场景,并下载该案例的数据。二是场景渲染。教案引擎通知三维仿真平台的渲染模块,根据当前案例信息渲染新的变电站场景,并用当前案例的数据来初始化场景的设备位置、状态、缺陷和故障,将视角定位在工作路径的出发点,激活本案例的第一个操作步骤,等待过户的操作。三是交互操作。学员在场景内根据案例的步骤要求进行操作,教案运行模块捕捉每一次操作,并通过消息传递给案例引擎进行操作信息与当前步骤的比较。如果正确,则允许操作执行,并激活下一步骤;如果不正确,则取消本次操作,直到学员执行了正确的操作才会激活下一步骤。该过程不断循环,直到所有步骤都激活并完成。四是记录和汇总。教案运行模块记录学员的所有操作步骤,包括正确操作和错误操作,最后汇总,形成完整的考核报告。
四、关键实现技术
1.三维模型与设备数据的关联
变电站场景三维模型建模完成后,需要对其中设备模型的表现和行为进行定义,为模型中每个辅助节点配置相应的信息,包括设备信息、操作定义和显示定义。
设备信息是用来记录模型与仿真数据库中设备对象的关系,一般包括设备名、设备ID、设备别名、设备类型、设备说明等内容。
显示定义是定义如何根据仿真库中设备状态数据、缺陷数据改变相应的显示。通过总结和技术条件,采用五种方式来实现:一是切换模型方式;二是粒子效果;三是切换纹理图片;四是DOF变换;五是动画路径。显示定义主要定义设备的状态和缺陷对应的显示方式,以及需要的参数。表1是一项显示定义的结构,一个辅助节点对应多项显示定义。
表1 显示定义结构示例
编号 条件 显示方式 参数
1 状态=分 切换图片 open.png
2 状态=合 切换图片 close.png
3 缺陷F3=1 粒子效果 冒烟效果
4 缺陷F4=1 例子效果 电弧效果
操作定义是在交互式环境中用户点击三维模型时应该产生的效果,包括操作的类型和目标。操作的类型是指当鼠标点击该模型时触发的变化类型,经过调查分析,主要包括四种类型:一是简单发送命令,模型本身无变化。二是DOF旋转方式。三是切换方式。它是一种通过几个模型的简单切换来达到“动”的效果。四是动画路径。它是一种较复杂的动作方式。操作的目标和仿真系统息息相关,指示该操作的执行要实现何种目的,包括普通动作(门操作)、就地操作、空开操作、压板操作、场景切换、调二维图形等,当执行时这些目标将作为操作命令发送到仿真培训服务程序,以改变变电站的状态或网络结构。因此,操作定义的人机界面需要定义包括操作参数(DOF参数、是否连续动作等)和操作目标参数(操作类型、操作命令参数、是否五防校验等)。表2是操作定义的结构,一个节点只对应一项动作决策。
表2 操作定义结构
节点操作 参数 值示例
操作参数 操作类型 DOF变换
DOF参数 MP="2"
MR="2"
MH="2"
是否重复 否
操作命令 类型 压板操作
命令参数 空开类型=远方就地
是否五防 否
整个场景的定义信息以场景为单位存储在对应的配置文件中,记录每个辅助节点的标识和定义信息,在运行环境中将加载这些信息到辅助节点对象中,在场景渲染和操作时根据这些定义来实现设备状态显示和执行鼠标键盘的操作。
2.案例引擎设计
案例引擎是一个控制类,提供案例运行的准备工作、案例状态管理、操作步骤、实际操作判断等接口,来协助案例运行模块完成整个案例的执行过程。其主要接口设计如下:
class M3dCaseEngine
{
M3dCase* CurCase();//当前案例
void InitCase(M3dCase* ca); //设置当前案例并初始化
void Start();//执行案例
void Stop();//终止案例执行
void NextStep();//执行下一步骤
bool IsNextStepValid();//判断下一步骤是否有效
int GetStatus ();/获取当前案例的执行状态
bool CheckStep(congest MOperation& op ); //检查当前操作是否正确
bool CheckBayErr( float x,float y,float z ); //检查移动位置是否误入间隔
};
根据现场工作安全规范要求,施工人员必须在允许的间隔内施工,误入其他间隔属于操作错误。案例引擎载入案例信息,包括所在变电站所有间隔及其坐标范围数据。当角色在场景中漫游时,案例运行模块实时获取角色坐标并调用案例引擎的CheckBayErr方法,在该方法里计算角色坐标是否落在非案例操作所允许的间隔,从而检查出角色是否误入间隔。
3.分布式场景协同技术
在三维仿真培训场景中存在多学员在同一场景操作的情况,同时教员也会随时加入到场景中观察学员的操作过程,因此本系统采用分布式场景协同技术,设计了“行为标识码—角色描述表—行为信息报文”的同步信息组织与描述方式,并采用发布—订购机制加以传输。
报文头包括消息类型、行为标识、发送者、接受者、信息数据等内容,如下设计: struct RtiPackageHead
{
int16 byMsgType;//消息类型
int16 byOperType;//行为标识
char[64] sender;//发送者
char{64} receiver;//接收者
uint32 nDataLen;//信息体长度
char[1] dataBuf;//信息体数据
}
以教员订阅某个学员场景为例描述场景协同过程,如图5所示。
4.案例引导路径自动生成
模拟现场施工人员进入现场施工,必须按照指定路线行进,因此在学习模式下三维仿真平台在变电站场景的地面渲染显示出操作人员的正确行进路线,以便于学员熟悉行进路线。本系统采用的方法是案例制作时记录行进路线数据(路径),包括起点、若干个中间点和终点坐标。场景渲染时,根据教案的路径数据自动生成巡视路径的指示箭头。绘制过程如下:一是设置路径的颜色、路径宽度宽等参数。二是创建osg::Group对象pnode。三是绘制起点osg::Geode对象并加入pnode,以起点为圆心在地面圆盘对象;绘制沿线osg::Geode对象并加入pnode,按照路径点和路径宽度,自动生成绘制本路径的多边形顶点,最后绘制出路径多边形,并以路径颜色来指定形体的材质颜色。四是绘制终点指示箭头的osg::Geode对象并加入pnode。以终点和倒数第二点的线段为方向,以终点为顶点计算箭头三角形的顶点坐标,然后绘制该三角形,形成箭头。五是将pnode加入场景根节点。至此引导路径完成。
5.用具姿态自动调整
为了真实模拟学员使用某些用具(如操作杆、验电杆)的情形,必须调整该用具模型在场景中使用时的位置,使用具姿态保持在视点和操作点之间。经过分析,“用具”初始创建为沿X轴正向,并在原点。当其沿z轴中心旋转α,再沿y轴旋转角度β,并平移到T点位置,刚好放置在视点O和目标点T的对角线上,姿态刚好近似真实情况,如图6所示。
旋转角度α、β计算公式如下:
工具上信号灯的状态更新,以验电杆为例,其顶端有指示灯,辅助指示有电无电状态,因此需要获取验电杆的OSG三维模型中指示灯节点,并更新其颜色显示。
//创建工具节点ganNode后,对其进行检索。
MNodeVisitor finder( "SW_LIGHT" );
ganNode->accept(finder);
std::vector
std::vector
for( it = lights.begin();it!=lights.end();++it)
{
osg::Switch* sl =dynamic_cast
if (sl)
{
sl ->setUpdateCallback( new MSignalCallback() );
}
}
在信号回调对象MSignalCallback中,获取当前验电结果数据,并根据数据对指示灯节点切换显示“灰”“红”子节点,就实现了验电杆信号指示灯效果。同理也可用于其他的工具指示。
五、结语
以实操案例管理的思路开发变电站三维仿真培训系统,通过变电站三维仿真平台提供模拟变电站运行和操作的完整环境支持,结合可定制维护的教案系统,有效地解决了培训系统使用不易、教案与实际操作规程不符、教案制作维护困难等问题,使得变电站运维培训系统更加实用化,并在广东电网公司电力科学研究院的实际应用中得到验证。
参考文献:
[1]邓见光,潘晓衡,袁华强.一种虚拟场景的动态建模与实时仿真方法[J].计算机应用与软件,2012,(4):20-25.
[2]张荻.基于虚拟现实技术的远程教育在电力系统仿真培训中应用[J].武汉电力职业技术学院学报,2012,(3).
[3]胡世东,赵翠莲,等.面向虚拟训练的DirectX可视化仿真系统开发[J].计算机应用与软件,2012,(9):126-131.
[4]代文章.电力企业职工技能培训研究[J].中国电力教育,2013,
(14).
[5]杜言.基于网络三维技术的电力安全工作规程仿真培训考核系统[J].广东科技,2012,(21):113-115.
[6]乔卉,龚庆武,江传文,等.面向电力培训的三维交互仿真平台的设计与实现[J].电力自动化设备,2013,(6):157-162.
[7]尹福荣,李红军,张志生.220kV变电站三维仿真系统的应用[J].云南电力技术,2011,(1).
[8]张洪波,李秋燕.220kV智能变电站仿真培训系统的研究与开发[J].云南电力技术,2012,(23):30-34.
[9]肖鹏,刘更代,徐明亮.OpenSceneGraph三维渲染引擎编程指南[M].北京:清华大学出版社,2009.
[10]王锐,钱学雷.OpenSceneGraph三维渲染引擎设计与实现[M].北京:清华大学出版社,2009.
(责任编辑:孙晴)