文章快速检索  
  高级检索
基于XML的飞行仿真气动力模型存储格式
宋宏川1, 詹浩1, 魏中成2, 任浩雷3, 夏露1     
1. 西北工业大学 航空学院, 西安 710072;
2. 中国航空工业集团公司成都飞机设计研究所, 成都 610091;
3. 西安地平线电子科技有限公司, 西安 710072
摘要: 飞行仿真获取气动力/力矩的传统方法主要是将气动力模型硬编码在仿真程序进行求解。由于气动力模型和求解程序耦合,一旦修正或更换气动力模型,需要花费大量代价来重新构建仿真过程,无法满足现代飞行器仿真的需求。根据气动力模型树形结构的特点,提出了气动力模型树的概念并基于XML语言的特点设计了一种模型存储格式(MBX)来存储气动力模型树。MBX存储格式不仅提高了飞行仿真系统更换和修正气动力模型的效率,而且提高了气动力/力矩解算的通用性,使得气动力/力矩的求解能够被标准化。MBX存储格式作为气动力模型交换标准不仅能把不同部门交换气动力模型的时间从几周/人缩短至几天/人,也能加快气动力模型逼近飞机真实气动特性的进程。
关键词: 存储格式    气动力模型    树形结构    气动力/力矩解算    飞行仿真    数据交换标准    XML    
XML based storage format of aerodynamic models in flight simulation
SONG Hongchuan1, ZHAN Hao1, WEI Zhongcheng2, REN Haolei3, XIA Lu1     
1. School of Aeronautics, Northwestern Polytechnial University, Xi'an 710072, China;
2. AVIC Chengdu Aircraft Design and Research Institute, Chengdu 610091, China;
3. Skyline Technologies, Xi'an 710072, China
Abstract: Aerodynamic force and moment in flight simulation are traditionally obtained through aerodynamic models hard-coded in calculation programs. Due to the coupling of aerodynamic models and calculation programs, considerable time and money are expended on the simulation reconstruction process in case of aerodynamic model changes. Therefore, the traditional method cannot satisfy modern flight simulation demands. Given the tree structure of aerodynamic models, the concept of aerodynamic model trees is proposed and a model storage format based on the characteristics of XML (MBX) is designed to store the aerodynamic model trees. MBX separates aerodynamic models from concrete calculation programs, leading to more efficient replacement and modification of aerodynamic models. Furthermore, it improves the universality of aerodynamic force and moment calculation, standardizing their solutions. As an exchange standard for aerodynamic models, MBX can reduce the transmission time of aerodynamic models between different institutions from staff-months to staff-days. In addition, it can expedite the process of modifying aerodynamic models to approach the actual aerodynamic characteristics of aircraft.
Keywords: storage format    aerodynamic model    tree structure    aerodynamic force and moment calculation    flight simulation    data exchange standard    XML    

飞行仿真是以飞行器的运动情况为研究对象,面向复杂系统的仿真。它首先按照飞行器运动学、动力学、空气动力学以及飞行控制原理等有关理论建立起相关的数学模型,然后以这些模型作为依托进行模拟试验与分析研究[1]

飞行仿真通过空气动力学的数学模型(简称气动力模型)计算飞机的气动力和力矩,飞机气动力/力矩决定了飞机的飞行性能、操纵性和稳定性,直接影响到飞行仿真器的质量认定。因而,气动力模型可能是飞行仿真系统中最重要的数学模型[2]

一般来说,气动力和力矩是状态变量Vαβpqr和控制变量δ的泛函,可以表示为

$ \begin{array}{l} {F_{\rm{A}}} = {F_{\rm{A}}}(V(\tau ), \alpha (\tau ), \beta (\tau ), p(\tau ), q(\tau ), \\ \;\;\;\;\;r(\tau ), \delta (\tau ))\quad - \infty < \tau \le t \end{array} $ (1)
 

式中:V表示飞行速度;α表示飞机迎角;β表示飞机侧滑角;pqr分别表示绕机体坐标轴系xyz轴的旋转角速度;δ表示飞机控制输入。常规气动布局的飞机δ包括升降舵δe、副翼δa和方向舵δr[3]。气动力不仅依赖于瞬时飞行状态的值还和其运动历程相关[4]

实际应用使用的绝大多数都是基于准定常流动假设下的气动力数学模型。准定常流动假设下的气动力模型,忽略飞行状态时间历程对气动力/力矩的影响,气动力/力矩被表示成瞬时飞行状态变量的非线性函数,气动力数学模型一般采用满足相似律的无量纲气动力/力矩系数表示:

$ {{C_i} = {C_i}\left( {\frac{V}{{{V_0}}}, \alpha , \beta , \frac{{pb}}{{2V}}, \frac{{q{c_{\rm{A}}}}}{{2V}}, \frac{{rb}}{{2V}}, \delta } \right)} $ (2)
 
$ {\bar V = \frac{V}{{{V_0}}}, \bar p = \frac{{pb}}{{2V}}, \bar q = \frac{{q{c_{\rm{A}}}}}{{2V}}, \bar r = \frac{{rb}}{{2V}}} $ (3)
 

式中:V0表示参考点的速度;b表示飞机展长;cA表示飞机平均气动弦长;V表示无量纲速度;pqr表示机体坐标轴系无量纲角速度;i=L, D, Y, l, m, n,使得Ci分别表示升力系数、阻力系数、侧力系数、滚转力矩系数、俯仰力矩系数和偏航力矩系数[3]

为了保证仿真实时性,飞行仿真器使用的程序语言基本是编译型程序语言(Fortran、C、C++和Ada等[5]),因此一旦修改程序就需要重新编译、链接、调试和测试程序。

然而不同气动布局的飞机,气动力模型一般不相同,使用飞行仿真器仿真不同气动布局的飞机,需要更换气动力模型。

此外,现代飞行器的方案论证、技术指标确定、设计分析、生产制造、试验测试、维护训练和故障处理等各个阶段都需要飞行仿真对飞行器进行全面的系统分析和评估[1]。在飞行器研制、生产和使用的各个阶段,飞行器气动力数学模型的来源包括气动估算、数值计算、风洞试验、系统辨识等[6]。在整个飞行器的生命周期内,除了气动力模型的来源不同外,由于飞机的研制、生产和使用是一个反复迭代的过程,为了让飞行仿真更加逼近飞机真实的性能和品质,需要基于不同来源的气动特性数据不断修正飞机的气动力数学模型。因此即使对同一型号的飞机进行仿真,飞行仿真器也需要频繁地修改和完善气动力数学模型。

飞行仿真系统的传统气动力/力矩求解方法把气动力数学模型(式(2))硬编码在气动力解算程序中进行求解,随着现代飞行仿真气动力模型的更换和修改变得越来越频繁,为了适应不同的气动力模型必须频繁地修改解算程序。因此传统方法在更换和修改气动模型时,过程繁琐、花费时间长、重复工作量大而且通用性低。综上所述,飞行仿真中传统的气动力/力矩解算方法逐渐无法满足现代飞行仿真频繁更换和修改气动力模型的需求。

本文提出气动力模型树的概念,用树形结构和节点的存储信息完整地描述气动力模型,并基于可扩展标记语言(eXtensible Markup Language,XML)设计了一种模型存储格式(Model Based on XML,MBX)来存储气动力模型树。探讨了MBX存储格式作为气动力模型数据交换标准的可能性以及MBX作为气动力模型交换标准对飞机研制、生产和使用的影响。

1 飞行仿真中的气动力模型

建立气动力数学模型的方法主要有气动估算、计算流体力学(Computation Fluid Dynamic,CFD)、风洞试验和飞机系统辨识等[5]。飞行仿真根据上述方法提供的气动力数学模型计算气动力和力矩,仿真飞机的性能、操纵性和稳定性。飞行仿真中常用的典型气动力数学模型如下所述。

1.1 气动导数表示的气动力模型

1911年Bryan提出的线性气动力模型,也称经典气动导数模型,它是在准定常假设下,将飞机的无量纲气动力/力矩系数表示成瞬时飞行状态变量的线性函数。经典气动导数模型一直是飞机操纵性、稳定性分析和制定飞行品质的基础[7],也是在飞行仿真中应用最广泛的气动力模型之一。

俯仰力矩系数的经典气动导数模型可以表示为

$ {{C}_{m}}={{C}_{m0}}+{{C}_{m\alpha }}\alpha +{{C}_{m\bar{q}}}\bar{q}+{{C}_{m\bar{\dot{\alpha }}}}\bar{\dot{\alpha }}+{{C}_{m{{\delta }_{\text{e}}}}}{{\delta }_{\text{e}}} $ (4)
 
$ \bar{\dot{\alpha }}=\frac{\dot{\alpha }{{c}_{\text{A}}}}{2V} $ (5)
 

式中:Cm0表示零升俯仰力矩系数;C表示俯仰静稳定性导数;Cmq表示俯仰阻尼导数;Ce表示俯仰操纵导数;${{C}_{m\bar{\dot{\alpha }}}}\bar{\dot{\alpha }}$表示洗流时差导数;${\bar{\dot{\alpha }}}$表示无量纲迎角变化率[3, 8]

洗流时差导数${{C}_{m\bar{\dot{\alpha }}}}$是在实际应用中发现的,由于机翼诱导的下洗流场对尾翼的影响存在时间延迟,需要对俯仰阻尼导数进行修正。作为近似,用时间滞后量${{C}_{m\bar{\dot{\alpha }}}}$来描述时间延迟效应。

1.2 Digital Datcom的气动力模型

Digital Datcom(Data Compendium)计算程序是美国空军飞行力学实验室与麦道公司合作开发的适用于在飞机方案设计和初始设计阶段估算飞机气动特性的气动估算软件[9-11]

Digital Datcom在每个输入文件设定的马赫数下,输出的气动力/力矩系数模型包括纵向静稳定性系数和纵向/横航向静稳定性导数、动稳定性导数、增升和控制输入引起的增量气动系数等[11]。Digital Datcom输出的俯仰力矩系数模型为

$ {{C}_{m}}={{C}_{{{m}_{\text{static }}}}}+{{C}_{m\bar{q}}}\bar{q}+{{C}_{m\bar{\dot{\alpha }}}}\bar{\dot{\alpha }}+\Delta {{C}_{m}}(\delta ) $ (6)
 

式中:Cmstatic表示俯仰静稳定性系数,在Digital Datcom中通常是关于迎角的一维表格;ΔCm(δ)表示纵向控制舵面偏转引起的俯仰力矩系数增量,是关于纵向控制舵面的一维表格[11]

1.3 气动系数表示的气动力模型

风洞试验和CFD提供的气动特性数据,通常是以数据表的形式表示气动力的数学模型。一种典型的俯仰力矩系数的气动系数模型为

$ {C_m} = {C_m}\left( {Ma, \alpha , {\delta _{\rm{e}}}} \right) $ (7)
 

式中:Ma表示飞行马赫数;Cm(Ma, α, δe)表示当前飞行状态和控制输入下的俯仰力矩系数,它是关于Maαδe的三维表。

1.4 飞机辨识领域中的非线性气动力模型

在飞行器辨识领域最常使用的非线性气动力模型有多项式模型和样条函数模型,以俯仰力矩系数为例,说明两种非线性模型的表达式。

俯仰力矩系数的多项式模型[3, 8]

$ \begin{array}{l} {C_m} = {C_{m0}} + {C_{ma}}\alpha + {C_{m{a^2}}}{\alpha ^2} + {C_{m{\alpha ^3}}}{\alpha ^3} + \\ \;\;\;\;\;{C_{m\bar q}}\bar q + {C_{m{\delta _{\rm{e}}}}}{\delta _{\rm{e}}} \end{array} $ (8)
 

式中:C2是俯仰力矩系数对α2的气动导数;C3是俯仰力矩系数对α3的气动导数。

样条函数俯仰力矩系数模型为

$ {C_m} = {C_{m0}}(\alpha ) + {C_{m\bar q}}\bar q + {C_{m{\delta _{\rm{e}}}}}{\delta _{\rm{e}}} $ (9)
 

式中:Cm0(α)是关于α的三次样条函数[3]

1.5 气动导数与系数混合表示的气动力模型

气动导数和气动系数混合表示的气动力模型也是飞行仿真中最为常见的气动力模型之一。一种气动系数和气动导数模型混合表示的俯仰力矩系数模型为

$ {C_m} = {C_m}\left( {Ma, \alpha , {\delta _e}} \right) + {{\bar C}_{m\bar q}}\bar q $ (10)
 

式中:Cmq表示组合动导数[12]

2 气动力/力矩的传统求解方法

飞行仿真中气动力/力矩的传统求解方法把气动力模型硬编码在求解程序中,这会造成当需要更换上述不同的气动力模型时,必须修改求解程序。以Digital Datcom估算方法建立的气动力模型(式(6)和表 1)为例,说明气动力/力矩求解的传统方法以及其弊端。

表 1 Digital Datcom的气动估算数据 Table 1 Aerodynamic estimation data from Digital Datcom
Dynamic derivatives(per degree) Ref.Area Ft**2 0.822 Reference Long Ft 3.000
ALPHA CM CMQ CMAD
-2.0 -0.010 6 -0.030 18 NDM
0.0 0.000 0
24 0.065

飞机的俯仰力矩M与无量纲俯仰力矩系数Cm的关系可表示为

$ M = QS{c_{\rm{A}}}{C_m} $ (11)
 

式中:Q表示动压;S表示飞机参考面积。

表 1中,CM、CMQ和CMAD分别对应式(6)中的CmstaticCmq${{C}_{m\bar{\dot{\alpha }}}}$,NDM表示Digital Datcom未能估算出洗流时差导数,ALPHA表示迎角,Ref.Area Ft**2表示飞机参考面积,Reference Long Ft表示飞机纵向参考长度,一般为飞机的平均气动弦长cA。给出的示例并没有估算飞机的舵效,但是在Digital Datcom中,DCM表对应式(6)中的ΔCm(δ),它是纵向控制输入δ的函数。

传统方法直接将式(3)中的q、式(5)、式(6)和式(11)硬编码在求解程序中,伪代码如下所示:

1.initialize geometrical parameters of aircraft

2.get inputs of aerodynamic force subsystem

3.Cm_static←looking up table of CM from digital datcom’s output

4.Cmq←value of CMQ

5.q_bar←q*cA/2/V

6.Cmad←value of CMAD

7.ad_bar←ad*cA/2/V

8.dCm←looking up table of DCM from digital datcom’s output

9.Cm←Cm_static+Cmq*q_bar+Cmad*ad_bar+dCm

10.M←Q*S*cA*Cm

上述步骤中,第3~10步都与具体气动力模型的数学表达式有关,数学表达式和表达式中各项求解方式被硬编码在求解程序中。如果需要更换气动力模型,上述求解步骤中的第3~10步都需要重新编写。在实际的飞机设计、生产和使用过程中,为了获得准确的飞机气动特性,气动力模型需要在不同方法得到气动特性数据的基础上进行不断的修正和优化。飞行仿真通过修改程序更换气动力模型的传统方法,要求飞行动力学研究人员在更换气动力模型时,进行大量的开发工作。因此飞行仿真求解气动力/力矩的传统方法已经不能满足现代飞行仿真频繁修改气动力模型以及气动力求解通用性的需求。

3 气动力模型树

为了避免硬编码求解气动力模型的弊端,提高气动力/力矩求解的通用性,飞行动力学研究人员期望飞机的气动力模型能够与求解程序分离开,气动力模型能够像气动数据一样在文件中存储。仿真程序在不需要修改代码的情况下,通过读取、解析不同的气动力模型存储文件来求解不同的气动力模型。

3.1 气动力模型的树形结构

飞行仿真中求解气动力的传统方法,是对气动力数学模型数学表达式的每一项进行求解,再按照表达式各项之间的运算关系,最终求解气动力。气动力模型的数学表达式和各项对应的各个变量,在传统方法的求解程序中是孤立的,只是按照程序的顺序结构进行求解。然而,气动力数学模型中的数学表达式之间以及表达式各项之间是存在联系的。

例如,在气动力传统方法的求解步骤中,只有在求解得到式(3)无量纲俯仰角速度q的值后,才能求解式(6)俯仰气动力矩系数Cm的值,最后才能求解式(11)俯仰力矩M的值,俯仰力矩M是被层次化求解的。气动力传统方法的求解步骤表明气动力数学模型具有层次结构式的构造性质。本文使用树形结构(Tree Structure)表示层次化结构的气动力数学模型,树的节点表示气动力模型数学表达式的项,树的分支表示气动力数学表达式项之间的关系。树形结构建立了气动力模型表达式各项之间的关系,它们之间不再孤立。

式(11)的树形结构如图 1所示,表示动压Q、飞机参考面积S、平均气动弦长cA和俯仰力矩系数Cm是俯仰力矩M的数学表达式中的项。

图 1 树形结构表示的俯仰力矩 Fig. 1 Pitch moment represented by tree structure
3.2 节点存储的求解信息

虽然图 1的树形结构能够表示节点之间的层次关系,但是缺少节点之间运算关系的信息。只有树形结构无法完整表示出气动力模型,显然外部程序无法通过图 1的树形结构知晓各项之间的运算关系和各项的求解信息来求解气动力。为了完整地表示整个气动力模型,除了用树形结构描述气动力模型节点的层次结构外,节点代表的气动力模型中气动系数、气动导数、飞行状态、控制输入和飞机参考量等的求解信息也是必不可少的。存储有节点求解信息并用树形结构表示的气动力模型被称为气动力模型树。俯仰力矩M的完整气动力模型树可以表示为图 2的形式,其中,Const表示常量(飞机参考量),Lookup表示查表,Eq表示公式,后面的数字与文中公式序号对应,Input表示输入(飞行状态和控制输入来自于其他子系统)。相比于图 1图 2不仅用树形结构表示俯仰力矩数学模型各个数学表达式(式(5)、式(6)、式(11)和式(3)中q的表达式)的层次结构,在树的节点中还存储了求解必需的信息。一般来说,飞行器的气动力和力矩分别为升力L、阻力D、侧力Y、滚转力矩L、俯仰力矩M和偏航力矩N,所以气动力模型可以表示为6棵类似图 2的气动力模型树。

图 2 俯仰力矩的气动力模型树 Fig. 2 Aerodynamic model tree of pitch moment
3.3 基于气动力模型树的求解器MbxSolver

传统求解方法中的气动力模型是根据求解程序以线性顺序结构描述气动力模型的气动系数、气动导数、飞机参考量、飞行状态、控制输入和气动数据表的关系,依赖于求解程序的顺序。气动力模型树用树形结构描述它们之间的层次关系,并用节点存储的内容描述了它们之间的运算关系和求解信息,这使得气动力模型不再依赖于求解程序,能够以气动力模型树的形式单独进行存储,实现了气动力模型与求解程序的分离。

飞行仿真中传统气动力/力矩求解程序无法求解上述的气动力模型树,所以本文专门编写MbxSolver求解器求解以MBX存储格式存储的气动力模型树。与传统方法相比,气动力模型不再被硬编码在程序中,而是通过加载以MBX存储格式存储的气动力模型树,解析气动力模型树,并最终求解气动力/力矩。

因此使用基于MBX存储格式的求解气动力方法后,更换或修改气动力模型,只需要更换或修改程序外部存储气动力模型树的文件,不用修改程序,避免了重新编译、链接、调试和测试程序的繁琐过程。

4 MBX存储格式设计 4.1 气动力模型树与XML

XML从标准通用表示语言SGML(Standard Generalized Markup Language)中派生而来,是W3C(万维网委员会)设计的可以记录、传输和理解多种数据的标准格式[13-15]。XML文档自身就是树形结构,与气动力模型树的树形结构完美契合。XML实质上是一种定义语言,它允许开发者通过自定义元素(Elements)、标签(Tags)和属性(Attributes)进行自我描述并创建符合XML语法规则的语言标准[16]。气动力模型树节点存储的求解信息可以通过自定义元素、标签和属性来设计存储格式,最后形成语言标准。很多学科和行业都基于XML设计存储格式制定了数据的交换和共享标准[17]

4.2 气动力模型树节点的存储格式

气动力模型数学表达式中的项在气动力模型树中用节点表示,气动力模型树的各个节点对应MbxSolver程序中的变量,用来计算气动力/力矩。数学表达式的项、气动力模型树的节点和MbxSolver中的变量存在一一映射的关系。节点是树形结构的基本单位,节点的存储格式既要能描述自身存储的求解必要信息,还要能描述和其他节点之间的树形结构。

通过对典型气动力模型的求解方式的总结归纳,气动力模型树的节点根据求解方式可以分为4种,分别是常量(Const)、查表(Lookup)、公式(Eq)和输入(Input)。不同节点类型所需要的求解信息也不一样。MBX存储格式用Cell元素来存储气动力模型树的节点,Cell元素具有name、type和content等属性,分别表示Cell元素的名称、类型和求解信息。name属性表示节点名称,作为Cell元素的唯一标识;type属性表示节点的类型;content属性表示求解此节点所需的求解信息。

MbxSolver读取气动模型树常量节点对应的数值就可以完成对常量节点的求解,飞机的参考量如平均气动弦长cA和飞机参考面积S等都属于常量节点。常量类型节点存储的求解信息就是它表示物理量对应的数值。常量节点——飞机平均气动弦长cA在XML中存储格式如图 3所示。

图 3 常量节点的MBX存储格式 Fig. 3 MBX storage format of constant node

飞机气动模型树的查表节点表明此节点需要查找对应的气动数据表在当前飞行状态和控制输入下插值求解。它求解需要的信息是查表节点对应的整个气动数据表。如果把整个气动数据表都作为存储的求解信息,会造成气动力模型树在XML文件中篇幅臃肿,不利于使用者阅读、编辑气动力模型和表格的复用。MBX存储格式统一存储气动数据表,查表节点的求解信息简化为对应数据表的名称。MbxSolver在求解查表节点时,它通过查表节点存储的气动数据表名称,查询到相应的气动数据表,然后插值求解。查表节点和气动数据表的存储设计不仅可以显著减少气动力模型树在XML文件中存储的大小,还可以最大化的复用气动数据表。例如不同查表节点存储相同的数据表名称,表示不同节点都使用同一数据表进行插值,但是气动数据表在XML文件中只需要被存储一次。式(6)中俯仰静稳定系数Cmstatic查表节点在XML中存储的格式如图 4(气动数据表来自表 1)所示。

图 4 查表节点的MBX存储格式 Fig. 4 MBX storage format of lookup node

气动数据表的名称作为气动数据表的唯一标识,所以在同一个气动力模型存储文件中不能出现同名的气动数据表。

气动模型树的输入节点一般为飞机的飞行状态和控制输入,在仿真时此节点的值来源于气动力/力矩子系统外部的输入,输入节点存储的是仿真开始时的飞行状态或控制输入的初始值。迎角变化率${\dot \alpha }$作为输入节点在XML的存储格式如图 5所示。

图 5 输入节点的MBX存储格式 Fig. 5 MBX storage format of input node

气动模型树的公式节点表明节点是通过数学表达式计算得到的,公式节点存储的求解信息为数学表达式。图 2俯仰力矩系数Cm节点是公式节点,content属性存储的是式(6)等式右边的部分。

通过定义Cell元素以及它的name、type和content属性,各个类型节点的求解信息可以按照XML的语法进行存储。如果遇到新的节点类型,在以上4种类型节点的基础上,添加新的type和相应的content属性就能够方便进行扩充。

气动模型树除了具有求解信息的节点外,还使用树形结构描述了节点之间的关系。所以Cell元素除了具有以上的属性外,为了描述气动模型树的树形结构,Cell元素可以包含所有类型的Cell子元素。Cell元素的结构见图 6

图 6 Cell元素结构 Fig. 6 Cell element structure

图 3~图 5都是单个节点的存储,是气动力模型树的叶节点。公式节点一般都会涉及若干个节点的运算关系,以图 2俯仰力矩树的力矩系数Cm子树为例,说明公式节点以及气动力模型树的MBX存储格式(数据来自表 1)。

图 7表示在MBX存储格式中俯仰力矩系数Cm子树的树形结构是通过Cell元素的树形结构进行存储的。根据图 2表示的气动力模型树节点之间的关系,Cm数学表达式(式(6))的每一项都是MBX存储格式中Cm的子节点。图 7的Cell元素与图 2俯仰力矩系数Cm子树的节点具有一一对应的关系,所以Cm数学表达式的各项对应的Cell元素都是Cm元素的子元素。图 2的气动力模型树完全可以使用常量、查表、公式、输入类型的节点以及它们之间的树形结构以MBX存储格式存储在XML文件中(图 7)。

图 7 俯仰力矩系数子树的MBX存储格式 Fig. 7 MBX storage format of pitch moment coefficient subtree
4.3 MbxSolver对气动力模型树的求解

MbxSolver通过两步初始化建立气动力模型树,再根据初始化建立的气动力模型树和不断更新的飞行状态和控制输入,求解当前的气动力和气动力矩。

MbxSolver首先通过XML解析器,先序遍历[18]以MBX存储格式存储的Cell元素树,在程序中建立Cell元素的树形结构,创建相应的Cell对象。加载完MBX存储格式的Cell元素树后,完成第一步初始化。此时程序中只有气动力模型树的树形结构,并未解析节点的类型和存储的求解信息。

然后,MbxSolver先序遍历构建好的Cell元素树,解析气动模型树各个节点的类型和内容,根据节点各自的类型与求解信息,构建节点与气动数据表(查表类型节点)、输入(输入类型节点)和其他节点(公式类型节点)之间的关系,完成第2步初始化。在程序中形成多棵完整的气动力模型树。

在仿真计算中,MbxSolver根据当前的飞行状态和控制输入,反复后序遍历[18]构建好的气动力模型树,求解当前的气动力/力矩。

4.4 初步应用

飞行仿真求解气动力/力矩的传统方法首先要对气动力模型进行编码,在飞行仿真运行之前还需要编译、链接、调试和测试,具体流程如图 8所示。

图 8 飞行仿真中传统气动力/力矩求解流程 Fig. 8 Solution procedure of traditional method for aerodynamic force and moment in flight simulation

基于MBX存储格式的气动力求解,首先要把气动力模型以MBX存储格式存储为6棵Cell元素的树,分别表示升力L、阻力D、侧力Y、滚转力矩L、俯仰力矩M和偏航力矩N。MBX存储格式以XML语言为基础,编辑气动力模型树本质上是编辑XML的文本文件,不涉及代码的编写。

鉴于XML语言的特点以及其他学科(化学的ChemML语言中图形化的编辑器[19]),研发了基于MBX存储格式编辑气动力模型的图形化编辑器MbxEditor(如图 9所示),降低了编辑气动力模型的难度,提高了工程人员编辑气动力模型的效率。

图 9 MBX文件的编辑器——MbxEditor Fig. 9 Editor for MBX files——MbxEditor

仿真程序只需要调用气动力求解器MbxSolver加载编辑好的MBX文件,即可求解飞机的气动力和气动力矩并进行仿真,不需要针对不同气动模型编写相应的求解程序。具体流程如图 10所示。

图 10 飞行仿真中基于MBX的气动力/力矩求解流程 Fig. 10 Solution procedure of MBX method for aerodynamic force and moment in flight simulation

通过传统方法与基于MBX存储格式方法的对比(图 8图 10),基于MBX存储格式建立气动力模型的流程不涉及到程序的编码,不要求飞行动力学研究人员精通相应的程序语言,还提供了编辑气动力模型的图形化界面,降低了建立、修改和更换气动力模型的难度;省略了编译、链接、调试和测试的流程,节省了建立、修改和更换气动力模型的时间。因此,MBX存储格式大幅提高了现代飞行仿真建立、修改和更换气动力模型的效率。

5 气动力模型的数据交换标准

MBX存储格式除了成功分离气动力模型与求解程序外,它还能够作为气动力模型交换的标准用于气动力模型交换。不同气动力模型建立方法得到的气动力模型表达形式不同,气动数据存储格式不同,气动数据存储的文件格式一般也不同。没有统一的气动力模型的数据交换标准,使得气动模型在不同机构之间的交换效率非常低下,会造成时间和金钱的浪费。文献[20]曾经做过调查研究,如果在20个地点的59台飞行仿真器之间使用统一的标准移植高精度的飞行动力学仿真模型,可以节省约690万美元,移植模型花费的时间也会从几个月/人缩短至一周/人的时间。标准被应用的范围越广泛,经济效益会越明显。MBX存储格式是XML定义的语言标准,XML本身是一种用于数据交换的常用语言,许多学科基于XML制定了各自的数据交换标准,例如有限元标记语言——femML、化学标记语言——ChemML、数学标记语言——MathML等[19]。MBX存储格式也能够作为气动力模型存储的标准得以推广,不同方法得到的气动力模型都以MBX存储格式进行存储,有利于气动力模型的交换。MBX存储格式实现了气动力/力矩求解程序的通用性,标准化了气动力/力矩的求解。气动力模型与求解程序解耦之后,气动力/力矩的求解程序MbxSolver可以被设计为求解气动力/力矩的标准程序。飞机性能计算、飞行品质分析和飞行仿真软件可以内置标准化的求解程序MbxSolver,计算基于MBX存储格式的气动力模型的气动力/力矩。

当MBX存储格式成为气动力模型的数据交换标准时,不同方法建立气动力模型得到的气动力特性数据首先被图形化的编辑器(MbxEditor)编辑为MBX存储格式存储的气动力模型,在已知其他力/力矩特性的基础上,内置MbxSolver的飞行性能计算软件和飞行品质分析软件可以计算飞机的飞行性能和飞行品质,内置MbxSolver的飞行仿真软件可以用来对飞机进行仿真,如图 11所示。因为上述软件都是以MBX存储格式作为气动力/力矩数据交换标准,所以更换或修改气动力/气动模型时,只需要通过MbxEditor编辑气动力模型,不涉及到程序的变化,可以实现快速优化和更换气动力/力矩模型。

图 11 MBX存储格式作为气动力模型的数据交换标准 Fig. 11 MBX storage format as data exchange standard of aerodynamic model

图 11中用于表示CFD计算结果的图来自于商用计算流体力学软件Fluent。系统辨识下图中的CIFER是频率响应综合辨识软件包,它是解决飞机辨识困难问题的有效工具。目前,CIFER已经被广泛用于固定翼飞机、旋翼机以及UAV项目中[21]

MBX存储格式现在已经在国内研究院所、飞机制造厂商的某些部门进行了应用,从实践的效果来看,MBX存储格式标准可以加快飞机气动力模型交换的过程,从几周/人缩短至几天/人。同时,它还能够缩短逼近飞机真实气动特性的反复迭代过程,从而提高飞机设计的效率。

6 结论

1) 提出气动力模型树的概念并通过MBX存储格式来实现飞行仿真中气动力求解程序和具体气动力模型的分离。更换和修改气动力模型时,只需要编辑和更换以MBX存储格式存储的气动力模型,不涉及到程序的修改,避免了重新编译、链接、调试和测试的过程,提高了优化和更换气动模型的效率。

2) 探讨了MBX存储格式作为气动力模型数据交换标准的可能性,MBX存储格式如果能成为气动力模型的数据交换标准,它可以促进不同气动力建模方法得到的不同气动力模型在风洞基地、科研院所、大学实验室、制造厂商、试飞基地和使用单位的交换与共享。

3) MBX存储格式提高了气动力求解的通用性,基于MBX存储格式开发了一系列的工具包括图形化编辑器MbxEditor、通用求解器MbxSolver等。MbxEditor用来编辑保存基于MBX存储格式的气动力模型,可以降低编辑不同气动力模型的难度,提高更换和修改气动力模型的效率。飞行性能、飞行品质和飞行仿真都可以使用标准求解程序MbxSolver对MbxEditor编辑好的气动力模型进行求解,这可以缩短飞机在设计和使用中反复迭代得到准确气动力模型的过程。

参考文献
[1] 童中翔, 王晓东. 飞行仿真技术的发展与展望[J]. 飞行力学, 2002(3): 7-10.
TONG Z X, WANG X D. Development and prospect of flight simulation technology[J]. Flight Dynamics, 2002(3): 7-10. (in Chinese)
Cited By in Cnki (109) | Click to display the text
[2] ALLERTON D. Principles of flight simulation[M]. New York: John Wiley & Sons, 2009.
[3] KLEIN V, MORELLI E A. Aircraft system identification:theory and practice[M]. Reston: AIAA, 2006.
[4] 汪清, 钱炜祺, 丁娣. 飞机大迎角非定常气动力建模研究进展[J]. 航空学报, 2016, 37(8): 2331-2347.
WANG Q, QING W Q, DING D. A review of unsteady aerodynamic modeling of aircrafts at high angles of attack[J]. Acta Aeronautica et Astronautica Sinica, 2016, 37(8): 2331-2347. (in Chinese)
Cited By in Cnki (22) | Click to display the text
[5] JACKSON E. Results of a flight simulation software methods survey[C]//Flight Simulation Technologies Conference, 1995: 3414.
[6] NAPOLITANO M R. Aircraft dynamics[M]. New York: Wiley, 2012.
[7] 汪清, 蔡金狮. 飞机大攻角气动力建模研究进展[J]. 气动实验与测量控制, 1994, 8(3): 7-16.
WANG Q, CAI J S. Advance in aerodynamic modeling of airplane at high angles of attack[J]. Aerodynamic Experiment and Measurement & Control, 1994, 8(3): 7-16. (in Chinese)
Cited By in Cnki (12) | Click to display the text
[8] 蔡金狮. 飞行器系统辨识[M]. 北京: 中国宇航出版社, 1995.
CAI J S. Aircraft system identification[M]. Beijing: China Astronautic Publishing House, 1995. (in Chinese)
[9] 吴凡, 姜长生. DATCOM在飞翼无人机飞行运动建模中的应用[J]. 飞机设计, 2010, 30(1): 9-15.
WU F, JIANG C S. The use of datcom method for flying wing UAV modeling[J]. Aircraft Design, 2010, 30(1): 9-15. (in Chinese)
Cited By in Cnki (16) | Click to display the text
[10] 张帅.操稳特性快速评估及其在飞机设计中的应用[D].南京: 南京航空航天大学, 2009.
ZHANG S. Rapid evaluation for the stability and control of the aircraft and its application in aircraft design[D]. Nanjing: Nanjing University of Aeronautics and Astronautics, 2009(in Chinese).
[11] WILLIAMS J E, VUKELICH S R. The USAF stability and control digital datcom volume i, users manual: AFFDL-TR-79-3032[R]. St. Louis: McDonnel Douglas Astronautics Company, 1979.
[12] 米百刚, 詹浩, 朱军. 基于CFD数值仿真技术的飞行器动导数计算[J]. 空气动力学学报, 2014, 32(6): 120-125.
MI B G, ZHAN H, ZHU J. Calculation of dynamic derivates for aircraft based on CFD technique[J]. Acta Aerodynamica Sinica, 2014, 32(6): 120-125. (in Chinese)
Cited By in Cnki (19) | Click to display the text
[13] 严蔚敏, 吴伟民. 数据结构:C语言版[M]. 北京: 清华大学出版社, 2002.
YAN W M, WU W M. Data structure:C language[M]. Beijing: Tsinghua University Press, 2002. (in Chinese)
[14] 张闻乾, 王伟, 段丽娟, 等. XML解析技术及其在飞行数据存储及访问中的应用[J]. 测控技术, 2007, 26(12): 19-21.
ZHANG W Q, WANG W, DUAN L J, et al. XML parsing skill and the application in saving and accessing flying data[J]. Measurement & Control Technology, 2007, 26(12): 19-21. (in Chinese)
Cited By in Cnki (6) | Click to display the text
[15] 王宬, 吴成富, 陈怀民. 基于XML的飞行仿真模型管理系统研究[J]. 测控技术, 2008, 27(8): 83-85.
WANG C, WU C F, CHEN H M. Study on flight simulation model management based on XML[J]. Measurement & Control Technology, 2008, 27(8): 83-85. (in Chinese)
Cited By in Cnki (5) | Click to display the text
[16] 张煦冬. EDS技术在航天数据设计中的应用研究[D].北京: 中国科学院大学, 2019.
ZHANG X D. Applied study of EDS technology in aerospace data design[D]. Beijing: Chinese Academy of Science, 2019(in Chinese).
[17] COURAGE K G, WASHBURN S S, KIM J T. Development of an XML-based specification for traffic model data exchange[J]. Transportation Research Record, 2002, 1804(1): 144-150.
Click to display the text
[18] WEISS M A. Data structures and algorithms in C[M]. Pearson Education, 1997.
[19] VARDE A S, BEGLEY E F, FAHRENHOLZ-MANN S. MatML: XML for information exchange with materials property data[C]//Proceedings of the 4th International Workshop on Data Mining Standards, Services and Platforms, 2006: 47-54.
[20] JACKSON E B, HILDRETH B. Flight dynamic model exchange using XML[C]//AIAA Modeling and Simulation Technologies Conference and Exhibit. Reston: AIAA, 2002.
[21] REMPLE R K, TISCHLER M B. Aircraft and rotorcraft system identification:engineering methods with flight-test examples[M]. Reston: AIAA, 2006.
http://dx.doi.org/10.7527/S1000-6893.2020.23766
中国航空学会和北京航空航天大学主办。
0

文章信息

宋宏川, 詹浩, 魏中成, 任浩雷, 夏露
SONG Hongchuan, ZHAN Hao, WEI Zhongcheng, REN Haolei, XIA Lu
基于XML的飞行仿真气动力模型存储格式
XML based storage format of aerodynamic models in flight simulation
航空学报, 2020, 41(9): 123766.
Acta Aeronautica et Astronautica Sinica, 2020, 41(9): 123766.
http://dx.doi.org/10.7527/S1000-6893.2020.23766

文章历史

收稿日期: 2019-12-26
退修日期: 2020-02-01
录用日期: 2020-02-16
网络出版时间: 2020-03-03 16:52

相关文章

工作空间