仿真方法、装置、计算机设备和存储介质与流程

本申请涉及仿真控制,特别是涉及一种仿真方法、装置、计算机设备和存储介质。
背景技术:
1、随着仿真技术的发展,越来越多的场景存在仿真需求,比如航空航天、汽车和机器人等复杂系统的开发过程中,需要用到仿真技术。在实际的仿真应用中,仿真的模型通常比较复杂,可能由多个领域的仿真模块所集成。不同用户在不同场景开发的模型也不相同,最终所有子模型都要集成一个大模型,如图1所示。
2、众所周知半实物分为建模集成、划分子系统、生成代码、编译模型、接口定义和硬件集成、实时运行等几个关键步骤。在实时运行调试过程中,若仿真模型出现问题则需要调整模型,将识别子系统、生成代码、编译模型等步骤重新走一遍,而模型越大该过程耗时越长,最终导致仿真调试效率低下,且会浪费大量人力、财力。
3、申请号为cn202311864964 .6的中国申请,公开了一种航天器运动仿真系统及相关产品,提到将集成在航天器运动仿真系统中的一些模型导出为fmu模型,利用其独立的、可移植的的特点,将模型集成到不同的仿真环境中,通过修改不同的fmu参数进行参数的调整和修改。
4、该方法一定程度上,能够提高仿真调试效率,但是其并未说明将哪些模型导出为fmu模型,如何对其进行改进以进一步提高仿真调试效率和可行性,是该领域亟待解决的技术问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够提高仿真效率的仿真方法、装置、计算机设备和计算机可读存储介质。
2、第一方面,本申请提供了一种仿真方法。所述方法包括:
3、构建目标仿真模型的多个子模块;
4、确定多个所述子模块中的目标子模块,将所述目标子模块封装为simulink模型,将多个所述子模块中除所述目标子模块外的子模块封装为fmu模型;
5、获取所述simulink模型和多个fmu模型间的数据交互参数;
6、根据所述数据交互参数运行所述目标仿真模型。
7、在其中一个实施例中,所述确定多个所述子模块中的目标子模块,包括:确定多个所述子模块中处理速率最快子模块为目标子模块。
8、在其中一个实施例中,所述数据交互参数包括所述simulink模型和多个fmu模型间的数据映射关系;
9、所述根据所述数据交互参数运行所述目标仿真模型,包括:
10、加载运行fmu模型;
11、根据所述数据映射关系,所述simulink模型读取对应的fmu模型的计算结果作为输入数据,并根据所述输入数据进行仿真计算,得到所述simulink模型的仿真计算结果,并将所述仿真计算结果写入数据缓存单元;
12、所述fmu模型读取所需要的输入信号数据,根据所述输入信号数据进行仿真计算,得到所述fmu模型的仿真计算结果,并将所述fmu模型的仿真计算结果写入数据缓存单元。
13、在另一个实施例中,所述数据交互参数还包括速率比;所述根据所述数据交互参数运行所述目标仿真模型,还包括:
14、各所述fmu模型检测所述simulink模型的仿真步数,若所述仿真步数符合自身速率比,则当前的所述fmu模型执行读取所需要的输入信号数据,根据所述输入信号数据进行仿真计算的步骤。
15、在另一个实施例中,所述方法还包括:
16、确定要加载的所述fmu模型的数量;
17、启用相应数量的多线程,所述多线程并行加载对应的所述fmu模型。
18、在另一个实施例,所述数据交互参数还包括各子模块的模型的数据存储参数;所述将所述fmu模型的仿真计算结果写入数据缓存单元,包括:
19、所述fmu模型对应的线程根据所述数据存储参数,计算所述fmu模型数据的缓存单元起始地址,以及每一个信号基于所述起始地址的偏移量,根据所述起始地址和所述偏移量将所述仿真计算结果写入数据缓存单元。
20、在另一个实施例,所述数据缓存单元包括本机共享内存、反射内存卡和网络通信应用程序中的任意一种或多种。
21、第二方面,本申请还提供了一种仿真装置。所述装置包括:
22、构建模块,用于构建目标仿真模型的多个子模块;
23、确定多个所述子模块中的目标子模块,将所述目标子模块封装为simulink模型,将多个所述子模块中除所述目标子模块外的子模块封装为fmu模型;
24、配置参数获取模块,用于获取所述simulink模型和多个fmu模型间的数据交互参数;
25、仿真模块,用于根据所述数据交互参数运行所述目标仿真模型。
26、第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各实施例的仿真方法的步骤。
27、第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实现上述各实施例的仿真方法的步骤。
28、上述仿真方法、装置、计算机设备和存储介质,通过将目标仿真模型封装为一个simulink模型+n个fmu模型,当目标仿真模型中,需要调整的是fmu模型,只需要调整其中对应的fmu模型,simulink模型不需要动,也就不需要在simulink模型上走生成代码、编译这一套流程,减少了目标仿真模型局部调整的耗时。如果是simulink模型有调整,只需要在小simulink模型上走生成代码、编译这一套流程。而小模型较小,调整后生成代码+编译的耗时也相对相短。由于减少了目标仿真模型局部调整的耗时,因此,能够便于对目标仿真模型进行局部调整,从而提高仿真效率。
技术特征:
1.一种仿真方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述确定多个所述子模块中的目标子模块,包括:确定多个所述子模块中处理速率最快子模块为目标子模块。
3.根据权利要求1所述的方法,其特征在于,所述数据交互参数包括所述simulink模型和多个fmu模型间的数据映射关系;
4.根据权利要求3所述的方法,其特征在于,所述数据交互参数还包括速率比;所述根据所述数据交互参数运行所述目标仿真模型,还包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述数据交互参数还包括各子模块的模型的数据存储参数;所述将所述fmu模型的仿真计算结果写入数据缓存单元,包括:
7.根据权利要求3或6所述的方法,其特征在于,所述数据缓存单元包括本机共享内存、反射内存卡和网络通信应用程序中的任意一种或多种。
8.一种仿真装置,其特征在于,所述装置包括:
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
技术总结
本申请涉及一种仿真方法、装置、计算机设备和存储介质。所述方法包括:构建目标仿真模型的多个子模块;确定多个所述子模块中的目标子模块,将所述目标子模块封装为simulink模型,将多个所述子模块中除所述目标子模块外的子模块封装为FMU模型;获取所述simulink模型和多个FMU模型间的数据交互参数;根据所述数据交互参数运行所述目标仿真模型。该方法由于减少了目标仿真模型局部调整的耗时,因此,能够便于对目标仿真模型进行局部调整,从而提高仿真效率。
技术研发人员:宋朝霞,武志成,刘宜斌,邹双,王柏林
受保护的技术使用者:长沙科梁科技有限公司
技术研发日:
技术公布日:2024/12/2
技术研发人员:宋朝霞,武志成,刘宜斌,邹双,王柏林
技术所有人:长沙科梁科技有限公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
