基于Modelica语言的弹道导弹模型库开发*

2011-12-07 08:04程文科唐国金
弹箭与制导学报 2011年3期
关键词:模型库弹道导弹动力学

章 胜,王 华,程文科,唐国金

(国防科技大学航天与材料工程学院,长沙 410073)

0 引言

模型库对实现知识的重用与积累具有重要意义。基于模型库可以迅速的搭建系统实现仿真,减少类似系统的低水平重复开发。目前仿真界已开发了诸多领域的模型库[1-4]。

文中介绍了Modelica语言作为平台开发工具的优势,采用该语言设计开发了弹道导弹模型库MissileLib。详细介绍了模型库的体系结构,模型库模型种类丰富,支持不同粒度的模型描述,与Simulink工具箱中的Aerospace Blockset模型库相比各具特点,利用Modelica语言平台建模与仿真相分离的优良特性,利用该库快速搭建了某弹道导弹仿真模型进行仿真,结果得到验证。

1 Modelica语言

Modelica是一种面向对象的、非因果建模的多领域统一建模语言。面向对象的建模方法使用户能够以应用领域熟悉、直观的对象概念来建立仿真模型,开发模型层次分明,结构清晰;非因果建模指采用数学方程而不是赋值语句定义类的行为,方程的求解方向由仿真求解器根据方程系统的数据流环境自动确定。建模时用户可以不必将方程转化为因果赋值形式,既减轻了建模工作量,又增强了模型的鲁棒性与重用性。

Modelica语言支持多领域建模与连续-离散混合建模,适于描述具有复杂结构的系统,能实现不同领域模块间的无缝集成。基于其建立的模型库能够在建模语言层次上实现通用目的,具有其它软件工具所无法比拟的优势;Modelica语言代码开源,支持文本建模,同时类似于Simulink,开发的模型可以在图形化建模环境下进行拖拽式建模。此外,Modelica语言支持C和FORTRAN语言编写的外部函数,具有较强的建模灵活性与兼容性;Modelica语言平台实现了建模与仿真的分离,减少了数学模型变换整理为仿真模型的工作。开发人员能更加集中于模型的抽象与开发,语言平台自动产生高效的程序代码并提供丰富的求解算法实现仿真。仿真结束后,利用语言平台提供的表格、曲线、三维显示等可视化方式可以直观的展示仿真结果,极大的方便了结果分析。

鉴于Modelica语言的优良特性,选择其作为模型库的开发工具。

2 弹道导弹模型库设计

开发方便实用的模型库,首先需要充分提取对象的通用模型,开发常用的功能模块,尽量实现模型库的完备性;此外应赋予模型规范的接口,保证模型有良好的使用性;最后要将各模型有序的整合起来,形成合理的体系结构,便于模型库的管理、使用与扩充。研究对象特点是进行模型库架构设计的前提。

弹道导弹系统主要由动力学与GNC两大子系统组成,模型库设计的关键就是对这两个子系统进行科学划分。对于动力学子系统,不管具体导弹的应用技术,飞行任务如何区别,决定其运动的物理规律都是不变的,经过多年的整理已经形成了较完整的数学模型,依据数学模型容易建立通用性较好的运动方程模型、质量计算模型、发动机模型与气动计算模型;对于GNC子系统,不同的导弹差别较大,没有统一的数学模型,开发模型的可行思路是首先开发通用的要素及常见的导航、制导、控制模型,而后在模型库使用过程中针对具体问题开发模型,不断实现模型库的扩充。

导弹飞行与所处环境息息相关,模型库中需要包含必要的环境模型,包括地球引力模型、大气模型、风场模型与噪声模型;导弹与目标共同构成一个完整的弹道导弹仿真系统,因此模型库还应提供常见的目标模型。

图1 弹道导弹模型库架构

弹道导弹系统的开发牵涉到许多底层功能模块或函数的开发,以实现诸如坐标转换、姿态参数转换、插值计算等功能,这些函数或模块与具体应用对象无关,是对弹道导弹领域基础计算的抽象,具有较强的通用性,建立专库将其列入。

对开发的导弹系统模型将其入库,这既可以实现系统知识的积累,同时对用户而言,可以作为学习模型库使用及模型构建的范例。

基于以上分析,将弹道导弹模型库划分为六大子库:动力学模型子库、GNC模型子库、环境库、目标库、支撑工具库和实例库。其中,动力学模型子库存放动力学建模的各种功能模块及附属模块,GNC模型子库包含导航、制导与控制模型,目标库存放目标模型,环境库存环境模型,支撑工具库存放建模运算工具,实例库存放导弹系统模型。

3 弹道导弹模型库实现

3.1 模型子库

3.1.1 动力学模型子库(Dyn_system)

动力学模型子库包含搭建动力学系统的一级组件模型及相应的底层模块,依托该模型库的资源,用户可以搭建导弹动力学子系统。动力学模型子库结构如图2所示,子库一级组件模型包括运动方程模型、质量计算模型、发动机模型和气动计算模型。

图2 动力学模型子库结构

运动方程模型(EquationOfMotion)描述导弹的运动,根据导弹所受的力、力矩及导弹的质量特性计算导弹的姿态、位置和速度,目前开发了在惯性坐标系下描述质心运动的6自由度模型与3自由度模型;质量计算模型(MassProperty)计算导弹质量、转动惯量、质心,目前开发了基于数据文件的插值计算模型;发动机模型(Propulsion)包括姿控发动机模型、推力发动机模型与力矩计算模块,其中推力发动机模型包括插值计算与公式计算两种方式,姿控发动机有直接开关与考虑推力延迟两种不同粒度的描述,为了计算相应摆角下的控制力矩,模型库中提供了发动机力矩计算模块;气动计算模型(Aerodynamics)计算导弹所受的气动力、气动力矩与阻尼力矩,开发的模型包括气动力模型、气动力矩模型、阻尼力矩模型等。

3.1.2 GNC模型子库(GNC_system)

由于GNC系统难以统一建模,建立模型库的可行途径是开发相应的功能器件及算法模型,按功能将GNC模型子库分解为导航、制导、控制三大部分,每一部分包含相应的子模型。此外,该子库提供常见的导航模型(平台导航模型、捷联导航模型)和制导算法(显式制导方法、摄动制导方法)。

图3 GNC模型子库结构

导航模型(Navigation)包括测量器件与导航算法。目前开发的测量器件包括惯性平台模型、速率陀螺模型、加速度计模型、雷达模型。算法包括平台导航算法与捷联导航算法。为了便于用户使用,导航模型中提供完整的平台导航模型与捷联导航模型;制导模型(Guidance)中包括显式制导方法与摄动制导方法。应用显式制导模型前需预先设置目标点坐标参数,应用摄动制导模型需读入预先计算好的标准弹道数据;控制模型(AttitudeControl)包括控制算法与器件模型。目前开发的控制算法有Bang-Bang控制与PID控制,器件模型包括校正网络模型、摆角合成模型和伺服机构模型。

3.1.3 目标模型子库(T arget)

目标模型子库提供典型的目标运动模型,目前开发了固定目标(Fixed)和匀速运动目标(UniformMotion)两种模型。

3.1.4 环境模型子库(Environment)

环境模型子库存放导弹飞行的环境模型,包括地球引力模型(Gravity)、风场模型(Wind)、大气模型(Atmosphere)与噪声模型(NoiseGenerator)。地球引力模型提供三种引力计算方式:垂直常引力,中心质点引力,考虑地球扁率引力。用户可以根据需要进行选择。风场模型采用平均风模型。大气模型采用标准大气的拟合公式模型。目前暂且只开发了白噪声模型。

3.1.5 支撑工具库(Tools)

支撑工具库存放弹道导弹模型开发的基本功能函数或模块,这些函数或模块与具体应用对象无关,是对弹道导弹领域基础计算的抽象,工具库实现了绝大部分的计算或换算功能,使得模型库有更加坚实的应用基础。开发的工具包括功能函数与功能模块。函数用于文本建模,模块用于图形化建模。

图4 支撑工具库结构

姿态换算工具(Attitude)进行不同姿态描述间的等价换算,目前开发了欧拉角、四元素、方向余弦阵之间的换算工具;坐标换算工具(CoordType)实现地球直角坐标系与大地坐标系间的换算功能;矢量旋转工具(CoordRotate)进行矢量的旋转,得到不同坐标系下的矢量表示;余弦阵计算工具(CoordSystem)求解弹道计算中常用的坐标系间的方向余弦阵,目前开发了J2000惯性系、发射系、发射惯性系、体系间的余弦阵计算模块与函数;飞行参数计算模块(FlightParam)方便导弹的气动计算,包括马赫数计算模块、音速计算模块、攻角计算模块、地速计算模块;力线平移计算模块(Force)实现力的平移计算,求解指定点处的力与力矩;时间换算工具(Timesystem)进行不同时间系统间的换算,目前开发了儒略日与平太阳时的换算函数;插值工具(InterpolateTable)提供数据读取与插值计算功能,目前开发了一维、二维与三维插值模块;数学工具(Math)包括简单的四则运算模块、矢量求模模块、矩阵转置模块等;逻辑模块(Logical)实现逻辑切换功能。目前结合需求开发了双输入切换模块与三输入切换模块;常数(Constants)中定义了弹道计算相关的地球引力常数、地球扁率、地球平均半径、J2项、地球自转角速度等常数。

3.1.6 实例库(Example)

实例库存放已搭建的弹道导弹仿真模型,形成系统知识积累,方便后续使用,同时亦可作为模型库使用与模型搭建的指导范本。目前已存放了某导弹的仿真模型。

3.2 模型库MissileLib

图5给出了基于Modelica语言开发的弹道导弹模型库体系图,为了便于展示模型库整体架构,目录仅展开到二级。

模型库采用树形管理机制,层次清晰,模型属类明确,便于使用、管理与扩充。

在模型库体系图下方,Modelica语言平台设有专门的模块展示区,方便用户了解该目录下的模块内容。图6中展示了矢量旋转工具中的功能模块与函数。模型库中开发的模型包括函数与模块。函数用于文本建模,模块用于图形化建模。

模型库支持不同粒度的模型描述,以满足不同的任务需求,具有相同功能的模型归到同一目录下,用户可根据具体需要进行选择。图7中展示了运动方程模型中的6自由度与3自由度模型。

图7 不同粒度的运动模型

利用Modelica语言的文本描述功能,模型开发人员可以将模型的数学描述及使用说明进行编辑,形成帮助文档,实现附带知识的积累,利于模型库的推广使用。

文中开发的弹道导弹模型库MissileLib与Simulink工具箱中提供的Aerospace Blockset模型库均旨在实现导弹模型的快速搭建,两者间有许多相近的地方,但也有所区别。在结构划分上,MissileLib更强调系统的模型类别,其中的GNC模型子库相较Aerospace Blockset模型更加丰富;在开发语言方面,MissileLib基于Modelica语言开发,模块编辑更加灵活,开发的模块重用性强,可实现不同领域模型间的无缝连接,模型代码开源,用户可以详细了解其具体实现;支撑环境方面,Modelica语言平台也提供丰富的模型库,与Simulink工具箱偏重于控制不同,其在多体运动、机电系统、离散控制等诸多领域均有专库。

4 模型库应用实例

4.1 弹道导弹模型搭建

针对具体的弹道导弹仿真任务,从MissileLib中选取模型进行搭建。另外,如果新开发的模型重用性较强,将其入库以进一步完善模型库。

图8 主动段动力学模型图

从动力学模型子库与环境模型子库中选择相应模型进行连接与组合,搭建导弹动力学子系统。图8展示了搭建的导弹主动段动力学子系统模型。

从GNC模型子库中选择可用模型,结合具体问题开发需用模型搭建GNC子系统。图9展示了导弹主动段GNC子系统模型。

图9 主动段GNC模型图

弹道导弹的飞行中存在多个阶段,对导弹进行飞行仿真,需要解决阶段切换的问题,开发阶段切换模块对系统进行时序管理;动力学模型的计算与GNC模型的计算不在同一个坐标系下,利用坐标转换模块实现状态量在不同坐标系下的转换。

在选择目标模型后,最终完成的弹道导弹模型包括五大部分:阶段切换模块(PhaseSwitch),动力学模块(DynManage),GNC模块(GNCManage),坐标转换模块(CoordT ranslator),目标模块(T arget)。

图10 弹道导弹仿真模型

开发的模型在得到验证后,作为系统的知识积累入库。

图11 导弹高度时间曲线

4.2 仿真验证

完成系统搭建后,设置导弹的发射点、发射方位角等参数,利用Modelica语言平台建模与仿真相分离的优良特性,直接在语言平台上选择四阶龙格库塔积分算法,设置仿真时间为0~120s,对系统进行仿真。仿真结束后,基于语言平台的可视化功能分析结果。图11给出了导弹高度与时间的关系曲线。

为了验证仿真结果的正确性,将结果与导弹的C语言仿真软件结果进行比对,该C语言仿真软件是已经过系统的校验,其可信性得到认可。图12中给出了两系统高度结果的误差曲线。

图12 高度比较误差曲线

分析高度误差,误差最大值小于20m,此时高度约为1.15E5m,相对误差约为0.017%,考虑到原系统采用欧拉角描述姿态运动,而新建模型采用四元素描述,姿态计算的微小差异可能引起控制量略有差别,进而导致结果存在小幅区别,综合考虑认为误差可以接受,仿真结果是可信的。

5 结论

利用Modelica语言的优良特性,基于该语言开发了弹道导弹模型库MissileLib。模型库层次清晰,易于扩充,支持不同粒度的模型描述,可靠性得到验证,实现了知识的积累与重用。基于该模型库可以快速搭建弹道导弹模型实现仿真,为弹道导弹飞行性能的快速评估奠定了基础,该库具有较好的应用前景与推广价值。

[1]Thomas R M,Timothy T C,Patrick E M.A generic common simulation framework based starting point for missile 6DOF simulations,AIAA 2005-5887[R].2005.

[2]吴媛媛,吴进华,唐静.基于Matlab的导弹飞行动力学仿真模型库设计[J].海军航空工程学院学报,2005,20(2):257-260.

[3]任志彬.基于Modelica和Dymola的航空燃气涡轮发动机建模与仿真[D].上海:上海交通大学,2005.

[4]Gertjan Looye.The new DLR flight dynamics library[C]//The Modelica Association and University of Applied Sciences Bielefeld.Proceedings of the6th International Modelica Conference.Bielefeld,Germany,2008.

[5]陈世年.控制系统设计[M].北京:中国宇航出版社,2005.

猜你喜欢
模型库弹道导弹动力学
《空气动力学学报》征稿简则
小天体环的轨道动力学
具有Markov切换的非线性随机SIQS传染病模型的动力学行为
下一代洲际弹道导弹在众议院的尝试撤资中保留下来
基于Creo参数化建模的设备模型库建立方法
Pro/E的三维往复压缩机参数化模型库的建立
基于模型库的现代成本会计计量系统研究
复杂圆柱壳结构参数化建模方法及模型库设计
TNAE的合成和热分解动力学