基于OpenGL的飞机刹车视景仿真系统研究.pdf

上传人:韩长文 文档编号:5020653 上传时间:2020-01-29 格式:PDF 页数:4 大小:407.34KB
返回 下载 相关 举报
基于OpenGL的飞机刹车视景仿真系统研究.pdf_第1页
第1页 / 共4页
基于OpenGL的飞机刹车视景仿真系统研究.pdf_第2页
第2页 / 共4页
基于OpenGL的飞机刹车视景仿真系统研究.pdf_第3页
第3页 / 共4页
基于OpenGL的飞机刹车视景仿真系统研究.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于OpenGL的飞机刹车视景仿真系统研究.pdf》由会员分享,可在线阅读,更多相关《基于OpenGL的飞机刹车视景仿真系统研究.pdf(4页珍藏版)》请在三一文库上搜索。

1、收稿日期: 2006 - 08 - 10 基金项目:航空基金资助项目(05E53025) 作者简介:钱莉莉(1982)女,新疆霍城人,硕士研究生,研究方向为计 算机测控及仿真;谢利理(1963)男,陕西凤翔人,教授,博士,研究方向 为电气自动化理论与应用、 计算机测控技术、 故障检测与诊断技术等。 基于OpenGL的飞机刹车视景仿真系统研究 钱莉莉,谢利理 (西北工业大学 自动化学院,陕西 西安 710072) 摘要:视景仿真作为飞机刹车半实物仿真的一部分,实现了飞机刹车仿真的可视化。在设计过程中将OpenGL、3DSMax和 串行通信技术有效结合,解决了飞机刹车过程的三维视景系统模拟仿真问题

2、。仿真软件以Visual C +为平台,采用开放 型图形库(OpenGL)实现了飞机刹车过程可视化的场景绘制、 纹理映射、 视点变换及动画仿真,利用3DSMax建立了飞机实 体模型,飞机刹车过程的动态演示随RS2485实时通信数据不断刷新,以实现飞机刹车过程的可视化处理、 数据记录和视景 回放。 关键词:视景仿真;飞机刹车;OpenGL;串行通信; 3DSMax 中图分类号: TP391. 9 文献标识码:A 文章编号: 1000 - 8829(2007) 08 - 0078 - 03 Study on A ircraft Breaking Visual Si mulation System

3、Based on OpenGL Q I AN Li2li, XIE Li2li (College ofAutomation,Northwestern PolytechnicalUniversity, Xian 710072, China) Abstract:Visual simulation system makes aircraft breaking si mulation visual . OpenGL, 3DSMax and serial communication technolo2 gy are used effectively in develop of the system. U

4、sing these technologies, the problem of three2dimensional visual simulation of the aircraft breaking is solved commendably . The visual simulation system based on VC + achieves the drawing of the breaking scene, texture mapping, the management of the visual angles and the visual si mulation usingOpe

5、nGL. W ith setting up the aircraftmodel u2 sing 3DSMax and receiving the seriate data from RS2485, the function of simulating, recording and replaying the process of the air2 craft breaking can be achieved factually . Key words:visual simulation; aircraft breaking;OpenGL; serial communication; 3DSMa

6、x 视景仿真技术是以计算机实时三维图形生成技术为实现途 径,结合文字、 动画、 声音等处理技术,对真实环境进行视觉和听 觉上的模拟,建立逼真的虚拟环境,以便利用此虚拟环境完成仿 真试验研究的一门综合技术。目前视景仿真不仅广泛应用于工 程设计、 游戏、 艺术造型、 大众传媒等领域,而且正以其直观、 形 象、 符合人们思维方式的优势进入军事训练、 航海、 航天飞行、 武 器对抗、 战术战法研究等科研领域。但是对于飞机刹车半实物 仿真,视景仿真还是一个崭新的领域。本研究以OpenGL作为 显示环境,引入飞机刹车半实物仿真系统的视景演播,直观动态 地模拟了飞机着陆刹车过程的飞 机机体与机轮的运动和状态

7、 变化情况,为飞机在不同环境下的刹车特性研究提供了实验分 析环境。 1 视景仿真系统的组成 视景系统是飞机刹车半实物仿真系统的重要组成部分,它 通过RS2485高速串口与半实物仿真系统获取实时通信数据,实 现飞机刹车过程的可视化处理,系统的组成框图如图1所示。 该系统主要实现的功能包括动态演示功能,数据记录功能 图1 视景系统组成框图 和视景回放功能。实时演示模块主要是建模、 绘制场景和管理 视点,并根据串口实时获取的数据模拟整个飞机着陆刹车过程。 数据记录模块主要是记录仿真事件和仿真对象即飞机的刹车特 性、 状态。视景回放模块是将记录的数据信息重新赋予仿真对 象,实现飞机刹车过程的在线回放。

8、 视景系统的硬件平台采用具有RS2485总线的通用PC机系 统,主要配置: Intel P4, 2. 4 GHz CPU, 512 MB内存, 80 GB硬盘, 以及支持OpenGL和Direct 3D硬件加速的图形适配卡;软件开 发工具采用Visual C +、OpenGL 1. 4和3DSMax。 2 视景仿真系统软件实现 视景系统的功能主要依靠软件实现,主要实现的功能包括 飞机着陆刹车过程的动态演示、 数据记录和视景回放。 2. 1 动态演示模块 动态演示模块的工作简单分为建模阶段和控制阶段。建模 阶段的工作由3DSMax完成,在3DSMax中建立好实体模型后, 利用View3ds转换软

9、件将建立好的模型转换成OpenGL支持的 格式;控制阶段的工作以VisualC +6. 0为开发工具进行Open2 GL编程设计,包括建立显示列表,加入色彩、 材质、 纹理、 光照、 87 测控技术 2007年第26卷第8期 背景等,确定合适的投影、 视口的变换,通过串口接收飞机刹车 数据参数,引入到定义的运动方式方程计算出飞机的新坐标,根 据坐标数据重新绘制实体,以此实现飞机刹车过程的实时仿真。 动态演示模块的工作流程如图2所示。 图2 动态演示模块工作流程图 2. 1. 1 系统主框架的建立 OpenGL与VC + 6. 0的绘图环境不同,绘制前先要进行 环境设置。首先为应用程序连接Ope

10、nGL图形库: opengl32. lib、 glu32. lib、glaux . lib,然后打开MFC对话框,为应用程序的视图 对象添加消息处理函数 1 ,为了能够实时控制整个仿真过程, 故将整个窗口分为CAirplaneModelView和CControl Wnd两部分。 CAirplaneModelView部分用于显示仿真过程; CControl Wnd部分 用于控制仿真过程和实时显示仿真数据。窗口的分割可以使用 下列语句完成: if( sp. CreateStatic( this, 1, 2) =NULL) return FALSE; if (! sp. CreateView (0,

11、 0, RUNTI ME_CLASS(CAirplaneModel2 View) , CSize (100, 100) , pContext)| | !sp. CreateView (0, 1, RUNTI ME_CLASS(CControl Wnd) , CSize (100, 100) , pContext) ) / /分屏 sp. Destroy W indow() ; return FALSE; sp. SetColumnInfo(0, cx33/4, 100) ; 这样就完成了应用程序框架的构建。 2. 1. 2 像素格式的设置 像素格式定义了OpenGL绘图的属性,这些属性包括绘图

12、 界面的颜色表示模式、 颜色位数、 累积缓存区、 深度缓存区和模 板缓存区的位数等信息 2。像素格式的设置过程中首先要定 义像素格式,每个OpenGL显示设备都支持一种指定的像素格 式,用一个名为PI XELFORMATDESCR IPTOR的结构体来表示 这一特殊的像素格式。建立了图形操作描述表并初始化PIX2 ELF0RMATDESCR IPT0R结构后,应 以此 结构 为变量,利用 ChoosePixelFor mat()函数为设备描述表选择像素格式,最后调 用SetPixelFormat()将其设置为当前像素格式。 Int pixelformat = ChoosePixelFormat

13、 (m - pDC - GetSafeHdc () , Bool Result = SetPixelFormat(m_pDC - GetSafeHdc ( ) , pixelfor2 mat, 2. 1. 3 三维模型的绘制及读入 OpenGL在对三维场景和模型的实时控制及可视化系统的 二次开发等方面与3DSMax相比存在着很大优势。但是Open2 GL没有提供三维绘图的高级命令,它只能通过简单的图元:点、 线和多边形来建立三维模型,而利用3DSMax建模工作量则要 小得多,具体的步骤如下: (1)三维模型绘制。 首先利用3DS Max建立飞机模型,输出文件名为plane. 3ds。要把pla

14、ne. 3ds作为OpenGL的物理实体模型,还需要利用 名为View3ds的软件将plane. 3ds文件转换成C语言支持的文 件格式。具体的实现方法是:在命令行中输入命令View3ds ,会弹出一个显示需要转换的3ds飞机模型的窗口。 在窗口中单击左键,点击弹出菜单的ExportOpenGL C Code项, 则生成与模型名同名的两个文件: plane. h和plane. gl。 (2)三维模型的读入。 把上一步生成的文件plane. h和plane. gl添加到当前工程 文件夹中,在文件plane. h中会自动生成一个名为GL3DS_ini2 tialize_plane()的函数,在绘图

15、函数初始化部分加入如下代码: intmodel = GL3DS_initialize_plane()。当要绘制模型时,用显示 列表的方式即glCallList(model)即可。 采用OpenGL库中的显示列表功能,将三维场景中的实体 分别定义为单独的显示列表,预先生成三维实体。在图形显示 时,只需调用所需的显示列表即可显示相应的三维实体,而不需 要重新计算实体在场景中的坐标,这样可以极大地提高动画的 显示速度。 2. 1. 4 场景的绘制 视景系统的场景主要包括地面、 天空、 地面物体和机场跑 道。场景的绘制渲染采用纹理贴图的方法,纹理的使用可以使 场景效果更生动逼真。在3D图形中,纹理映射

16、被广泛应用,绘 制纹理的步骤包括4部分:定义纹理、 控制滤波、 说明映射方式、 绘制场景给出顶点的纹理坐标和几何坐标。但是纹理映射只能 在RGB模式下使用,不适用于颜色索引模式。 首先把需要的图像文件添加到当前工程文件夹的data文 件夹中,利用函数auxD I B I mageLoad (Filename)装载位图,然后 创建纹理,如: if(TextureI mage0 =LoadBMP(“Data/filename. bmp“ ) ) Status = TRUE; glGenTextures(1, glBindTexture(GL_TEXTURE_2D, texture1) ; glTe

17、xParameteri(GL _TEXTURE_2D, GL _TEXTURE_MAG_ 97基于OpenGL的飞机刹车视景仿真系统研究 FI LTER, GL_L I NEAR) ; glTexParameteri ( GL _TEXTURE_2D, GL _TEXTURE_M I N _ FI LTER, GL_L I NEAR_M IPMAP_N - EAREST) ; gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureI mage 0 - sizeX, TextureI mage0 - sizeY, GL_RGB, GL_UNSIGNED_ BYTE

18、, TextureI mage0 - data) ; 其中函数glTexParameteri()的参数设置用于控制纹理的滤波方 式和对纹理坐标的处理方式。接着利用glTexEnvi( )函数创建 纹理环境,也就是选择纹理的映射方式,告诉OpenGL使用哪一 个纹理函数来计算被贴上纹理的多边形表面的颜色值。完成上 述初始化后,就可在OnDraw ( )函数中打开纹理glEnable ( GL_ TEXTURE_2D)绘制场景了。 2. 1. 5 视点管理 建立一套控制视点位置和角度的观测方法可以使观察者从 全局和局部观察整个仿真过程。视景仿真中使用3种不同的视 点:固定视点、 绑定视点和跟踪视点

19、。固定视点是指视点固定在 空间一点,去观察空间中一个固定的区域 3。本系统的后视 点、 空中固定视点、 地面固定视点都属于固定视点,用于观测全 局。绑定视点是指视点和空间物体绑定在一起,以便物体和视 点一起运动,本系统的侧视点和俯视点就是这样的一类绑定视 点,如图3所示。飞机跟踪视点则属于跟踪视点,跟踪视点是指 视点的位置是固定的,但被观察点的位置是变化的。 本系统视点的管理采用键盘交互的方式,通过移动和转动 视点的位置和角度,来控制视点以便继续观察。实现的原理是 通过消息循环机制,系统捕捉到键盘中某键被按下的事件信息, 发送给适当的窗口函数,处理后视点做出相应的改变,任一视点 在场景激活的同

20、时,场景会自动关闭前一个视点。 图3 俯视点 2. 1. 6 仿真动画实现 OpenGL是通过支持双缓存技术来实现动画的。双缓存技 术就是在屏幕上实现绘制图形以前,OpenGL先分配两个颜色缓 存区,在显示前台缓存中的图像同时,后台缓存绘制第2幅图 像。当后台绘制完成后,后台缓存中的图像就显示出来,此时原 来的前台缓存开始绘制第3幅图像,如此循环往复,以增加图像 的输出速度。前后缓存区的交换可以通过一个函数实现,在 W indows编程环境下调用下面函数: SwapBuffers( ) ;在C语言 编程环境下调用下面函数: glutSwapBuffers( ) ,显然本系统则是 在W indo

21、ws编程环境下完成的。具体实现过程中,首先在设置 像素格式函数SetupPixelFormat ( )中将窗口显示属性设置为 PFD_DOUBLEBUFFER即双缓存模式,然后利用OpenGL绘制命 令绘图,绘图结束后切换缓存即 BOOL CAirplaneModelViewRenderScene() SwapBuffers(m_pDC - GetSafeHdc() ) ; / /交互缓冲区 最后使用计时器控制动画的刷新频率,达到动画效果。 2. 1. 7 串行通信 MSComm是Microsoft公司提供的简化W indows下串行通信 编程的ActiveX控件,它为应用程序提供了通过串口收

22、发数据 的简便方法。但MSComm不是工具箱控件,在VC中使用该控 件时首先要将该控件插入到当前Project中 4。 串口通信中交换的数据大多数是字符串数据,而飞机刹车 数据是浮点型,故先要进行数据转换,将其转换成字符串,然后 进行发送,这样通信的双方才能根据一定的数据格式做出解释。 视景仿真过程中共要传送3个数据,包括飞机速度、 机轮速度和 飞机俯仰角。每个数据按一定的格式以ASCII码形式发送,数 据的信息块长度是固定的,第1个字符是数据的标志信息,后7 个字符是数据信息。接收程序收到数据信息块后以相同的格式 转换为浮点数,再根据标志字符将其赋到相应的变量中。 另外本系统利用多线程技术,

23、因为三维场景渲染和数据分 析需要占用大量系统资源(CPU和内存 ) , 故在主线程下产生一 个工作线程来接收数据,这样做可以极大地改善程序运行效果。 系统的运行结果图如图4所示。 图4 系统运行结果图 2. 2 数据记录模块 飞机刹车的整个过程很短暂,而数据记录则为分析研究刹 车过程飞机的一些参数变化提供依据。记录数据的方法有很多 种,本系统采用C +中文件流的方法,此方法简单灵活,可以很 好地完成此项功能。在记录数据的过程中,为了区分不同的记 录文件,程序自动将当前的时间日期作为记录文件的名称,文件 存为 3. dat格式。程序调用fprintf( )函数录入数据,一行录入 一帧的数据,一帧

24、包含3个数据:俯仰角、 飞行速度和机轮速度。 此外要特别注意写入的顺序,因为回放时要按同样的顺序读取。 2. 3 视景回放模块 视景回放主要是对仿真过程的再现,即飞机刹车特性和状 态的再现,它与实时演示的不同仅在于数据来源不同。一旦选 择了视景回放,视景系统则无需再从串口获取数据,仿真对象的 运动参数将从记录文件中读取。与数据记录不同的是程序调用 fscanf()函数读取选中的记录文件,一次读出一帧的数据 ,并将 此数据信息赋予仿真对象,此时场景中的仿真实体模型会重新 运动起来,完成视景回放。(下转第83页) 08 测控技术 2007年第26卷第8期 法 11。 图3 被控制部分 通常可假定W

25、eb服务器在其运行点近旁的输出y与输入u 之间的关系为下列线性的ARMA方程 y (k) + a1y (k -1 ) + + any(k - n)= b1u (k -1 ) + + bnu (k - n)(3) 在Web的运行中,加上一个系统辨识的模块,通过对输入u 和输出y的一段时间的测量,运用辨识方法(如最小二乘法、 Kalman滤波法等 ) , 可确定出式(3)的阶数n和参数 ( a 1, an, b1, bn)。 2. 4 控制算法 设计Web QoS反馈控制系统的另一重要问题,是确定图2 中控制器的控制算法,以使闭环动态系统达到所要求的稳态和 动态性能要求,包括:稳态误差、 稳定性、

26、 调节时间、 超调量以及 鲁棒性等方面的要求。控制算法常用的设计方法有: PI D法、 根 轨迹法、 极点配置法、LQ方法、 模糊控制方法等 11,14。 2. 5 Web QoS控制系统举例 参考文献11, 15给出了在Apache服务器上,不同用户类 相对延迟保证的反馈控制系统的实现,其中,文献 11 是在 Linux平台下Apache服务器的控制系统,而文献15 是在W in2 dows平台下Apache服务器的控制系统。以后者为例来说明。 如图3所示,该系统的被控制量y是不同用户类平均的相 对延迟之比,而控制作用u是Apache服务器的多处理模块 (MPM)提供的工作线程之比,两者之间

27、的关系可用下列二阶 ARMA方程来描述 y(k) + a1y(k -1) + a2y(k -2)= b1u(k -1) + b2u(k -2)(4) 在建立试验环境后,可用系统辨识方法确定参数(a1, a2, b1, b2)。然后,将图2控制器的控制算法取为比例-积分(PI) 算法。参考文献15中给出了良好的试验结果。 3 发展方向 本文简述了Web服务器QoS的测量技术和控制技术,这是 测控技术领域中的一个新的研究方向,但目前仍处于初创阶段。 今后在Web QoS的测量方面,要着重研究: 如何产生具有自相似模型的突发性负载的请求序列; 如何配置Web上的文件,使文件集的尺寸分布、 被访问 的

28、概率等符合Web在Internet网中的实际运行情况。 对于Web QoS的控制方面,要着重研究: Web QoS各种性能的反馈控制的建模方法; 有效的控制算法,特别是自适应控制、 鲁棒控制和模糊控 制算法等; 建立试验床( test bed) ,即按照Web的应用条件和外界环 境,应用有关的Web QoS测量系统,搭建一个试验环境,以验证 设计的正确性。 参考文献: 1 欧灿辉,李晓明. Web服务器性能评测 J .计算机研究与发展, 2002, 39(5) : 540 - 547. 2 Description of the WebStoneDB /OL . http: / /www. mi

29、ndcraft . com / Webstone/,2005. 3 Trent G, SakeM. WebStone, the first generation in HTTP server bench2 marking EB /OL . http: / /www. mindcraft . com /Webstone/paper . ht2 ml, 1995 . 4 Banga G,Mogul J C. Scalable kernel performance for Internet servers under realistic loadsA . USEN I X Annu. Tech. C

30、onf . C . New Orle2 ans, 1998. 5 Banga G,Druschel P. Measuring the capacity of aWeb server under re2 alistic loads J . World W ide Web Journal, Special Issue on World W ideWeb Characterization and Perfor mance Evaluation, 1999. 6 Crovella M E, Bestavors A. Self2similarity in world wide Web traffic:

31、evidence and possible causeA . Proc. of 1996 ACM SIG METR ICS, Int . Conf . on Measurement and Modeling of Computer Systems C . 1996. 7 W illiferW, Paxson V, TaqquM S . Self2similarity and heavy tails: struc2 turalmodeling of network trafficM . Chapman & Hall, 1998. 8 Barford P, Crovella M. Generati

32、ng representative Web workloads for network and serverperfor mance evaluationA . Proc. of 98 ACM SIG2 METR I CSC. 1998. 9 SPECweb99 release 1. 02 users guide EB /OL . http: / /www. spec. org/web99/docs/, 2000208. 10 Hellerstein J L, Diao Y, Parekh S, Tibury D M. Feedback control of computing systems

33、M . W iley - IEEE, 2004. 11 Abdelzaher T F, Stankovic J A,Lu C, Zhang R,Lu Y . Feedback per2 formance control in software service J . IEEE Control SystemsMaga2 zine, 2003, 6: 74 - 90. 12 Abdelzaher T F, Shin K G . QoS precisioning with q contracts in Web and multimedia servers A . Real2time Systems

34、Symposium C . 1999: 44 - 53. 13 Apache HTTP server version 2. 2 documentation EB /OL . http: / / httpd. apache. org/docs/2. 2/, 2006. 14 Diao Y, Hellerstein J L, Parekh S . Optimizing quality of service using fuzzy controlA . Distributed Systems Operations and Management C. 2002, 42 - 53. 15 潘文平,慕德俊

35、,张新家,张慧翔.相对延迟保证在Apache服务器 上的实现J .计算机工程与应用,2006,42 (29) : 129 - 132. (上接第80页) 3 结束语 视景仿真系统在实时显示仿真数据的同时收到了良好的动 画演示效果,逼真模拟了飞机刹车的全过程,同时数据记录和视 景回放功能又为观察者提供了再一次分析和评估仿真过程的机 会。在飞机刹车半实物仿真系统引入可视化技术,增强了系统 的表现力,随着计算机技术的不断进步,视景仿真必将成为仿真 系统不可或缺的重要组成部分。 参考文献: 1 和平鸽工作室. OpenGL高级编程与可视化系统开发M .北京:中 国水利水电出版社, 2003201. 2 Richard S . W right, Sweet J M. OpenGL超级宝典M .北京:人民邮 电出版社, 2001206. 3 胡方.水声对抗三通道视景仿真系统研制D .西安:西北工业大 学, 2004202. 4 李现勇. Visual C +串口通信技术与工程实践M .北京:人民邮 电出版社, 2004207. 38Web QoS的测控技术

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1