欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    设计模式在飞行仿真软件中的应用.pdf

    • 资源ID:69632269       资源大小:327.05KB        全文页数:5页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    设计模式在飞行仿真软件中的应用.pdf

    计算机与现代化2009年第3期J ISUANJ I YU XI ANDA IHUA总第163期文章编号:100622475(2009)0320130204收稿日期:2008212210作者简介:高艳辉(19762),男,河北辛集人,南京航空航天大学自动化学院助理工程师,硕士,研究方向:飞行控制系统设计与仿真;龚华军(19642),男,浙江慈溪人,教授,研究方向:飞行控制,综合控制;李志宇(19762),男,黑龙江人,助理研究员,研究方向:数字控制系统。设计模式在飞行仿真软件中的应用高艳辉,龚华军,李志宇(南京航空航天大学自动化学院,江苏 南京210016)摘要:飞行仿真已经成为飞行控制系统分析、设计和研发过程的一个重要部分,仿真软件的设计是实现仿真目的的关键。面向对象仿真方法是当前飞行仿真软件发展的一个重要方向。而设计模式是面向对象技术的最新进展之一。本文介绍了设计模式的原则与策略,简要描述了飞行仿真系统的结构与主要功能。以此为基础,通过UML类图示例,详细论述了多个设计模式在飞行仿真软件设计中的应用。最后重新设计和开发了数字飞行仿真软件。关键词:设计模式;飞行仿真;面向对象;飞行仿真系统中图分类号:TP391.9 文献标识码:AApplication of Design Patterns in Flight Si mulation SoftwareGAO Yan2hui,GONG Hua2jun,L I Zhi2yu(College ofAutomation Engineering,NanjingUniversity ofAeronautics and Astronautics,Nanjing 210016,China)Abstract:Object2oriented simulation(OOS)is an important development trend in the current flight simulation community.Somesimulation software has little maintainability and reusability for the developers dont master object2oriented technology well e2nough.Flight simulation systems arent adapted to the variety of simulation task.The design pattern is one of the latest progres2ses in the object2oriented field.This paper introduces the principles and strategiesof design patterns,the structure of flight simu2lation system is briefly described.Based on them,it is discussed in detail that several design patterns are applied in the design offlight simulation software,and the UML class diagrams are drew up.Finally,the flight simulation software is redesigned and de2veloped.Key words:design patterns;flight simulation;object2oriented;flight simulation system0 引 言飞行仿真技术已经成为飞行控制系统分析、设计和研发过程的一个重要部分。一个通用的飞行仿真软件可以明显地减少飞行控制系统研发的时间、成本和风险。但是这对仿真软件的设计提出了很高的要求,结构设计不仅要合理,而且还要具有良好的复用性、可靠性。目前飞行仿真软件的开发已经开始采用面向对象的方法和工具,如Flightgear、Alsim等飞行仿真软件。参与仿真软件开发的各专业人员既需要掌握飞行动力学方面的知识,也要掌握计算机编程技术,能够很好地使用面向对象技术,设计飞行仿真软件中的各个类以及对象间的通信。设计模式是面向对象技术的最新进展之一。设计模式是在具体的背景环境中处理问题的方法,其目的是使那些在特定环境中工作良好的设计得以在相似的环境中被其他人再次应用。现在软件开发人员除了继续发现新的模式外,已经有越来越多的人将目光集中在现有模式在一些大型软件系统中的应用。利用模式的思想,我们只要遵守设计准则,合理选用、组合设计模式即可。利用已经设计的成熟技术,一方2009年第3期高艳辉等:设计模式在飞行仿真软件中的应用131面可以使仿真软件系统更灵活,大幅度提升软件系统应对变化的能力,最终复用性会更好;另一方面,可以大大减少软件设计的工作量,提高仿真软件的质量、可靠性和生产率。1 设计模式1.1设计模式简介二十世纪90年代中期,随着Gamma,Hel m,John2son and Vlissides合著的 设计模式:可复用面向对象软件的基础 的出版,设计模式的思想逐渐开始流行起来。每一个设计模式都是在某一个背景下某个问题的一种解决方案,这些方案经过了千锤百炼的考验,是成功的解决方法的总结。每个模式主要包括:模式名称、目的(即要解决的问题)、实现方法以及实现该模式必须考虑的限制和约束等几个项目。在软件设计中,应用设计模式具有如下优点:复用解决方案。通过复用已经公认的设计,我们可以在解决问题时取得先发优势,避免重复犯错,从他人的经验中获益,帮助设计者将新的设计建立在以往工作的基础上,快速解决问题。确立通用术语。在大型软件开发中,需要许多技术人员交流和协作开发软件。设计模式可以提供共同的词汇基础和对问题的共识。提高软件的可维护性。所有的模式都是久经考验的解决方案,比新构思的方案更善于应对变化。同时这些代码更简练,易于理解、维护。另外,设计模式可以提供一张软件各组件的关系图。使开发人员将精力集中于软件的总体设计,不必被细节束缚。1.2设计模式的原则与策略在参考文献1 中提出了设计模式的原则与策略,主要包括如下几项:(1)开闭原则,即允许扩展软件,禁止修改软件。从背景设计原则,即在设计各部分所呈现的细节之前先创建总体概念。(2)依赖倒置原则,即高层模块不应该依赖于底层模块,细节应该依赖于抽象类。(3)封装变化原则,即一个类只封装一个变化。(4)理性怀疑原则,即小心过分依赖模式,模式都是有益的,但并非颠扑不灭的“真理”。2 飞行仿真系统的结构飞行仿真是以航空飞行器的运行状况为研究对象,面向复杂系统的仿真,主要包括飞行动力学仿真、飞行环境仿真等。飞行动力学模型是飞行仿真的基础,一般采用六自由度非线性全量运动方程。飞行仿真软件要完成飞机空气动力特性、发动机动力特性和大气特性等的计算,求解飞机运动方程。主要组成及各模块之间的关系如图1所示。图1 仿真软件结构图输入数据包括:舵面的输出、油门指令(或油门位置)以及其他配置文件;输出数据包括:飞行参数。图1中,大气环境计算包括大气温度、压强、当地重力加速度以及飞机的马赫数、动静压等;发动机模块计算发动机的推力以及油耗、飞机质量、重心等;飞机六自由度运动方程模块解算飞机六自由度非线性全量运动方程,计算出的飞行参数包括:姿态、位置、加速度和角速度等。3 设计模式的应用下面主要讨论几个典型的设计模式在飞行仿真软件中的应用。3.1 Singleton模式Singleton模式比较简单,而且在单线程应用程序中非常常用。它的意图是:软件中的每个对象都使用Singleton类的同一个实例,并提供一个访问它的全局访问点。在飞行仿真软件中,存在部分类被其他几个类使用的情况。例如:At mosphere类(计算温度、压强、当地重力加速度等大气环境参数)被Gravity类(计算重力在机体轴上的各分量)、Airdata类(计算音速、动压等)以及EquationMotion类(求解六自由度运动方程)调用。在程序中,使用Singleton模式,不用必须负责将Atmosphere实例四处传递给所有要使用它的对象,At mosphere类只允许实例一个对象,其他类在使用它时,自动会获取这个实例对象。高逼真度的飞行仿真需要一定的实时性,因此在132计 算 机 与 现 代 化2009年第3期仿真过程中,我们不希望反复地实例化、然后再销毁这些对象。这会明显降低系统的性能。最好按需要由类自己负责实例化,而且只进行一次。应用Single2ton模式,可以方便地解决这个问题。3.2 Observer模式在参考文献2 中,Observer模式定义为“对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新”。在飞行仿真过程中,需要计算在机体轴坐标系上的合力。其中,有的力可能随时增加或去掉。第一,有时需要增加外力干扰,比如:采用火箭助推发射的无人机,火箭的推力以及各个火箭之间的不对称力,都需要考虑。对于地面滑跑起飞的飞机,起落架阻力、地面摩擦力等,也是存在变化的。最后,风对飞机的干扰力,也需要随时加入、随时撤销。因此可以利用Observer模式来设计合力类与各个分力,当产生一个力时,立即向合力类Fmsort注册,撤销一个力时,自动从Fmsort类注销。仿真过程中,Fmsort类会自动根据注册的力对象,调用相应的力计算函数。采用Observer模式设计,具体UML类图如图2所示。图2 应用Observer的力类图图2中,FM为抽象类,所有的各个力类从FM类派生,Fmsort类计算在机体轴坐标系上的合力,Aero2dynamics类计算气动力,Engine类计算发动机的推力,Gravity类计算重力在机体轴坐标系上的分量,Fwind类计算风力,Fother类计算其他干扰外力。图3 应用Observer的风类图为了模拟真实的大气环境对飞机性能的影响,仿真过程中,需要增加各种风的干扰,包括风切面、定常风、紊流等。采用Observer模式设计,动态生成的各种风对象,然后自动注册到Equations Motion类,具体类图如图3所示。图3中,W ind类是抽象类,提供各种干扰风的统一接口。TurbulenceVchange类生成风速变化时的紊流。TurbulenceVconstant类生成风速一定时的紊流。ProfileW ind模拟风切面情况。Constant W ind类生成定常风。Equations Motion类求解飞机六自由度运动方程。3.3 Strategy模式Strategy模式是一种定义一系列算法的方法。从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同。飞行仿真需要求解微分方程,而解微分方程的数值计算方法有许多种,例如龙格 2 库塔法、阿达姆斯 2 巴士弗斯 2 摩尔顿法。在飞行仿真中,由于目的不同,对计算方法的选择可能也不同,有时需要高精度,有时需要实时性。因此需要应用Strategy模式适应算法的变化。应用Strategy模式后,具体UML类图如图4所示。在图4中,RK4类为4阶龙格 2 库塔法。ADM类为阿达姆斯 2 巴士弗斯 2 摩尔顿法。Integer类为抽象类,提供各种算法的统一接口。Flight类为控制仿真过程的主类。Configure类为仿真算法的配置类,包括仿真算法、仿真步长等。2009年第3期高艳辉等:设计模式在飞行仿真软件中的应用133从技术上看,Strategy模式是用来封装算法的。但是在实际中,它几乎可以封装任何类型的规则。本文是针对非线性模型进行仿真研究。如果希望进行线性仿真,可以针对Equations Motion类使用Strategy模式设计。图4 应用Strategy的算法类图3.4 Adapter模式Adapter模式是一个非常常用的模式,而且经常可以与其他模式结合使用。它的目的是将一个类的接口转换成客户希望的另外一个接口。在数字飞行仿真中,舵面输出直接由飞行控制系统仿真计算得到,而飞行参数直接送至飞控仿真子系统中,不需要进行数值转换。但是在半物理仿真中,需要增加A/D卡来对实际舵机进行采样,增加D/A卡将飞行参数数值转换为模拟量输出,送至飞行控制计算机。利用Adapter模式,可以为两种仿真提供统一的接口。这大大增加了仿真软件的通用性、可维护性。由于实际仿真软件开发过程中,常常是在现有软件的基础上改进,利用Adapter模式可以提供一个接口,直接将现有的模块加入到新的仿真软件中去,加快软件开发进度。4 飞行仿真软件UML类图示例应用多种设计模式后,本文采用C语言重新开发了通用数字飞行仿真软件。该软件中气动力Aero2dynamics类与发动机Engine类采用读取配置文件,构造生成相应对象。干扰风及干扰外力/力矩随时根据需要构造对象。其UML类图如图5所示。经过实际使用验证,该软件具有如下优点:(1)通用性好。当更换飞机模型时,只需重新编写配置文件,即可直接用于该模型的飞行仿真,不需要调整飞行仿真软件的任何源代码。(2)可扩展性好。比如:新的数值积分方法只要从Integer类派生,编写算法,就可以直接使用。(3)外部干扰仿真的逼真度更高。该软件可以实现多种干扰风、干扰力/力矩同时存在,可以更真实地模拟飞机在地面或空中受到的外部干扰。图5 飞行仿真软件类图5 结束语本文通过UML示例详细叙述了几种设计模式在飞行仿真软件中的应用,重新设计和开发了通用数字飞行仿真软件。在实际仿真软件的开发过程中,多个设计模式结合使用,可以大大加快软件的开发进度,简化开发过程,提高软件的质量;其次,使用设计模式,开发者可以借鉴前人的开发经验,避免重蹈以前设计中的错误。第三,设计模式的使用,可以提高软件的可维护性、重用性,有利于该软件的进一步发展。利用设计模式,一个专业技术人员可以设计出本领域的高质量软件。(下转第136页)136计 算 机 与 现 代 化2009年第3期minorderoty =20 and averageleadtime 16)(ven2dorI D列上没有建立索引)。以上SQL语句执行全表扫描,效率较低。(4)is null或者is not null操作符。is null或者is not null语句操作符是不会引用索引的,任何包含空值的列将不会被包含在索引中。即使索引有多列,但只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。比如:select3from employee where salary is not null(salary列上建立了索引)。该语句是不会用到salary列上的索引。4 结束语综上所述,恰当地建立索引可使优化器优化SQL语句的执行,从而使访问的数据极大地减少,以此减少相应时间,而良好的书写SQL语句可以有效地利用索引。只有充分地利用索引,并结合优化的SQL语句,才能有效地提高对数据库操作的效率,从而提高系统性能。但是优化是有时效性的,优化必须随着系统应用情况的变化和数据量的变化而调整,灵活地采取优化手段才能有效地提高系统效率。参考文献:1Patrick ONeil,Elizabeth ONeil.数据库:原理、编程与性能M.北京:高等教育出版社,2001.2Raghu Ramakrishnan,Johannes Gehrke.数据库管理系统原理与设计M.北京:清华大学出版社,2004.3 王征,李家兴.SQL Server 2005实用教程M.北京:清华大学出版社,2006.4 范剑波,张晓云.网络数据库技术与应用M.西安:西安电子科技大学出版社,2004.5 Michael Otey,Paul Conte.SQL Server 2000开发指南M .北京:清华大学出版社,2002.6 施伯乐,丁宝康,汪卫.数据库系统教程M.北京:高等教育出版社,2000.7 谈竹奎.Oracle 9i数据库管理员高级技术指南M.北京:中国铁道出版社,2003.8Joseph C Johnson.Oracle 9i性能调整M.北京:电子工业出版社,2003.9 林雪云.Oracle数据库SQL语句优化策略J.电脑开发与应用,2006,19(2):61.10尹萍.SQL Server数据库性能优化J.计算机应用与软件,2005,22(3):52253.11余俊新,孙涌.Oracle 9i中查询优化技术的分析J.计算机技术与发展,2006,16(4):93295.12王振辉,吴广茂.SQL查询语句优化研究J.计算机应用,2005,25(z1):2072208.13谭定英,方振聪.数据库SQL查询技术的优化策略J.计算机与现代化,2005(6):67269.14吴京慧.SQL语句优化技术分析与探讨J.信息技术,2005,29(3):57256.(上接第133页)参考文献:1 高艳辉.基于嵌入式实时Linux的无人机半物理仿真平台研究D.南京:南京航空航天大学,2008.2Alan Shalloway,James R Trott.设计模式解析(第2版)M.北京:人民邮电出版社,2006.3 Erich Gamma.Design Patterns Elements of Reusable Ob2ject2Oriented Soft wareM.Pear Education Inc.,1995.4Jon S Berndt.JSBSim:An open source flight dynamicsmodel in CC/A I AA 200424923.Rhode Island,USA,2004:16219.5FowlerM,Beck K,Brant J,et al.Refactoring:I mprovingthe Design of Existing CodeM.USA:Addison2Wesley,1999.6 沈建,雷航,石浩鸿.设计模式在光传输网管系统中的应用研究J.计算机技术与发展,2007,17(3):2312235.7 刘国静,余青松,郑骏.物流信息系统中设计模式的应用J.计算机技术与发展,2006,16(5):2112216.8 王正俊,徐艳,顾宏斌.设计模式及其在AMCCS中的应用J.计算机技术与发展,2006,16(3):2232228.9 曾蔚,陈维斌.设计模式在新生报到系统中的应用与实现J.计算机技术与发展,2007,17(7):1782182.10 庞国峰,朱纪洪.通用飞行动力学模型库的开发及应用J.飞行力学,2006,24(2):63268.11 王聪,周胜军,江光杰.设计模式在通信系统仿真软件中的应用J.系统仿真学报,2004,16(4):6772680.12 刘海岩,等.设计模式及其在软件设计中的应用研究J.西安交通大学学报,2005,39(10):104321047.

    注意事项

    本文(设计模式在飞行仿真软件中的应用.pdf)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开