一种基于Simulink的仿真控制方法及装置与流程

文档序号:14950017发布日期:2018-07-17 22:20阅读:349来源:国知局

本发明涉及仿真控制技术领域,特别是涉及一种基于simulink的仿真控制方法及装置。



背景技术:

simulink作为当前主流的算法设计工具,很多算法通常是在simulink环境下设计完成。由于simulink是个开放的平台,能够集成一些i/o硬件板卡的驱动,同时通过代码生成技术,把模型生成代码,再借用实时仿真机(如dspace实时仿真机、concurrent实时仿真机等),将模型以代码的形式运行到实时仿真机中,进行实时仿真。

但是,使用实时仿真机进行实时仿真成本很高,首先需要有定时板卡,其次必须要有实时仿真机这一硬实时环境。而且实时仿真机价格昂贵,耗费成本,而且实际操作复杂,不利于推广应用。



技术实现要素:

本发明的目的在于提供一种基于simulink的仿真控制方法及装置,用以解决现有利用simulink进行实时仿真时,由于硬件条件限制而导致的耗费成本的问题。

为了实现上述目的,本发明实施例提供一种基于simulink的仿真控制方法,包括:

获取在simulink环境下建立的预设应用仿真模型的预设仿真时间,所述预设应用仿真模型中包括预先生成的定时模块,所述定时模块与pc机的时钟同步;

通过所述定时模块,获取所述预设应用仿真模型的实际仿真运行时间;

若所述实际仿真运行时间等于所述预设仿真时间,则触发执行所述预设应用仿真模型对应的目标应用事件。

其中,获取在simulink环境下建立的预设应用仿真模型的预设仿真时间的步骤之前,所述方法还包括:

生成与pc机的时钟同步的定时模块。

其中,所述生成与pc机的时钟同步的定时模块的步骤,包括:

获取pc机的时钟信息;

对所述pc机的时钟信息进行编码处理,得到与simulink环境匹配的用于仿真的时间信息;

根据所述时间信息,生成与pc机的时钟同步的定时模块。

其中,通过所述定时模块,获取所述预设应用仿真模型的实际仿真运行时间的步骤之后,所述方法还包括:

若所述实际仿真运行时间小于所述预设仿真时间,则延迟触发执行所述预设应用仿真模型对应的目标应用事件。

其中,延迟触发执行所述预设应用仿真模型对应的目标应用事件的步骤,包括:

对所述预设仿真时间与所述实际仿真运行时间进行差值计算,得到目标延迟时间;

通过所述定时模块,在所述目标延迟时间到达时触发执行所述预设应用仿真模型对应的目标应用事件。

本发明实施例还提供一种基于simulink的仿真控制装置,包括:

第一获取模块,用于获取在simulink环境下建立的预设应用仿真模型的预设仿真时间,所述预设应用仿真模型中包括预先生成的定时模块,所述定时模块与pc机的时钟同步;

第二获取模块,用于通过所述定时模块,获取所述预设应用仿真模型的实际仿真运行时间;

第一控制模块,用于在所述实际仿真运行时间等于所述预设仿真时间时,触发执行所述预设应用仿真模型对应的目标应用事件。

其中,所述装置还包括:

定时模块生成模块,用于在获取在simulink环境下建立的预设应用仿真模型的预设仿真时间之前,生成与pc机的时钟同步的定时模块。

其中,所述定时模块生成模块包括:

获取子模块,用于获取pc机的时钟信息;

编码处理子模块,用于对所述pc机的时钟信息进行编码处理,得到与simulink环境匹配的用于仿真的时间信息;

定时模块生成子模块,用于根据所述时间信息,生成与pc机的时钟同步的定时模块。

其中,所述装置还包括:

第二控制模块,用于在通过所述定时模块,获取所述预设应用仿真模型的实际仿真运行时间之后,且所述实际仿真运行时间小于所述预设仿真时间时,延迟触发执行所述预设应用仿真模型对应的目标应用事件。

其中,所述第二控制模块包括:

计算子模块,用于对所述预设仿真时间与所述实际仿真运行时间进行差值计算,得到目标延迟时间;

控制子模块,用于通过所述定时模块,在所述目标延迟时间到达时触发执行所述预设应用仿真模型对应的目标应用事件。

本发明的上述技术方案的有益效果如下:

本发明实施例的上述方案中,获取在simulink环境下建立的包括预先生成的定时模块的预设应用仿真模型的预设仿真时间,其中,该定时模块与pc机的时钟同步,通过该定时模块,获取预设应用仿真模型的实际仿真运行时间;并在实际仿真运行时间等于该预设仿真时间时,触发执行该预设应用仿真模型对应的目标应用事件。如此,本发明在simulink环境下,通过在预设应用仿真模型中增加定时模块,能够实现纯软件环境下的实时仿真,且操作简单,而且省去了实时仿真机这一价格昂贵的硬件设备,达到节约成本的目的。

附图说明

图1为本发明实施例提供的基于simulink的仿真控制方法的流程图之一;

图2为本发明实施例提供的基于simulink的仿真控制方法的流程图之二;

图3为图2中步骤100的具体流程图;

图4为本发明实施例提供的基于simulink的仿真控制方法的流程图之三;

图5为本发明实施例提供的基于simulink的仿真控制装置的组成结构示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

如图1所示,为本发明实施例的基于simulink的仿真控制方法的流程图。下面就该图具体说明该方法的实施过程。

步骤101,获取在simulink环境下建立的预设应用仿真模型的预设仿真时间,所述预设应用仿真模型中包括预先生成的定时模块,所述定时模块与pc机的时钟同步;

这里需要说明的是,simulink是matlab最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

这里,simulink作为动态仿真工具,通过模型建立、运行仿真,应用于信号处理、图像视频处理、音频处理、流程模拟、数值运算和控制系统等各方面。适用范围包括:信号处理、控制系统、通信行业。

这里,预设应用仿真模型包括:信号处理仿真模型、控制系统仿真模型,通信仿真模型等。

优选的,本发明实施例的预设应用仿真模型为周期性进行数据收发的仿真模型。比如,udp(userdatagramprotocol,用户数据报协议)通信,以固定时间周期发送和接收数据帧的应用场景。

这里,预设仿真时间可以通过用户外部输入获取,也可获取预设应用仿真模型中预先设置的仿真时间。

需要说明的是,本发明实施例的预设应用仿真模型中的定时模块与pc机的时钟同步是指该定时模块与当前运行该预设应用仿真模型的pc机的时钟同步。

步骤102,通过所述定时模块,获取所述预设应用仿真模型的实际仿真运行时间;

这里,由于定时模块与pc机的时钟同步,可通过记录预设应用仿真模型运行开始时对应的pc机的时钟以及运行结束时对应的pc机的时钟,以获取该预设应用仿真模型的实际仿真运行时间。

步骤103,若所述实际仿真运行时间等于所述预设仿真时间,则触发执行所述预设应用仿真模型对应的目标应用事件。

需要说明的是,本步骤在实际仿真运行时间等于预设仿真时间时,触发执行预设应用仿真模型对应的目标应用事件,目的是为了使预设应用仿真模型以预设仿真时间运行,达到实时仿真的效果,提升预设应用仿真模型的仿真运行以及仿真结果的准确性。

这里,若预设应用仿真模型为周期性进行数据收发的仿真模型,则目标应用事件为数据的发送或者接收。

本发明实施例提供的基于simulink的仿真控制方法,获取在simulink环境下建立的包括预先生成的定时模块的预设应用仿真模型的预设仿真时间,其中,该定时模块与pc机的时钟同步,通过该定时模块,获取预设应用仿真模型的实际仿真运行时间;并在实际仿真运行时间等于该预设仿真时间时,触发执行该预设应用仿真模型对应的目标应用事件。如此,在simulink环境下,通过在预设应用仿真模型中增加定时模块,能够实现纯软件环境下的实时仿真,且操作简单,而且省去了实时仿真机这一价格昂贵的硬件设备,达到节约成本的目的。

由于pc机上的时钟无法直接应用到simulink环境下,需进行相应地处理方可被simulink使用,所以,在上述图1所示的实施例的基础上,优选的,如图2所示,本发明方法在步骤101之前,还包括:

步骤100,生成与pc机的时钟同步的定时模块。

优选的,如图3所示,该步骤可具体包括:

步骤1001,获取pc机的时钟信息;

优选的,pc机的时钟信息可从c标准库time.h头文件中获取。

步骤1002,对所述pc机的时钟信息进行编码处理,得到与simulink环境匹配的用于仿真的时间信息;

这里,可通过s-函数(systemfunction,系统函数)代码使用的编程语言,对pc机的时钟信息进行编码处理。

具体的,首先定义rtc.c源代码,再定义两个与时间有关的函数。一个函数用于初始化阶段的调用,目的是得到仿真初始时间;另一个函数用于在仿真过程中不断调用,更新时间变量。

这里,rtc为实时时钟real-timeclock的英文缩写。

优选的,两个与时间有关的函数均可使用clock()函数。

然后,启动simulink环境下的s-函数模板,声明该模板的输入输出个数,并分别定义启动时调用的函数以及在每个仿真步长都会调用的函数;最后,代入pc机的时钟信息对其进行编码处理,得到与simulink环境匹配的用于仿真的时间信息。

步骤1003,根据所述时间信息,生成与pc机的时钟同步的定时模块。

这里,使用legacycodetool,将该时间信息编译成能够在simulink环境下执行的模块,即与pc机的时钟同步的定时模块。

该定时模块可以理解为simulink模型。

这样,通过上述步骤的执行,能够得到可以在simulink环境下执行的模块的定时模块,用于在simulink环境下建立预设应用仿真模型时,加入该定时模块,以便于后续的实时仿真。

需要说明的是,该定时模块应用于预设应用仿真模型时,与触发执行仿真的触发器连接。

这里,该定时模块能够进行实时仿真步长的设置,也即本发明实施例的预设仿真时间。

这里,优选的,步长的分辨率为1ms。当然,在实际使用中根据pc机操作系统的时钟精度而定,实际有可能达不到1ms。

该定时模块还能够设置加速比系数,用户可输入加速倍率值。比如,在1000ms的仿真步长下,加速倍率若为10,其实际的仿真步长则为100ms,也就是,触发执行仿真的触发器每100ms执行以下,与pc机的电脑时钟同步。即预设应用模型对应的目标应用事件按照定时模块设定的仿真时间进行执行。

需说明的是,一般情况下,预设应用仿真模型的实际仿真运行时间要小于预设仿真时间。比如,在simulink环境下建立的通信数据收发仿真模型中,预设仿真时间为10ms,即需要10ms运行一次该模型,也就是需要10ms发送或者接收一次数据,但实际仿真时间可能仅为0.1ms,若此时,发送或者接收数据,则无法实现实时仿真,所以,在上述图1所示的实施例的基础上,优选的,如图4所示,本发明方法在步骤102之后,还包括:

步骤104,若所述实际仿真运行时间小于所述预设仿真时间,则延迟触发执行所述预设应用仿真模型对应的目标应用事件。

本步骤具体包括:

对所述预设仿真时间与所述实际仿真运行时间进行差值计算,得到目标延迟时间;

通过所述定时模块,在所述目标延迟时间到达时触发执行所述预设应用仿真模型对应的目标应用事件。

需要说明的是,定时模块在目标延迟时间的起始时刻开始计时,当到达目标延迟时间的结束时刻时,触发执行预设应用仿真模型对应的目标应用事件。如此,在预设应用仿真模型的实际仿真运行时间小于预设仿真时间时,通过延迟触发预设应用仿真模型对应的目标应用事件的限制处理,能够进一步保证纯软件环境下的实时仿真,且操作简单,而且省去了实时仿真机这一价格昂贵的硬件设备,达到节约成本的目的。

如图5所示,为本发明实施例提供的基于simulink的仿真控制装置的组成结构示意图。

该基于simulink的仿真控制装置包括:

第一获取模块201,用于获取在simulink环境下建立的预设应用仿真模型的预设仿真时间,所述预设应用仿真模型中包括预先生成的定时模块,所述定时模块与pc机的时钟同步;

第二获取模块202,用于通过所述定时模块,获取所述预设应用仿真模型的实际仿真运行时间;

第一控制模块203,用于在所述实际仿真运行时间等于所述预设仿真时间时,触发执行所述预设应用仿真模型对应的目标应用事件。

优选的,所述装置还包括:

定时模块生成模块,用于在获取在simulink环境下建立的预设应用仿真模型的预设仿真时间之前,生成与pc机的时钟同步的定时模块。

优选的,所述定时模块生成模块包括:

获取子模块,用于获取pc机的时钟信息;

编码处理子模块,用于对所述pc机的时钟信息进行编码处理,得到与simulink环境匹配的用于仿真的时间信息;

定时模块生成子模块,用于根据所述时间信息,生成与pc机的时钟同步的定时模块。

优选的,所述装置还包括:

第二控制模块,用于在通过所述定时模块,获取所述预设应用仿真模型的实际仿真运行时间之后,且所述实际仿真运行时间小于所述预设仿真时间时,延迟触发执行所述预设应用仿真模型对应的目标应用事件。

优选的,第二控制模块可包括:

计算子模块,用于对所述预设仿真时间与所述实际仿真运行时间进行差值计算,得到目标延迟时间;

控制子模块,用于通过所述定时模块,在所述目标延迟时间到达时触发执行所述预设应用仿真模型对应的目标应用事件。

本发明实施例提供的基于simulink的仿真控制装置,通过第一获取模块获取在simulink环境下建立的包括预先生成的定时模块的预设应用仿真模型的预设仿真时间,其中,该定时模块与pc机的时钟同步,第二获取模块通过该定时模块,获取预设应用仿真模型的实际仿真运行时间;第一控制模块在实际仿真运行时间等于该预设仿真时间时,触发执行该预设应用仿真模型对应的目标应用事件。如此,在simulink环境下,通过在预设应用仿真模型中增加定时模块,能够实现纯软件环境下的实时仿真,且操作简单,而且省去了实时仿真机这一价格昂贵的硬件设备,达到节约成本的目的。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1