我是靠谱客的博主 单薄短靴,最近开发中收集的这篇文章主要介绍matlab实时输入_性能测试篇:Simulink RealTime 实时性能效果测试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在实时控制领域,Matlab公司发布了实时操作系统Simulink Real-Time™,成为和dSPACE、NI、VxWorks等各路大神强势竞争的利器。利用Simulink Real-Time实时操作系统做下位机,加上另一台安装了Matlab的电脑做上位机,就构成了一套完整的实时控制系统开发平台。 Mathworks官方推荐的实时仿真产品SpeedGoat,就是采用的Simulink Real-Time完整的解决方案。 目前,在国内也有代理公司。 那基于Simulink Real-Time 的操作体验与实时性能究竟如何呢,我们来做一下简单实验测试一下。 c817ff082dc0a1d9cac19705426ee97b.gif

首先设置好一台Simulink RealTime 的目标机。(小编采用的是Matlab 2016B版本,具体如何安装一台Simulink RealTime的仿真机操作后续文章详细介绍)。可以看到界面上有显示目标机的IP,硬件处理器配置等简单的信息。

2c30a63ddae111b8aab7b2d55e369837.png

然后我们通过网线连接。在matlab命令框中输入slrtexplr来启动Simulink RealTime Explorer。配置好Target的信息后,右键选择“Connect” 按钮,连接上目标机。

7e3c2dba63a95b9ab7ecd078b08cadf3.png

操作体验测试

    我们新建一个simulink程序,单击工具栏上的创建,在弹出的下拉菜单中选择Simulink Model,打开模型的编辑界面,在MATLAB工具栏上单击Simulink库,弹出Simulink Library Browser,在左侧树型面板中依次单击Simulink - Source,在右侧界面中选择Sine Wave并将其拖到模型编辑界面中,依照这个方法再添加一个Scope,路径是SimulinkReal Time - Displays and Logging - Scope,在模型编辑界面中将这两个元件用线相连,最后的效果如下图所示:

7e234fd180fef78a4572041eed34498a.png

单击Simulation - Model Configuration Parameters,弹出Configuaration Parameters界面,采用如下设置参数:

9d577779f969c41a90169ec9f8c45403.png

25b50baebf2a7fc26f2101b0e873e8ea.png

3031d0b40d8cc16f92f1f82f7da74631.png

单击菜单栏的Simulink - Mode - External,此时,模型编辑器的工具栏发生了变化,如下图所示:

66bfd50ea06429d42057043fa093c4fe.png

然后单击菜单栏 Code - C/C++ Code - Build Model,开始编译模型,如果编译过程中有错误,Simulink会弹出错误提示信息,如果没有错误则目标主机(Target)会出现如下界面:

90c0fac3e1fe713a19e02afadbbdd56b.png

单击菜单栏的Simulink - Connect To Target,开始连接目标主机,如果连接成功,则工具栏上的Run按钮将变为可用状态,点击RUN按钮则模型下载到目标机运行:

3810db9f90ab0336930a2f062b61b118.png

整个波形实时显示在目标机的屏幕上。同时可以看到由于整个模型比较简单,运行的时间大概是2.5e-7 的步长。我们可以双击 sine wave 模块对频率和幅值进行修改,可以看到波形也会实时的发生改变。

d59b5ffa1c4595eb65fbd276a93c46d5.png

同时,Simulink RealTime 里面集成多家的硬件IO板卡,只需插入相关的板卡,就可以驱动相关的板卡进行信号采集与输出,来进行硬件在环测试了,整体操作体验还是非常友好的。

0a5d92b1f6d6d5544d0450959e6c58ba.png

性能体验测试

目前行业内比较通用的测试采用的是F14 飞机demo的测试方式。所以我们也考虑采用同样的模型进行测试对比。

由于F14模型相对比较简单,我们通过复制多个来增加计算量,来测试目标机的实时性能。为了减少其他不必要的干扰消耗,我们不在目标机上做任何的显示(scope在实时系统下面是比较消耗资源的),只是运行实时程序模型。

fb5f4faf7653df4baef348a457d1f676.png

我们将F14模型复制50遍,形成一个subsystem,然后再复制一次,形成一个F14*100的模型。

451546362e66289b830ccd89a306a4da.png

用上面的方法下载到Simulink RealTime 目标机里面进行测试实时性,目标机的性能采用的是双核 i3 2GHz 的处理器。步长我们设置在1e-4,也就是100us。

1cd34f592cccbcc0651a2a2e875fae96.png

我们可以看到界面上,整个模型跑起来,平均下来的耗时大概在2.87e-5,也就是28us左右,从实时运行效率来看性能还是相当不错的。我们也可以在Matlab中输入“XPC”来观看实时运行的信息情况。如下图所示。

540869e7e80849b56324b1885d15637c.png

可以看到整体的信息情况,可以看到虽然平均耗时是29us,但最小花费时间大概是25us,最大的花费时间就是55us。相当于抖动会在30us之间。这个抖动针对实时仿真系统还是比较大的。如果步长设置在5e-5,也就是50us的时候,那这个就会存在overrun,导致实时性无法严格保证,对于严格要求的实时系统来说,还是会有较大的挑战。我们测试一下将步长从100us调整到50us,测试结果:

6ca725790e53f0ee6a598936ffd013b6.png

程序会因为检测到超时而停止。

30bba131dccdea80c010238f98deb303.png

不过产品官网其实也给出了建议的闭环速率是在1-20kHZ范围内,考虑到各家产品的官方指标一般会过于理想以及宣传的成分,所以笔者建议可能10k以下的建议是可以满足的,10k以上的应用还是需要慎重,毕竟抖动情况不容乐观。

0d3187a23cd6ba3fd04e1301fc6d3387.png

测试结论

优势只需要matlab一个工具链就可以完成实时仿真,操作起来确实比较方便。同时Simulink RealTime库里面支持各厂家的板卡,兼容性方面也还不错,模型实时运行效率比较好。

不足实时运行时间的抖动较大,可能和模型的复杂程度也会有关系,这个在实时性要求不高的系统里面可能可以忽略,但在实时性要求比较高的系统,例如电力,电力电子行业的实时仿真,还存在一定的问题与挑战

由于笔者能力水平有限,以上观点仅代表个人观点,如有错误,还请批评指正。

END

易信高成与你一起零碎片时间学习

扫描关注微信号,更多精彩内容回顾

0638ce878889d6f0c33864c3927ddbc3.png

如果您有实时仿真相关的问题,欢迎与我们EasyGo团队联系:info@easygo-tech.com

最后

以上就是单薄短靴为你收集整理的matlab实时输入_性能测试篇:Simulink RealTime 实时性能效果测试的全部内容,希望文章能够帮你解决matlab实时输入_性能测试篇:Simulink RealTime 实时性能效果测试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部