CN116541131A - 一种基于VxWorks实时系统的多模型运行方法及系统 - Google Patents

一种基于VxWorks实时系统的多模型运行方法及系统 Download PDF

Info

Publication number
CN116541131A
CN116541131A CN202310780272.7A CN202310780272A CN116541131A CN 116541131 A CN116541131 A CN 116541131A CN 202310780272 A CN202310780272 A CN 202310780272A CN 116541131 A CN116541131 A CN 116541131A
Authority
CN
China
Prior art keywords
model
simulated
digital
resolving
models
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
Application number
CN202310780272.7A
Other languages
English (en)
Other versions
CN116541131B (zh
Inventor
雷杰
田建升
何宇
王宬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Lingkong Electronic Technology Co Ltd
Original Assignee
Xian Lingkong Electronic Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Lingkong Electronic Technology Co Ltd filed Critical Xian Lingkong Electronic Technology Co Ltd
Priority to CN202310780272.7A priority Critical patent/CN116541131B/zh
Publication of CN116541131A publication Critical patent/CN116541131A/zh
Application granted granted Critical
Publication of CN116541131B publication Critical patent/CN116541131B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及模型运行技术领域,具体涉及一种基于VxWorks实时系统的多模型运行系统,通过将多个待仿真数字模型按照模型名加载至内存中,使得对模型的调用能够独立进行,从而实现内存隔离,实现对多个待仿真数字模型的同时解算,从而提高解算效率,降低资源消耗,减少解算成本;同时将模型解算任务绑定到物理内核,避免模型解算任务因优先级抢占而被迫停止,保证模型解算实时性,同时模型解算任务周期独立,避免统一调度引起资源浪费。

Description

一种基于VxWorks实时系统的多模型运行方法及系统
技术领域
本发明涉及模型运行技术领域,具体涉及一种基于VxWorks实时系统的多模型运行系统。
背景技术
计算机必须使用实时操作系统才能满足仿真系统的实时性和可靠性要求,目前主流的实时操作系统主要有VxWorks、LabView-RT和RT-Linux等。
通常在仿真系统中,对于逻辑复杂度高数字模型将其拆分为相对独立的多个模型功能模块,目前在对多个模型功能模块进行仿真时,多采用分布式仿真方法,即通过增加仿真计算机的数量来实现对多个模型功能模块进行仿真,这样就会导致仿真系统时钟不同步、增加链路延迟和增加项目成本等诸多问题,从而使得仿真效率低、仿真结果不准确等结果。
发明内容
针对现有基于实时系统的多模型运行系统的不足,本发明的目的是提供一种基于VxWorks实时系统的多模型运行系统,通过对多个模型的同时仿真解决现有多模型仿真效率低的问题。
本发明解决上述技术问题的方案:
一种基于VxWorks实时系统的多模型运行方法,其特征在于,包括以下步骤:
获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名;
根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存;
根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与CPU物理核绑定;
设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果。
进一步限定,所述获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名,具体包括:
通过仿真工具生成.out可执行数字模型或加载.out可执行数字模型,所述.out可执行数字模型的名称非重复;
根据模型运行环境CPU物理核的核数N选择n个.out可执行数字模型,得到n个待仿真数字模型,1<n≤N。
进一步限定,所述根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存,具体包括:
根据所述模型名匹配待仿真数字模型并将所述待仿真数字模型加载到ROM内存中,得到与所述待仿真数字模型匹配的模型指针;
根据所述模型名将ROM内存中对应的待仿真数字模型的模型加载接口、模型初始化接口、模型输入接口、模型输出接口和模型停止运行接口分别加载至内存中;
通过所述模型名调用ROM内存中的模型加载接口,传入待仿真数字模型对应的模型指针,实例化对应待仿真数字模型,得到与待仿真数字模型对应的模型实例化句柄;
将所述待仿真数字模型的模型实例化句柄、所述模型指针和所述模型名保存得到模型信息;
重复执行上述步骤,遍历所有待仿真数字模型的模型信息保存。
进一步限定,所述根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与CPU物理核绑定,具体包括:
逐一调用待仿真数字模型的模型初始化接口,将与所述待仿真数字模型对应的实例化句柄传入对应的模型初始化接口,初始化待仿真数字模型;
根据每一个待仿真数字模型的模型信息创建与n个待仿真数字模型一一对应的n个模型解算任务;
将n个模型解算任务与模型运行环境CPU的n个物理核一一对应地绑定。
进一步限定,所述设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果,具体包括:
根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;
按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;
各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存。
进一步限定,所述各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算数据并保存,具体包括以下步骤:
各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;
根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;
各仿真模型根据仿真参数解算得到当前的解算数据;
根据仿真需求,释放模型停止信号量,各待仿真数字模型在解算结束后停止运行,并删除所有模型解算任务。
一种基于VxWorks实时系统的多模型运行系统,其特征在于,包括:
模型获取单元,用于获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名;
模型加载单元,用于根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存;
模型任务创建单元,用于根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与CPU物理核绑定;
模型解算单元,用于设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果。
进一步限定,所述模型获取单元包括:
模型管理模块,用于通过仿真工具生成.out可执行数字模型或加载.out可执行数字模型,所述.out可执行数字模型的名称非重复;
模型选择模块,用于根据模型运行环境CPU物理核的核数N选择n个.out可执行数字模型,得到n个待仿真数字模型,1<n≤N。
进一步限定,所述模型加载单元包括:
模型加载模块,用于分别对所述待仿真数字模型逐一进行命名,得到与每一个待仿真数字模型匹配的非重复模型名;
模型接口加载模块,用于根据所述模型名将ROM内存中对应的待仿真数字模型的模型加载接口、模型初始化接口、模型输入接口、模型输出接口和模型停止运行接口分别加载至内存中;
模型实例化模块,用于通过所述模型名调用ROM内存中的模型加载接口,传入待仿真数字模型对应的模型指针,实例化对应待仿真数字模型,得到与待仿真数字模型对应的模型实例化句柄;
模型信息保存模块,用于将所述待仿真数字模型的模型实例化句柄、所述模型指针和所述模型名保存得到模型信息;
所述模型任务创建单元包括:
模型初始化模块,用于逐一调用待仿真数字模型的模型初始化接口,将与所述待仿真数字模型对应的实例化句柄传入对应的模型初始化接口,初始化待仿真数字模型;
模型解算任务创建模块,用于根据每一个待仿真数字模型的模型信息创建与n个待仿真数字模型一一对应的n个模型解算任务;
任务绑定模块,用于将n个模型解算任务与模型运行环境CPU的n个物理核一一对应地绑定。
进一步限定,所述模型解算单元包括:
执行周期设定模块,用于根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;
执行信号释放模块,用于按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;
模型解算模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存;
所述模型解算模块包括:
模型执行子模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;
解算编辑子模块,用于根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;
模型解算子模块,用于将各仿真模型根据仿真参数解算得到当前的解算数据;
解算停止子模块,用于释放模型停止信号量,各待仿真数字模型在解算结束后停止运行,并删除所有模型解算任务。
本发明的有益效果在于:
本发明通过将多个待仿真数字模型按照模型名加载至内存中,使得对模型的调用能够独立进行,从而实现内存隔离,实现对多个待仿真数字模型的同时解算,从而提高解算效率,降低资源消耗,减少解算成本;同时将模型解算任务绑定到物理内核,避免模型解算任务因优先级抢占而被迫停止,保证模型解算实时性,同时模型解算任务周期独立,避免统一调度引起资源浪费。
附图说明
图1为本发明基于VxWorks实时系统的多模型运行方法步骤图;
图2为本发明基于VxWorks实时系统的多模型运行系统图;
图3为本发明基于VxWorks实时系统的多模型运行系统具体框图;
图4为本发明模型解算模块具体框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参考图1,本实施例提供一种基于VxWorks实时系统的多模型运行方法,包括以下步骤:
获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名;
根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存;
根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与CPU物理核绑定;
设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果。
进一步说明,步骤获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名具体包括:
通过仿真工具生成.out可执行数字模型或加载.out可执行数字模型;
具体的,按照现有的方式通过现有的仿真工具根据项目需求创建格式为.out的可执行数字模型,也可以直接加载原有的.out可执行数字模型或者修改的.out可执行数字模型或者下载的.out可执行数字模型,从而满足实际使用需求。
根据模型运行环境CPU物理核的核数N选择n个.out可执行数字模型,得到n个待仿真数字模型,1<n≤N;
具体的,在执行.out可执行数字模型时,需要根据待执行.out可执行数字模型的运行环境中CPU物理核的核数N选择.out可执行数字模型的数量为n,1<n≤N;理论上.out可执行数字模型的数量可选为n=N个,但是为了保证运行环境稳定,通常选择.out可执行数字模型的数量为n个,n<N,此时将选择得到的n个.out可执行数字模型作为n个待仿真数字模型进行处后续理。
分别对所述待仿真数字模型逐一进行命名,得到与每一个待仿真数字模型匹配的非重复模型名;
具体的,在生成.out可执行数字模型的生成过程中对.out可执行数字模型进行命名,此时得到的所有.out可执行数字模型的模型名非重复,使得模型名与待仿真数字模型一一对应,能够通过模型名匹配对应的待仿真数字模型,操作简单方便。
进一步说明,步骤根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存具体包括:
根据所述模型名匹配待仿真数字模型并将所述待仿真数字模型加载到ROM内存中,得到与所述待仿真数字模型匹配的模型指针;
具体的,将n个待仿真数字模型导入仿真环境中的计算机中,此时可以根据模型名查找对应的待仿真数字模型,并将查找到的待仿真数字模型加载到计算机中的ROM内存中,得到与待仿真数字模型匹配的模型指针。
如此,将n个待仿真数字模型通过模型名逐一加载至ROM中。
根据所述模型名将ROM内存中对应的待仿真数字模型的模型加载接口、模型初始化接口分别加载至内存中;
具体的,将待仿真数字模型加载到计算机中的ROM内存后,需要对待仿真数字模型进行处理,此时同样需要根据模型名查找对应待仿真数字模型的模型加载接口(ModelName_Load),同样根据模型名查找对应的模型初始化接口(ModelName_Initialize)和模型调度接口(ModelName_Step),根据实际使用需求还可以加载模型状态更新接口(ModelName_Updata)、模型停止运行接口(ModelName_Terminate)、模型数据输入接口(ModelName_In)以及模型数据输出接口(ModelName_Out)等接口。
将查找到的模型加载接口和模型初始化接口分别加载至内存中。
通过所述模型名调用ROM内存中的模型加载接口,传入待仿真数字模型对应的模型指针,实例化对应待仿真数字模型,得到与待仿真数字模型对应的模型实例化句柄;
具体的,需要先对每一个待仿真数字模型进行实例化,对待仿真数字模型进行实例化首先需要通过模型名从ROM中调用对应待仿真数字模型的模型加载接口,随后将该待仿真数字模型对应的模型指针传入该模型加载接口,对对应的待仿真数字模型进行实例化,得到与待仿真数字模型对应的模型实例化句柄。
将所述待仿真数字模型的模型实例化句柄、所述模型指针和所述模型名保存得到模型信息;
具体的,将得到的每一个待仿真数字模型的模型实例化句柄、模型指针和模型名保存得到对应待仿真数字模型的模型信息。
重复执行上述步骤,遍历所有待仿真数字模型的模型信息保存。
进一步说明,步骤根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与CPU物理核绑定包括:
逐一调用待仿真数字模型的模型初始化接口,将与所述待仿真数字模型对应的实例化句柄传入对应的模型初始化接口,初始化待仿真数字模型;
具体的,随后需要对待仿真数字模型进行初始化,此时需要将上述得到的实例化句柄传入根据对应模型名查找出的模型初始化接口,从而完成一个待仿真数字模型的初始化;如此,将每一个待仿真数字模型进行初始化。
根据每一个待仿真数字模型的模型信息创建与n个待仿真数字模型一一对应的n个模型解算任务;
具体的,随后需要创建n个模型解算任务,每一个模型解算任务用于完成一个待仿真数字模型的解算执行,所以需要创建n个的模型解算任务,此时模型解算任务为空白,随后需要根据待仿真数字模型的模型信息将模型解算任务与对应的待仿真数字模型匹配。
将n个模型解算任务与模型运行环境CPU的n个物理核一一对应地绑定;
具体的,将创建的n个模型解算任务与CPU的n个物理核一对一地进行绑定,从而在后续对待仿真数字模型进行仿真时能够单独地在一个物理核中进行解算。
进一步说明,步骤设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果包括:
根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;
具体的,每一个待仿真数字模型在解算过程中都会存在固定的仿真步长,即待仿真数字模型解算依次所需要的时间,此时需要先确定每一个待仿真数字模型的仿真步长,例如待仿真数字模型A的仿真步长为1ns,待仿真数字模型B的仿真步长为1.5ns,待仿真数字模型的C的仿真步长为2ns。
所以,每一个待仿真数字模型在解算时需要通过接收对应的信号量从而开始执行解算,所以在确定每一个待仿真数字模型的仿真步长后,即可确定待仿真数字模型A的信号量释放周期为1ns,即,从0开始,每间隔1ns开始释放一次与待仿真数字模型A对应的信号量;同样的,待仿真数字模型B的信号量释放周期为1.5ns,待仿真数字模型的C的信号量释放周期为2ns。
在确定信号量释放周期前,需要设置辅助时钟中断周期,以此来完成按照规定时间发送对应的信号量,助时钟中断周期根据所有待仿真数字模型仿真步长确定,例如根据仿真数字模型A~C的仿真步长确定辅助时钟中断周期为0.5ns,即所有待仿真数字模型的仿真补充能够整除辅助时钟中断周期,所以辅助时钟中断周期每0.5ns计时一次。
按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;
具体的,按照上述确定的信号量释放周期发送对应待仿真数字模型的信号量给对应的待仿真数字模型。
各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存;
具体的,对应的待仿真数字模型从而在接收到对应的信号量后开始执行模型解算任务,得到解算结果。
每一个待仿真数字模型在解算过程中独立,并且能够实现多个待仿真数字模型的同时解算,从而使得每一个待仿真数字模型的解算结果能够及时高效地发送给同一VxWorks运行系统中,降低运算难度和运算成本,提高运算效率。
进一步说明,其中各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算数据并保存,具体包括以下步骤:
各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;
根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;
各仿真模型根据仿真参数解算得到当前的解算数据;
具体的,在待仿真数字模型在运行过程中,存在需要给待仿真数字模型输入时时的参数,从而实现真实环境下的仿真,通常能够实现根据仿真需求将仿真参数输入给对应的待仿真数字模型。
为了进一步提高运算效率,通过共享内存方式实现解算数据共享;即确定解算数据存在相互需求的待仿真数字模型的模型名称,从而使一个待仿真数字模型通过自身的模型输出接口将自身得到的解算数据通过另一个待仿真数字模型的模型输入接口发送给该模型,从而实现待仿真数字模型的内部运算交互,提高运算效率,降低运算难度。
例如,待仿真数字模型D模拟飞机供油操作,得到飞机当前速度的解算结果,同时机翼模型需要获取飞机当前速度的解算结果解算飞机机翼的阻力大小,从而输出风阻值解算结果,此时风阻值解算结果可以通过模型输出接口输出,也可以通过其他待仿真数字模型的输入接口输入给对应的待仿真数字模型晚上模型解算任务。
根据仿真需求,释放模型停止信号量,各待仿真数字模型在解算结束后停止运行,并删除所有模型解算任务。
具体的,在需要停止模型解算任务时,操作人员可以根据需求发送停止信号量,也可以在某一待仿真数字模型的解算结果满足停止条件时发送停止信号量。
停止信号量发送后,每一个待仿真数字模型在解算完成后便停止,即停止发送对应待仿真数字模型的信号量。
在完成当前模型的解算需求后,删除所有的模型解算任务,完成待仿真数字模型的运行。
实施例2
参考图2~4,本实施例还提供一种基于VxWorks实时系统的多模型运行系统,包括:
模型获取单元,用于获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名;
模型加载单元,用于根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存;
模型任务创建单元,用于根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与CPU物理核绑定;
模型解算单元,用于设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果。
进一步限定,所述模型获取单元包括:
模型管理模块,用于通过仿真工具生成.out可执行数字模型或加载.out可执行数字模型,所述.out可执行数字模型的名称非重复;
模型选择模块,用于根据模型运行环境CPU物理核的核数N选择n个.out可执行数字模型,得到n个待仿真数字模型,1<n≤N。
进一步限定,所述模型加载单元包括:
模型加载模块,用于分别对所述待仿真数字模型逐一进行命名,得到与每一个待仿真数字模型匹配的非重复模型名;
模型接口加载模块,用于根据所述模型名将ROM内存中对应的待仿真数字模型的模型加载接口、模型初始化接口、模型输入接口、模型输出接口和模型停止运行接口分别加载至内存中;
模型实例化模块,用于通过所述模型名调用ROM内存中的模型加载接口,传入待仿真数字模型对应的模型指针,实例化对应待仿真数字模型,得到与待仿真数字模型对应的模型实例化句柄;
模型信息保存模块,用于将所述待仿真数字模型的模型实例化句柄、所述模型指针和所述模型名保存得到模型信息;
所述模型任务创建单元包括:
模型初始化模块,用于逐一调用待仿真数字模型的模型初始化接口,将与所述待仿真数字模型对应的实例化句柄传入对应的模型初始化接口,初始化待仿真数字模型;
模型解算任务创建模块,用于根据每一个待仿真数字模型的模型信息创建与n个待仿真数字模型一一对应的n个模型解算任务;
任务绑定模块,用于将n个模型解算任务与模型运行环境CPU的n个物理核一一对应地绑定。
进一步限定,所述模型解算单元包括:
执行周期设定模块,用于根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;
执行信号释放模块,用于按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;
模型解算模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存。
所述模型解算模块包括:
模型执行子模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;
解算编辑子模块,用于根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;
模型解算子模块,用于将各仿真模型根据仿真参数解算得到当前的解算数据;
解算停止子模块,用于释放模型停止信号量,各待仿真数字模型在解算结束后停止运行,并删除所有模型解算任务。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。本实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照本实施例或者附图所示的方法顺序执行或者并行执行。
以上实施例仅用以说明本申请的技术方案,而非对本申请限制;尽管参照前述实施例对本申请进行了详细的说明,本领域普通技术人员应当理解,其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请技术方案的范围。

Claims (10)

1.一种基于VxWorks实时系统的多模型运行方法,其特征在于,包括以下步骤:
获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名;
根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存;
根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与CPU物理核绑定;
设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果。
2.根据权利要求1所述的基于VxWorks实时系统的多模型运行方法,其特征在于,所述获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名,具体包括:
通过仿真工具生成.out可执行数字模型或加载.out可执行数字模型,所述.out可执行数字模型的名称非重复;
根据模型运行环境CPU物理核的核数N选择n个.out可执行数字模型,得到n个待仿真数字模型,1<n≤N。
3.根据权利要求1所述的基于VxWorks实时系统的多模型运行方法,其特征在于,所述根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存,具体包括:
根据所述模型名匹配待仿真数字模型并将所述待仿真数字模型加载到ROM内存中,得到与所述待仿真数字模型匹配的模型指针;
根据所述模型名将ROM内存中对应的待仿真数字模型的模型加载接口、模型初始化接口、模型输入接口、模型输出接口和模型停止运行接口分别加载至内存中;
通过所述模型名调用ROM内存中的模型加载接口,传入待仿真数字模型对应的模型指针,实例化对应待仿真数字模型,得到与待仿真数字模型对应的模型实例化句柄;
将所述待仿真数字模型的模型实例化句柄、所述模型指针和所述模型名保存得到模型信息;
重复执行上述步骤,遍历所有待仿真数字模型的模型信息保存。
4.根据权利要求3所述的基于VxWorks实时系统的多模型运行方法,其特征在于,所述根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与CPU物理核绑定,具体包括:
逐一调用待仿真数字模型的模型初始化接口,将与所述待仿真数字模型对应的实例化句柄传入对应的模型初始化接口,初始化待仿真数字模型;
根据每一个待仿真数字模型的模型信息创建与n个待仿真数字模型一一对应的n个模型解算任务;
将n个模型解算任务与模型运行环境CPU的n个物理核一一对应地绑定。
5.根据权利要求4所述的基于VxWorks实时系统的多模型运行方法,其特征在于,所述设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果,具体包括:
根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;
按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;
各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存。
6.根据权利要求5所述的基于VxWorks实时系统的多模型运行方法,其特征在于,所述各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算数据并保存,具体包括以下步骤:
各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;
根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;
各仿真模型根据仿真参数解算得到当前的解算数据;
根据仿真需求,释放模型停止信号量,各待仿真数字模型在解算结束后停止运行,并删除所有模型解算任务。
7.一种基于VxWorks实时系统的多模型运行系统,其特征在于,包括:
模型获取单元,用于获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名;
模型加载单元,用于根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存;
模型任务创建单元,用于根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与CPU物理核绑定;
模型解算单元,用于设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果。
8.根据权利要求7所述的基于VxWorks实时系统的多模型运行系统,其特征在于,所述模型获取单元包括:
模型管理模块,用于通过仿真工具生成.out可执行数字模型或加载.out可执行数字模型,所述.out可执行数字模型的名称非重复;
模型选择模块,用于根据模型运行环境CPU物理核的核数N选择n个.out可执行数字模型,得到n个待仿真数字模型,1<n≤N。
9.根据权利要求8所述的基于VxWorks实时系统的多模型运行系统,其特征在于,所述模型加载单元包括:
模型加载模块,用于分别对所述待仿真数字模型逐一进行命名,得到与每一个待仿真数字模型匹配的非重复模型名;
模型接口加载模块,用于根据所述模型名将ROM内存中对应的待仿真数字模型的模型加载接口、模型初始化接口、模型输入接口、模型输出接口和模型停止运行接口分别加载至内存中;
模型实例化模块,用于通过所述模型名调用ROM内存中的模型加载接口,传入待仿真数字模型对应的模型指针,实例化对应待仿真数字模型,得到与待仿真数字模型对应的模型实例化句柄;
模型信息保存模块,用于将所述待仿真数字模型的模型实例化句柄、所述模型指针和所述模型名保存得到模型信息;
所述模型任务创建单元包括:
模型初始化模块,用于逐一调用待仿真数字模型的模型初始化接口,将与所述待仿真数字模型对应的实例化句柄传入对应的模型初始化接口,初始化待仿真数字模型;
模型解算任务创建模块,用于根据每一个待仿真数字模型的模型信息创建与n个待仿真数字模型一一对应的n个模型解算任务;
任务绑定模块,用于将n个模型解算任务与模型运行环境CPU的n个物理核一一对应地绑定。
10.根据权利要求9所述的基于VxWorks实时系统的多模型运行系统,其特征在于,所述模型解算单元包括:
执行周期设定模块,用于根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;
执行信号释放模块,用于按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;
模型解算模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存;
所述模型解算模块包括:
模型执行子模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;
解算编辑子模块,用于根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;
模型解算子模块,用于将各仿真模型根据仿真参数解算得到当前的解算数据;
解算停止子模块,用于释放模型停止信号量,各待仿真数字模型在解算结束后停止运行,并删除所有模型解算任务。
CN202310780272.7A 2023-06-29 2023-06-29 一种基于VxWorks实时系统的多模型运行方法及系统 Active CN116541131B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310780272.7A CN116541131B (zh) 2023-06-29 2023-06-29 一种基于VxWorks实时系统的多模型运行方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310780272.7A CN116541131B (zh) 2023-06-29 2023-06-29 一种基于VxWorks实时系统的多模型运行方法及系统

Publications (2)

Publication Number Publication Date
CN116541131A true CN116541131A (zh) 2023-08-04
CN116541131B CN116541131B (zh) 2023-09-22

Family

ID=87443904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310780272.7A Active CN116541131B (zh) 2023-06-29 2023-06-29 一种基于VxWorks实时系统的多模型运行方法及系统

Country Status (1)

Country Link
CN (1) CN116541131B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718305A (zh) * 2016-03-15 2016-06-29 南京南瑞继保电气有限公司 一种基于进程的仿真任务并行调度方法
CN106372370A (zh) * 2016-10-11 2017-02-01 中国人民解放军国防科学技术大学 一种飞行控制分布式实时仿真系统
US20190102149A1 (en) * 2017-09-29 2019-04-04 dSPACE digital signal processing and control engin eering GmbH Method for providing an integrated process for control unit development and a simulation device for control unit development
CN110674590A (zh) * 2019-10-07 2020-01-10 中国人民解放军陆军装甲兵学院 一种基于仿真软件Simulink实时扩展RTX的飞行器实时仿真程序的编程方法
CN111985102A (zh) * 2020-08-19 2020-11-24 西安中锐创联科技有限公司 一种多源异构模型分布式集成仿真方法及系统
CN113128049A (zh) * 2021-04-19 2021-07-16 广东工业大学 一种车辆多路面工况的批量仿真方法
CN113311728A (zh) * 2021-05-25 2021-08-27 南京国电南自维美德自动化有限公司 一种仿真模型与控制器通信的方法和系统
CN114063472A (zh) * 2021-11-18 2022-02-18 成都邦飞科技有限公司 一种数字化仿真设计系统、方法、存储介质及电子设备
CN115114789A (zh) * 2022-06-30 2022-09-27 中核武汉核电运行技术股份有限公司 一种配电系统自动仿真建模方法
CN115390809A (zh) * 2022-08-12 2022-11-25 西安羚控电子科技有限公司 一种仿真调度方法及系统
CN115421940A (zh) * 2022-09-02 2022-12-02 西安中锐创联科技有限公司 一种基于共享内存技术的多源异构模型白盒集成方法
CN115563817A (zh) * 2022-12-02 2023-01-03 中国人民解放军国防科技大学 基于内存数据库的仿真数据访存方法、装置和计算机设备
CN116340024A (zh) * 2023-03-21 2023-06-27 北京仿真中心 仿真模型组件进程间的数据共享方法、计算机设备及介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718305A (zh) * 2016-03-15 2016-06-29 南京南瑞继保电气有限公司 一种基于进程的仿真任务并行调度方法
CN106372370A (zh) * 2016-10-11 2017-02-01 中国人民解放军国防科学技术大学 一种飞行控制分布式实时仿真系统
US20190102149A1 (en) * 2017-09-29 2019-04-04 dSPACE digital signal processing and control engin eering GmbH Method for providing an integrated process for control unit development and a simulation device for control unit development
CN110674590A (zh) * 2019-10-07 2020-01-10 中国人民解放军陆军装甲兵学院 一种基于仿真软件Simulink实时扩展RTX的飞行器实时仿真程序的编程方法
CN111985102A (zh) * 2020-08-19 2020-11-24 西安中锐创联科技有限公司 一种多源异构模型分布式集成仿真方法及系统
CN113128049A (zh) * 2021-04-19 2021-07-16 广东工业大学 一种车辆多路面工况的批量仿真方法
CN113311728A (zh) * 2021-05-25 2021-08-27 南京国电南自维美德自动化有限公司 一种仿真模型与控制器通信的方法和系统
CN114063472A (zh) * 2021-11-18 2022-02-18 成都邦飞科技有限公司 一种数字化仿真设计系统、方法、存储介质及电子设备
CN115114789A (zh) * 2022-06-30 2022-09-27 中核武汉核电运行技术股份有限公司 一种配电系统自动仿真建模方法
CN115390809A (zh) * 2022-08-12 2022-11-25 西安羚控电子科技有限公司 一种仿真调度方法及系统
CN115421940A (zh) * 2022-09-02 2022-12-02 西安中锐创联科技有限公司 一种基于共享内存技术的多源异构模型白盒集成方法
CN115563817A (zh) * 2022-12-02 2023-01-03 中国人民解放军国防科技大学 基于内存数据库的仿真数据访存方法、装置和计算机设备
CN116340024A (zh) * 2023-03-21 2023-06-27 北京仿真中心 仿真模型组件进程间的数据共享方法、计算机设备及介质

Also Published As

Publication number Publication date
CN116541131B (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
CN111507020B (zh) 面向多电飞机机电系统分布式仿真结果的图形化显示方法
CN106844822B (zh) 一种支持快速虚实互换的运载火箭半实物仿真方法
US20050267953A1 (en) Distributed control system and information system
CN105956021A (zh) 一种适用于分布式机器学习的自动化任务并行的方法及其系统
CN107612962B (zh) 一种分布式仿真评估试验管理系统
CN111966748B (zh) 分布式空基仿真运行控制管理方法
CN105022288A (zh) 一种工业电子嵌入式系统的仿真系统
CN113051040A (zh) 一种异地远程分布式联合仿真方法
CN107220107B (zh) 一种多时钟多任务并行实时仿真系统及方法
CN116541131B (zh) 一种基于VxWorks实时系统的多模型运行方法及系统
CN117234697B (zh) 一种保守时间同步并行事件调度计算架构和方法
Glonina et al. On the correctness of real-time modular computer systems modeling with stopwatch automata networks
CN116670660A (zh) 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质
Gu et al. Analysis of event-driven real-time systems with time petri nets: A translation-based approach
CN115630937B (zh) 物流网络仿真的时间同步方法、装置和存储介质
CN102354154B (zh) 一种开放式数控系统的实时内核芯片
CN109117125B (zh) 数字飞行器多平台多运行模式源代码的人工智能书写方法
CN109214043B (zh) 数字飞行器动力学环境信息传输源代码人工智能书写方法
CN110414021A (zh) 工业物联网的边缘设备事件规则产生系统、装置和方法
Jung et al. Synchronization of a “Plug-and-Simulate”-capable Co-Simulation of Internet-of-Things-Components
CN113296790A (zh) 生成应用数据包的方法、设备以及计算机可读介质
CN116070565B (zh) 一种模拟多核处理器的方法及装置、电子设备和存储介质
CN112416539B (zh) 面向异构众核处理器的多任务并行调度方法
CN109614656A (zh) 一种用于OpenGL显示列表调用的TLM模型
CN115689405B (zh) 数据处理方法、装置及系统、计算机可存储介质

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
GR01 Patent grant
GR01 Patent grant