1、基于 OpenGL 的地铁车辆车轴强度应力场可视化研究摘要:为了直观显示地铁车辆车轴不同标准下应力场的整体变化情况,根据车轴结构特点和等值线绘制要求,结合等值线的绘制与填充过程分离的编程思想,应用区域等值线填色算法,研究地铁车辆车轴应力分布的可视化,采用面向对象的软件工程思想编制了试验数据可视化系统。应用实例表明该系统能快速、形象、方便地处理试验数据,对于开发其他车辆零件具有启发、参考作用。 关键词:计算机应用;可视化;OpenGL;云图;等值线 中图分类号:G623.58 文献标识码:A 文章编号: 引言 车轴是地铁车辆转向架的关键承载部件,其强度决定着地铁列车的运行安全。地铁车辆车轴强度的
2、计算方法一般有 2 种:运用有限元方法进行车轴强度仿真计算1;按照制订的规范进行车轴强度的计算,目前我国地铁列车车轴强度计算主要参考规范有:日本的 JIS E45012、欧洲铁路联盟制订的 EN13103/ EN131043,4。 近几年,主要采用有限元法,计算结果可靠,但分析周期较长、计算成本较高,须配备先进的计算机设备和有限元软件,著名的有限元软件有 ANSYS,NASTRAN,MARC 等。利用有限元软件强大的后处理程序可以利用直观显示的方法对车轴进行强度评估。相比之下,采用材料力学或弹性理论确定的车轴应力分布,因其产生的大量数字信息,不能直观的反映数据之间的可比性,为了快速地分析结果,
3、把 OpenGL 技术引入车轴应力场的后处理阶段,实现数据可视化,即用图形图像来表征数据,将隐藏在大量数据中的信息以相对直观,易于理解的图像方式表达出来,使研究人员能够直观、迅速地观察到计算模拟的结果5。 由于地铁车辆车轴结构的规则与通用性,结合等值线绘制与填充过程分离的思想,以区域填充法为基础4、5,基本方法是把整体结构转化为每一个网格单元内等值线的抽取和填充,然后遍历所有单元,形成整体应力云图。此类方法的特点是速度较快,精度随着子域的减小而提高6,避免了传统等值线方法对等值线搜索并进行拓扑分析,方法简便并提高了平台速度。采用 MFC 和 OpenGL 混合编程技术实现了车轴应力可视化系统。
4、 1 OpenGL 简介 OpenGL 即开放性图形库(Open Graphics L ibrar2y),是近几年发展起来的一个性能卓越的三维图形标准,它源于 SGI 公司为其图形工作站开发的 IRISGL,在跨平台移植过程中发展成为 OpenGL。OpenGL 作为先进而强大的三维图形编程接口(3D API),它具有功能完备的二维和三维图形处理能力,是理想的三维应用程序开发工具。它包含众多的功能函数,能处理各种图形基本元素及其图形特征效果,如明暗度、纹理贴图、Z 缓冲、抗混淆、反走样、光照模型等,可以创作出具有照片质量的、独立于窗口系统(Windows System)的操作系统(Operat
5、ing System)和硬件平台的三位彩色图形和动画。以它为基础开发的应用程序可以十分方便地在各种平台间移植,并且它可与 Visual C+紧密接口,便于实现图形图像的有关计算和图形算法,可保证算法的正确性和可靠性,使用简便,效率高。OpenGL 从定义几何要素到把像素段写入帧缓冲区的基本工作流程如图 1所示。 图 1OpenGL 工作流程 2 系统功能实现 2.1 车轴数据场特点 由于地铁车辆车轴应力最大值常常出现在车轴表面,因此表面场值分布图是后处理中关键的表达方法。把三维标量场可视化转化为二维标量场可视化,极大地简化了数据模型,在算法上更容易实现。 2.2 等值线快速填充原理 填充等值线
6、的方法有两种:一种是相邻的两条等值线之间的等值区间用相同的颜色进行填充;另一种是根据参数值的变化趋势整个填充区域在两种或几种颜色之间自然过渡,即使相邻的两条等值线之间的等值区间也是如此。对于第一种方法,一些编程人员进行了有效的尝试,但是这些方法必须在等值线搜索完毕后对等值线进行拓扑分析,搜索并记录两条等值线间的连通区域,算法存在一定的难度且无法达到颜色完全渐变的效果。对于第二种方法,用传统的 C/C+编程也可实现。这种基于栅格的填充算法虽然比较简单,但是填充的时间与空间效率都比较低7。 针对地铁车辆车轴结构特点,彩色云图不需要颜色的过渡进行精确地表示,只需要相邻等值线区域颜色不同即可。因此,为
7、了避免传统第一种等值线的搜索与拓扑分析工作带来的麻烦,采用了基于四边形四节点单元格内部彩色云图的绘制方法。 23 画出应力数据场云图的过程 画应力数据场云图的步骤如下:(1)计算单元节点数据。对于应力场等问题,计算结果就是计算截面的应力,采用某一规范给出的算法,计算出节点应力,具体方法可参见有关文献。(2)建立颜色与应力的关系,并画出颜色与应力的对照关系图。通过云图和颜色与应力的对照关系图,可以迅速了解应力场的分布情况。(3)画出单元的云图。用迭代法逐个求出单元内等值点的坐标,通过等值点的相连,进而填充单元内区域颜色。(4)重复(3),直至画出所有单元的云图,从而得到整个有限元数据场的彩色云图
8、。 3 算法实现 3.1 网格模型 数据场是在依附于网格的基础上得出来的,因此,进行数据可视化需要已知数据场中的网格数据。网格是数据的载体和纽带,在此基础上,我们才能根据网络信息,查找和分析网格点上场量的分布情况,完成云图、等值线等的可视化处理。通过 OpenGL 提供了丰富的基本图元绘制函数,完成网格模型的建立。 本文研究应力分析数据属于节点和四边形单元数据。有限元前处理及分析得到的数据以文本形式保存。其格式如下: 单元数与节点数:NElement NNode 节点坐标及标量场信息:x y z t 单元号(规定各节点间的联系):节点 1 节点 2 节点 3 VC+下数据的读取代码如下: vo
9、id CMyMDOpenGLView:InputData() FILE *file1,*file2; file1 = fopen (“node.txt“, “r“); for(int i=1;i=50;i+) fscanf (file1, “%dt%ft%ft%fn“, fclose (file1); file2 = fopen (“element.txt“, “r“); for(int j=1;j=48;j+) fscanf (file2, “%dt%dt%dt%dt%dn“, fclose (file2); 利用 OpenGL 库函数,可以很方便实现二维网格模型的建立。 glBegin(G
10、L_QUADS); glVertex3f(x1,y1,z1);/x1,y1,z1 表示单元顶点的坐标值 glVertex3f(x2,y2,z2); glVertex3f(x3,y3,z3); glVertex3f(x4,y4,z4); glEnd(); 利用上述函数,遍历所有单元,依次可以绘出整个模型图。图 2 为型车轴的二维网格模型。 图 2 车轴网格模型 3.2 等值线绘制 对于二维标量数据,等值线绘制是数据可视化的主要技术,它通过提取网格数据中某物理量某一数值点的连续分布图形来反映数据之间的某些特性。等值线的应用十分广泛,例如航空测量的等高线地形图、温度场中的等温线图、有限元分析过程中等
11、效应力应变场以及电场中的等势图等。 3.2.1 等值线的性质 从计算机图形学角度讲,等值线具有以下性质:(1)等值线通常是一条光滑连续曲线;(2)对于给定的某一值,相应的等值线数量可能不止一条;(3)等值线一般不互相交错。 3.2.2 等值线的判断 基于大部分物理场在单元内部是线性分布的特点,因此,单元棱边上是否存在等值点完全取决于该棱边两个节点的物理量之间是否含有给定的物理量。对于某一值为的等值线而言,四边形单元棱边之间存在等值点的条件是:,若等于零,并不是严格意义上的零,与整个数据场的数量级有关,实为一个足够小的数) ,则等值点必通过点,此种方式不利于插值等值点,因而做简单处理, ,使等值
12、点稍微偏离点。 3.2.3 等值线的追踪 在上述等值点的判断工作完成后,就要确定等值线的去向,即等值线的追踪。由于给定值在单元内部及棱边上是线性变化的。即可由下式得出等值点的 x 坐标(y,z 坐标同理): 将每条等值线所经过的各个单元的起点和终点按先后顺序排列存入动态数组中,按照某一规则逐点并连接成对应高度值的等值线。利用OpenGL 函数,绘制出了某一平板的应力等值线图如图 3 所示。 图 3 车轴等值线图 3.3 云图的绘制 对于四边形单元,根据每个节点上的场量值在四边形区域中用插值法进行均匀填充。云图填充算法包括两个部分:颜色映射表的建立和实现填充。 3.3.1 颜色映射表的建立 建立
13、一张线性变化的颜色查找表,就是建立物理量与颜色之间线性的一一对应的关系,单元内部颜色则采用拉格朗日(Lagrange)线性插值,用颜色来描述场量的值,从而以直观的方法色彩分布来表示物理量的分布情况。物理量与颜色参量对应表如图 4 所示。 图 4 颜色映射表 3.3.2 实现填充 在物理量转化成颜色表中对应的某一颜色后,单元内部每个空间上的点,运用 OpenGL 相关函数自动使用向内 Lagrange 线性插值的方式完成。根据上述算法,利用 OpenGL 图形函数实现地铁车辆车轴表面应力云图的填充。 4 应用实例 运用上述原理和方法,在 Win32 系统环境下,使用 VC+6.0,针对地铁车辆型
14、车轴采用 EN13103 标准计算应力场的后处理进行了可视化编程。软件界面由 MFC 编程实现,其应力分布图如图 5 所示。 图 5MFC 程序界面 5 结论 (1)数据场网格为载体,采用四边形四节点二维单元表面应力可视化的方法,简化了算法,容易程序实现。 (2)采用等值线绘制与填充过程分离的区域填充算法,以四边形单元为基本填充单位,避免了传统算法中搜索相邻单元等值点的麻烦。 (3)采用面向对象的软件工程思想和实现实验数据可视化系统,是系统的结构更容易理解,及系统的扩展性、可维护性、稳定性得到进一步提高。 本文针对的具体对象是地铁车辆车轴,不论是哪种类型的车轴,均可以应用上述方法进行后处理的可
15、视化操作,使我们可以观测到车轴的应力分布状态,从而轻易地发现车轴受力的危险点,进而使我们判断车轴的强度是否满足安全条件,为改进设计提供依据,为铁道地铁车辆承载结构(转向架其他零部件螺旋圆弹簧悬挂系统、螺栓连接件、构架、驱动系统、制动系统和轴承等)可视化与结构设计奠定了理论基础。 参考文献: 米彩盈, 李芾. 高速动力车车轴强度分析的工程方法J. 铁道学报, 2002, 24(2): 26-29. Japanese Industrial Standards Committee Divisional Council on Railways and Rolling Stock.JIS E4501-1
16、995 铁道机车车辆车轴强度设计 S. Tokyo: Japanese Standards Association,1995 EN13103 - 2009. Radstze und Drehgestelle/Laufradsatzwellen . KonstruktionsverfahrenS. 2009. EN13104 ? 2009. Radstze und Drehgestelle/Treibradsatzwellen . KonstruktionsverfahrenS. 2009. 江帆, 田红旗, 陈维平,等. 列车气动试验数据可视化系统J. 交通运输工程学报, 2004, 4(1): 43-47. LMASdeS, SORIANOHL. A method for graphic stress representation J. Comput&Struct, 1997, 63(6): 1223-1228. 孙晓燕, 伍增贵.基于 MFC 和 OpenGL 的快速填充等值线实现J. 计算机应用研究, 2005(3): 169-172.