针对当前精密压力表标准装置检定教学中存在的理论教学过于抽象、多媒体视频教学缺少互动、实验教学设备昂贵的问题,设计了一种精密压力表标准装置检定仿真教学系统。使用3DMAX建模软件创建精密压力表标准装置检定设备模型’Photoshop软件处理设备贴图’AdobeAfterEffects软件制作教学视频,然后利用Umty3D虚拟仿真引擎搭建虚拟仿真教学系统。系统包括结构原理展示、视频动画教学和虚拟仿真实操三种教学方式,实现了精密压力表标准装置检定仿真教学的功能,交互式设计能够增加学生的学习热情和效率,弥补了传统教学方式的不足。
测试表明,系统具有开发成本低、沉浸性强和教学效果好的特点。
0.引言
精密压力表是压力测量测试、检测校验、检验检定等压力参数相关领域中最常用的一种计量标准器。由于受到环境温湿度、介质气氛、弹簧管变形等因素的影响,其测量准确度会受到影响,因此必须进行周期性检定,国家计量检定规程JJ494013《弹性元件式精密压力表和真空表》强制规定精密压力表的检定周期不超过1年。因此,精密压力表标准装置检定方法被列为仪器仪表测试类专业教学中的重要内容。
高校对精密压力表标准装置检定的教学以理论讲解为主,辅助以多媒体视频播放,理论讲解抽象难懂,缺乏实际练习的学生很难真正掌握检定方法。无疑通过购买大量精密压力表标准装置供学生实操练习是改善教学效果的有效方式,但是由于该设备价格非常昂贵,因此购买大量设备的方法并不现实。
目前,对精密压力表标准装置检定仿真研究尚处于初级阶段。林卓凡研究的计算机检定记录数据处理程序,节约了运算时间,提高了运算结果精确度,是将计算机技术应用于压力表检定的先例,但并未进一步对压力表的检定过程进行仿真。还有一种基于VisualBasic的压力表检定系统,设计了计算机管理系统和数字式压力计接口程序,免去了大量原始记录和证书打印过程中的数据输入工作,但是系统只适用于数字式压力计,对于广泛使用的弹簧式压力表并不适用。另外还出现了一种基于PLC的压力表自动检定系统,虽然实现了压力表检定全程自动化,但系统硬件结构复杂价格昂贵,因此并未得到广泛使用。
针对以上问题,对仿真教学系统设计关键技术进行了研究,设计了仿真加压过程的IK算法,压力表结构拆解算法和光线投射碰撞检测方法,开发了一种交互性强、经济实用、操作方便的精密压力表标准装置检定仿真教学系统。系统由结构原理展示、视频动画教学和虚拟仿真实操三部分组成。结构原理展示部分可以使学员对设备的外形结构有一定的感性认识,视频动画教学是通过三维视频对检定过程的详细讲解,虚拟仿真实操是对学习效果的实际练习和测试。
1.系统总体设计
1.1功能需求分析
精密压力表标准装置检定仿真教学系统主要应用于辅助高校仪器仪表相关专业的教学,利用虚拟仿真技术形象逼真的特点降低相关知识的理论深度,使抽象理论讲解变成可视化、可交互的学习过程。系统需要实现对台式气压泵、台式水压泵和精密压力表三个设备的仿真教学功能,如图1所示,以台式气压泵为例每一个设备都需要实现以下几个功能:
(1)结构原理展示。实现台式气压泵的三维模型展示,对实验室环境的仿真,以及鼠标对模型的缩放和旋转控制。设定产品概述、技术参数介绍、音频讲解和更多操作4个侧边弹窗,通过按钮控制弹窗显示和隐藏。其中技术参数应包括台式气压泵使用环境、压力范围、调节细度、传压介质和压力连接等。更多操作部分需要实现各组成部分名称显示和隐藏,以及除去外壳部分的内部结构展示和返回主操作界面的功能。
(2)视频动画教学。视频动画教学的目的是使学生对台式气压泵的结构原理有一定的认识之后,进一步对其技术规格和操作规范的三维动画讲解。包括标准表的清零、单位转换、被检表的外观检查和零位检查,以及对示值误差、回程误差、轻敲位移检定方法的和收尾工作的三维视频讲解。
(3)虚拟仿真实操。虚拟仿真实操部分为了使学生进行实际操作练习,以及学习效果进行测试,系统要提供操作步骤提示,并根据学生操作对错决定是否进入下一步操作。需要实现标准表和被检表表盘的近距离展示,以减小读数误差,增加检定的准确性。此外,学生应能够将读数填入检定记录表格中,生成检定记录文档,并实现Word转pdf格式的功能。
1.2技术路线
系统开发分为前期准备工作和虚拟场景开发,如图2所示。
在前期的准备工作中,首先运用3Dmax软件建立台式气压泵、台式水压泵、标准表、被检表,实验室和实验台的三维模型,模型在达到一定精细度的基础上面片数应尽量少,特别是像台式水压泵这样结构复杂的模型,减少面片数的方法包括删除看不到的面和减少面的分段数,以减轻硬件负担,从而减少应用程序启动时场景加载的时间M。同时米用Photoshop图片处理软件制作模型的材质贴图、Unity3D中的材质纹理贴图、特效贴图和UI贴图等,制作所需大小和分辨率的图片,保存为.png格式文件,并存放在Unity3D的资产文件夹中。并利用AdobeAfterEffects图形视频处理软件制作模型动画视频,包括往快接头上安装标准表和被检表的视频、轻敲被检表的视频、气压泵和水压泵的操作步骤讲解视频等。最后,为视频加上配音和片头导出为.mov格式文件,放入Unity3D的资产文件夹中,在Unity3D系统开发过程中使用。
虚拟场景开发包括主程序框架设计、模型交互特性和动画设计、角色控制、按钮触发事件设计、视频播放和相机切换控制以及数据库连接。主程序框架设计将仿真系统分为台式气压泵、台式水压泵、标准表、被检表、实验室、和主界面六个场景,系统运行时首先打开主界面场景,点击主界面上的不同按钮会触发相应的事件并加载对应的场景。为了实现结构原理展示/视频动画教学和虚拟仿真实操三部分功能,模型交互特性和动画设计部分为每一个场景创建操作对象,这些包括3Dmax中创建的模型和Unity3D自带的简单模型,接下来为对象添加材质、碰撞器、刚体、动画控制器、音频侦听器和脚本等组件,这些组件会用到前期制作的图片和视频等资源,其中脚本组件是系统开发中的重要内容,系统中采用C#语言编写脚本,实现视频播放控制、相机切换、模型交互和动画播放暂停控制以及连接数据库等功能。建立标准表数据库、被检表数据库和检定误差记录数据库,使用SQL访问数据库,实现数据的添加、查询以及更新,并生成检定记录表。
2.仿真关键技术
加压过程是一个包括加压手柄的抬起和放下、加压手柄连接杆跟随加压手柄运动、标准表和被检表示数增加等一系列动作,是仿真的关键,针对这一问题提出了基于IK算法的加压过程仿真方法。为了实现压力表内部结构展示,设计了压力表内部结构拆解算法。实现了基于光线投射碰撞检测方法对实验室门打开状态控制和实操练习进度的控制。
2.1仿真加压过程
在压力表检定过程中,需要有一个稳定的压力提供源来实现加压和减压,本仿真的台式气压泵就是一个采用压杆式设计的气体压力源。如图3所示,台式气压泵由两个标准的M20X1.5快接头、截止阀、加压手柄、微调手轮、压力真空转换阀、卸压阀组成。左侧快接头安装精密压力表标准装置,右侧快接头安装被检压力表,通过按压加压手柄实现加压,微调手轮实现对压力的微调,压力真空转换阀实现对真空表检定和压力表检定的转换,卸压阀用来降压,截止阀用来连通和截止气道。
为了仿真加压手柄的加压过程,需要用到反向动力学(InverseKinematics,IK)算法,与之相对应的是正向动力学(ForwardKinematics,FK)算法,首先建立其数学模型,设加压手柄为handleO,与加压手柄相连接的连杆为handle1,handleO与handle1的连结点为intersection:
publicGameObjecthandleO;publicGameObjecthandle1;publicGameObjectintersection;
在正向动力学中handle1的位置变化会带动intersection和handleO位置的改变,即用父层级带动子层级的运动;而在反向动力学中,是通过handleO的位置’反求intersection和handle1的位置变化的,即先确定子层级的位置,然后反求推出n级父层级的位置。算法中将handle0与handle1视为两个圆circle[0]和circle[1]的圆心,handle0和handle1到intersection的距离分别为两个圆的半径:
for(inti=0i
{
circles[i]=newCircle()points[i]=newPoint()
}
circles[0].Radius=Vector3.Distance(handle0.transform.position,intersection.transform.position)
circles[1].Radius=Vector3.Distance(handle1.transform.
position,intersection.transform.position)
circles[0].X=handle0.transform.position.x
circles[0].Y=handle0.transform.position.y
circles[1].X=handle1.transform.position.x
circles[1].Y=handle1.transform.position.y
要实现根据加压手柄handle0得位置确定连杆handle1的位置,相当于使handle1得位置和两个圆的半径不变,handle0的位置每改变一次,会形成一个新的圆circle[0],通过Circlelntersection类中定义的Insect函数确定两个圆的相交情况,如果有一个交点,那么这个交点的位置就是intersection移动后的位置,算法中,point[0]是Insect函数中求出的交点,通过temp变量临时记录交点的位置,然后把它赋值给intersection变量。如果有两个交点,则其中与handle[0]移动方向一致的那个点代表intersection移动后的位置。
Switch(CircleIntersection.Insect(circles,points))
{手柄
设计算法实现了压力表内部结构的拆解。首先在StateHelper类中声明bool型变量swtichDisassembly代表是否展示压力表内部结构。初始值为false。当按下内部结构按钮时,swtichDisassembly转变为true。publicstaticboolswtichDisassembly=false
swtichDisassembly转变为true时,即PressDisassembly类中的拆解函数Disassembly中的最外层的if语句条件为真,接着执行内层的语句,当localX的值设置为真时,物体在1s之内沿X轴方向移动到CordinateNum的位置,实现拆解。当再次按下内部结构按钮时,swtichDisassembly转变为false,此时执行else语句,各个拆解部分在1s之内还原到原来所在的位置。
控制显示压力表内部结构的算法如下:
if(StateHelper.swtichDisassembly)
{
if(localX)
{
gameObject.transform.DOLocalMoveX(CordinateNum,1.0f)
}
elseif
case2:
Debug.Log(”两圆相交,有两个交点”);
temp.x=(float)points[0].X
temp.y=(float)points[0].Y
temp.z=intersection.transform.position.z
intersection.transform.position=temp
break
}
通过以上算法实现了加压手柄移动带动连杆移动的目的。仿真效果如图4所示,图(a)和(b)分别表示加压手柄抬起和放下的状态,中间为蓝色控制条,滑动上面的黑色滑块可以控制加压手柄的抬起和放下状态,以及抬起放下的高度大小。
2.2压力表结构拆解
精密压力表由弹簧管、刻度盘、指针、衬图、玻璃罩和表壳组成,当压力变化时,弹簧管内的齿轮转动,带动指针的转动,指向刻度盘上的某一刻度。
}
else
{
gameObject.transform.DOLocalMove(originalPostion,1.0f)
}
压力表拆解前后如图5。
2.3光线投射碰撞检测方法
在精密压力表标准装置虚拟仿真系统中经常需要判断物体之间是否发生碰撞,例如学员进入实验室时,一旦检测到与门发生了碰撞就将门打开,进入实验室之后,当学员与实验台发生碰撞且按下F9键之后,就进入虚拟仿真实操过程。Unity3D虚拟仿真引擎提供了三种碰撞检测方法,角色控制器碰撞检测/光线投射碰撞检测和触发器碰撞检测。角色控制器碰撞检测方法是指当角色控制器和其他物体的碰撞器发生碰撞时自动调用OnControllerColliderHit函数,使用该方法的缺点是角色必须离门非常近几乎贴到门上时门才会打开,使用光线投射碰撞检测方法就可以避免这一问题。
Physics.Raycast(gameObject.transform,position,gameObject.transform.forward,outhit,2f)
其中gameObject.transform.position表示投射光线的初始位置为角色所在位置,gameObject.transform.forward表示光线的投射方向为角色面对的方向,outhit是RaycastHit类型的变量储存了关于碰撞的信息,2f表示光线的投射长度为2m,f代表float即浮点型数据类型。也就是说当角色面向门且距离在两米以内时门就会自动打开,否则门将关闭。
3.系统测试
虚拟仿真系统开发完成之后,以.exe格式文件发布,双击该文件进入系统,首先根据屏幕分辨率选择窗口大小,然后进入主界面,学员可以选择学习台式气压泵或者台式水压泵或者精密压力表的结构原理、三维视频和进行实操练习,结构原理讲解和三维视频学习是掌握实操方法的基础,学生只有认真学习了前两部分之后才能够顺利进行虚拟实操,在实操练习过程中只有当前步骤操作正确才可以进入下一步的操作,例如台式气压泵检定压力表的过程中,只有将标准表和被检表都安装在对应接头上并且关闭截止阀和卸压阀时才可以进行加压操作。而在结构原理部分不仅可以展示设备的外部结构而且可以显示其内部结构组成,台式水压泵的外部结构和内部结构展示见图6。
4.结语
基于Unity3D虚拟仿真技术,结合3DMAX三维建模软件以及Photoshop和AdobeAfterEffects软件开发的精密压力表标准装置检定仿真教学系统,实现了精密压力表标准装置检定仿真教学的功能。该系统解决了传统教学枯燥乏味无法进行实际操作的问题,又节约了购买教学仪器的费用。测试表明,学习后学生不仅能理解压力表检定的原理,而且可以更快掌握采用台式气压泵和台式水压泵检定压力表的实际操作步骤,并且激发学生的学习热情,提高学习效率。 |