当前位置:首页 >> 客户服务技术资料

精密压力表标准装置检定仿真教学系统开发

发布时间:2018-03-23 11:49:49 浏览:

针对当前精密压力表标准装置检定教学中存在的理论教学过于抽象、多媒 体视频教学缺少互动、实验教学设备昂贵的问题,设计了一种精密压力表标准装置 检定仿真教学系统。使用3DMAX建模软件创建精密压力表标准装置检定设备模 ’ Photoshop软件处理设备贴图’ Adobe After Effects软件制作教学视频,然后利用 Umty3D虚拟仿真引擎搭建虚拟仿真教学系统。系统包括结构原理展示、视频动画 教学和虚拟仿真实操三种教学方式,实现了精密压力表标准装置检定仿真教学的 功能,交互式设计能够增加学生的学习热情和效率,弥补了传统教学方式的不足。

测试表明,系统具有开发成本低、沉浸性强和教学效果好的特点。

0.引言

精密压力表是压力测量测试、检测校验、检验检定 等压力参数相关领域中最常用的一种计量标准器。 由于受到环境温湿度、介质气氛、弹簧管变形等因素的 影响,其测量准确度会受到影响,因此必须进行周期性 检定,国家计量检定规程JJ494013《弹性元件式精密压力表和真空表》强制规定精密压力表的检定周期不 超过1年。因此,精密压力表标准装置检定方法被 列为仪器仪表测试类专业教学中的重要内容。

高校对精密压力表标准装置检定的教学以理论讲 解为主,辅助以多媒体视频播放,理论讲解抽象难懂, 缺乏实际练习的学生很难真正掌握检定方法。无疑通 过购买大量精密压力表标准装置供学生实操练习是改 善教学效果的有效方式,但是由于该设备价格非常昂 贵,因此购买大量设备的方法并不现实。

目前,对精密压力表标准装置检定仿真研究尚处 于初级阶段。林卓凡研究的计算机检定记录数据处理 程序,节约了运算时间,提高了运算结果精确度,是 将计算机技术应用于压力表检定的先例,但并未进一 步对压力表的检定过程进行仿真。还有一种基于 Visual Basic的压力表检定系统,设计了计算机管理系 统和数字式压力计接口程序,免去了大量原始记录和 证书打印过程中的数据输入工作,但是系统只适用 于数字式压力计,对于广泛使用的弹簧式压力表并不 适用。另外还出现了一种基于PLC的压力表自动检 定系统,虽然实现了压力表检定全程自动化,但系统硬件结构复杂价格昂贵,因此并未得到广泛使用。

针对以上问题,对仿真教学系统设计关键技术进 行了研究,设计了仿真加压过程的IK算法,压力表结 构拆解算法和光线投射碰撞检测方法,开发了一种交 互性强、经济实用、操作方便的精密压力表标准装置检 定仿真教学系统。系统由结构原理展示、视频动画教 学和虚拟仿真实操三部分组成。结构原理展示部分可 以使学员对设备的外形结构有一定的感性认识,视频 动画教学是通过三维视频对检定过程的详细讲解,虚 拟仿真实操是对学习效果的实际练习和测试。

1.系统总体设计

1.1功能需求分析

精密压力表标准装置检定仿真教学系统主要应用 于辅助高校仪器仪表相关专业的教学,利用虚拟仿真 技术形象逼真的特点降低相关知识的理论深度,使抽 象理论讲解变成可视化、可交互的学习过程。系统 需要实现对台式气压泵、台式水压泵和精密压力表三 个设备的仿真教学功能,如图1所示,以台式气压泵为 例每一个设备都需要实现以下几个功能

(1)结构原理展示。实现台式气压泵的三维模型 展示,对实验室环境的仿真,以及鼠标对模型的缩放和 旋转控制。设定产品概述、技术参数介绍、音频讲解和 更多操作4个侧边弹窗,通过按钮控制弹窗显示和隐 藏。其中技术参数应包括台式气压泵使用环境、压力 范围、调节细度、传压介质和压力连接等。更多操作部 分需要实现各组成部分名称显示和隐藏,以及除去外 壳部分的内部结构展示和返回主操作界面的功能。


(2)视频动画教学。视频动画教学的目的是使学 生对台式气压泵的结构原理有一定的认识之后,进一 步对其技术规格和操作规范的三维动画讲解。包括标 准表的清零、单位转换、被检表的外观检查和零位检 查,以及对示值误差、回程误差、轻敲位移检定方法的 和收尾工作的三维视频讲解。

(3)虚拟仿真实操。虚拟仿真实操部分为了使学 生进行实际操作练习,以及学习效果进行测试,系统要 提供操作步骤提示,并根据学生操作对错决定是否进 入下一步操作。需要实现标准表和被检表表盘的近距 离展示,以减小读数误差,增加检定的准确性。此 外,学生应能够将读数填入检定记录表格中,生成检定记录文档,并实现Word转pdf格式的功能。

1.2技术路线

系统开发分为前期准备工作和虚拟场景开发,如 2所示。

在前期的准备工作中,首先运用3Dmax软件建立 台式气压泵、台式水压泵、标准表、被检表,实验室和实 验台的三维模型,模型在达到一定精细度的基础上面 片数应尽量少,特别是像台式水压泵这样结构复杂的 模型,减少面片数的方法包括删除看不到的面和减少 面的分段数,以减轻硬件负担,从而减少应用程序启动 时场景加载的时间M。同时米用Photoshop图片处理 软件制作模型的材质贴图、Unity3 D中的材质纹理贴 图、特效贴图和UI贴图等,制作所需大小和分辨率的 图片,保存为.png格式文件,并存放在Unity3D的资产 文件夹中。并利用Adobe After Effects图形视频处理 软件制作模型动画视频,包括往快接头上安装标准表 和被检表的视频、轻敲被检表的视频、气压泵和水压泵 的操作步骤讲解视频等。最后,为视频加上配音和片 头导出为.mov格式文件,放入Unity3D的资产文件夹 中,在Unity3D系统开发过程中使用。

虚拟场景开发包括主程序框架设计、模型交互特 性和动画设计、角色控制、按钮触发事件设计、视频播 放和相机切换控制以及数据库连接。主程序框架设计 将仿真系统分为台式气压泵、台式水压泵、标准表、被 检表、实验室、和主界面六个场景,系统运行时首先打 开主界面场景,点击主界面上的不同按钮会触发相应 的事件并加载对应的场景。为了实现结构原理展示/ 视频动画教学和虚拟仿真实操三部分功能,模型交互 特性和动画设计部分为每一个场景创建操作对象,这 些包括3Dmax中创建的模型和Unity3D自带的简单模 型,接下来为对象添加材质、碰撞器、刚体、动画控制 器、音频侦听器和脚本等组件,这些组件会用到前期制 作的图片和视频等资源,其中脚本组件是系统开发中 的重要内容,系统中采用C #语言编写脚本,实现视频 播放控制、相机切换、模型交互和动画播放暂停控制以 及连接数据库等功能。建立标准表数据库、被检表数 据库和检定误差记录数据库,使用SQL访问数据库, 实现数据的添加、查询以及更新,并生成检定记录表。

2.仿真关键技术

加压过程是一个包括加压手柄的抬起和放下、加 压手柄连接杆跟随加压手柄运动、标准表和被检表示 数增加等一系列动作,是仿真的关键,针对这一问题提 出了基于IK算法的加压过程仿真方法。为了实现压 力表内部结构展示,设计了压力表内部结构拆解算法。 实现了基于光线投射碰撞检测方法对实验室门打开状 态控制和实操练习进度的控制。

2.1仿真加压过程

在压力表检定过程中,需要有一个稳定的压力提 供源来实现加压和减压,本仿真的台式气压泵就是一 个采用压杆式设计的气体压力源。如图3所示, 台式气压泵由两个标准的M20 X1.5快接头、截止阀、 加压手柄、微调手轮、压力真空转换阀、卸压阀组成。 左侧快接头安装精密压力表标准装置,右侧快接头安 装被检压力表,通过按压加压手柄实现加压,微调手轮 实现对压力的微调,压力真空转换阀实现对真空表检 定和压力表检定的转换,卸压阀用来降压,截止阀用来 连通和截止气道。


为了仿真加压手柄的加压过程,需要用到反向动 力学(Inverse KinematicsIK)算法,与之相对应的是正 向动力学Forward Kinematics,FK)算法,首先建立其 数学模型,设加压手柄为handleO,与加压手柄相连接 的连杆为handle1,handleO与handle1的连结点为 intersection:

public GameObject handleO public GameObject handle1 public GameObject intersection

在正向动力学中handle1的位置变化会带动 intersection和handleO位置的改变,即用父层级带动子 层级的运动;而在反向动力学中,是通过handleO的位置’反求intersection和handle1的位置变化的,即先确 定子层级的位置,然后反求推出n级父层级的位置。 算法中将handle0与handle1视为两个圆circle [0] circle [1]的圆心,handle0 和 handle1 到 intersection 的距离分别为两个圆的半径:

for (inti = 0 ; i < circles. Length; i + + )

{

circles [i] = new Circle (); points [i] = new Point ();

}

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 public static bool swtichDisassembly = false;

swtichDisassembly 转 变 为 true 时  即 Press Disassembly类中的拆解函数Disassembly中的最外层 if语句条件为真,接着执行内层的语句,当localX 值设置为真时,物体在1 s之内沿X轴方向移动到 CordinateNum的位置,实现拆解。当再次按下内部结 构按钮时,swtichDisassembly转变为false此时执行 else语句,各个拆解部分在1 s之内还原到原来所在的 位置。

控制显示压力表内部结构的算法如下:

if ( StateHelper. swtichDisassembly)

{

if ( localX)

{

gameObject. transform. DOLocalMove X ( CordinateNum, 1. 0f);

}

else if

case 2:

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 ( origin alPostion, 1. 0f);

}

压力表拆解前后如图 5。

2.3光线投射碰撞检测方法

在精密压力表标准装置虚拟仿真系统中经常需要 判断物体之间是否发生碰撞,例如学员进入实验室时, 一旦检测到与门发生了碰撞就将门打开,进入实验室 之后,当学员与实验台发生碰撞且按下F9键之后,就 进入虚拟仿真实操过程。Unity3D虚拟仿真引擎提供 了三种碰撞检测方法,角色控制器碰撞检测/光线投射 碰撞检测和触发器碰撞检测。角色控制器碰撞 检测方法是指当角色控制器和其他物体的碰撞器发生 碰撞时自动调用OnControllerColliderHit函数,使用该 方法的缺点是角色必须离门非常近几乎贴到门上时门 才会打开,使用光线投射碰撞检测方法就可以避免这 一问题。

Physics. Raycast ( gameObject. transform, position gameObject. transform. forward, out hit2f)

其中 gameObject. transform. position 表示投射光线 的初始位置为角色所在位置,gameObject. transform. forward表示光线的投射方向为角色面对的方向,out hit是RaycastHit类型的变量储存了关于碰撞的信息, 2f表示光线的投射长度为2mf代表float即浮点型数 据类型。也就是说当角色面向门且距离在两米以内时 门就会自动打开,否则门将关闭。

3.系统测试

虚拟仿真系统开发完成之后,以.exe格式文件发 布,双击该文件进入系统,首先根据屏幕分辨率选择窗 口大小,然后进入主界面,学员可以选择学习台式气压 泵或者台式水压泵或者精密压力表的结构原理、三维 视频和进行实操练习,结构原理讲解和三维视频学习 是掌握实操方法的基础,学生只有认真学习了前两部 分之后才能够顺利进行虚拟实操,在实操练习过程中 只有当前步骤操作正确才可以进入下一步的操作,例 如台式气压泵检定压力表的过程中,只有将标准表和 被检表都安装在对应接头上并且关闭截止阀和卸压阀 时才可以进行加压操作。而在结构原理部分不仅可以 展示设备的外部结构而且可以显示其内部结构组成, 台式水压泵的外部结构和内部结构展示见图6。

4.结语

基于Unity3D虚拟仿真技术,结合3DMAX三维建 模软件以及Photoshop和Adobe After Effects软件开发的精密压力表标准装置检定仿真教学系统,实现了精密压力表标准装置检定仿真教学的功能。该系统解决 了传统教学枯燥乏味无法进行实际操作的问题,又节 约了购买教学仪器的费用。测试表明,学习后学生不 仅能理解压力表检定的原理,而且可以更快掌握采用 台式气压泵和台式水压泵检定压力表的实际操作步 骤,并且激发学生的学习热情,提高学习效率。