一种基于VxWorks实时系统的多模型运行方法及系统与流程

未命名 08-07 阅读:153 评论:0
一种基于vxworks实时系统的多模型运行方法及系统
技术领域
1.本发明涉及模型运行技术领域,具体涉及一种基于vxworks实时系统的多模型运行系统。


背景技术:

2.计算机必须使用实时操作系统才能满足仿真系统的实时性和可靠性要求,目前主流的实时操作系统主要有vxworks、labview-rt和rt-linux等。
3.通常在仿真系统中,对于逻辑复杂度高数字模型将其拆分为相对独立的多个模型功能模块,目前在对多个模型功能模块进行仿真时,多采用分布式仿真方法,即通过增加仿真计算机的数量来实现对多个模型功能模块进行仿真,这样就会导致仿真系统时钟不同步、增加链路延迟和增加项目成本等诸多问题,从而使得仿真效率低、仿真结果不准确等结果。


技术实现要素:

4.针对现有基于实时系统的多模型运行系统的不足,本发明的目的是提供一种基于vxworks实时系统的多模型运行系统,通过对多个模型的同时仿真解决现有多模型仿真效率低的问题。
5.本发明解决上述技术问题的方案:一种基于vxworks实时系统的多模型运行方法,其特征在于,包括以下步骤:获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名;根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存;根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与cpu物理核绑定;设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果。
6.进一步限定,所述获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名,具体包括:通过仿真工具生成.out可执行数字模型或加载.out可执行数字模型,所述.out可执行数字模型的名称非重复;根据模型运行环境cpu物理核的核数n选择n个.out可执行数字模型,得到n个待仿真数字模型,1<n≤n。
7.进一步限定,所述根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存,具体包括:根据所述模型名匹配待仿真数字模型并将所述待仿真数字模型加载到rom内存
中,得到与所述待仿真数字模型匹配的模型指针;根据所述模型名将rom内存中对应的待仿真数字模型的模型加载接口、模型初始化接口、模型输入接口、模型输出接口和模型停止运行接口分别加载至内存中;通过所述模型名调用rom内存中的模型加载接口,传入待仿真数字模型对应的模型指针,实例化对应待仿真数字模型,得到与待仿真数字模型对应的模型实例化句柄;将所述待仿真数字模型的模型实例化句柄、所述模型指针和所述模型名保存得到模型信息;重复执行上述步骤,遍历所有待仿真数字模型的模型信息保存。
8.进一步限定,所述根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与cpu物理核绑定,具体包括:逐一调用待仿真数字模型的模型初始化接口,将与所述待仿真数字模型对应的实例化句柄传入对应的模型初始化接口,初始化待仿真数字模型;根据每一个待仿真数字模型的模型信息创建与n个待仿真数字模型一一对应的n个模型解算任务;将n个模型解算任务与模型运行环境cpu的n个物理核一一对应地绑定。
9.进一步限定,所述设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果,具体包括:根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存。
10.进一步限定,所述各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算数据并保存,具体包括以下步骤:各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;各仿真模型根据仿真参数解算得到当前的解算数据;根据仿真需求,释放模型停止信号量,各待仿真数字模型在解算结束后停止运行,并删除所有模型解算任务。
11.一种基于vxworks实时系统的多模型运行系统,其特征在于,包括:模型获取单元,用于获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名;模型加载单元,用于根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存;模型任务创建单元,用于根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与cpu物理核绑定;
模型解算单元,用于设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果。
12.进一步限定,所述模型获取单元包括:模型管理模块,用于通过仿真工具生成.out可执行数字模型或加载.out可执行数字模型,所述.out可执行数字模型的名称非重复;模型选择模块,用于根据模型运行环境cpu物理核的核数n选择n个.out可执行数字模型,得到n个待仿真数字模型,1<n≤n。
13.进一步限定,所述模型加载单元包括:模型加载模块,用于分别对所述待仿真数字模型逐一进行命名,得到与每一个待仿真数字模型匹配的非重复模型名;模型接口加载模块,用于根据所述模型名将rom内存中对应的待仿真数字模型的模型加载接口、模型初始化接口、模型输入接口、模型输出接口和模型停止运行接口分别加载至内存中;模型实例化模块,用于通过所述模型名调用rom内存中的模型加载接口,传入待仿真数字模型对应的模型指针,实例化对应待仿真数字模型,得到与待仿真数字模型对应的模型实例化句柄;模型信息保存模块,用于将所述待仿真数字模型的模型实例化句柄、所述模型指针和所述模型名保存得到模型信息;所述模型任务创建单元包括:模型初始化模块,用于逐一调用待仿真数字模型的模型初始化接口,将与所述待仿真数字模型对应的实例化句柄传入对应的模型初始化接口,初始化待仿真数字模型;模型解算任务创建模块,用于根据每一个待仿真数字模型的模型信息创建与n个待仿真数字模型一一对应的n个模型解算任务;任务绑定模块,用于将n个模型解算任务与模型运行环境cpu的n个物理核一一对应地绑定。
14.进一步限定,所述模型解算单元包括:执行周期设定模块,用于根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;执行信号释放模块,用于按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;模型解算模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存;所述模型解算模块包括:模型执行子模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;解算编辑子模块,用于根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;模型解算子模块,用于将各仿真模型根据仿真参数解算得到当前的解算数据;
解算停止子模块,用于释放模型停止信号量,各待仿真数字模型在解算结束后停止运行,并删除所有模型解算任务。
15.本发明的有益效果在于:本发明通过将多个待仿真数字模型按照模型名加载至内存中,使得对模型的调用能够独立进行,从而实现内存隔离,实现对多个待仿真数字模型的同时解算,从而提高解算效率,降低资源消耗,减少解算成本;同时将模型解算任务绑定到物理内核,避免模型解算任务因优先级抢占而被迫停止,保证模型解算实时性,同时模型解算任务周期独立,避免统一调度引起资源浪费。
附图说明
16.图1为本发明基于vxworks实时系统的多模型运行方法步骤图;图2为本发明基于vxworks实时系统的多模型运行系统图;图3为本发明基于vxworks实时系统的多模型运行系统具体框图;图4为本发明模型解算模块具体框图。
具体实施方式
17.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.实施例1参考图1,本实施例提供一种基于vxworks实时系统的多模型运行方法,包括以下步骤:获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名;根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存;根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与cpu物理核绑定;设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果。
19.进一步说明,步骤获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名具体包括:通过仿真工具生成.out可执行数字模型或加载.out可执行数字模型;具体的,按照现有的方式通过现有的仿真工具根据项目需求创建格式为.out的可执行数字模型,也可以直接加载原有的.out可执行数字模型或者修改的.out可执行数字模型或者下载的.out可执行数字模型,从而满足实际使用需求。
20.根据模型运行环境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个待仿真数字模型进行处后续理。
21.分别对所述待仿真数字模型逐一进行命名,得到与每一个待仿真数字模型匹配的非重复模型名;具体的,在生成.out可执行数字模型的生成过程中对.out可执行数字模型进行命名,此时得到的所有.out可执行数字模型的模型名非重复,使得模型名与待仿真数字模型一一对应,能够通过模型名匹配对应的待仿真数字模型,操作简单方便。
22.进一步说明,步骤根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存具体包括:根据所述模型名匹配待仿真数字模型并将所述待仿真数字模型加载到rom内存中,得到与所述待仿真数字模型匹配的模型指针;具体的,将n个待仿真数字模型导入仿真环境中的计算机中,此时可以根据模型名查找对应的待仿真数字模型,并将查找到的待仿真数字模型加载到计算机中的rom内存中,得到与待仿真数字模型匹配的模型指针。
23.如此,将n个待仿真数字模型通过模型名逐一加载至rom中。
24.根据所述模型名将rom内存中对应的待仿真数字模型的模型加载接口、模型初始化接口分别加载至内存中;具体的,将待仿真数字模型加载到计算机中的rom内存后,需要对待仿真数字模型进行处理,此时同样需要根据模型名查找对应待仿真数字模型的模型加载接口(modelname_load),同样根据模型名查找对应的模型初始化接口(modelname_initialize)和模型调度接口(modelname_step),根据实际使用需求还可以加载模型状态更新接口(modelname_updata)、模型停止运行接口(modelname_terminate)、模型数据输入接口(modelname_in)以及模型数据输出接口(modelname_out)等接口。
25.将查找到的模型加载接口和模型初始化接口分别加载至内存中。
26.通过所述模型名调用rom内存中的模型加载接口,传入待仿真数字模型对应的模型指针,实例化对应待仿真数字模型,得到与待仿真数字模型对应的模型实例化句柄;具体的,需要先对每一个待仿真数字模型进行实例化,对待仿真数字模型进行实例化首先需要通过模型名从rom中调用对应待仿真数字模型的模型加载接口,随后将该待仿真数字模型对应的模型指针传入该模型加载接口,对对应的待仿真数字模型进行实例化,得到与待仿真数字模型对应的模型实例化句柄。
27.将所述待仿真数字模型的模型实例化句柄、所述模型指针和所述模型名保存得到模型信息;具体的,将得到的每一个待仿真数字模型的模型实例化句柄、模型指针和模型名保存得到对应待仿真数字模型的模型信息。
28.重复执行上述步骤,遍历所有待仿真数字模型的模型信息保存。
29.进一步说明,步骤根据待仿真数字模型的模型信息逐一创建模型解算任务,并将
所述模型解算任务与cpu物理核绑定包括:逐一调用待仿真数字模型的模型初始化接口,将与所述待仿真数字模型对应的实例化句柄传入对应的模型初始化接口,初始化待仿真数字模型;具体的,随后需要对待仿真数字模型进行初始化,此时需要将上述得到的实例化句柄传入根据对应模型名查找出的模型初始化接口,从而完成一个待仿真数字模型的初始化;如此,将每一个待仿真数字模型进行初始化。
30.根据每一个待仿真数字模型的模型信息创建与n个待仿真数字模型一一对应的n个模型解算任务;具体的,随后需要创建n个模型解算任务,每一个模型解算任务用于完成一个待仿真数字模型的解算执行,所以需要创建n个的模型解算任务,此时模型解算任务为空白,随后需要根据待仿真数字模型的模型信息将模型解算任务与对应的待仿真数字模型匹配。
31.将n个模型解算任务与模型运行环境cpu的n个物理核一一对应地绑定;具体的,将创建的n个模型解算任务与cpu的n个物理核一对一地进行绑定,从而在后续对待仿真数字模型进行仿真时能够单独地在一个物理核中进行解算。
32.进一步说明,步骤设置信号量释放周期,各模型解算任务按照所述信号量释放周期解算与之匹配的所述待仿真数字模型,得到模型运行结果包括:根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;具体的,每一个待仿真数字模型在解算过程中都会存在固定的仿真步长,即待仿真数字模型解算依次所需要的时间,此时需要先确定每一个待仿真数字模型的仿真步长,例如待仿真数字模型a的仿真步长为1ns,待仿真数字模型b的仿真步长为1.5ns,待仿真数字模型的c的仿真步长为2ns。
33.所以,每一个待仿真数字模型在解算时需要通过接收对应的信号量从而开始执行解算,所以在确定每一个待仿真数字模型的仿真步长后,即可确定待仿真数字模型a的信号量释放周期为1ns,即,从0开始,每间隔1ns开始释放一次与待仿真数字模型a对应的信号量;同样的,待仿真数字模型b的信号量释放周期为1.5ns,待仿真数字模型的c的信号量释放周期为2ns。
34.在确定信号量释放周期前,需要设置辅助时钟中断周期,以此来完成按照规定时间发送对应的信号量,助时钟中断周期根据所有待仿真数字模型仿真步长确定,例如根据仿真数字模型a~c的仿真步长确定辅助时钟中断周期为0.5ns,即所有待仿真数字模型的仿真补充能够整除辅助时钟中断周期,所以辅助时钟中断周期每0.5ns计时一次。
35.按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;具体的,按照上述确定的信号量释放周期发送对应待仿真数字模型的信号量给对应的待仿真数字模型。
36.各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存;具体的,对应的待仿真数字模型从而在接收到对应的信号量后开始执行模型解算任务,得到解算结果。
37.每一个待仿真数字模型在解算过程中独立,并且能够实现多个待仿真数字模型的同时解算,从而使得每一个待仿真数字模型的解算结果能够及时高效地发送给同一vxworks运行系统中,降低运算难度和运算成本,提高运算效率。
38.进一步说明,其中各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算数据并保存,具体包括以下步骤:各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;各仿真模型根据仿真参数解算得到当前的解算数据;具体的,在待仿真数字模型在运行过程中,存在需要给待仿真数字模型输入时时的参数,从而实现真实环境下的仿真,通常能够实现根据仿真需求将仿真参数输入给对应的待仿真数字模型。
39.为了进一步提高运算效率,通过共享内存方式实现解算数据共享;即确定解算数据存在相互需求的待仿真数字模型的模型名称,从而使一个待仿真数字模型通过自身的模型输出接口将自身得到的解算数据通过另一个待仿真数字模型的模型输入接口发送给该模型,从而实现待仿真数字模型的内部运算交互,提高运算效率,降低运算难度。
40.例如,待仿真数字模型d模拟飞机供油操作,得到飞机当前速度的解算结果,同时机翼模型需要获取飞机当前速度的解算结果解算飞机机翼的阻力大小,从而输出风阻值解算结果,此时风阻值解算结果可以通过模型输出接口输出,也可以通过其他待仿真数字模型的输入接口输入给对应的待仿真数字模型晚上模型解算任务。
41.根据仿真需求,释放模型停止信号量,各待仿真数字模型在解算结束后停止运行,并删除所有模型解算任务。
42.具体的,在需要停止模型解算任务时,操作人员可以根据需求发送停止信号量,也可以在某一待仿真数字模型的解算结果满足停止条件时发送停止信号量。
43.停止信号量发送后,每一个待仿真数字模型在解算完成后便停止,即停止发送对应待仿真数字模型的信号量。
44.在完成当前模型的解算需求后,删除所有的模型解算任务,完成待仿真数字模型的运行。
45.实施例2参考图2~4,本实施例还提供一种基于vxworks实时系统的多模型运行系统,包括:模型获取单元,用于获取多个待仿真数字模型,并对多个所述待仿真数字模型命名,得到非重复的模型名;模型加载单元,用于根据所述模型名将每一个待仿真数字模型加载至内存中,得到与待仿真数字模型一一对应的模型信息并保存;模型任务创建单元,用于根据待仿真数字模型的模型信息逐一创建模型解算任务,并将所述模型解算任务与cpu物理核绑定;模型解算单元,用于设置信号量释放周期,各模型解算任务按照所述信号量释放
周期解算与之匹配的所述待仿真数字模型,得到模型运行结果。
46.进一步限定,所述模型获取单元包括:模型管理模块,用于通过仿真工具生成.out可执行数字模型或加载.out可执行数字模型,所述.out可执行数字模型的名称非重复;模型选择模块,用于根据模型运行环境cpu物理核的核数n选择n个.out可执行数字模型,得到n个待仿真数字模型,1<n≤n。
47.进一步限定,所述模型加载单元包括:模型加载模块,用于分别对所述待仿真数字模型逐一进行命名,得到与每一个待仿真数字模型匹配的非重复模型名;模型接口加载模块,用于根据所述模型名将rom内存中对应的待仿真数字模型的模型加载接口、模型初始化接口、模型输入接口、模型输出接口和模型停止运行接口分别加载至内存中;模型实例化模块,用于通过所述模型名调用rom内存中的模型加载接口,传入待仿真数字模型对应的模型指针,实例化对应待仿真数字模型,得到与待仿真数字模型对应的模型实例化句柄;模型信息保存模块,用于将所述待仿真数字模型的模型实例化句柄、所述模型指针和所述模型名保存得到模型信息;所述模型任务创建单元包括:模型初始化模块,用于逐一调用待仿真数字模型的模型初始化接口,将与所述待仿真数字模型对应的实例化句柄传入对应的模型初始化接口,初始化待仿真数字模型;模型解算任务创建模块,用于根据每一个待仿真数字模型的模型信息创建与n个待仿真数字模型一一对应的n个模型解算任务;任务绑定模块,用于将n个模型解算任务与模型运行环境cpu的n个物理核一一对应地绑定。
48.进一步限定,所述模型解算单元包括:执行周期设定模块,用于根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;执行信号释放模块,用于按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;模型解算模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存。
49.所述模型解算模块包括:模型执行子模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;解算编辑子模块,用于根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;模型解算子模块,用于将各仿真模型根据仿真参数解算得到当前的解算数据;解算停止子模块,用于释放模型停止信号量,各待仿真数字模型在解算结束后停
止运行,并删除所有模型解算任务。
50.虽然本技术提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。本实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照本实施例或者附图所示的方法顺序执行或者并行执行。
51.以上实施例仅用以说明本技术的技术方案,而非对本技术限制;尽管参照前述实施例对本技术进行了详细的说明,本领域普通技术人员应当理解,其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术技术方案的范围。

技术特征:
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实时系统的多模型运行系统,其特征在于,所述模型解算单元包括:执行周期设定模块,用于根据每个待仿真数字模型的仿真步长,确定每个待仿真数字模型对应的信号量释放周期;执行信号释放模块,用于按照每个待仿真数字模型的信号量释放周期发送对应的模型解算任务执行信号量;模型解算模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行,得到解算结果并保存;所述模型解算模块包括:模型执行子模块,用于各待仿真数字模型在接收到对应的模型解算任务执行信号量后开始执行;解算编辑子模块,用于根据仿真需求通过模型输入接口输入仿真参数给对应的待仿真数字模型和/或将至少一个待仿真数字模型的解算数据通过模型输出接口作为其余至少一个待仿真数字模型的仿真参数;模型解算子模块,用于将各仿真模型根据仿真参数解算得到当前的解算数据;解算停止子模块,用于释放模型停止信号量,各待仿真数字模型在解算结束后停止运行,并删除所有模型解算任务。

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


技术研发人员:雷杰 田建升 何宇 王宬
受保护的技术使用者:西安羚控电子科技有限公司
技术研发日:2023.06.29
技术公布日:2023/8/5
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐