刘 炜,陈 宁
(江苏科技大学能源与动力工程学院,江苏镇江212003)
虚拟现实技术是一门新兴技术,集传感器技术、图形图像处理技术、多媒体技术、互联网技术、计算机技术[1]等于一体,逐渐成为国际重要课题,在计算机相关领域中得到广泛应用,在娱乐、教育、培训等领域也得到广泛应用.文献[2]中基于I-DEAS,OpenGL,VC++,建立约束关系,开发大型机械装置虚拟教学训练系统,以动态实时展现复杂视景.文献[3]中通过11个BB模块实现三维实体碰撞检测.利用虚拟现实技术对柴油机配气机构进行运动学视觉仿真,一直是柴油机工作状态模拟的难点,特别是配气机构运动体之间运动关系的仿真.文中提出了两种仿真方法,并对仿真结果进行了比较.
首先求解柴油机配气机构运动的数学模型.图1为单缸配气机构的示意图.图中lT为摇臂转动中心到推杆上支承面中O1的距离;α为摇臂lΤ对挺柱中心线的偏转角;l为推杆上下支承面中心间的距离;γ为推杆对挺柱中心线的偏转角;lV为气阀侧的摇臂臂长(摇臂中心O到圆柱面中心O2的距离);β为lV臂对气阀中心线的偏转角;hv气阀的升程;hT为挺柱的升程;φ为凸轮的转角;ω为凸轮轴的转角.挺柱的位移hT与凸轮的转角φ相关[4].
图1 配气机构示意Fig.1 Gas distribution mechanism
图2为进气阀位移hv与凸轮转角φ的关系.可以通过凸轮转角φ来确定挺柱的运动规律.由图1可以得到下列方程:
再对时间t求导,可得到气阀运动的关系式:
式中:hV为速度(mm/s);h¨V为加速度(mm/s2).
结合式(1,2)和(5),可得挺柱的位移hT与凸轮的角速度ω的关系式:
对公式(5)求积分有
凸轮轴转速ω为8.75 rad/s,故凸轮的转速ω也为8.75 rad/s.
利用Simulink求解方程,得到配气机构挺柱的速度、加速度曲线,将结果输入SQLserver数据库建立数据表.以ADO和UDP协议通信,数据从数据库服务器传输到Simulink.数据发送流程如图3.
通过 VS2005建立 OSG(OpenSceneGraph)仿真平台与数据库表的关联,从而使OSG中各个机构在数据库表的支持下运动(图4).此方法在实现视觉仿真时结果精确,机构动作平滑,但占用系统资源较大,运行费时.
图2 凸轮转角与进气阀位移关系Fig.2 Relationship of cam angle and suction valve displacement
图3 数据发送流程Fig.3 Flow diagram of data send
图4 视景生成流程Fig.4 Visual generation process
OSG场景管理软件提供了osgUtil库函数,该库函数用来获得正确的静态物体和动态物体高度值.场景中的射线是交集测试的基础,线段类提供了一种定义射线的方法.当交集测试被触发时,它将检测射线的相交情况并执行相应的操作[6].这里采用了一种改进的AABB碰撞检测算法.柴油机配气机构中凸轮的AABB树由2×N-1个节点组成,其中包括N个叶节点和N-1个内部节点,N是凸轮中基本图元三角形的数目.叶节点包含一个或多个可绘制体(Drawable类)信息.在凸轮和挺柱碰撞检测时,遇到测试两个叶节点的情况,则先进行包围盒之间的相交测试.如果包围盒相交测试成立,再进行凸轮和挺柱之间基本图元如三角形、线段的相交检测,找到碰撞的准确位置.文中提出一种方法,据此可以跳过AABB的叶节点之间的相交测试,直接进行几何体基本图元间的相交测试,找出射线和三角形的交点.方法如下:
凸轮几何体三角形的参数方程:
式中:V0,V1和V2为三角形的3个点;x,y为V1和V2的权重,1-x-y为V0的权重,并且满足x>=0,y>=0,x+y<=1.
射线的参数方程为O+Dt.式中:O为起点,D为射线的方向.
求射线与凸轮几何体基本图元三角形的交点,即求解方程:
将t,x,y提取出来作为未知数,得到线性方程组
根据克莱姆法则,
可知射线与凸轮几何体基本图元三角形的交点.
依据碰撞检测算法,实时获取凸轮与挺柱的动态交点,再通过交点,根据曲柄滑块机构运动规律,求出配气机构各部件的运动方程.碰撞检测算法可以利用OSG自身碰撞检测类实现.用osgUtil::Line-SegmentIntersector定义相交矢量,用osgUtil::IntersectionVisitor定义碰撞检测器,定义碰撞检测的对象物——凸轮.在整个运行周期,碰撞实时发生.凸轮与相交矢量的碰撞检测结果即交点实时保存,传递给OSG仿真程序.这一方法需要配气机构三维模型非常精确,可直接从CAM工具ProE文件格式转化而来.对于单独一个气缸配气机构来说,碰撞检测发生在凸轮和挺柱两个动态运动刚体之间,采用嵌套回调的方法解决这个问题.凸轮轴在参与正时转动时,加入碰撞检测机制.
图5 方法2流程Fig.5 Flowsheet of method 2
基于碰撞原理,挺柱和推杆的位移程序如下:
osgUtil::LineSegmentIntersector(p-start,pend);∥得到线段
osgUtil::IntersectionVisitor-iv(-lineSegmentIntersector.get());
terrain- >accept(-iv);∥碰撞点
osg::ref-ptr<osg::MatrixTransform> mt-terrain=new osg::MatrixTransform;
mt-terrain- >setMatrix(osg::Matrix::translate(osg::Vec3(0,0,0)));
mt-terrain- >addChild(terrain);
-intersections=-lineSegmentIntersector- >get-Intersections();
int-intersectionNumber=-intersections.size();
if(-intersectionNumber!=0)
osgUtil::LineSegmentIntersector::Intersections::iterator hitr=-intersections.begin();
osg::Vec3
vec3-p1=hitr- >getWorldIntersectPoint()*mt-terrain- >getMatrix();
OSG运行结果如图6.
该方法利用碰撞检测机制实现挺柱沿凸轮型线复杂运动轨迹,避免用Simulink建立数学模块求解微分方程.上述方法是一种较为方便且占用资源较少的解决方案.
图6 柴油机配气机构运动Fig.6 Diesel engine gas distribution mechanism motion visual simulation
经过观察,可见挺柱、推杆、摇臂和气阀等构件有抖动现象.这一问题来源于碰撞检测环节.应用OSG碰撞方法求交点时,尽管对导入的模型曲面进行了Delaunay三角剖分,但得到剖分后,部分三角形较大.凸轮曲面由很多三角形平面拟合而成,在相交矢量与凸轮表面求交时,交点值有跳动,造成了部分构件仿真结果抖动.
利用 osg::PrimitiveSet::POINTS,osg::PrimitiveSet::TRIANGLES对凸轮模型曲面的三角形细化,可以减小抖动.
根据柴油机配气机构视觉仿真的要求,用两种不同方法对配气机构进行仿真:一是利用Simulink对配气机构各个部件的运动微分方程进行解算,通过数据库实时传递运算数据,在视觉仿真环境中得到运动效果;二是通过碰撞检测机制,找到凸轮与挺柱碰撞交点,通过交点计算各部件运动位置,解决了运动刚体之间的碰撞检测问题.这两种方法经过比较,后者因为灵活方便,推荐使用.
References)
[1] 周红军,王选科.虚拟现实系统概述[J].航空计算技术,2005,35(1):114 -116.Zhou Hongjun,Wang Xuanke.Systematic summary of virtual reality[J].Aeronautical Computer Technique,2005,35(1):114 -116.(in Chinese)
[2] 贺少华,吴新跃.基于VC++和OpenGL的大型机械装置虚拟教学训练系统的开发[J].系统仿真学报,2009,21(4):1059 -1062.He Shaohua,Wu Xinyue.Desktop VR prototype of mechanical devices training applications[J].Journal of System Simulation,2009,21(4):1059 -1062.(in Chinese)
[3] 王宪成,李勃,李莉.基于Virtools4-0的某型船艇柴油机虚拟维修关键技术研究[J].装甲兵工程学院学报,2010,24(2):27 -31.Wang Xiancheng,Li Bo,Li Li.Research on key technology of virtual maintenance certain boat diesel engine based on virtual 4.0[J].Journal of Academy of Armored Force Engineering,2010,24(2):27 -31.(in Chinese)
[4] 姚寿广,包国治,许江涛.基于虚拟样机的柴油机配气机构运动学动力学仿真分析[J].船舶工程,2009,31(6):27-31.Yao Shouguang,Bao Guozhi,Xu Jiangtao.Kinematics and dynamics simulation analysis of valve actuating mechanism for diesel engine based on virtual prototype technology[J].Ship Engineering,2009,31(6):27 -31.(in Chinese)
[5] 杨晓,廉静静,张新宇.基于OSG的虚拟场景中包围盒碰撞检测的研究[J].计算机技术与发展,2011(9):32-34.Yang Xiao,Lian Jingjing,Zhang Xinyu.Research on bounding box collision detection in virtual reality based on OSG[J].Computer Technology Development,2011(9):32-34.(in Chinese)