CN113110108A - 一种三层结构保障半实物仿真实时性的实现方法 - Google Patents
一种三层结构保障半实物仿真实时性的实现方法 Download PDFInfo
- Publication number
- CN113110108A CN113110108A CN202110478858.9A CN202110478858A CN113110108A CN 113110108 A CN113110108 A CN 113110108A CN 202110478858 A CN202110478858 A CN 202110478858A CN 113110108 A CN113110108 A CN 113110108A
- Authority
- CN
- China
- Prior art keywords
- real
- time
- layer
- semi
- code
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种三层结构保障半实物仿真实时性的实现方法,以半实物仿真系统实时性要求为目的,从顶层设计出发,软硬件两方面入手,采用硬件、软件功能合理划分,互相配合的方式实现。将多核CPU划分为两部分:一部分为RTX下,保障对实时性要求高的代码所在线程各自独占一颗CPU物理核心;另一部分保留在Windows下,执行耗时但对实时性要求并不高的代码。软件上将代码划分为三层:第一层为对实时性要求高的仿真及通讯代码;第二层为慢速IO操作代码;第三层为用户界面代码。这种划分方式充分保障了半实物仿真对实时性要求的满足,保证在任意时刻,半实物仿真软件中对实时性要求高的代码所在线程都能够占有CPU资源而不至于出现调度性的等待。三层结构中的第三层还为用户界面的设计提供了广阔的空间,基于第二层的隔离作用,第三层的用户界面可以使用多种UI设计与编程语言。
Description
1技术领域
本发明应用于保障导弹/火箭等半实物仿真实时性的实现方法,属于航空航天半实物仿真领域。
2背景技术
2.1半实物仿真
半实物仿真是在全数字仿真的基础上加入部分实物环节,这就使得原数字仿真必须在实时仿真环境下运行。操作系统的调度开销,线程间的竞争都会在一定程度上影响半实物仿真的实时性,而这种影响会造成整个仿真回路出现预期之外的延时,这种延时会降低半实物仿真的真实性,不利于对真实环境的还原。
半实物仿真的进行一般为在实时操作系统环境的仿真计算机中进行弹体模型的解算、通过高速IO卡、PCI串口卡等对外接口将仿真解算信息传递给实物转台,由安装在实物转台上的导航计算机解算当前姿态发送给飞控计算机,再由飞控计算机生成控制指令驱动舵机带动负载台,仿真计算机采集舵机返回的位置信号闭环进弹体模型进行下一次的弹体模型解算,并在这一循环过程中实时记录弹体模型状态信息与各实物状态信息,见附图1。
2.2 IntervalZero RTX
IntervalZero RTX(以下简称RTX)可以将Windows变为实时操作系统,RTX独占计算机一部分CPU而运行,Windows系统则运行在剩余的CPU,安装RTX的计算机至少为双核。运行在RTX系统下的应用程序拥有很高的实时性,还可以通过与RTX与Windows之间的通讯接口实现图形界面和用户的交互。
2.3 WPF
WPF是微软推出的用户界面框架,是微软新一代图形系统,它将给Windows应用程序的开发带来一次革命。对于用户来说,它使得界面变得更漂亮;对于开发者来说,它使得美工的工作与业务逻辑的开发完全的分离开了。
2.4线程
线程是计算机软件运行的载体,是多任务操作系统进行调度的最小单位。线程同时运行的数量与CPU的核心数量有关,四核八线程的CPU同时运行的线程数量为4~8条。当线程总数超过这一数量时,线程会抢占CPU资源,采用分时复用的方式来轮流执行,没有获得CPU的线程会处于暂时的等待状态,线程中的代码也无法执行。
2.5超线程
超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容度线程池操作系统和软件,减少了CPU的闲置时间,提高了CPU的运行效率。如2.4中,四核八线程是指:CPU拥有四颗物理核心,通过超线程技术,让最多八条线程并行执行。
但是在RTX下,超线程技术可能会使程序陷入非预期的等待,为保障半实物仿真软件的实时性,需要关闭超线程。
2.6共享内存
一般情况下,计算机程序各进程所使用的都是操作系统进行地址转换后的虚拟物理内存,相互之间是隔离的。
操作系统提供了共享内存的接口函数,通过将两段虚拟内存映射到地址相同的一段物理内存上,以共享内存的方式来传递大量数据。
3发明内容
本发明给出了一种基于Windows7+RTX操作系统,根据软件对实时性要求的不同划分为三层,通过让实时性高的代码段独享CPU物理核心的方式来保障半实物仿真软件实时性的实现。
3.1本发明的技术解决问题是:
1)半实物仿真时,仿真软件由于系统调度产生意外的延时或等待。
2)耗时的IO操作会成为仿真系统速度的瓶颈。
3)基于RTX的半实物仿真软件通常界面难以做到美观、华丽。
3.2本发明的技术解决方案是:
对半实物仿真软件根据实时性要求的不同,划分为三层。
第一层:仿真解算及对外通讯。这一层主要为两条后台线程。一条为弹体模型的实时解算线程,另一条为对外通讯。这一层的代码运行在RTX下,独享两颗CPU物理核心。
第二层:接口层。这一层主要作用为从文件中读取仿真参数;将记录数据写入到文件中;向上向下连接用户界面与仿真解算软件。这一层的代码运行在Windows下,与Windows及其诸多程序共享剩余CPU物理核心。
第三层:用户界面。这一层主要作用为完成于用户的交互,实现基本的输入输出,显示弹体模型的状态信息。这一层的代码运行在Windows下,与Windows及其诸多程序共享剩余CPU物理核心。
因此,本发明的方案涉及两方面,一是硬件资源的合理划分,对CPU资源进行分配保障在RTX运行的CPU物理核心数量大于等于RTX下线程数量。二是对软件功能的合理划分,仅将对实时性要求最高的代码部署进RTX,严格控制RTX下线程的数量,其余耗时或对实时性要求不高的部分则通过共享内存传递给Windows进行处理。通过硬件和软件的合理划分,有机结合,互相协同,保障半实物仿真软件的实时性。
3.3本发明与现有技术相比的增益为:
(1)三层结构下,RTX中代码的运行模式与行为精准可预测,解决了原有技术下半实物仿真时出现意外延时或等待的问题。
(2)三层结构下,半实物仿真软件的实时性得到了保障,将耗时操作从仿真软件中剥离开来,解决了耗时的IO操作会成为仿真系统速度瓶颈的问题。
(3)三层结构下,因为实时性要求高的部分与用户界面部分隔离开了,所以可以设计很绚丽的程序界面,依旧不会影响半实物仿真程序的实时性。由于接口程序通过共享内存向界面程序传递数据,从编程语言上将二者完全隔离开。因此界面程序部分可以借助功能更加强大的WPF实现更加绚丽的界面效果。
4附图说明
图1为半实物仿真系统组成框图。
图2为三层结构划分示意图。
图3为界面程序效果图。
5具体实施方式
以研华科技610L工控机为例,进行三层结构下某型靶弹半实物仿真软件的设计与部署。
研华科技610L工控机CPU配置为Intel i7-2600:四核八线程,安装Windows7+RTX操作系统。
1)首先关闭超线程技术,得到四核四线程的处理器。
2)将CPU两个物理核心分配至RTX,两个CPU物理核心保留在Windows。
3)拆分半实物仿真程序分别为:弹体模型模块、通讯模块为RTX软件(第一层);仿真参数读取模块、数据记录模块、共享内存通讯模块为接口程序(第二层);仿真参数设置模块、仿真状态显示模块、仿真过程控制模块为界面程序(第三层)。
4)弹体模型模块独占RTX下一颗CPU物理核心;通讯模块独占RTX下另外一颗CPU物理核心。
5)设计接口程序,通过共享内存对上承接WPF界面程序的用户指令;对下传递与仿真有关的气动等参数,接收RTX输出的仿真数据并写入文件中。
6)根据用户要求通过WPF设计绚丽的用户界面。
通过这种三层结构的设计,合理对CPU核心进行划分,合理对软件功能进行划分,充分利用多任务系统的运行模式,有效保障了半实物仿真的实时性。在某型号靶弹半实物仿真软件设计中,采用这种设计模式,在拥有绚丽用户界面、输出仿真数据速度160Mbps(非上限)、0.5ms的仿真周期情况下,时间误差不超过±0.0002ms,完全满足半实物仿真对实时性的要求。
本发明未详细说明部分属本领域技术人员公知常识。
Claims (5)
1.一种三层结构保障半实物仿真实时性的实现方法,其特征在于:使用多核处理器,将半实物仿真软件按照功能要求划分为三层。
2.根据权利要求1所述的方法,其特征在于:保障对实时性要求高的代码段独占CPU物理核心。
3.根据权利要求1所述的方法,其特征在于:将操作耗时的代码从对实时性要求高的代码中移出。
4.根据权利要求1所述的方法,其特征在于:将用户界面与RTX环境完全隔离开,解除编程语言的限制。
5.根据权利要求1所述的方法,其特征在于:对于处理器的要求最低为双核处理器,对软件的划分可以分为三层也可以分为两层,但实时性要求高的代码必定为单独一层且独占至少一颗CPU物理核心。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110478858.9A CN113110108A (zh) | 2021-04-28 | 2021-04-28 | 一种三层结构保障半实物仿真实时性的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110478858.9A CN113110108A (zh) | 2021-04-28 | 2021-04-28 | 一种三层结构保障半实物仿真实时性的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113110108A true CN113110108A (zh) | 2021-07-13 |
Family
ID=76720644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110478858.9A Pending CN113110108A (zh) | 2021-04-28 | 2021-04-28 | 一种三层结构保障半实物仿真实时性的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113110108A (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
CN1828617A (zh) * | 2006-03-31 | 2006-09-06 | 电子科技大学 | 一种软硬件协同仿真/验证系统及矢量模式仿真/验证方法 |
CN103744726A (zh) * | 2014-01-02 | 2014-04-23 | 西北工业大学 | 一种Windows系统实时扩展的两级调度方法 |
CN103926841A (zh) * | 2014-03-27 | 2014-07-16 | 中国科学院长春光学精密机械与物理研究所 | 基于rtx+rfm的实时半实物仿真计算机控制系统 |
CN103957372A (zh) * | 2014-05-13 | 2014-07-30 | 吉林建筑大学 | 基于Windows+RTX的实时图像采集处理系统 |
CN105808799A (zh) * | 2014-12-30 | 2016-07-27 | 北京航天测控技术有限公司 | 一种rtx环境下通用测试软件及其测试方法 |
CN107942720A (zh) * | 2017-09-30 | 2018-04-20 | 成都飞机工业(集团)有限责任公司 | 一种便携式地面在线飞行仿真系统 |
CN108650111A (zh) * | 2018-03-29 | 2018-10-12 | 中国电力科学研究院有限公司 | 信息安全电力半实物仿真平台搭建方法及系统 |
CN108776621A (zh) * | 2018-05-31 | 2018-11-09 | 迈克医疗电子有限公司 | 软件架构中层级间的通信方法及装置 |
CN109740224A (zh) * | 2018-12-25 | 2019-05-10 | 哈尔滨工业大学 | 一种基于labwindows+RTX的垂直起降运载器半实物仿真平台及仿真方法 |
CN110674590A (zh) * | 2019-10-07 | 2020-01-10 | 中国人民解放军陆军装甲兵学院 | 一种基于仿真软件Simulink实时扩展RTX的飞行器实时仿真程序的编程方法 |
CN111381980A (zh) * | 2020-02-12 | 2020-07-07 | 上海机电工程研究所 | 用于混合仿真的互联系统、方法 |
CN112131741A (zh) * | 2020-09-22 | 2020-12-25 | 西安电子科技大学 | 一种实时双内核单机半实物仿真架构及仿真方法 |
-
2021
- 2021-04-28 CN CN202110478858.9A patent/CN113110108A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
CN1828617A (zh) * | 2006-03-31 | 2006-09-06 | 电子科技大学 | 一种软硬件协同仿真/验证系统及矢量模式仿真/验证方法 |
CN103744726A (zh) * | 2014-01-02 | 2014-04-23 | 西北工业大学 | 一种Windows系统实时扩展的两级调度方法 |
CN103926841A (zh) * | 2014-03-27 | 2014-07-16 | 中国科学院长春光学精密机械与物理研究所 | 基于rtx+rfm的实时半实物仿真计算机控制系统 |
CN103957372A (zh) * | 2014-05-13 | 2014-07-30 | 吉林建筑大学 | 基于Windows+RTX的实时图像采集处理系统 |
CN105808799A (zh) * | 2014-12-30 | 2016-07-27 | 北京航天测控技术有限公司 | 一种rtx环境下通用测试软件及其测试方法 |
CN107942720A (zh) * | 2017-09-30 | 2018-04-20 | 成都飞机工业(集团)有限责任公司 | 一种便携式地面在线飞行仿真系统 |
CN108650111A (zh) * | 2018-03-29 | 2018-10-12 | 中国电力科学研究院有限公司 | 信息安全电力半实物仿真平台搭建方法及系统 |
CN108776621A (zh) * | 2018-05-31 | 2018-11-09 | 迈克医疗电子有限公司 | 软件架构中层级间的通信方法及装置 |
CN109740224A (zh) * | 2018-12-25 | 2019-05-10 | 哈尔滨工业大学 | 一种基于labwindows+RTX的垂直起降运载器半实物仿真平台及仿真方法 |
CN110674590A (zh) * | 2019-10-07 | 2020-01-10 | 中国人民解放军陆军装甲兵学院 | 一种基于仿真软件Simulink实时扩展RTX的飞行器实时仿真程序的编程方法 |
CN111381980A (zh) * | 2020-02-12 | 2020-07-07 | 上海机电工程研究所 | 用于混合仿真的互联系统、方法 |
CN112131741A (zh) * | 2020-09-22 | 2020-12-25 | 西安电子科技大学 | 一种实时双内核单机半实物仿真架构及仿真方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4936517B2 (ja) | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ | |
CN100530102C (zh) | 用于在64位x86处理器上运行传统32位x86虚拟机的系统和方法 | |
CN112199173B (zh) | 双核cpu实时操作系统数据处理方法 | |
US9274831B2 (en) | Information processing apparatus, information processing method, and storage medium | |
JPWO2013065687A1 (ja) | プロセッサシステム及びアクセラレータ | |
US9830157B2 (en) | System and method for selectively delaying execution of an operation based on a search for uncompleted predicate operations in processor-associated queues | |
Toi et al. | Optimizing time and space multiplexed computation in a dynamically reconfigurable processor | |
CN109656868B (zh) | 一种cpu与gpu之间的内存数据转移方法 | |
Owaida et al. | Massively parallel programming models used as hardware description languages: The OpenCL case | |
EP2652616A1 (en) | Methods and systems for synchronous operation of a processing device | |
Pazzaglia et al. | Optimizing inter-core communications under the LET paradigm using DMA engines | |
US11366690B2 (en) | Scheduling commands in a virtual computing environment | |
CN112948136A (zh) | 一种嵌入式操作系统异步日志记录的实现方法 | |
CN113110108A (zh) | 一种三层结构保障半实物仿真实时性的实现方法 | |
US20150287157A1 (en) | Data processing system for a graphical interface and graphical interface comprising such a data processing system | |
CN116126459A (zh) | 一种面向异构计算环境的fpga虚拟化实现方法 | |
Yoshinaka et al. | Model-based development considering self-driving systems for many-core processors | |
Pereira et al. | Co-designed FreeRTOS deployed on FPGA | |
US10261817B2 (en) | System on a chip and method for a controller supported virtual machine monitor | |
US7475001B2 (en) | Software package definition for PPU enabled system | |
CN110262884B (zh) | 一种基于申威众核处理器的核组内多程序多数据流分区并行的运行方法 | |
Fort et al. | Code generation for multi-phase tasks on a multi-core distributed memory platform | |
WO2021013727A1 (en) | Processor | |
CN110221861A (zh) | 一种cpu新型寄存器体系结构及其中断处理方法 | |
Saldaña et al. | Using partial reconfiguration in an embedded message-passing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210713 |