simulink实现仿真时间与实际时间同步

我们都知道simulink仿真的时候可以设置仿真时间,默认的10s,但是这个时间不同于实际时间。对于一个简单的模型,比如显示一个正弦波,也许设置的仿真时间为10s而simulink仿真运行只用了零点几秒就完成了,而对于一个复杂的模型,也许仿真10s需要simulink计算十几分钟。也就是说simulink中设置的仿真时间可以看作是仿真步而不是实际的时间(仿真步的概念跟微分方程的数值解法有关,以simulink中求解器solver设为定步长为例,形象的说,仿真时间除以步长得到仿真步,例如10/0.01=1000步,matlab计算这1000个迭代步的时间才是模型运行的时间),但是有些情况下我们需要实现这样的效果:仿真时间等于实际时间,也就是我设置仿真时间为10s,模型就运行10s,与模型的复杂度无关(这里有一个前提,模型运行的足够快,不能要求一个超级复杂的模型仿真时间=实际时间从而“加快”仿真),在模型中加入一个clock模块,其显示的时间进度与真实时间进度相似。

simulink本身有自带的Real-Time Windows Target,可以自行参照帮助进行尝试,但是对于不同的版本,不同的操作系统,总是出现各种问题,有种感觉对于一般的简单实时性要求,matlab 的 RTW 有点大材小用。我在 32位 win7 + R2014a上可以部分运行matlab的demo,但是在64位win8.1 + R2014a就出现各种问题。于是在网上收罗了半天,终于找到一些简单的解决办法,用起来也比较方便,是国外一些比较厉害的人自己用s-function编的模块。

其具体实现的原理引用其中一个人的文档如下:

以下引至: http://www.mathworks.com/matlabcentral/fileexchange/3175-real-time-blockset-7-1-for-simulink

作者:ke_ang
来源:CSDN
原文:https://blog.csdn.net/ke_ang/article/details/45747899
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值