CN102122136A - 一种同步控制多架飞机的仿真方法 - Google Patents
一种同步控制多架飞机的仿真方法 Download PDFInfo
- Publication number
- CN102122136A CN102122136A CN2010106055866A CN201010605586A CN102122136A CN 102122136 A CN102122136 A CN 102122136A CN 2010106055866 A CN2010106055866 A CN 2010106055866A CN 201010605586 A CN201010605586 A CN 201010605586A CN 102122136 A CN102122136 A CN 102122136A
- Authority
- CN
- China
- Prior art keywords
- aircraft
- rtx
- model
- model aircraft
- user program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Traffic Control Systems (AREA)
Abstract
本发明公开了一种同步控制多架飞机的仿真方法,属于军用仿真技术领域。该方法改进了传统的“飞机同步控制”仿真方法,提出了基于“RTX信号量的多架飞机同步控制”方法,使得多架飞机在计算机中同步仿真的精度得到了提高。该方法具有实时性强、仿真精度高、扩展性好等优点。该方法涉及飞机模型、RTX信号量、共享内存和用户程序四个部分的交互。该方法主要应用于工业仿真领域,对于飞行员模拟训练、大规模电力系统仿真、大规模军用实时仿真、大规模人群运动仿真等具有重要的意义。
Description
技术领域
本发明属于军用仿真技术领域,来源于“计算机生成兵力”的工程实践。
背景技术
本发明可以实现多个飞机模型在计算机中进行“同步”解算和仿真,其技术既可以应用于军用仿真领域,也可应用于民用仿真领域。
传统的飞机同步控制方法只是让多个飞机模型在计算机中和用户程序“依次”进行交互,然而,在飞机模型的每个解算周期内并不能保证这种“依次性”。
因为每个飞机模型在计算机中以“进程”的形式出现,进程的执行要被操作系统多次调用、多次分配“时间片”,尤其是基于飞机模型的这种复杂的操作系统进程。我们把飞机模型被操作系统多次调用、多次分配“时间片”的特性称为“飞机模型的逐步迭代解算”。飞机模型被操作系统调度后,都要进行一次迭代解算,并且飞机模型每一次迭代解算的结果都要和用户程序进行交互。然而,多个“飞机模型进程”在计算机中被操作系统调度的时机并不是确定的,它们的调度要根据系统资源的使用情况由操作系统“临时决定”。这样,多个“飞机模型进程”被操作系统调度的这种特性就不能保证飞机模型执行的“依次性”。
因此,传统的飞机同步控制方法就存在飞机运动轨迹的来回颠簸、仿真显示系统的反复“抖动”,进而出现违反常理的飞行行为表现等。
本发明来源于计算机生成兵力的工程实践,涉及到飞机的“编队飞行”仿真。提出了一种同步控制多架飞机的仿真方法,有效地解决了飞机模型在计算机中执行的颠簸问题和违反常理的飞行行为表现问题。
“编队飞行”仿真,例如双机“编队飞行”仿真,是指用计算机模拟两架或两架以上的飞机组成一定的队形进行飞行。每一架飞机用一个动力学方程来表示,称为飞机模型。飞机模型在计算机中以进程的形式存在,因此,多架飞机的“编队飞行”就是一个“多进程同步运行并相互通信”的问题。
编队飞行的队形包括楔形队形、梯形队形、纵队、横队、箭形队形、蛇形队形等。另外,根据各机之间间隔和距离的大小,这些队形还可以分为疏开队形和密集队形。
在编队飞行中,各架飞机之间必须保持规定的距离、间隔和高度差,并且每个编队必须指定编队长机和僚机。长机是编队飞行中担当率领和指挥机群任务的飞机,也叫主机。僚机是编队飞行中跟随长机、接受和执行长机指令的飞机。长机一般由有经验的飞行员担当,僚机通常由普通的飞行员驾驶。长机主动发起攻击,僚机负责掩护长机并进行侧攻。
编队飞行仿真的基本问题是如何保持规定的队形并充分发挥飞机的整体性能。在编队飞行仿真中,每架飞机用一个动力学方程来表示。这是因为,飞机是一个复杂系统,该系统的各个输入、输出变量之间紧密地偶合在一起,所以,为了处理的方便就用一个动力学系统来表示。多架飞机的编队飞行仿真是一个在计算机中解算多个动力学方程的过程。为了便于处理,把每个飞机代表的动力学系统看成一个飞机模型,并使飞机模型在计算机中以操作系统进程的形式运行。这样一来,编队飞行仿真就变成了一个执行多个操作系统进程并使之同步和协调的问题。
需要注意的是,这种飞机模型进程不同于一般意义上的操作系统进程:(1)每一个飞机模型进程都很复杂,而一般的操作系统进程既可以很简单也可以很复杂;(2)飞机模型进程的执行时间都较长,它们一般不会在一个或几个时间片内执行完;(3)飞机模型进程具有明显的物理意义,代表着一个飞机;(4)飞机模型进程的输入和输出变量往往紧密耦合在一起,使得它们的解算是一个相当复杂的过程。
飞机模型进程的这种特殊性使得我们不能完全照搬操作系统进程的处理方法来控制它们。
举例说明,现有A、B两个飞机模型进程。A、B两个进程在计算机中的执行过程是:(1)首先,触发A、B进程运行;(2)然后,操作系统根据系统资源的使用情况,可以“挂起”或“中断”A、B进程的运行;(3)在系统资源充分的情况下,操作系统可以重新“唤醒”或“激活”A、B进程的运行;(4)A、B进程执行完毕,操作系统收回所有分配给A、B进程的资源。因此,只要进程没有执行完就无法准确知道它被调度的时机。这样就无法保证多个飞机模型执行的“同步性”。也就是说,我们不能完全照搬操作系统进程的处理方法来控制飞机进程使它们同步。
进而,在双机编队飞行仿真中,当我们要控制两架飞机模型进行编队仿真时,如果飞机模型进程的解算结果不同步就会给我们的反馈控制系统带来极大的“干扰”,会造成受控对象输出的不稳定、受控对象运行轨迹的颠簸,并造成仿真显示系统产生“抖动”和违反常理的行为表现。
因此,我们提出了一种同步控制多架飞机的仿真方法来解决这个问题。本方法主要用于飞机的编队飞行仿真中。本方法具有以下优点:(1)可以较好地保证飞机模型进程在计算机中执行的同步性;(2)具有较高的仿真精度;(3)仿真的实时性强。(4)本方法符合“高层体系结构仿真规范”具有较好的可扩展性。本方法对于飞行员模拟训练、大规模电力系统仿真、大规模军用实时仿真、大规模人群运动仿真具有重要的意义。
发明内容
本发明公开了一种同步控制多架飞机的仿真方法,来源于“计算机生成兵力”的工程实践。该方法对于飞行员模拟训练、大规模电力系统仿真、大规模军用实时仿真、大规模人群运动仿真等具有重要的参考价值。
在本发明中:
“飞机模型”是指飞机的动力学模型。它是在分析“某型号飞机”动力学和运动学特性的基础上,结合飞机的质量、惯量和重心计算公式、发动机模型、大气环境和风模型、多普勒雷达模型、简化的空空导弹模型等得到的。
“同步控制”是指将“飞机模型”以“特殊的操作系统进程”的形式表达以后,对它们进行的管理和操作。这种管理和操作要满足基于该“飞机模型”的军用仿真的需要。
本发明的实质就是针对现有的军用仿真方法不支持“特殊的操作系统进程”在计算机中的“同步运行”,提出了改进的方法。改进的方法比原有的方法有显著的提高。
下面具体介绍本发明的内容。
本方法涉及的飞机模型由三部分组成,即:“输入向量组”、“输出向量组”和“解算主体”。其中,
“输入向量组”是指飞机模型所涉及到的所有输入向量。例如,升降舵偏角度数、飞机副翼偏角度数、方向舵偏角度数、油门杆开度、刹车手柄状态、飞机起落架收放开关状态、减速板收放开关状态、飞机襟翼收放开关状态等。
“输出向量组”是指飞机模型所涉及到的所有输出向量。例如,飞机的位置(x、y和z坐标)、飞机的姿态(俯仰、滚转和偏航)、飞机的迎角量、飞机的侧滑量、飞机的速度、飞机的加速度、飞机发动机的转速等。
“解算主体”是指飞机模型的解算结构。它由一组微分方程组成,反映了飞机的动力学特性。“解算主体”的运行是一个微分方程的解算过程,同时也是一个反馈迭代的动态过程,它根据飞机当前的状态,用“输入向量组”的值去控制飞机,使之产生的“输出向量组”的值达到预定的飞行效果。
同步控制多架飞机的方法涉及到如前所述的“特殊的操作系统进程”。
在我们的方法中,把飞机模型被看作一种“特殊的操作系统进程”。这样,飞机模型的输入就对应着操作系统进程的输入,飞机模型的输出就对应着操作系统进程的输出,飞机模型的解算就对应着操作系统进程的运行。
但是,这种特殊的操作系统进程却有别于通常意义上的操作系统进程。这是因为,我们这里构建的操作系统进程是基于飞机模型的“操作系统进程”。具体说来,(1)基于飞机模型的“操作系统进程”复杂性更大;(2)基于飞机模型的“操作系统进程”执行时间较长,它们一般不会在一个或有限的几个“时间片”内执行完;(3)基于飞机模型的“操作系统进程”具有较明显的物理意义,它们代表着一个飞机“实体”;(4)基于飞机模型的“操作系统进程”的输入和输出向量往往紧密地耦合在一起,使得它们的解算过程是一个逐步迭代的过程。
下面进一步列表比较“基于飞机模型的操作系统进程”和“普通操作系统进程”的区别。
表1“基于飞机模型的操作系统进程”和“普通操作系统进程”的比较
比较项目 | 基于飞机模型的操作系统进程 | 普通操作系统进程 |
复杂程度 | 较高 | 一般 |
平均执行时间 | 长 | 一般 |
物理意义 | 明确 | 否 |
输入、输出的关系 | 耦合 | 较独立 |
解算过程 | 逐步迭代 | 一次运行或少量迭代 |
在表1中对“基于飞机模型的操作系统进程”和“普通操作系统进程”主要涉及到的五个方面进行了比较。
基于这种现实状况,我们不能完全照搬普通操作系统进程的处理方法来对这种基于飞机模型的“特殊操作系统进程”进行控制和管理。
现有的军用仿真方法没有考虑基于飞机模型的“特殊操作系统进程”的独特性,机械地照搬了普通操作系统进程的处理方法,使得仿真的效果出现了严重的失真——锯齿状波形,产生了所谓的“仿真抖动”。这确实是现有的军用仿真方法存在的一个问题。
为什么会出现这种问题呢?
我们首先分析原理,然后再给出解决的方法。
操作系统中的进程是一个具有独立功能的程序在一个数据集合上的一次动态执行过程。它具有动态性、独立性、异步性、结构化性等特性。也就是说,操作系统中进程的执行由操作系统统一管理,用户无法知道在某个指定的“时间片”内某个指定的进程是否运行以及运行的中间结果。因为,每个进程都有五个状态,即:创建状态、就绪状态、运行状态、阻塞状态和结束状态,这五个状态的转换关系是根据当时资源的使用情况由操作系统临时确定的,用户是不知道的。
总之,对于用户而言,操作系统中的进程具有“执行的不可预知性”。
然而,多个飞机模型在计算机中的执行是需要明确知道每个模型执行的中间状态和时刻,并以此来保证模型的“同步”执行和模型自身的反馈迭代。
那么,我们是怎样使操作系统中的进程可以提前预知?进而,满足基于飞机模型的“特殊操作系统进程”的同步执行和模型自身的迭代解算要求呢?
我们的方法是采用“信号量”来对基于飞机模型的“特殊操作系统进程”的“写数据”操作进行“控制”,如图1所示。
图1是基于飞机模型的“特殊操作系统进程”的同步控制。
在图1中,“信号量”是一种进程同步控制的机制,与相应资源的使用情况有关。本发明中的“信号量”采用“基于RTX的信号量”,“共享内存”采用“基于RTX的共享内存机制”。“公共数据”是存储在“共享内存”中的数据。
我们提出的方法有效地解决了传统的“飞机同步控制”方法表现出的(1)“数据读取错位”现象;(2)仿真精度不高问题;(3)飞机模型进程的执行不同步问题。传统方法表现出的问题可用图2来表示。
在图2中,“飞机模型1”、“飞机模型2”和“用户程序”三者进行了交互。我们的目的是通过“用户程序”来“依次”控制和读取“飞机模型1”和“飞机模型2”。其中,“飞机模型1”在t=1时刻进行了读、写操作,“飞机模型2”在t=2和t=3时刻连续进行了两次读、写操作。这使得“飞机模型1”和“飞机模型2”的执行次数不相等。于是,当“用户程序”在t=4时刻进行飞机模型的读、写操作时就发生了错误。最终,程序出现仿真逻辑“异常”而退出。另外,每一个进程在执行前,都是由操作系统首先检测其所需的资源是否都满足,如果满足,则可能被调用,否则被“阻塞”。如果有多个进程所需的资源都已满足,则操作系统会选择一个来执行。
然而,操作系统的选择会带来“飞机模型1”和“飞机模型2”执行次数的不相等。即,“飞机模型1”和“飞机模型2”的执行会不同步。
因此,我们采用了“基于RTX的信号量”来对多个飞机模型的访问进行互斥操作。与此同时,在我们的发明中还采用了“基于RTX的定时器”机制、基于RTX的框架体系机制。通过这些方法来保障同步控制多个飞机模型的有效性。
RTX是美国IntervalZero公司开发的基于Windows操作系统的实时子系统。它是目前Windows平台上唯一纯软件的硬实时扩展子系统。RTX不对Windows系统进行任何封装或修改,只是通过在“硬件抽象层”增加“实时硬件抽象扩展”来实现基于优先级的抢占式实时任务管理和调度。RTX实时子系统提供了对IQR(Interrupt Request)、I/O、内存的精确直接控制,以确保实时任务的100%可靠性。通过高速的进程间通信和同步机制,RTX方便地实现与Windows之间的数据交换。RTX的定时器时钟分辨率为100纳秒,最低定时器周期为100微秒。RTX计时误差不超过10微秒。RTX同时支持实时以太网和实时USB通信。RTX提供了信号量机制、事件机制、共享内存机制、定时器机制等。
在本发明中,用户程序通过“共享内存”和飞机模型进行通信。也就是说,用户程序将对飞机的“飞行控制量”输送给“共享内存”,再由“共享内存”传送给飞机模型并作为飞机模型的“输入向量组”;同理,飞机模型的解算结果——“输出向量组”首先输送给“共享内存”,再由“共享内存”传送给用户程序。由此,完成了用户程序和飞机模型的交互通信。
图3展示了本发明提出的通信方法。在这种方法中,用户程序通过“共享内存”和飞机模型进行通信。
图3中的虚线框表示用户不能看见飞机模型,而只能通过“共享内存”的输入、输出“潜在意识到”飞机模型的存在。
举例说明,现有A、B两个飞机模型进程。A、B两个飞机模型进程在计算机中的执行过程是:(1)首先,触发A、B进程运行;(2)然后,操作系统根据系统资源的使用情况,可以“挂起”或“中断”A、B进程的运行;(3)在系统资源充分的情况下,操作系统可以重新“唤醒”或“激活”A、B进程的运行;(4)A、B进程执行完毕,操作系统收回所有分配给A、B进程的资源。
因此,由上述的第(1)项可知,A、B两个进程是可以近似视为同步起动的;由上述的第(2)项和第(3)项可知,只要A、B进程没有执行完毕,我们就无法知道A、B进程执行的中间结果;进而,A、B进程被操作系统调用的次数也就不尽相同;由上述的第(2)、(3)和(4)项可知,A、B两个进程不能视为“同步结束”。
然而,基于飞机模型的“特殊操作系统进程”的运行是一个反馈迭代的过程,它需要知道上一步迭代的结果,并基于此进行下一步的控制和迭代。这就要求A、B两个飞机模型进程在计算机中执行次数必须相同。因为,相同的执行次数决定着A、B两个飞机模型进程解算的同步。
因此,我们采用了基于RTX信号量的机制将A、B两个飞机模型进程“互斥执行”起来,保证了A、B两个飞机模型在计算机中的执行具有“依次性”。进而也就保证了A、B两个飞机模型进程解算的同步。具体参见图3。
在我们的同步控制多架飞机的方法中,飞机模型进程的“读操作”可以多次重复执行,而飞机模型的“写操作”要经过RTX信号量“互斥”起来。
这种同步控制多架飞机的方法具有以下特点:(1)保证了飞机模型进程执行的“依次性”;(2)操作系统在部分时间片内进行了“空转”,这种“空转”是飞机模型进程“写操作”同步的保障;(3)由于采用了基于RTX的高精度定时器机制,使得飞机模型进程的执行效率符合实时仿真的要求。
综上所述:
由于我们采用的RTX定时器机制具有较高的定时精度——RTX定时器时钟的分辨率为100纳秒,因此本方法保证了同步控制多个飞机模型的实时性。
由于我们采用的RTX架构机制不对Windows系统进行任何封装或者修改,因此本方法保证了同步控制多个飞机模型的易扩展性。
由于我们采用的RTX信号量机制具有较高的“互斥性”,使得多个飞机模型具有相同的执行次数,因此,本方法保证了同步控制多个飞机模型的仿真精度。
“一种同步控制多架飞机的仿真方法”的详细设计步骤是:
第一步,根据IntervalZero公司提供的“RTX使用规范”将所有飞机模型封装成RTX“实时子进程”的格式;
第二步,在每个飞机模型中使用基于RTX定时器,以此来保证飞机模型内部解算的实时性;
第三步,将各个飞机模型用RTX信号量“互斥”操作关联起来,以此保证飞机模型执行的“依次性”;
第四步,用户程序采用基于RTX定时器的机制,按顺序和各个飞机模型进行交互——输入控制向量、获得状态向量;
第五步,在内存中开辟一段“公共数据区”即“共享内存”,“共享内存”用于在进程之间交互数据,即,在“飞机模型”和“用户程序”之间交互数据;
第六步,启动飞机模型,让飞机模型进入起飞前的“空转状态”;
第七步,启动用户程序,并用默认值初始化“共享内存”;
第八步,飞机模型在解算的同时和用户程序进行交互,完成飞机模型的控制和飞机状态的输出;
第九步,用户程序向飞机模型输入控制向量,同时从飞机模型获取飞机的当前状态;
第十步,仿真输出,用户程序将获取的各个飞机的状态实时显示出来;
第十一步,监控和测试,用户对正在执行的多架飞机同步控制效果进行监控和测试,在记录仿真数据的同时,随时准备中断和重新触发程序的运行。
“一种同步控制多架飞机的仿真方法”对应的设计流程图参加图4。
附图说明
以下参考附图是对本发明的原理、体系结构、设计流程等进行说明,其中:
图1是基于飞机模型的“特殊操作系统进程”的同步控制原理图
图2是传统方法表现出来的“数据读取错位”示意图
图3是用户程序、共享内存、RTX信号量和飞机模型的交互原理及方法图
图4是本发明的流程图
具体实施方式
下面结合附图来对本发明所述的“一种同步控制多架飞机的仿真方法”作进一步的说明。
“一种同步控制多架飞机的仿真方法”从同步控制多个飞机模型的需求出发,采用了“基于飞机模型的操作系统进程”互斥执行的方法,进行了基于RTX信号量的“飞机模型同步控制”设计。本方法涉及“基于RTX的实时进程封装”、“基于RTX的定时器植入”、“进程间通信和共享内存的使用”、“同步控制效果的监控和测试”等。
首先,进行飞机模型的封装。
进行飞机模型的封装是指按照“RTX实时子进程”的设计规范,对飞机模型涉及到的变量、常量、函数、实时特性、解算步长、仿真精度等进行设计。在进行飞机模型的封装时,飞机模型的动力学参数作为输入变量或者输出变量;飞机模型的解算方法根据存取权限分别作为“公有函数”、“受保护函数”或“私有函数”。具体实施如下所示:
表2飞机模型的封装方法
飞机模型参数或解算方法 | 封装属性 |
飞机位置坐标(x、y、z) | 私有变量 |
飞机姿态(俯仰、滚转、偏航) | 私有变量 |
飞机“两杆一舵”控制信息 | 公有变量 |
飞机经度和纬度 | 受保护变量 |
飞机姿态变化率(姿态角速度) | 私有变量 |
飞机速度向量 | 私有变量 |
飞机开关控制量 | 私有变量 |
电台位置 | 受保护变量 |
塔康位置 | 受保护变量 |
发动机状态 | 私有变量 |
油箱状态 | 私有变量 |
获取飞机当前位置坐标 | 公有函数 |
获取飞机当前姿态 | 公有函数 |
获取飞机开关量状态 | 公有函数 |
获取电台位置 | 公有函数 |
获取塔康位置 | 公有函数 |
获取发动机状态 | 受保护函数 |
获取油箱状态 | 受保护函数 |
飞机模型的封装具有重要的意义。(1)经过封装的飞机模型具有更精简的结构。这样节省了存储空间,同时也提高了存取的效率。(2)经过封装的飞机模型具有更强的功能且符合“RTX实时子进程规范”。这样的飞机模型拥有RTX的所有特性,可以进行高精度、实时仿真。(3)可以进行批量生产。这种封装规范容易理解且操作简单,还容易模式化,因此可以进行一类飞机模型的“批量”封装。(4)支持High Level Architecture(HLA)标准。HLA是一种仿真体系结构,它可以提高仿真系统之间的互操作性和重用性。
第二,进行“RTX定时器”的“植入”。
“RTX定时器”的“植入”是指按照“RTX定时器”的规范来构建飞机模型使用的定时器。在按照“RTX定时器”规范来构建“RTX定时器”时,需要设置定时器的精度、优先级、定时间隔。另外,还要设置飞机模型启动后进入的“空转”状态,例如,网络初始化、发动机系统初始化、燃油系统初始化、飞行状态初始化等。
“RTX定时器植入”的具体步骤如下:
(1)RTX定时器变量声明;
(2)调用网络初始化例程;
(3)调用发动机系统初始化例程;
(4)调用燃油系统初始化例程;
(5)调用液压系统初始化例程;
(6)飞行状态初始化;
(7)设置RTX定时器精度;
(8)设置RTX定时器优先级;
(9)设置RTX定时器的定时间隔。
另外,“RTX定时器”的“植入”还包括在用户程序中进行“RTX定时器”的“部署”。
第三,将飞机模型用“RTX信号量”进行“互斥关联”。
进行“RTX信号量”的“互斥关联”就是用“RTX信号量机制”将多个飞机模型“监控”起来,使它们“依次”执行。这样,在某一时刻,用户程序访问到的飞机模型状态就具有相同的执行次数,也就是说,飞机模型是同步执行的。以此模拟了飞机的同步执行问题。
“RTX信号量”的“互斥关联”步骤如下:
(1)在飞机模型1中声明“RTX信号量”为公用变量;
(2)在飞机模型1中生成一个“RTX信号量对象”;
(3)侦测“RTX信号量”的执行状况,如果“RTX信号量”空闲,则飞机模型1进行一个定时器周期的解算;
(4)在飞机模型1的解算过程中,使“RTX信号量”处于占用状态;飞机模型1解算完毕后释放“RTX信号量”;
(5)在飞机模型2中引用“RTX信号量对象”;
(6)在飞机模型2中侦测“RTX信号量”的执行状况;
(7)如果“RTX信号量”处于占用状态,则阻塞飞机模型2的执行;如果“RTX信号量”处于释放状态,则调用飞机模型2进行一个定时器周期的解算;
(8)在飞机模型2的解算过程中,使“RTX信号量”处于占用状态;在飞机模型2解算完毕后,释放“RTX信号量”。
第四,开辟“共享内存”。
开辟“共享内存”是指在计算机中开辟一段内存用于飞机模型和用户程序的通信。这种通信包括用户程序把飞机的控制向量输送给飞机模型,还包括从飞机模型获取最新的飞行状态。与此同时,飞机模型把用户程序传送的控制向量作为“输入向量组”控制飞机动力学方程组的解算,而把飞机模型的最新状态封装成“输出向量组”传送给用户程序,即,用户程序中的“飞机飞行状态”是通过“共享内存”得到的。
开辟“共享内存”的具体步骤如下:
(1)在飞机模型中声明“共享内存”变量;
(2)根据实际应用需求创建大小适合的“RTX共享内存”;
(3)将飞机模型的“输入向量组”和“输出向量组”转化成“共享内存”的存储格式;
(4)在用户程序中声明“共享内存变量”并将之和飞机模型的“共享内存”变量关联起来;
(5)飞机模型启动后,初始化“共享内存”变量;
(6)用户程序启动后,初始化对应的“共享内存”变量;
(7)飞机模型的输入、输出向量组和用户程序进行通信,即用户程序将控制向量传送给飞机模型,而飞机模型将飞机的飞行状态传送给用户程序。
第五,迭代进行飞机控制向量和状态向量的交互。
迭代进行飞机控制向量和状态向量的交互本质上是向飞机模型传送“输入向量组”的值,同时从飞机模型获取“输出向量组”的值。这是一个迭代的求解过程。在每一个仿真周期内都要进行一次。
需要注意的是,多个飞机模型必须通过“RTX信号量”互斥执行,这样才能保证飞机模型执行相同的次数,即,保证多个飞机模型的执行是同步的。这样,在用户程序中得到的各飞机飞行状态是同步控制的。
迭代进行飞机控制向量和状态向量交互的具体步骤如下:
(1)同时启动多个飞机模型;
(2)飞机模型初始化“RTX信号量”和“RTX共享内存”;
(3)飞机模型进入“空转”状态;
(4)启动用户程序;
(5)用户程序初始化“RTX共享内存”;
(6)在每个“RTX定时器”周期到来时,用户程序向“RTX共享内存”中传送“控制向量”,同时从“RTX共享内存”中获取飞机的飞行状态;
(7)在每个“RTX定时器”周期到来时,飞机模型从“RTX共享内存”获得“输入向量组”的值,同时向“RTX共享内存”传送自身的飞行状态。
需要注意的是,飞机模型的解算也是在一个“RTX定时器”周期内完成的,但是其解算占用的时间往往很短(远远小于“RTX定时器”周期)。
第六,仿真输出。
仿真输出是指用户程序将得到的飞机飞行状态通过视景系统显示出来。视景系统是一套多媒体实时网络系统,用于显示飞行员视野内的场景和态势。因此,仿真输出就是用可视化的方式将多架飞机的编队飞行效果显示出来。
通过仿真输出可以实时了解飞行效果,并根据飞机的飞行效果调整“控制向量”、改进“控制方案”。
仿真输出的具体步骤如下:
(1)初始化OpenGL图像库;
(2)设置光照效果;
(3)加载材质数据库;
(4)初始化地形;
(5)初始化飞机模型;
(6)初始化烟雾模型;
(7)设置视点;
(8)绘制蓝天白云(需进行场景的旋转、平移);
(9)绘制地形(需进行场景的旋转、平移);
(10)根据获取的飞行状态绘制飞机(需进行实体模型的旋转、平移);
(11)绘图缓冲区的交换。
最后,进行仿真效果的监控和测试。
进行仿真效果的监控和测试是指监控多架飞机的仿真效果(例如,编队飞行的仿真效果),并将实际的效果和预设的理论效果相比较。如果实际的仿真效果和预设的理论效果差别较大则终止仿真过程,并进行检查和修改,直至找出原因并重新启动仿真;如果实际的仿真效果和预设的理论效果差别不大则继续进行仿真,直至仿真结束或效果出现较大的差别而中断。
需要说明的是,本发明支持High Level Architecture(HLA)标准,可以在一个分布式网络环境内部署成一个实时的仿真平台。本发明必将对飞行员模拟训练、大规模电力系统仿真、大规模军用实时仿真、大规模人群运动仿真等产生积极的作用。
Claims (6)
1.一种同步控制多架飞机的仿真方法,改进了传统的“飞机同步控制”仿真方法,其特征在于:利用RTX信号量对多个飞机模型进行“互斥”操作,利用RTX定时器对仿真步长进行控制,利用RTX体系结构对仿真系统进行部署;该方法由飞机模型[1]、RTX信号量[2]、共享内存[3]和用户程序[4]共计四个部分组成,对各部分具体描述如下:
飞机模型[1]:它包括“输入向量组”[5]、“输出向量组”[6]和“解算主体”[7];其功能为,从用户程序[4]获得“输入向量组”[5]的最新值,再通过“解算主体”[7]的解算,最后产生“输出向量组”[6]的当前值;
RTX信号量[2]:是保障进程之间同步执行的一种机制;在本发明中用于多个飞机模型之间进行同步控制;
共享内存[3]:是在计算机中开辟的一段“特殊的内存”,用于在飞机模型[1]和用户程序[4]之间进行实时通信;
用户程序[4]:是“同步控制多架飞机仿真”的总控制台;用户程序[4]通过共享内存[3]从飞机模型[1]获得飞机的当前状态,同理,通过共享内存[3]向飞机模型[1]传送控制向量。
2.根据权利要求1所述的一种同步控制多架飞机的仿真方法,其特征在于:飞机模型[1]依照RTX体系结构进行构建,包括“输入向量组”[5]、“输出向量组”[6]和“解算主体”[7];它描述了一个飞机的所有特征,包括质量和惯量计算系统、发动机系统、多普勒雷达系统、武器系统、燃油系统等;它是一个基于“飞行动力学”的仿真系统,在每一个仿真周期中都能够自行进行一次解算;其中,各组成部分的特征如下:
“输入向量组”[5]是飞机模型[1]涉及到的所有输入量的组合,包括升降舵偏角度数、飞机副翼偏角度数、方向舵偏角度数、油门杆开度、刹车手柄状态、飞机起落架收放开关状态、减速板收放开关状态、飞机襟翼收放开关状态等;
“输出向量组”[6]是飞机模型[1]涉及到的所有输出量的组合,包括飞机的位置、飞机的姿态、飞机的迎角量、飞机的侧滑量、飞机的速度、飞机的加速度、飞机发动机的转速等;
“解算主体”[7]是飞机模型[1]的解算结构,由一组微分方程组成;它根据飞机当前的状态,用“输入向量组”的值[5]去控制飞机,使之产生“输出向量组”[6]的值,以期达到预定的飞行效果;它反映了飞机的动力学特性,是一个反馈迭代的动态过程。
3.根据权利要求1所述的一种同步控制多架飞机的仿真方法,其特征在于:利用RTX信号量[2]对多个飞机模型[1]进行“互斥”;RTX信号量[2]克服了微软Windows平台“线程模型”和“线程调度机制”带来的“进程可侵占”问题;飞机模型[1]作为一种“特殊的操作系统进程”通过RTX信号量机制使它们严格地按顺序“依次”被响应,从而保证了飞机模型[1]的同步。
4.根据权利要求1所述的一种同步控制多架飞机的仿真方法,其特征在于:利用了共享内存[3],在操作系统进程之间快速交换数据;共享内存[3]是在计算机中开辟的一段“特殊的内存”,用于在飞机模型[1]和用户程序[4]之间进行数据交换;共享内存[3]保证了飞机模型[1]和用户程序[4]之间通信的实时性。
5.根据权利要求1所述的一种同步控制多架飞机的仿真方法,其特征在于:用户程序[4]负责通过共享内存[3]从飞机模型[1]获得飞行状态,同时通过共享内存[3]向飞机模型[1]输送控制向量;用户程序[4]是整个系统的总控制台;用户程序[4]还要负责“同步控制多架飞机仿真”的可视化显示和实验结果的收集。
6.根据权利要求1所述的一种同步控制多架飞机的仿真方法,其特征在于:利用了RTX定时器[8],其仿真效果符合实时仿真的要求;RTX定时器[8]的分辨率为100纳秒,最低定时器周期为100微秒,计时误差小于10微秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010605586 CN102122136B (zh) | 2010-12-23 | 2010-12-23 | 一种同步控制多架飞机的仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010605586 CN102122136B (zh) | 2010-12-23 | 2010-12-23 | 一种同步控制多架飞机的仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102122136A true CN102122136A (zh) | 2011-07-13 |
CN102122136B CN102122136B (zh) | 2013-07-17 |
Family
ID=44250707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010605586 Expired - Fee Related CN102122136B (zh) | 2010-12-23 | 2010-12-23 | 一种同步控制多架飞机的仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102122136B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880063A (zh) * | 2012-09-13 | 2013-01-16 | 中国人民解放军63921部队 | 同步控制遥操作系统及方法 |
CN103149846A (zh) * | 2011-12-06 | 2013-06-12 | 中国科学院沈阳自动化研究所 | 飞行机器人控制系统半物理仿真平台 |
CN103245508A (zh) * | 2013-04-11 | 2013-08-14 | 西安航天动力试验技术研究所 | 多机试验同步动态预警方法及预警系统 |
CN104007661A (zh) * | 2014-04-29 | 2014-08-27 | 中国人民解放军空军航空大学军事仿真技术研究所 | 一种单台模拟器实现多机编队的仿真方法 |
CN105808799A (zh) * | 2014-12-30 | 2016-07-27 | 北京航天测控技术有限公司 | 一种rtx环境下通用测试软件及其测试方法 |
CN109116863A (zh) * | 2018-08-24 | 2019-01-01 | 北京京东尚科信息技术有限公司 | 无人机调度方法、装置、系统、电子设备及可读介质 |
US10372847B2 (en) * | 2016-07-01 | 2019-08-06 | General Electric Company | Systems and methods to integrate power production simulation with power distribution simulation |
CN113254149A (zh) * | 2021-05-13 | 2021-08-13 | 南京宇天智云仿真技术有限公司 | 一种基于流式计算的动体运行仿真方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070202469A1 (en) * | 2006-02-13 | 2007-08-30 | The Boeing Company | System for trouble shooting and controlling signals to and from an aircraft simulator |
CN101093617A (zh) * | 2006-06-23 | 2007-12-26 | 莱斯莉·杰·莱内尔 | 安全着陆器 |
CN101727763A (zh) * | 2009-12-11 | 2010-06-09 | 中国人民解放军空军军训器材研究所 | 一种训练系统的集成与实时调度的方法 |
US20100266991A1 (en) * | 2009-04-16 | 2010-10-21 | Redbird Flight Simulations, Inc. | Flight simulation system |
-
2010
- 2010-12-23 CN CN 201010605586 patent/CN102122136B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070202469A1 (en) * | 2006-02-13 | 2007-08-30 | The Boeing Company | System for trouble shooting and controlling signals to and from an aircraft simulator |
CN101093617A (zh) * | 2006-06-23 | 2007-12-26 | 莱斯莉·杰·莱内尔 | 安全着陆器 |
US20100266991A1 (en) * | 2009-04-16 | 2010-10-21 | Redbird Flight Simulations, Inc. | Flight simulation system |
CN101727763A (zh) * | 2009-12-11 | 2010-06-09 | 中国人民解放军空军军训器材研究所 | 一种训练系统的集成与实时调度的方法 |
Non-Patent Citations (4)
Title |
---|
刘巧珍等: "《机载机电系统综合管理分布式仿真平台设计》", 《系统仿真学报》 * |
方澄等: "《基于RTX的飞行模拟器分布式实时仿真系统》", 《测控技术》 * |
蒋志文: "《基于RTX的建模与实时仿真软件YH2RTSIM的设计》", 《计算机应用》 * |
邵云滨等: "《飞机管理系统分布式仿真平台》", 《第五届全国流体传动与控制学术会议暨2008 年中国航空学会液压与气动学术会议》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103149846A (zh) * | 2011-12-06 | 2013-06-12 | 中国科学院沈阳自动化研究所 | 飞行机器人控制系统半物理仿真平台 |
CN102880063A (zh) * | 2012-09-13 | 2013-01-16 | 中国人民解放军63921部队 | 同步控制遥操作系统及方法 |
CN102880063B (zh) * | 2012-09-13 | 2016-01-20 | 中国人民解放军63921部队 | 同步控制遥操作系统及方法 |
CN103245508A (zh) * | 2013-04-11 | 2013-08-14 | 西安航天动力试验技术研究所 | 多机试验同步动态预警方法及预警系统 |
CN103245508B (zh) * | 2013-04-11 | 2015-07-29 | 西安航天动力试验技术研究所 | 多机试验同步动态预警方法及预警系统 |
CN104007661A (zh) * | 2014-04-29 | 2014-08-27 | 中国人民解放军空军航空大学军事仿真技术研究所 | 一种单台模拟器实现多机编队的仿真方法 |
CN104007661B (zh) * | 2014-04-29 | 2016-12-07 | 中国人民解放军空军航空大学军事仿真技术研究所 | 一种单台模拟器实现多机编队的仿真方法 |
CN105808799A (zh) * | 2014-12-30 | 2016-07-27 | 北京航天测控技术有限公司 | 一种rtx环境下通用测试软件及其测试方法 |
US10372847B2 (en) * | 2016-07-01 | 2019-08-06 | General Electric Company | Systems and methods to integrate power production simulation with power distribution simulation |
CN109116863A (zh) * | 2018-08-24 | 2019-01-01 | 北京京东尚科信息技术有限公司 | 无人机调度方法、装置、系统、电子设备及可读介质 |
CN109116863B (zh) * | 2018-08-24 | 2021-12-03 | 北京京东乾石科技有限公司 | 无人机调度方法、装置、系统、电子设备及可读介质 |
CN113254149A (zh) * | 2021-05-13 | 2021-08-13 | 南京宇天智云仿真技术有限公司 | 一种基于流式计算的动体运行仿真方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102122136B (zh) | 2013-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102122136B (zh) | 一种同步控制多架飞机的仿真方法 | |
CN107193639B (zh) | 一种支持联合作战的多核并行仿真引擎系统 | |
CN104281060B (zh) | 一种飞行器半实物接入试验测控系统 | |
CN107942720A (zh) | 一种便携式地面在线飞行仿真系统 | |
CN104615010A (zh) | 基于网络通信的FlightGear和VC混合系统开发方法 | |
CN107102565A (zh) | 无人机集群软件在环仿真系统 | |
CN105022288A (zh) | 一种工业电子嵌入式系统的仿真系统 | |
CA3113480C (en) | Efficient creation of computer-generated force (cgf) entities using frequency response matrices | |
CN109656147A (zh) | 空战模拟系统 | |
Fezans et al. | Modeling and simulation for the automation of aerial refueling of military transport aircraft with the probe-and-drogue system | |
CN110321092B (zh) | 向单个显示频率同步视频输出 | |
Wang et al. | The stochastic Petri net based reliability analysis for software partition integrated modular avionics | |
Lei et al. | PC based high quality and low cost flight simulator | |
CN105511292A (zh) | 一种基于硬件在环分布式仿真平台及仿真方法 | |
CN104598663A (zh) | 海洋力学环境虚拟生成系统及方法 | |
Pan et al. | Design of a Distributed Multi-missile Simulation System Based on Optical Fiber Reflective Memory Network | |
US11934749B2 (en) | Efficient creation of computer-generated force (CGF) entities using frequency response matrices | |
Chaudron et al. | Real-time aircraft simulation using HLA standard | |
Chin et al. | Integration of Aeroservoelastic Properties into the NASA Dryden F/A-18 Simulator Using Flight Data from the Active Aeroelastic Wing Program | |
Lopez Matos et al. | Pilot-in-the-loop flight simulation of flexible aircraft in Matlab/Simulink: Implementation and coding peculiarities | |
Persing et al. | Impact of Aircraft Flight Dynamics Modeling Technique on Weapon System Beyond-Visual-Range Combat Effectiveness | |
CN110322747B (zh) | 动态修改包括与之关联的视觉轮廓描绘的视觉元素的视觉渲染 | |
Su et al. | Designing hardware-in-the-loop simulation system for missile with high level architecture | |
Cassaro et al. | Overview of the multipurpose aircraft simulation laboratory experience | |
CN206318034U (zh) | 一种基于hla网络架构的飞机模拟系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130717 Termination date: 20131223 |