一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种仿真调度方法及系统与流程

2022-11-28 11:12:54 来源:中国专利 TAG:


1.本发明属于控制仿真技术领域,涉及控制仿真调度技术,具体为一种仿真调度方法及系统。


背景技术:

2.rtw是一种基于simulink的代码自动生成环境,它能直接从simulink模型中产生优化、可移植的嵌入式实时代码,并且能够根据目标机配置自动生成适合该目标机软硬件环境的可执行程序。vxworks操作系统以良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术领域及实时性要求极高的领域中。
3.由于现有技术对仿真系统的实时性要求逐渐提高,单纯在simulink下进行的仿真采用windows操作系统,其经常会受到其他任务干扰而使任务延迟执行,产生较大误差,导致无法精确完成实时任务。vxworks操作系统的实时性较好,其系统本身的进程调度、进程间通信、中断处理等系统公用程序精练,所造成的延迟很短,但是如何将simulink仿真系统与vxworks操作系统之间实现仿真调度,以实现simulink仿真过程的实时性,是本领域技术中所面临的难点。


技术实现要素:

4.针对上述现有技术中simulink仿真过程实时性差,导致任务延迟,产生较大误差,无法精确完成任务的问题,本发明提出了一种仿真调度方法及系统。
5.本发明在使用时使用者仅需在simulink中构建数学仿真模型,通过rtw将其编译并下载到运行vxworks实时操作系统的目标机上即可;本发明通过使用辅助时钟调度任务的形式来实现整体系统的仿真调度分配,vxworks实时操作系统通过辅助时钟的形式对整体仿真进行整体控制;既降低了仿真代码的编写量,又保证了系统仿真的实时性,同时提高系统仿真的性能;其具体技术方案如下:
6.一种仿真调度方法,包括以下步骤:
7.构建simulink数学模型并生成初始模型文件;
8.将所述初始模型文件转化为rtw文件;
9.调用目标语言编译器将所述rtw文件转换为待调用模型文件;
10.调用make工具进行自动生成代码的联编,对所述待调用模型文件进行解算生成执行模型文件;
11.根据所述执行模型文件,在vxworks系统中执行闭环仿真。
12.进一步限定,所述构建simulink数学模型并生成模型文件之前还包括
13.基于vxworks内核程序定义、构建和/或封装硬件驱动文件;
14.建立驱动模块与仿真板卡之间的通讯。
15.进一步限定,所述调用make工具进行自动生成代码的联编,对所述待调用模型文件进行解算生成执行模型文件的过程具体包括:
16.调用make工具进行自动生成代码的联编,通过代码对待调用模型文件进行识别与检查处理;
17.设置simulink数学模型解算任务的优先级;
18.初始化simulink数学模型的内存空间、采样步长、信号量以及解算运行参数;
19.创建simulink数学模型的解算任务,并通过辅助时钟控制解算过程,最终生成执行模型文件,结束解算任务,并删除任务、释放内存。
20.进一步限定,所述创建simulink数学模型的解算任务,并通过辅助时钟控制解算的过程具体包括:
21.创建simulink数学模型的解算任务;
22.判断解算任务的类型;
23.若为单任务解算,则对simulink数学模型的运行状态进行检测,根据运行状态调用所述待调用模型文件进行simulink数学模型计算,并释放单任务解算的信号量;
24.若为多任务解算,则将simulink数学模型的解算任务分解为多个子任务解算并分别进行检测,根据各子任务解算的运行状态调用所述待调用模型文件进行simulink数学模型计算,并释放各子任务解算的信号量。
25.进一步限定,所述根据所述执行模型文件,在vxworks系统中执行闭环仿真的过程具体包括:
26.调用执行模型文件中的入口函数,初始化辅助时钟的中断函数;
27.通过辅助时钟的时钟函数对所述待执行模型文件进行解算,并检测是否达到子任务的采样时间点;
28.若检测结果为子任务未达到采样时间点,则重复检测步骤;
29.若检测结果为子任务已达到采样时间点,则释放采样时间点的信号量;
30.判断采样时间点的信号量类型;
31.若为中断解算信号量,则根据中断解算信号量通过辅助时钟的中断函数暂停待执行模型文件的解算;
32.若为停止解算信号量,则根据停止解算信号量调用模型解算的终止函数并释放内存,完成闭环仿真。
33.进一步限定,所述rtw文件中包含了simulink数学模型的描述内容,所述描述内容包括数据类型、数据输入、数据输出和内部逻辑。
34.一种仿真调度系统,包括
35.模型构建模块:用于构建simulink数学模型并生成初始模型文件;
36.rtw文件生成模块:用于将所述初始模型文件转化为rtw文件;
37.转换模块:用于调用目标语言编译器将所述rtw文件转换为待调用模型文件;
38.代码联编模块:用于调用make工具进行自动生成代码的联编,对所述待调用模型文件进行解算生成执行模型文件;
39.以及仿真模块:用于根据所述执行模型文件,在vxworks系统中执行闭环仿真。
40.进一步限定,所述模型构建模块在用于构建simulink数学模型并生成初始模型文件之前还包括基于vxworks内核程序定义、构建和/或封装硬件驱动文件;建立驱动模块与仿真板卡之间的通讯。
41.进一步限定,所述代码联编模块包括:
42.检测模块:用于调用make工具进行自动生成代码的联编,通过代码对待调用模型文件进行识别与检查处理;
43.优先级设计模块:用于设置simulink数学模型解算任务的优先级;
44.初始化模块:用于初始化simulink数学模型的内存空间、采样步长、信号量以及解算运行参数;
45.以及解算任务创建模块:用于创建simulink数学模型的解算任务,并通过辅助时钟控制解算过程,最终生成执行模型文件,结束解算任务,并删除任务、释放内存。
46.一种计算机可读存储介质,存储有程序文件,所述程序文件被执行实现上述的仿真调度方法。
47.与现有相比,本发明的有益效果在于:
48.1、本发明一种仿真调度方法,其通过rtw将其编译并下载到vxworks实时操作系统的目标机上即可;通过rtw自动生成代码使得simlink模型生成的代码被待调用模型文件调用,修改待调用模型文件,通过辅助时钟调度任务的形式来实现整体系统的仿真调度分配,在simulink仿真系统与vxworks操作系统之间实现了仿真调度,提高了simulink仿真过程的实时性。
49.2、本发明一种仿真调度方法,提供了一种新的方法,该方法通过利用调度辅助时钟的形式对仿真系统进行整体控制,利于外围设备对于模型解算运行的控制;提高了系统仿真的性能。
50.3、本发明通过对待调用模型文件的入口函数进行修改,使其具有程序初始化、模型运行解算和程序结束的3种功能,用于vxworks操作系统进行调用,并通过该方法生成待调用模型文件。
51.4、本发明通过设置simulink数学模型检查处理任务的优先级,对任务进行及时处理,加速了模型文件的解算过程。
52.5、本发明simulink数学模型所生成的代码是以函数的形式被待调用模型文件进行调用,来实现整体仿真任务的调度分配。即本发明通过修改待调用模型文件,结合辅助时钟调度任务的形式来实现仿真系统的任务调度和分配。
附图说明
53.图1为本发明一种仿真调度方法的过程示意图;
54.图2为对待调用模型文件进行解算生成执行模型文件的过程示意图;
55.图3为闭环仿真的过程示意图;
56.图4为本发明一种仿真调度系统的示意图;
57.图5为代码联编模块的示意图。
具体实施方式
58.下面结合附图及实施例对本发明的技术方案进行进一步地解释说明,但本发明并不限于以下说明的实施方式。
59.实施例1
60.参见图1,本实施例一种仿真调度方法,包括以下步骤:
61.s0:基于vxworks内核程序定义、构建和/或封装硬件驱动文件;建立驱动模块与仿真板卡之间的通讯。
62.具体可以是:基于vxworks内核程序定义、构建和/或封装硬件驱动文件,建立vxworks的驱动模块与vxworks仿真板卡之间的通讯;该驱动模块是辅助调用硬件接口,通过s函数构建相关的驱动模块,通过调用vxworks中封装好的相应板卡、网络调用函数,保证系统的通讯;
63.s1:构建simulink数学模型并生成初始模型文件;
64.具体的,构建simulink数学模型并生成初始模型文件的步骤为:
65.根据需求,通过simulink模型库构建simulink数学模型,并生成初始化模型文件,在初期调试时,可先在simulink平台下运行初始化模型文件,并作相应的修改与调整,当仿真结果与需求一致时,可进行步骤s2;构建simulink数学模型的方法可以有多种,比如用户可以依据实际需求通过simulink模型库进行选择,也可以结合仿真测试需要进行个性化构建等;
66.s2:运用rtw将初始化模型文件转换为rtw文件;其中,在rtw文件中包含了simulink数学模型的描述内容,该描述内容包括数据类型、数据输入、数据输出和内部逻辑;
67.s3:调用目标语言编译器将rtw文件转换为待调用模型文件;
68.s4:调用make工具进行自动生成代码的联编,通过代码对待调用模型文件的入口函数进行识别与检查处理,调用待调用模型文件进行解算,将待调用模型文件生成执行模型文件;具体的,步骤s4为:通过目标语言编译器-tlc语言,本实施例中选用的是tornado.tlc文件,将待调用模型文件转换为执行模型文件;
69.参见图2,具体的,步骤s4为:
70.s4.1:调用make工具进行自动生成代码的联编,通过代码对待调用模型文件的入口函数进行识别,将识别的待调用模型文件进行检查处理,将未识别的待调用模型文件转换到外部模式进行解释,并对待调用模型文件进行检查处理;具体的,解析simulink数学模型,解析内容包括simulink数学模型的停止时间以及在外部模式下仿真模拟开始之前的等待信息;并对待调用模型文件的入口函数进行识别,将未识别的待调用模型文件转换到外部模式进行解释,并对待调用模型文件进行检查处理;其中,外部模式是指主机与目标机之间的通信,主机是指运行matlab和simulink环境的计算机,目标机则是指运行由rtw生成的执行模型文件的计算机;
71.s4.2:设置simulink数学模型检查处理任务的优先级;优先级的设置原则是:模型文件的解算过程要优先于硬件板卡的调用过程;
72.s4.3:初始化simulink数学模型的内存空间、采样步长、信号量以及解算运行参数;
73.s4.4:创建simulink数学模型的解算任务,并通过调用待调用模型文件的进行解算;其中,解算任务分为单任务解算和多任务解算,需要对单任务解算和多任务解算进行判断;若判断解算任务为单任务解算,则对simulink数学模型的运行状态进行检测,运行状态包括正常运行状态、结束状态或错误状态,根据运行状态调用模型解算运行函数进行
simulink数学模型计算,并释放单任务解算的信号量;判断解算任务为多任务解算,则将simulink数学模型的解算任务进行分解,形成多个子任务解算,对多个子任务解算的运行状态分别进行检测,多个子任务解算的运行状态包括正常运行状态、结束状态或错误状态,根据各子任务解算的运行状态调用模型解算运行函数进行simulink数学模型计算,并释放各子任务解算的信号量;通过辅助时钟控制待调用模型文件的解算过程,生成执行模型文件,结束解算任务,并删除任务、释放内存。辅助时钟是利用目标机的cpu内除系统时钟外的另一个定时器。vxworks提供了一系列与系统时钟相同的操作接口,可以通过挂接中断服务程序的方式实现精确延时,当辅助时钟的定时周期到时,即出发中断服务。
74.s5:将生成的执行模型文件下载至vxworks系统中,进行闭环系统仿真。
75.参见图3,具体的,步骤s5为:
76.s5.1:调用生成的执行模型文件的入口函数,初始化辅助时钟的中断函数;
77.s5.3:通过辅助时钟的时钟函数对执行模型文件进行解算,并检测是否达到子任务的采样时间点,若检测结果为子任务未达到采样时间点,则继续检测;若检测结果为子任务已达到采样时间点,则释放采样时间点的信号量;采样时间点(其中包含开始时刻、结束时刻等)是通过模型内部进行相关设置的,rtw生成的文件中会根据各个子任务的开始时刻、结束时刻进行设置,释放对应的开始信号量以及结束信号量。
78.s5.4:接收s5.3的信号量,并对接收的采样时间点的信号量进行判断,若判断采样时间点的信号量为中断解算信号量,则根据中断解算信号量通过辅助时钟的中断函数暂停执行模型文件的解算;若判断采样时间点的信号量为停止解算信号量,则根据停止解算信号量调用模型解算的终止函数并释放内存,完成闭环仿真。
79.实施例2
80.参见图4,本实施例的一种仿真调度系统,其是基于实施例1的仿真调度方法形成的,其包括模型构建模块、rtw文件生成模块、转换模块、代码联编模块和仿真模块,
81.基于vxworks内核程序定义、构建和/或封装硬件驱动文件,建立vxworks的驱动模块与vxworks仿真板卡之间的通讯;该驱动模块是辅助调用硬件接口,通过s函数构建相关的驱动模块,通过调用vxworks中封装好的相应板卡、网络调用函数,保证系统的通讯;
82.模型构建模块:用于构建simulink数学模型并生成初始模型文件;具体的,通过simulink模型库构建simulink数学模型,并生成初始化模型文件,在初期调试时,可先在simulink平台下运行初始化模型文件,并作相应的修改与调整,当仿真结果与需求一致时,可运行rtw文件生成模块;构建simulink数学模型的方法可以有多种,比如用户可以依据实际需求通过simulink模型库进行选择,也可以结合仿真测试需要进行个性化构建等;
83.rtw文件生成模块:用于运用rtw将初始化模型文件转换为rtw文件;其中,在rtw文件中包含了simulink数学模型的描述内容,该描述内容包括数据类型、数据输入、数据输出和内部逻辑;
84.转换模块:用于调用目标语言编译器将rtw文件转换为待调用模型文件;
85.代码联编模块:用于调用make工具进行自动生成代码的联编,通过代码对待调用模型文件的入口函数进行识别与检查处理,调用待调用模型文件进行解算,将待调用模型文件生成执行模型文件;具体的通过目标语言编译器-tlc语言,本实施例中选用的是tornado.tlc文件,将待调用模型文件转换为执行模型文件;
86.仿真模块:用于将生成的执行模型文件下载至vxworks系统中,进行闭环系统仿真。
87.参见图5,本实施例的代码联编模块包括检测模块、优先级设计模块、初始化模块和解算任务创建模块,
88.检测模块:用于调用make工具进行自动生成代码的联编,通过代码对待调用模型文件的入口函数进行识别,将识别的待调用模型文件进行检查处理,将未识别的待调用模型文件转换到外部模式进行解释,并对待调用模型文件进行检查处理;具体的,解析simulink数学模型,解析内容包括simulink数学模型的停止时间以及在外部模式下仿真模拟开始之前的等待信息;并对待调用模型文件的入口函数进行识别,将未识别的待调用模型文件转换到外部模式进行解释,并对待调用模型文件进行检查处理;其中,外部模式是指主机与目标机之间的通信,主机是指运行matlab和simulink环境的计算机,目标机则是指运行由rtw生成的待调用模型文件的计算机;
89.优先级设计模块:用于设置simulink数学模型检查处理任务的优先级;优先级的设置原则是:模型文件的解算过程要优先于硬件板卡的调用过程;
90.初始化模块:用于初始化simulink数学模型的内存空间、采样步长、信号量以及解算运行参数;
91.解算任务创建模块:用于创建simulink数学模型的解算任务,并通过调用待调用模型文件的进行解算;其中,解算任务分为单任务解算和多任务解算,需要对单任务解算和多任务解算进行判断;若判断解算任务为单任务解算,则对simulink数学模型的运行状态进行检测,运行状态包括正常运行状态、结束状态或错误状态,根据运行状态调用模型解算运行函数进行simulink数学模型计算,并释放单任务解算的信号量;判断解算任务为多任务解算,则将simulink数学模型的解算任务进行分解,形成多个子任务解算,对多个子任务解算的运行状态分别进行检测,多个子任务解算的运行状态包括正常运行状态、结束状态或错误状态,根据各子任务解算的运行状态调用模型解算运行函数进行simulink数学模型计算,并释放各子任务解算的信号量;通过辅助时钟控制待调用模型文件的的解算过程,生成执行模型文件,结束解算任务,并删除任务、释放内存。辅助时钟是利用目标机的cpu内除系统时钟外的另一个定时器。vxworks提供了一系列与系统时钟相同的操作接口,可以通过挂接中断服务程序的方式实现精确延时,当辅助时钟的定时周期到时,即出发中断服务。
92.实施例3
93.本实施例一种计算机可读存储介质,其存储有程序文件,程序文件被执行实现实施例1的仿真调度方法。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献