CN101887378A - 一种半实物实时仿真机和半实物实时仿真系统 - Google Patents
一种半实物实时仿真机和半实物实时仿真系统 Download PDFInfo
- Publication number
- CN101887378A CN101887378A CN2010102024801A CN201010202480A CN101887378A CN 101887378 A CN101887378 A CN 101887378A CN 2010102024801 A CN2010102024801 A CN 2010102024801A CN 201010202480 A CN201010202480 A CN 201010202480A CN 101887378 A CN101887378 A CN 101887378A
- Authority
- CN
- China
- Prior art keywords
- real
- time
- steering order
- unit
- time process
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种半实物实时仿真机和半实物实时仿真系统,仿真机包括:实时内核单元,执行实时进程,调用实时进程中的第一控制指令;实时进程包含有完成仿真模型所需要的业务逻辑;实时进程管理仿真模型在实时内核单元内运行时的资源和业务逻辑;Linux内核单元,执行非实时进程,并调用非实时进程中的第二控制指令;非实时进程包含有完成具体的应用任务所需要的业务逻辑和资源;实时中断处理单元,在接到各种控制指令之后,对控制指令的类型进行判别。本发明中将来自Linux操作系统的第二控制指令的优先级降低,则运行在Linux操作系统的非实时进程经过仲裁之后总是让位于实时操作系统中的实时进程,保证了实时性也兼容了Linux操作系统的各种资源。
Description
技术领域
本发明涉及仿真技术,特别是指一种半实物实时仿真机和半实物实时仿真系统。
背景技术
仿真机主要用于对人员进行培训,或者用于工程设计、工程调试和工程分析用途。仿真机包括计算机系统、机组控制操作台和操作站、I/O接口等在内的硬件设备以及软件;其中,硬件是仿真机的物理基础,而硬件的运行是由软件驱动实现的;不同的软件具有不同的用途,系统软件用于管理仿真机的各种资源;仿真应用软件、驱动软件,用于驱动仿真机的各个硬件设备;工具软件,包括如Borland C++、Visual C++、FoxPro等,用来编制如分布式控制系统(DCS)、数字电调系统(DEH)等的应用程序。
其中,仿真机的系统软件称为实时操作系统(RTOS,Real-Time OperatingSystem),是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其本质特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。实时操作系统是保证在一定时间限制内完成特定功能的操作系统,例如,为确保生产线上的机器人能获取某个物体而设计的一个操作系统中,如果该操作系统是硬实时操作系统,如果不能在允许时间内使物体到达相应的位置,生产线的工作过程将因错误结束;与之相对比的是在软实时操作系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢。
发明人在实现本发明的过程中,发现现有技术中至少存在如下问题:各种现有的仿真机不支持实时Linux技术,无法应用Linux现有的各种资源;而由于无法应用Linux提供的各种资源,导致在现有的仿真机上扩展板卡非常的困难,而且成本非常昂贵,并且由于板卡驱动没有稳定的版本,需要技术人员重新定制甚至重新开发,为用户增加了很多额外的技术和资金风险。
发明内容
本发明的目的是提供一种半实物实时仿真机和半实物实时仿真系统,用于为用户提供一种基于Linux技术实现的仿真机,解决现有技术中,各种现有的仿真机不支持实时Linux技术,无法应用Linux操作系统现有的各种资源的缺陷。
一种半实物实时仿真机,包括:实时内核单元201,用于执行实时进程,并调用所述实时进程中的第一控制指令;所述实时进程包含有完成具体的仿真模型所需要的业务逻辑;所述实时进程管理仿真模型在所述实时内核单元201内运行时的资源和业务逻辑;Linux内核单元202,用于执行非实时进程,并调用所述非实时进程中的第二控制指令;所述非实时进程包含有完成具体的应用任务所需要的业务逻辑和资源;实时中断处理单元203,用于在接到各种控制指令之后,对所述控制指令的类型进行判别;当所述控制指令为第一控制指令时,设定该第一控制指令具有第一优先级,当所述控制指令为第二控制指令时,设定该第二控制指令具有第二优先级;且所述第一优先级的级别高于所述第二优先级;处理器单元204,用于处理解析所述控制指令并生成操作指令发送;板卡接口单元200,与实物连接,用于采集仿真过程中所述实物生成的数据,将所述数据发送给实时内核单元201的实时进程。
上述仿真机,还包括:编程接口单元205,用于为实时内核单元201中的实时任务/实时进程提供实时编程接口;所述实时编程接口至少兼容了POSIXUNIX和POSIX实时系统接口;编译器单元206,用于支持能够在UNIX/Linux操作系统中运行的任何编译器。
上述仿真机,还包括:通用驱动支持单元207,用于存放并调用通用硬件的各种驱动,并且提供与各种驱动对应的驱动接口;其中,所述驱动接口采用C语言或者C++语言编写,并且该驱动接口符合Linux规范;前端接入单元209,用于支持所述仿真机与用户端101之间构成主机-目标机模型;其中,用户端101为主机,支持基于Matlab、Simulink,以及SystemBuild程序建立仿真模型;所述仿真机102为目标机,基于所述板卡接口单元200采集的数据在所述仿真模型中进行仿真运算;所述用户端101通过网络和仿真机102进行通信。
上述仿真机,还包括:并行仿真单元208,用于在多个处理器单元204中确定控制节点,主计算节点,从计算节点,输出显示节点;将仿真模型切分为不同的子任务,将不同的子任务分配给上述节点。
一种半实物实时仿真系统,包括:用户端101,用于支持各种应用程序的运行,通过界面实现与用户之间的交互,并包含至少一个仿真集成开发单元,该仿真集成开发单元用于为用户提供开发环境,使得用户能够在这一开发环境中通过输入程序语言编写相应的程序/业务逻辑;半实物实时仿真机102,包括:实时内核单元201,用于执行实时进程,并调用所述实时进程中的第一控制指令;所述实时进程包含有完成具体的仿真模型所需要的业务逻辑;所述实时进程管理仿真模型在所述实时内核单元201内运行时的资源和业务逻辑;Linux内核单元202,用于执行非实时进程,并调用所述非实时进程中的第二控制指令;所述非实时进程包含有完成具体的应用任务所需要的业务逻辑和资源;实时中断处理单元203,用于在接到控制指令之后,对所述控制指令的类型进行判别;当所述控制指令为第一控制指令时,设定该第一控制指令具有第一优先级,当所述控制指令为第二控制指令时,设定该第二控制指令具有第二优先级;且所述第一优先级的级别高于所述第二优先级;处理器单元204,用于处理解析所述控制指令并生成操作指令发送;板卡接口单元200,与实物连接,用于采集仿真过程中所述实物生成的数据,将所述数据发送给实时内核单元201的实时进程。
上述的实时仿真系统中,半实物实时仿真机102还包括:前端接入单元209,用于支持所述仿真机与用户端101之间构成主机-目标机模型;其中,用户端101为主机,支持基于Matlab、Simulink,以及SystemBuild程序建立仿真模型;所述仿真机102为目标机,基于所述板卡接口单元200采集的数据在所述仿真模型中进行仿真运算;所述用户端101通过网络和仿真机102进行通信。
上述的实时仿真系统中,用户端101还包括:仿真开发环境单元301,用于为用户提供一个仿真开发环境,该仿真开发环境运行在第一操作系统上;所述第一操作系统为通用操作系统。
一种多核/多机并行半实物实时仿真系统,包括:实时内核单元201,用于执行实时进程,并调用所述实时进程中的第一控制指令;所述实时进程包含有完成具体的仿真模型所需要的业务逻辑;所述实时进程管理仿真模型在所述实时内核单元201内运行时的资源和业务逻辑;Linux内核单元202,用于执行非实时进程,并调用所述非实时进程中的第二控制指令;所述非实时进程包含有完成具体的应用任务所需要的业务逻辑和资源;实时中断处理单元203,用于在接到控制指令之后,对所述控制指令的类型进行判别;当所述控制指令为第一控制指令时,设定该第一控制指令具有第一优先级,当所述控制指令为第二控制指令时,设定该第二控制指令具有第二优先级;且所述第一优先级的级别高于所述第二优先级;处理器单元204,用于处理解析所述控制指令并生成操作指令发送;板卡接口单元200,与实物连接,用于采集仿真过程中所述实物生成的数据,将所述数据发送给实时内核单元201的实时进程;并行仿真单元208,用于在多个处理器单元204中确定控制节点,主计算节点,从计算节点,输出显示节点;将仿真模型切分为不同的子任务,将不同的子任务分配给上述节点;或者,在多个半实物实时仿真机102中确定控制节点,主计算节点,从计算节点,输出显示节点;将仿真模型切分为不同的子任务,将不同的子任务分配给上述节点。
上述的仿真系统,还包括:消息传递并行程序设计接口,用于支持在多核之间,或者多机之间传递消息;包括三层结构,最上层提供API实现点到点通信,以及在点到点通信基础上构造的集群通信;中间层是抽象设备接口层,是对各种不同的底层通信库的不同接口的统一标准;底层是底层通信库。
上述的仿真系统,还包括:并行多机任务分配单元,用于将不同的仿真模型分配给不同的半实物实时仿真机102。
应用本发明提供的技术方案,将来自非实时Linux操作系统的第二控制指令的优先级降低,这样,则运行在Linux操作系统的非实时进程在经过实时中断处理单元的仲裁之后,总是让位于实时操作系统中的实时进程,既保证了实时性,同时也能够兼容利用Linux操作系统的各种资源,得以能够支持任何Linux驱动以及板卡。
附图说明
图1为本发明半实物实时仿真机应用环境示意图;
图2为本发明半实物实时仿真机结构示意图一;
图3为本发明半实物实时仿真机结构示意图二;
图4为本发明半实物实时仿真机结构示意图三;
图5为本发明一种半实物实时仿真系统结构示意图;
图6为本发明一种并行计算的半实物实时仿真系统示意图。
具体实施方式
为使本发明的目的、技术特征和实施效果更加清楚,下面将结合附图及具体实施例对本发明的技术方案进行详细描述。本发明提供的实施例中,引进了先进的实时技术和半实物实时仿真平台。基于通用CPU技术的迅猛发展,尤其是在多核方面取得的长足发展,提出了一种基于通用CPU技术的可扩展性强的半实物仿真系统。
如图1所示,在使用到仿真机的工作环境中,用户端101、半实物实时仿真机102与仿真实物103连接在一起,用户在用户端101输入实时任务或仿真模型,该实时任务或仿真模型包含控制指令,由半实物实时仿真机102解析控制指令,并生成操作指令发送给仿真实物103,由仿真实物103具体执行操作指令,作出相应的响应动作。
一种半实物实时仿真机,如图2所示,包括:
实时内核单元201,用于执行实时进程,并调用所述实时进程中的第一控制指令;所述实时进程包含有完成具体的仿真模型所需要的业务逻辑;该业务逻辑一般而言由完成该仿真模型的操作步骤形成;所述实时进程管理仿真模型在所述实时内核单元201内运行时的资源和业务逻辑;
Linux内核单元202,用于执行非实时进程,并调用所述非实时进程中的第二控制指令;所述非实时进程包含有完成具体的应用任务所需要的业务逻辑和资源;
实时中断处理单元203,用于在接到控制指令之后,对所述控制指令的类型进行判别;当所述控制指令为第一控制指令时,设定该第一控制指令具有第一优先级,当所述控制指令为第二控制指令时,设定该第二控制指令具有第二优先级;且所述第一优先级优先于所述第二优先级;
处理器单元204,用于处理解析所述控制指令并生成操作指令发送;
板卡接口单元200,与实物连接,用于采集仿真过程中所述实物生成的数据,将所述数据发送给实时内核单元201的所述实时进程。该实时进程将这些数据代入仿真模型中进行运算。
应用所提供的技术方案,将来自Linux内核单元202的第二控制指令的优先级降低,这样,则运行在Linux内核单元202的非实时进程在经过实时中断处理单元203的仲裁之后,总是让位于实时内核单元201中的实时进程,既保证了实时性,同时也兼容了Linux操作系统,所以支持任何Linux操作系统下能够工作的驱动以及板卡。其中,Linux内核单元202是通用Linux操作系统的内核,可以完成Linux操作系统的各种功能,其所能够执行的非实时进程与通用Linux操作系统中能够执行的各种进程相同。
可见,实时仿真机能够在源代码层面兼容支持Linux设备,驱动和板卡。因而可充分利用Linux下的各种板卡接口单元(习惯称之为:数据采集卡)200,及各类硬件设备。很多用户使用Fortran语言来进行大规模实时仿真计算的编程,但是在目前的仿真机中很难支持Fortran语言,导致在使用Fortran语言的过程中调试运行容易出错误。为解决上述问题,如图3所示,半实物实时仿真机中还可以包括:
编程接口单元205,用于为实时内核单元201中运行的实时任务/实时进程提供实时编程接口;所述实时编程接口至少兼容了POSIX UNIX和POSIX实时系统接口。这样基于UNIX/Linux系统运行的大量的程序都可以直接使用,减少了研发工作量。
编译器单元206,用于支持Intel Fortran高性能编译器,GNU Fortran编译器,以及在UNIX/Linux系统中可以运行的任何编译器。
基于实时Linux的仿真系统与现有仿真系统对比如下:
RTLIMIT实时仿真机 | dSpace实时仿真机 | ADI实时仿真机 | ConcurrentiHawk实时仿真机 | |
支持芯片 | 支持Intel,AMD通用硬件平台 | 专用硬件平台 | 专用硬件平台 | 支持Intel,AMD通用硬件平台 |
实时操作系统 | 支持高性能VIRT硬实时操作系统 | 支持QNX硬实时操作系统 | 支持QNX硬实时操作系统 | 支持Red HatiHawk软实时操作系统 |
支持并行仿真 | 支持多CPU,多节点并行,分布式仿真 | 支持分布式仿真 | 支持分布式仿真 | 支持多CPU,多节点并行,分布式仿真 |
支持外围硬件板卡 | 支持Linux支持的一切外围硬件,充分利用Linux成熟的板卡驱动 | 支持有限的外围板卡。对于外围板卡需要重新写实时驱动,稳定性难以保证 | 支持有限的外围板卡。对于外围板卡需要重新写实时驱动,稳定性难以保证 | 外围系统硬件驱动是软实时系统 |
支持Matlab,Simulink,RTW前端仿真 | 支持前端模型仿真 | 支持前端模型仿真 | 支持前端模型仿真 | 支持前端模型仿真 |
高级底层仿真 | 支持直接C/C++/Fortran仿真 | 不支持 | 支持 | 不支持 |
前端开发环境 | 支持Windows,Linux | 支持Windows | 支持Soloris | 支持Windows,Linux |
RTLIMIT实时仿真机 | dSpace实时仿真机 | ADI实时仿真机 | ConcurrentiHawk实时仿真机 | |
系统中断延迟 | 5微秒 | 8微秒 | 7微秒 | 90%情况60微秒10%情况>1000微秒 |
系统总的延迟 | 12 | 16 | 18 | 90%情况100微秒 |
开发难度 | 使用Windows开发,有集成开发环境,开发使用简单 | 使用Windows开发,有集成开发环境,开发使用简单 | 开发学习难度最大 | 开发学习难度大 |
仿真机灵活性 | 根据客户需求灵活配置 | 不能非常灵活的配置 | 不能非常灵活的配置 | 不能非常灵活的配置 |
技术服务支持 | 提供24小时内快速的本地技术和服务支持 | 只是支持简单的技术支持,时间周期长。 | 只是支持简单的技术支持,时间周期长。 | 只是支持简单的技术支持,时间周期长。 |
如图4所示,半实物实时仿真机中102还可以包括:
通用驱动支持单元207,用于存放各种硬件的驱动程序,并且提供与各种驱动对应的各种驱动接口,其中,驱动接口采用C语言或者C++语言编写,并且符合Linux规范。具体而言,Linux巨大的市场商机使开放源代码开发实验室(OSDL)及其成员-不同的电信设备制造商等共同启动了CGL(Carrier GradeLinux)项目,通过基于Linux平台研发电信行业关键任务的应用技术规范,为电信市场提供高稳定性、高安全性、高质量、高性能和高可用性的Linux平台,为Linux电信级应用扫清障碍。
CGL是OSDL发布的一个电信运营级Linux规范。CGL1.1标准于2002年7月发布,该规范包括一系列的技术要求和建议标准,其中明确规定了符合电信级客户需求的操作系统的应用特性,Linux企业可以根据这些规范保证自己的Linux产品能够为电信运营商所采用。
实时仿真具有硬实时操作系统的特性,因此,需要保证仿真模型的计算结果在预先设定的时间内得出,为此,在仿真机中通过设置多核或者在仿真系统中通过设置多仿真机协同计算来保障硬实时性,为此仿真机中还包含并行仿真单元208。
前端接入单元209,用于支持仿真机102与用户端101之间构成主机-目标机(Host-Target)模型;其中,用户端101为主机,支持基于Matlab、Simulink,以及SystemBuild程序建立仿真模型;仿真机102为目标机,基于板卡接口单元200采集的数据在所述仿真模型中进行仿真运算;用户端101通过网络和仿真机102进行通信。半实物实时仿真机102支持和Matlab,Simulink,SystemBuild等软件之间的无缝融合,用户可以在用户端101的通用操作系统(General OS,例如Window)上,利用Matlab中的多领域仿真和基于模型的设计工具(Simulink和RTW工具包)进行实时仿真模型的研发;提供Eclipse图形界面开发工具MainControl前端控制面板,可以实时的观察实时仿真机的数据显示,动态的设置实时仿真机的参数等。仿真支持语言为C,C++,VC,Fortran,Ada,Simulink,Matlab,SystemBuild,虚拟仪器(LabVIEW,Laboratory Virtualinstrument Engineering Workbench)等。
如图4所示的半实物实时仿真机中,存在多个处理器单元204,这些处理器单元204处于并行工作状态以提高半实物实时仿真机的工作性能。这种多核工作模式的半实物实时仿真机,主要用于大规模科学实时计算,电力,电子数字仿真,核武器仿真和对计算量要求非常大的环境。因此,仿真机102中还包括:
并行仿真单元208,用于在多个处理器单元204中确定控制节点,主计算节点,从计算节点,输出显示节点;将仿真模型切分为不同的子任务,将不同的子任务分配给上述节点。其中,控制节点,主计算节点,从计算节点,输出显示节点对应完成仿真模型中不同的子任务;例如,控制节点负责完成对整个仿真模型的业务逻辑-工作步骤的控制,主计算节点完成核心的主要计算任务,从计算节点完成非主要计算任务,输出显示节点用于实现显示功能或者与其他设备的通信。
应用所提供的技术方案,继承了目前实时仿真系统的优势,比如,通用驱动支持单元207支持大量的外设接口,编程接口单元205支持灵活的编程接口,对外围的硬件响应控制在1微秒以内,也避免了目前实时仿真机的一些缺点。在上述实时仿真机中,使用了大量成熟稳定的商业驱动和硬件,使用了目前成熟的虚拟化实时技术,兼容了Linux操作系统,所以任何板卡的Linux驱动都可以在本发明提供的实时仿真系统上得到使用。
本发明还提供了一种半实物实时仿真系统,如图5所示,包括:
用户端101,用于支持各种应用程序的运行,通过界面实现与用户之间的交互,并包含至少一个仿真集成开发单元,该仿真集成开发单元用于为用户提供开发环境,使得用户能够在这一开发环境中通过输入程序语言编写相应的程序/业务逻辑。
半实物实时仿真机102,包括:
实时内核单元201,用于执行实时进程,并调用所述实时进程中的第一控制指令;所述实时进程包含有完成具体的仿真模型所需要的业务逻辑;
Linux内核单元202,用于执行非实时进程,并调用所述非实时进程中的第二控制指令;所述非实时进程包含有完成具体的应用任务所需要的业务逻辑;
实时中断处理单元203,用于在接到控制指令之后,对所述控制指令的类型进行判别;当所述控制指令为第一控制指令时,设定该第一控制指令具有第一优先级,当所述控制指令为第二控制指令时,设定该第二控制指令具有第二优先级;且所述第一优先级优先于所述第二优先级;
处理器单元204,用于处理解析所述控制指令并生成操作指令发送;
板卡接口单元200,与实物连接,用于采集仿真过程中所述实物生成的数据,将所述数据发送给实时内核单元201的实时进程。
应用所提供的技术方案,将来自Linux内核单元202的第二控制指令的优先级降低,则运行在Linux内核单元202的非实时进程在经过实时中断处理单元203的仲裁之后,总是让位于实时内核单元201中的实时进程,既保证了实时性,同时也兼容了Linux系统,所以支持任何Linux驱动以及板卡。因此,在本发明提供的仿真机上,由于支持Linux技术,能够应用Linux现有的各种资源,这样在UNIX/Linux下面大量的程序都可以直接使用,减少了大量的工作量。
半实物实时仿真机102还包括:前端接入单元209,用于支持所述仿真机与用户端101之间构成主机-目标机模型;其中,用户端101为主机,支持基于Matlab、Simulink,以及SystemBuild程序建立仿真模型;所述仿真机102为目标机,基于所述板卡接口单元200采集的数据在所述仿真模型中进行仿真运算;所述用户端101通过网络和仿真机102进行通信。
为了给用户提供更友好的开发环境,本发明的实施例中,在用户端101进行优化,因此,所述用户端101支持运行第一操作系统,并且还包括:
仿真开发环境单元301,用于为用户提供一个仿真开发环境,该仿真开发环境运行在第一操作系统上。具体而言,第一操作系统通常是Window、Linux、Mac OS等等。仿真开发环境可以是Matlab,则用户只需要在Window上利用Matlab中的simulink和RTW进行实时仿真程序开发。同时也支持仿真开发环境LabVIEW进行实时仿真。
如此,则整个实时仿真系统中,采用Matlab/LabVIEW进行前端仿真模型设计,然后控制实时控制软件把模型转化为相应的实时代码,自动在实时仿真机上运行。调试。测试等。整个系统全部在Windows系统中全部完成。无须用户具有实时系统的专业知识,只需要会使用Matlab/LabVIEW进行前端设计即可。方便用户使用。
大规模并行计算实时仿真机主要用于大规模科学实时计算,电力,电子数字仿真,核武器仿真和对计算量要求非常大的环境。为此,如图6所示,还提供了一种多核/多机并行半实物实时仿真系统,其中,存在多个半实物实时仿真机102;每一个半实物实时仿真机102中,包括:
实时内核单元201,用于执行实时进程,并调用所述实时进程中的第一控制指令;所述实时进程包含有完成具体的仿真模型所需要的业务逻辑;该业务逻辑一般而言由完成该仿真模型的操作步骤形成;所述实时进程管理仿真模型在所述实时内核单元201内运行时的资源和业务逻辑;
Linux内核单元202,用于执行非实时进程,并调用所述非实时进程中的第二控制指令;所述非实时进程包含有完成具体的应用任务所需要的业务逻辑和资源;
实时中断处理单元203,用于在接到控制指令之后,对所述控制指令的类型进行判别;当所述控制指令为第一控制指令时,设定该第一控制指令具有第一优先级,当所述控制指令为第二控制指令时,设定该第二控制指令具有第二优先级;且所述第一优先级优先于所述第二优先级;
处理器单元204,用于处理解析所述控制指令并生成操作指令发送;
板卡接口单元200,与实物连接,用于采集仿真过程中所述实物生成的数据,将所述数据发送给实时内核单元201的所述实时进程。该实时进程将这些数据代入仿真模型中进行运算。以及,
并行仿真单元208,用于在多个处理器单元204中确定控制节点,主计算节点,从计算节点,输出显示节点;将仿真模型切分为不同的子任务,将不同的子任务分配给上述节点;
或者,
在多个半实物实时仿真机102中确定控制节点,主计算节点,从计算节点,输出显示节点;将仿真模型切分为不同的子任务,将不同的子任务分配给上述节点。其中,控制节点,主计算节点,从计算节点,输出显示节点对应完成仿真模型中不同的子任务;例如,控制节点负责完成对整个仿真模型的业务逻辑-工作步骤的控制,主计算节点完成核心的主要计算任务,从计算节点完成非主要计算任务,输出显示节点用于实现显示功能或者与其他设备的通信。
应用所提供的技术方案,能够支持多台半实物实时仿真机102并行的处理复杂的仿真模型。由于个体半实物实时仿真机102计算能力的限制,单台半实物实时仿真机102难以计算复杂的仿真模型,所以这里提供多台半实物实时仿真机102并行仿真复杂模型的方式,多台半实物实时仿真机102之间通过反射内存卡等网络进行连接以及通信。
并且,为了使得各个半实物实时仿真机102之间能够实现协同工作,仿真系统还包括:
消息传递并行程序设计接口,用于支持在多核之间,或者多机之间传递消息;消息传递并行程序设计接口包括三层结构,最上层提供应用程序编程接口(API,Application Programming Interface)实现点到点通信,以及在点到点通信基础上构造的集群通信(Collective Communication);中间层是抽象设备接口层(ADI,Abstract Device Interface),是对各种不同的底层通信库的不同接口的统一标准;底层是底层通信库。
还包括:
并行多机任务分配单元,用于将不同的仿真模型分配给不同的半实物实时仿真机102。这些分配到仿真模型的半实物实时仿真机102,如果是多核仿真机,则通过其并行仿真单元208将仿真模型切分为不同的子任务,将不同的子任务分配给上述节点。
对于多核/多机并行半实物实时仿真系统而言,可以出现如下的工作方式:
(1)一台半实物实时仿真机102单独工作,且该半实物实时仿真机102是单核仿真机。
(2)一台半实物实时仿真机102单独工作,且该半实物实时仿真机102是多核仿真机,内置有并行仿真单元208用于在多核之间分配子任务。
(3)多台半实物实时仿真机102协同工作,且每台半实物实时仿真机102均是单核仿真机。并行多机任务分配单元将不同的仿真模型分配给不同的半实物实时仿真机102。
(4)多台半实物实时仿真机102协同工作,且至少一台半实物实时仿真机102是多核仿真机。并行多机任务分配单元将不同的仿真模型分配给不同的半实物实时仿真机102。并且在多核仿真机中,并行仿真单元208用于在多核之间分配子任务。
提供上述工作方式供技术人员参考,但不用于限定本发明的发明思想。
应用所提供的技术方案,能够进行模型分割和安排不同模型运行到不同的仿真机上的能力;可以大规模的提供仿真机的仿真计算能力;支持不同仿真方式在不同仿真机器上运行;支持实时MPI并行仿真库;支持单机多核仿真方式和多机多核的方式仿真。
本发明的实施例具有以下有益效果,将来自Linux内核单元202的第二控制指令的优先级降低,则运行在Linux内核单元202的非实时进程在经过实时中断处理单元203的仲裁之后,总是让位于实时内核单元201中的实时进程,既保证了实时性,同时也兼容了Linux系统,所以支持任何Linux驱动以及板卡。因此,在本发明提供的仿真机上,由于支持Linux技术,能够应用Linux现有的各种资源,这样在UNIX/Linux下面大量的程序都可以直接使用,减少了大量的工作量。
应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,所有的参数取值可以根据实际情况调整,且在该权利保护范围内。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种半实物实时仿真机,其特征在于,包括:
实时内核单元(201),用于执行实时进程,并调用所述实时进程中的第一控制指令;所述实时进程包含有完成具体的仿真模型所需要的业务逻辑;所述实时进程管理仿真模型在所述实时内核单元(201)内运行时的资源和业务逻辑;
Linux内核单元(202),用于执行非实时进程,并调用所述非实时进程中的第二控制指令;所述非实时进程包含有完成具体的应用任务所需要的业务逻辑和资源;
实时中断处理单元(203),用于在接到各种控制指令之后,对所述控制指令的类型进行判别;当所述控制指令为第一控制指令时,设定该第一控制指令具有第一优先级,当所述控制指令为第二控制指令时,设定该第二控制指令具有第二优先级;且所述第一优先级的级别高于所述第二优先级;
处理器单元(204),用于处理解析所述控制指令并生成操作指令发送;
板卡接口单元(200),与实物连接,用于采集仿真过程中所述实物生成的数据,将所述数据发送给实时内核单元(201)的实时进程。
2.根据权利要求1所述的仿真机,其特征在于,还包括:
编程接口单元(205),用于为实时内核单元(201)中的实时任务/实时进程提供实时编程接口;所述实时编程接口至少兼容了POSIX UNIX和POSIX实时系统接口;
编译器单元(206),用于支持能够在UNIX/Linux操作系统中运行的任何编译器。
3.根据权利要求1所述的仿真机,其特征在于,还包括:
通用驱动支持单元(207),用于存放并调用通用硬件的各种驱动,并且提供与各种驱动对应的驱动接口;其中,所述驱动接口采用C语言或者C++语言编写,并且该驱动接口符合Linux规范;
前端接入单元(209),用于支持所述仿真机与用户端(101)之间构成主机-目标机模型;其中,用户端(101)为主机,支持基于Matlab、Simulink,以及SystemBuild程序建立仿真模型;所述仿真机(102)为目标机,基于所述板卡接口单元(200)采集的数据在所述仿真模型中进行仿真运算;所述用户端(101)通过网络和仿真机(102)进行通信。
4.根据权利要求1所述的仿真机,其特征在于,还包括:
并行仿真单元(208),用于在多个处理器单元(204)中确定控制节点,主计算节点,从计算节点,输出显示节点;将仿真模型切分为不同的子任务,将不同的子任务分配给上述节点。
5.一种半实物实时仿真系统,其特征在于,包括:
用户端(101),用于支持各种应用程序的运行,通过界面实现与用户之间的交互,并包含至少一个仿真集成开发单元,该仿真集成开发单元用于为用户提供开发环境,使得用户能够在这一开发环境中通过输入程序语言编写相应的程序/业务逻辑;
半实物实时仿真机(102),包括:
实时内核单元(201),用于执行实时进程,并调用所述实时进程中的第一控制指令;所述实时进程包含有完成具体的仿真模型所需要的业务逻辑;所述实时进程管理仿真模型在所述实时内核单元(201)内运行时的资源和业务逻辑;
Linux内核单元(202),用于执行非实时进程,并调用所述非实时进程中的第二控制指令;所述非实时进程包含有完成具体的应用任务所需要的业务逻辑和资源;
实时中断处理单元(203),用于在接到控制指令之后,对所述控制指令的类型进行判别;当所述控制指令为第一控制指令时,设定该第一控制指令具有第一优先级,当所述控制指令为第二控制指令时,设定该第二控制指令具有第二优先级;且所述第一优先级的级别高于所述第二优先级;
处理器单元(204),用于处理解析所述控制指令并生成操作指令发送;
板卡接口单元(200),与实物连接,用于采集仿真过程中所述实物生成的数据,将所述数据发送给实时内核单元(201)的实时进程。
6.根据权利要求5所述的实时仿真系统,其特征在于,半实物实时仿真机(102)还包括:
前端接入单元(209),用于支持所述仿真机与用户端(101)之间构成主机-目标机模型;其中,用户端(101)为主机,支持基于Matlab、Simulink,以及SystemBuild程序建立仿真模型;所述仿真机(102)为目标机,基于所述板卡接口单元(200)采集的数据在所述仿真模型中进行仿真运算;所述用户端(101)通过网络和仿真机(102)进行通信。
7.根据权利要求6所述的实时仿真系统,其特征在于,用户端(101)还包括:
仿真开发环境单元(301),用于为用户提供一个仿真开发环境,该仿真开发环境运行在第一操作系统上;所述第一操作系统为通用操作系统。
8.一种多核/多机并行半实物实时仿真系统,其特征在于,包括:
实时内核单元(201),用于执行实时进程,并调用所述实时进程中的第一控制指令;所述实时进程包含有完成具体的仿真模型所需要的业务逻辑;所述实时进程管理仿真模型在所述实时内核单元(201)内运行时的资源和业务逻辑;
Linux内核单元(202),用于执行非实时进程,并调用所述非实时进程中的第二控制指令;所述非实时进程包含有完成具体的应用任务所需要的业务逻辑和资源;
实时中断处理单元(203),用于在接到控制指令之后,对所述控制指令的类型进行判别;当所述控制指令为第一控制指令时,设定该第一控制指令具有第一优先级,当所述控制指令为第二控制指令时,设定该第二控制指令具有第二优先级;且所述第一优先级的级别高于所述第二优先级;
处理器单元(204),用于处理解析所述控制指令并生成操作指令发送;
板卡接口单元(200),与实物连接,用于采集仿真过程中所述实物生成的数据,将所述数据发送给实时内核单元(201)的实时进程;
并行仿真单元(208),用于在多个处理器单元(204)中确定控制节点,主计算节点,从计算节点,输出显示节点;将仿真模型切分为不同的子任务,将不同的子任务分配给上述节点;
或者,
在多个半实物实时仿真机(102)中确定控制节点,主计算节点,从计算节点,输出显示节点;将仿真模型切分为不同的子任务,将不同的子任务分配给上述节点。
9.根据权利要求8所述的仿真系统,其特征在于,还包括:
消息传递并行程序设计接口,用于支持在多核之间,或者多机之间传递消息;
包括三层结构,最上层提供API实现点到点通信,以及在点到点通信基础上构造的集群通信;中间层是抽象设备接口层,是对各种不同的底层通信库的不同接口的统一标准;底层是底层通信库。
10.根据权利要求8所述的仿真系统,其特征在于,还包括:
并行多机任务分配单元,用于将不同的仿真模型分配给不同的半实物实时仿真机(102)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102024801A CN101887378A (zh) | 2010-06-18 | 2010-06-18 | 一种半实物实时仿真机和半实物实时仿真系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102024801A CN101887378A (zh) | 2010-06-18 | 2010-06-18 | 一种半实物实时仿真机和半实物实时仿真系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101887378A true CN101887378A (zh) | 2010-11-17 |
Family
ID=43073307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102024801A Pending CN101887378A (zh) | 2010-06-18 | 2010-06-18 | 一种半实物实时仿真机和半实物实时仿真系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101887378A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102621962A (zh) * | 2012-03-31 | 2012-08-01 | 林德福 | 半实物仿真用中央控制系统 |
CN103077068A (zh) * | 2012-12-27 | 2013-05-01 | 北京仿真中心 | 一种基于共享内存的高性能仿真系统实现方法 |
CN103823706A (zh) * | 2014-02-12 | 2014-05-28 | 浙江大学 | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 |
CN103942178A (zh) * | 2014-03-03 | 2014-07-23 | 浙江大学 | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 |
CN103957140A (zh) * | 2014-05-16 | 2014-07-30 | 北京航空航天大学 | 一种数据链半实物仿真测试系统 |
CN103984240A (zh) * | 2014-04-27 | 2014-08-13 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种基于反射内存网的分布式实时仿真方法 |
CN104081344A (zh) * | 2012-01-31 | 2014-10-01 | 西门子公司 | 用于运行处理器的方法 |
CN104866373A (zh) * | 2015-05-20 | 2015-08-26 | 南京国电南自电网自动化有限公司 | 基于跨平台技术的实时操作系统仿真方法 |
CN105278940B (zh) * | 2014-07-08 | 2018-09-25 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN109143894A (zh) * | 2018-09-28 | 2019-01-04 | 中冶赛迪技术研究中心有限公司 | 一种基于开源架构的半实物仿真系统及方法 |
CN109445959A (zh) * | 2018-10-17 | 2019-03-08 | 北京技德终端技术有限公司 | 一种传感器数据处理实时操作系统 |
CN112131741A (zh) * | 2020-09-22 | 2020-12-25 | 西安电子科技大学 | 一种实时双内核单机半实物仿真架构及仿真方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1900911A (zh) * | 2005-07-20 | 2007-01-24 | 北京华力创通科技有限公司 | 双内核半实物仿真系统 |
CN101324852A (zh) * | 2008-07-22 | 2008-12-17 | 北京航空航天大学 | 实时操作系统及其实时化方法 |
CN101609614A (zh) * | 2008-06-19 | 2009-12-23 | 广东电子工业研究院有限公司 | 一种半实物仿真系统的仿真平台及对目标系统进行在线调参的方法 |
-
2010
- 2010-06-18 CN CN2010102024801A patent/CN101887378A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1900911A (zh) * | 2005-07-20 | 2007-01-24 | 北京华力创通科技有限公司 | 双内核半实物仿真系统 |
CN101609614A (zh) * | 2008-06-19 | 2009-12-23 | 广东电子工业研究院有限公司 | 一种半实物仿真系统的仿真平台及对目标系统进行在线调参的方法 |
CN101324852A (zh) * | 2008-07-22 | 2008-12-17 | 北京航空航天大学 | 实时操作系统及其实时化方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104081344A (zh) * | 2012-01-31 | 2014-10-01 | 西门子公司 | 用于运行处理器的方法 |
CN104081344B (zh) * | 2012-01-31 | 2017-10-31 | 西门子公司 | 用于运行处理器的方法 |
CN102621962A (zh) * | 2012-03-31 | 2012-08-01 | 林德福 | 半实物仿真用中央控制系统 |
CN103077068B (zh) * | 2012-12-27 | 2016-07-27 | 北京仿真中心 | 一种基于共享内存的高性能仿真系统实现方法 |
CN103077068A (zh) * | 2012-12-27 | 2013-05-01 | 北京仿真中心 | 一种基于共享内存的高性能仿真系统实现方法 |
CN103823706A (zh) * | 2014-02-12 | 2014-05-28 | 浙江大学 | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 |
CN103823706B (zh) * | 2014-02-12 | 2018-02-06 | 浙江大学 | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 |
CN103942178A (zh) * | 2014-03-03 | 2014-07-23 | 浙江大学 | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 |
CN103984240A (zh) * | 2014-04-27 | 2014-08-13 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种基于反射内存网的分布式实时仿真方法 |
CN103957140B (zh) * | 2014-05-16 | 2017-03-29 | 北京航空航天大学 | 一种数据链半实物仿真测试系统 |
CN103957140A (zh) * | 2014-05-16 | 2014-07-30 | 北京航空航天大学 | 一种数据链半实物仿真测试系统 |
CN105278940B (zh) * | 2014-07-08 | 2018-09-25 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN109101286A (zh) * | 2014-07-08 | 2018-12-28 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN109344112A (zh) * | 2014-07-08 | 2019-02-15 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN104866373A (zh) * | 2015-05-20 | 2015-08-26 | 南京国电南自电网自动化有限公司 | 基于跨平台技术的实时操作系统仿真方法 |
CN104866373B (zh) * | 2015-05-20 | 2019-01-18 | 南京国电南自电网自动化有限公司 | 基于跨平台技术的实时操作系统仿真方法 |
CN109143894A (zh) * | 2018-09-28 | 2019-01-04 | 中冶赛迪技术研究中心有限公司 | 一种基于开源架构的半实物仿真系统及方法 |
CN109445959A (zh) * | 2018-10-17 | 2019-03-08 | 北京技德终端技术有限公司 | 一种传感器数据处理实时操作系统 |
CN112131741A (zh) * | 2020-09-22 | 2020-12-25 | 西安电子科技大学 | 一种实时双内核单机半实物仿真架构及仿真方法 |
CN112131741B (zh) * | 2020-09-22 | 2024-01-30 | 西安电子科技大学 | 一种实时双内核单机半实物仿真架构及仿真方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101887378A (zh) | 一种半实物实时仿真机和半实物实时仿真系统 | |
US10265848B2 (en) | Robotic hybrid system application framework based on multi-core processor architecture | |
CN101203834B (zh) | 用于在虚拟机监视器和符合acpi的客户操作系统之间进行双向通信的方法、装置及系统 | |
CN101482753B (zh) | 一种多余度飞控计算机实时仿真系统 | |
CN102103517B (zh) | 高效嵌套虚拟化 | |
CN105930201B (zh) | 一种可重构专用处理器核的功能模拟器 | |
JP2017520853A (ja) | 仮想上位機器に基づく数値制御システム | |
CN103955373B (zh) | 一种sdn应用集成开发环境的设计方法 | |
CN101894045A (zh) | 一种实时Linux操作系统 | |
CN105278940A (zh) | 一种基于多核处理器架构的机器人混合系统应用框架 | |
CN104299466A (zh) | 一种基于云计算平台的远程硬件实验方法及系统 | |
CN103744716A (zh) | 一种基于当前vcpu调度状态的动态中断均衡映射方法 | |
CN107479943A (zh) | 基于工业互联网操作系统的多操作系统运行方法及装置 | |
CN103064724A (zh) | 虚拟机构建方法及装置 | |
Chekryzhov et al. | An approach to technological equipment performance information visualization system construction using augmented reality technology | |
CN110355759A (zh) | 一种基于视觉的工业机器人涂胶控制系统 | |
CN106844008A (zh) | 一种数据操作的方法、设备及系统 | |
CN103473426B (zh) | 基于嵌入式系统框架的星载相控阵信号处理架构设计方法 | |
CN116302309A (zh) | 一种操作系统虚拟机的配置方法、装置、设备及存储介质 | |
CN102609324B (zh) | 一种虚拟机死锁后的恢复方法、装置及系统 | |
CN112764981B (zh) | 一种协同测试系统及方法 | |
CN205103599U (zh) | 一种跨境贸易bpo应用云终端装置 | |
CN107015843A (zh) | 通用计算机实时处理外部事件的方法和一种虚拟时统设备 | |
CN113569341B (zh) | 一种汽车域跨平台的仿真架构设计方法 | |
CN107741868A (zh) | 一种基本输入输出系统bios的设置方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101117 |