2007焦 2月 装备指挥技术学院学报 Journal of the Academy of Equipment Command&Technology February 2007 第18卷 第1期 Vo1.18 NO.1 飞艇仿真器关键技术分析与设计 蔡自立, 屈卫东, 席裕庚 (上海交通大学自动化系,上海200240) 摘 要:按照飞艇仿真器的设计要求,分析了其功能模型,在此基础上,详 细讨论了其关键技术——运动学与动力学计算引擎的设计,提出了3种方案。前2 种设计方案充分利用了Matlab软件的仿真功能以实现运动学与动力学计算引擎,实 现起来比较简单,但不能解决实时性问题,可应用于前期的概念性设计与功能验证; 第3种方案要求自行设计满足实时性要求的运动学与动力学计算引擎,能够满足最 终的飞艇仿真器设计目标。 关 键 词:飞艇;仿真器;半物理;全过程仿真 中图分类号:V 211.78 文献标识码:A 文章编号:1673—0127(2007)01—0104—05 Analysis on the Key Technology and Design of the Airship Simulator CAI Zili. QU Weidong。 XI Yugeng (Department of Automation,Shanghai Jiaotong University,Shanghai 200240,China) Abstract:According to the design objective of an airship simulator,the paper analyzes the func— tion model,and discusses design of the key component,the kinematics and dynamics computation en— gine.Three schemes are presented.The first and the second,easily implemented,exploit the simula— tion functions of Matlab to set up the computation engine.However,they cannot guarantee the hard real—time performance,and only serve for conceptual design and function validation.The third de— mands building a stand——alone solver guaranteeing hard real——time performance for kinematics and dy—— namics computation,hence satisfies the essential design obj ective of the airship simulator. Key word:airship;simulator;semi—physical;whole process simulation 1 问题的提出 飞艇仿真器的设计目标是,在综合考虑外部 天气干扰、自身燃油或电池消耗、气囊压力变化情 况下,提供飞艇手动遥控与计算机自主控制2种 操作模式下的飞艇飞行的运动学与动力学实时仿 真,为在实际飞行实验前提供仿真模拟。 飞艇仿真器应具备以下功能: 1)模拟动作施动者(角色)对飞艇的输入。 收稿日期:2006-11-01 基金项目:部委级资助项目 该系统的动作输入者有3个:飞艇操作手(手动控 制),自主飞行控制器,参照海拔高度、经纬度以及 时间变化的天气状况。值得注意的是:飞艇操作 手和自主飞行控制器并不同时对飞艇施加输入, 所以必须考虑二者之间的切换。 2)动力学仿真。飞艇在飞艇操作手与自主 飞行控制器以及外部天气作用下的运动变化规 律,由其六自由度动力学方程所决定,通过计算机 求解这一微分方程组,得到飞艇的运动轨迹(包括 作者简介:蔡自立,男,博士研究生.主要研究方向:飞行器建模与非线性控制.zili—cai@126.corn. 屈卫东,男,副教授,硕士生导师. 维普资讯 http://www.cqvip.com
第1期 蔡自立,等:飞艇仿真器关键技术分析与设计 105 位置、姿态、速度、加速度)。其中,最重要的问题 3)数据存储与显示。存储包括飞艇运动轨 的是:计算机解算某一时间问隔内的运动轨迹,是 迹、天气变化、手动或自动控制输入、燃油或电池 否能够在远小于该时间间隔的时间段内完成。确 消耗等在内的数据,并通过图形、动画、表格等方 保这一点,是保证实时仿真的前提,否则得到的显 式显示。 示曲线将是在时间轴上拉伸以后的实际运动轨 迹,从而导致仿真数据的失真。可见,解决这一问 2 功能模型 题是飞艇仿真器设计成败的关键所在。一 业 /耐\一 飞艇仿真器功能模型见图1。 位置、姿念 一 /l厂 I 速度、角速度 位置、姿态 速度、角速度 牵问参数 地形数据J々 计算重量 燃油,电池 空间视图 变换显示 E艇吊舱 显示仪表 数据库 l 兰 l 图1 飞艇仿真器功能模型 3计算引擎分析与设计方案 下,姿态、位置、角速度、速度的变化。这一计算首 先要保证一定的计算精度,其次还希望提高计算 3.1飞艇运动学与动力学简介 速度,以满足整个软件的实时性要求。 飞艇运动学与动力学是描述飞艇运动的一组 首先,讨论计算精度问题。这一问题比较简 方程 ]。其中,运动学方程描述了飞艇的速度与 单,在经典的微分方程数值解法理论中,对微分方 角速度、位置与姿态的微分关系,这一方程与通常 程数值解法的精度都用阶次给出了说明,一般的 的飞行器运动学方程相同;动力学方程描述了飞 算法 。 ,如欧拉(Euler)法、龙格一库塔(R-K)法 艇在外力(包括控制与干扰)的作用下,角加速度 等,对于大多数非线性微分方程组,均可通过提高 与加速度、角速度与速度之问的微分关系,这一方 数值计算的阶次来提高精度。 程与常规飞行器的动力学方程有很大不同,它综 其次,讨论计算速度问题。这一问题与微分 合考虑了飞艇的重力、浮力、黏性耗散、附加惯性、 方程的刚性有关。简而言之,如果微分方程组的 来流干扰、配重运动、主附气囊充放气等因素。 Jacobian矩阵存在绝对值相差很大的特征值,则 3.2运动学与动力学计算引擎设计的技术关键 这类微分方程为刚性方程。较大的刚性导致了在 飞艇的运动学方程为七维非线性微分方程组 数值计算时,为保证一定的计算精度,必须取较小 (用单位四元数表示姿态,以避免计算时出现奇异 的计算步长。事实上,这一特点可以通过微分方 点);飞艇的动力学方程为六维非线性微分方程 程组的Jacobian线性化的过渡过程来说明,由于 组。运动学与动力学计算引擎设计的目的是:在 Jacobian矩阵存在绝对值相差很大的特征值,则 给定了随时间变化的外部输入(控制作用与外部 该微分方程组存在一个变化很快的模态(快动力 干扰)的情况下,计算飞艇在这些外部输入作用 学)和一个变化很慢的模态(慢动力学)。这2个 维普资讯 http://www.cqvip.com
106 装备指挥技术学院学报 2007年 模态的动力学难以用同样级别的时间尺度来描 述,同时又要保证同样级别的计算精度,这就导致 了刚性方程的数值计算往往只取很小的步长,使 得计算的时间很长。目前,对一般的非线性微分 方程组,能较好解决刚性问题的数值解法为: Gear方法、Rosenbrock方法等。 上要求:对某一种微分方程,在长度为T的区间内 的解的计算时间为NT,且N<1,考虑到仿真软 件在每个仿真步内必须完成的其他工作,希望 N《1,这是一个比较苛刻的要求。 3.3设计方案 方案一:利用Matlab软件内嵌的微分方程求 解器。 从以上讨论可以看出,对于刚性微分方程,计 算精度与速度是一对难以调和的矛盾。不幸的 是,很多力学系统,包括飞行器动力学系统在内, 前已述及,龙格一库塔(R—K)法对于大部分微 分方程组,都可通过提高数值计算公式的阶次来 其动力学方程都是刚性的,这就使得在飞艇运动 学与动力学计算引擎的设计中,难以同时保证计 算的精度与速度。换言之,要保证足够的计算精 度,则数值计算时间就较长;若要提高计算速度而 取较大的步长,则又可能使计算结果的精度过低 而失去参考价值。 有了以上关于计算精度与计算速度的分析, 对于软件仿真的实时性就能做出深入的理解: 首先,飞艇仿真软件实时性的瓶颈在于运动 学与动力学计算,其根源在于飞艇动力学本质的 刚性。这是因为,其他消耗时间的工作,例如读写 数据库操作,并不要求操作的严格实时性(hard real-time,也称硬实时),可以通过并发、并行的程 序设计来提高效率;但运动学与动力学计算要求 严格实时性,即只有当某一时间区间的数值解已 经计算完毕时,才可进行下面的时间区间的数值 计算,由于这一计算不可分解,因此不能(至少是 很困难)用并发或者并行的程序设计来突破这一 瓶颈,又因为飞艇动力学本身的刚性,提高数值计 算的速度只能依赖对刚性问题针对性较好的方 法,如Gear方法等。 其次,该瓶颈问题的解决不能通过增加单步 仿真时间来提高。试图通过增加单步仿真时间是 一种很容易得出的错误认识,例如:由于原先将单 步仿真时间设置为1 S,结果在1 S的时间内,运 动学与动力学数值计算不能完成,就把单步仿真 时间设置为大于1 S。这一错误认识的根源在于 没有理解数值计算所需要时间的含义:如果某种 微分方程数值计算方法,对某种微分方程在长度 为T的区间内的解的计算时间为NT,那么如果 把时间区间增大为kT,则需要的计算时间 为是NT。 第三,要使仿真具有真正意义上的实时性十 分困难。要达到真正意义上的仿真实时性,实际上 是要求对某一时间区间内的解的数值计算时间小 于这一时间区间本身。由此分析可以看出,这实际 保证一定的精度,但对于刚性方程,这一方法的计 算速度很低;Gear方法能够比较好地解决刚性问 题,提高计算速度,并兼顾计算的精度。这2种数 值计算方法,在Matlab软件中都已经实现(龙格一 库塔(R—K)法和Gear方法在Matlab软件中的实 现分别为ode45和ode15s程序)。 为了缩短软件开发周期,采用Matlab提供的 微分方程数值解法,显然是一种值得尝试的方法。 不幸的是,对于飞艇的运动学与动力学方程数值 计算,Matlab提供的基于Gear方法的ode15s算 法,虽然在同样的精度等级下,比基于龙格一库塔 法(R—K法)的ode45算法要快很多,但仍不具有 完全意义的实时性,即无法达到前述的N<1的要 求,这在软件设计与调试中已经得到验证。其原 因可能为:首先,Matlab软件并非针对实时仿真, 其内嵌的微分方程求解器对实时性无任何保证; 其次,在自行设计的仿真软件中,调用Mat— lab内嵌的微分方程求解器是一种跨进程调用, 时间开销不小。 ・方案二:利用Matlab软件的Simulink来实 现运动学与动力学计算。 这一方案与第一种比较类似,但引入了以下 一些提高实时性的改进:①将用于运动学与动力 学计算的Matlab内嵌求解器替换为计算速度较 高的Simulink模块;②用Matlab的c/c 库简 化数学计算;③将用C语言来编写S-function并 编译成动态连接库(.did文件,以提高程序速度。 此外,可使仿真模型运行于Matlab real-time workshop(RTW)提供的外部模式,或者将其定 制成xPC Target,以在控制环路中引入控制器或 传感器的实物进行半物理仿真,从而获得该方案 所能提供的最大实时性。值得一提的是,如果有 条件配备dSPACE仿真控制卡,还可将仿真模型 下载到dSPACE卡中运行,这时系统的实时性能 将极大提高,但系统成本的增加也十分可观。 经过以上改进,仿真计算的速度有了较大的 维普资讯 http://www.cqvip.com
第1期 蔡自立,等:飞艇仿真器关键技术分析与设计 一107 提高,但还未必能到达完全的实时性(即N<1)。 至此,Matlab软件的强大功能已几乎被利用殆 尽,仍不能获得完全意义的实时性,可能的原因 是:首先,只要方案一中跨进程调用存在(外部程 序调用Matlab),就会导致实时性很高的RTW 和dSAPCE计算,因需要与外部同步而不得不停 顿,这是导致时间开销很大的另一个重要原因;其 方面,Matlab的c/c“数学库虽然能简化数 学计算,但由于其内部存在大量的内存分配与回 收操作,在微分方程组数值求解时,大量调用这一 库的函数,必然了求解速度。 2)必须自行设计飞艇运动学与动力学这一 十三维非线性微分方程组的快速求解算法。在设 计中,要综合考虑2个因素:①尽量采用能很好 次,Matlab的c/c“库虽然能简化数学计算,但 其中有大量的内存分配与回收操作,对于飞艇运 解决刚性问题的数值解法,比如Gear方法, Rosenbrock法等;②尽量利用飞艇本身的动力 动学与动力学系统这样一个十三维的非线性微分 方程组的求解,每一步计算,临时变量所占的内存 都较庞大,且每步都涉及大块内存的分配与回收, 时间开销可想而知。 对于飞艇仿真器前期的概念性的开发,主要 目的是检验仿真系统开发的可行性与正确性,对 实时性的要求并不是绝对的。自行开发一系列计 算组件的做法在短期难以实施,而且,只要不采用 外部程序调用Matlab而导致跨进程调用(这当然 会整个系统的功能),RTw或dSPACE的实 时性功能就不会受到很大的,所以,不妨采用 方案二。图2为用Simulink模型的仿真输出数 据驱动的飞艇盘旋上升的简单动画演示,其中飞 艇图形后的曲线为其盘旋上升的飞行轨迹,由于 存在来自图中左侧水平风的干扰,螺旋形的飞行 轨迹略微向右侧偏移。 图2 艇盘旋上升的简单动圆演示 方案三:自行设计微分方程求解器。 考虑到飞艇仿真软件系统的研究与开发是一 个持续的、深人的过程,因此今后的仿真软件的运 动学与动力学计算引擎必须做以下根本性的设计 更改: 1)由于方案一和方案二都不能完全解决实 时性问题,而Matlab软件可供利用的功能已利用 殆尽,因此放弃Matlab势在必行:一方面,只要将 Matlab作为第三方软件模块挂载,就必然存在跨 进程调用的问题,从而了软件的计算速度;另 学性质,将数值计算用解析计算代替,以减少在每 一仿真步数值算法的计算开销。 3)设计支持多线程操作的飞艇运动学与动 力学组件。前已述及,飞艇的运动学与动力学数 值计算不可分解,因此不能(至少是很困难)用并 发的方法来提高计算速度。尽管如此,仍然可设 计支持多线程操作的飞艇运动学与动力学组件。 其中,飞艇的运动学与动力学数值计算作为原子 操作(atomic operation),在运行中不可中断其他 操作。如数据预备处理、读写数据库等操作,可设 计成优先级不等的一组接口函数,运行时可根据 优先级的高低调度。这样的设计,可以在多处理 器、分布式的环境中,整体上提高软件的运行效 率,从而提高实时性。值得注意的是:在单处理器 环境下,这种设计并不能提高实时性,反而会因额 外的线程调度操作而使实时性下降。 4)对高层仿真软件体系提供支持。任何一 个成熟的飞行仿真软件,运动学与动力学计算引 擎的设计虽然关键,但只是整个软件系统设计的 第一步。为提供丰富的高层控制与通信功能,往 往要利用一些成熟的高层仿真软件体系结构,例 如high layer architecture(HLA)n ,这就要求运 动学与动力学计算引擎必须能作为一个组件嵌人 到支持高层仿真软件体系结构的大型软件中去。 可见,从长远来看,对高层仿真软件体系结构提供 支持势在必行。 目前,正在设计和开发采用上述前2点设计 意见的飞艇运动学与动力学仿真计算引擎,它完 全放弃了Matlab的计算功能,而是针对飞艇动力 学本身的特性,采用自行设计的内嵌的非线性微 分方程的快速数值解法,很好地解决了实时性问 题,获得了真正意义上的实时性,即:对长度为丁 的时间区间内的解的计算时间为N丁,且 N《1(目前还在更新中的计算引擎的N大约为 1/2,这是一个比较好的结果,但是离N《1的要 求尚有一定距离)。相信经过进一步完善,这一飞 维普资讯 http://www.cqvip.com
108 装备指挥技术学院学报 一2007焦 艇运动学与动力学仿真计算引擎能够完全适应今 后飞艇仿真软件的开发。图3为采用微分方程求 解的Gear方法设计的飞艇运动学与动力学计算 精度所需的阶数,比较快速地计算飞艇的姿态 (在图3中为单位四元数q。、q 、q 、q。)、位置(在图 3中为a 、a 、a。)、角速度(在图3中为Om 、0 、 引擎,它可在选定精度的情况下,自动调整满足这 Om。)以及速度(在图3中为 、 、V。)。 图3使用微分方程数值求解的Gear算法设计的飞艇运动学与动力学计算引擎 [3]GALDI G P.On the steady self-propelled motion of a body in 4 结 论 a vicious incompressible fluid[J].Archive of Rational Me— chanics Analysis,1999,148:53—88. 本文根据飞艇仿真器的设计目标,概括了其 [41 GUNZBURGER M D,LEE H C,SEREGIN G A.Global ex— 应当具备的功能。为了满足这些设计目标,对飞 istence of weak solutions for vicious incompressible flows a— 艇仿真器的核心组件——运动学与动力学计算引 round a moving rigid body in three dimensions[J].Journal of 擎,在设计中存在的计算精度与计算速度这一对 Mathematical Fluid Mechanics,2000(2):219—266. 矛盾进行了分析,提出并分析了可以采取的3种 [53 GOMES S B V,RAMOS J J G.Airship dynamic modeling for 方案:利用Matlab软件的内嵌微分方程求解器、 autonomous operation[c]//Proceeding of the 1998 IEEE Conference on Robotics and Automation,Leuven.Belgium: 利用Matlab的Simulink实现运动学与动力学计 IEEE Press,1998:3462—3467. 算、自行设计微分方程求解器进行运动学与动力 [63 SILVERTRE A L.On the self-propelled motion of a rigid 学计算。前2种方案实现代价较小,能够很快地 body in a vicious liquid and on the attainability of steady 进行概念设计和验证控制算法的有效性,但是难 symmetric self-propelled motions ̄J].Journal of Mathemati— 以满足硬实时性和进一步扩展软件功能的要求; cal Fluid Mechanics,2002(7):285—325. 后1种方案实现代价较大,但是能极大地提高计 [73 KHOURY G A,GILLETT J D.Airship technology[M]. Cambridge:Cambridge University Press,1999:100—120. 算速度,满足较高的实时性要求,且可方便地作为 [83 CAI Zili,QU Weidong,XI Yugeng.Dynamical modeling for 大型软件的一个组件。 airship equipped with ballonet and ballast[J].Applied Math— ematics and Mechanics,2005,26(8):1072—1082. [93李庆扬.数值分析[M].武汉:华中理工大学出版社,I986: 参考文献 (References) 8O一1OO. [10]普雷斯w H.数值方法大全——科学计算的艺术[M].王 E1]AZINHERIA J R.Influence of wind speed on airship dynam— 璞,译.兰州:兰州大学出版社,1991:150-160. ics[J].Journal of Guidance,Control and Dynamics,2000,25 [11]周 彦,戴剑伟.HLA仿真程序设计[M].北京:电子工业出 (I2):2253-2270. 版社,2000:210—250. [zl THOMASSON P.Equations of motion of vehicle in moving lfuid[-J].Journal of Aircraft,2000,37(4):630—639. (责任编校:孙陆青)
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dcrkj.com 版权所有 赣ICP备2024042791号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务