最近有脚友提问,如何在Simulink中实现数据的实时滚动?今天借助这篇文章回答一下。
对于这个问题,用C代码或者m语言实现可能大家都会,就是把数据进行右移和赋值操作。用Simulink基本模块搭建,以前没有接触过的可能会有些困难。所以,本文将介绍如何通过Simulink实现数据滚动。
Simulink建模思路跟C代码实现的方式基本一致,也是主要分为右移、赋值两部分,最终搭建的模块如下图所示。
![1b01625ff170725b7d591ba45a0acb82.png](https://i-blog.csdnimg.cn/blog_migrate/ad9ee7efaf9620d349ebb589927fd44e.png)
上图中红框中的右移子系统内部需要迭代器和分配器配合使用,如下图所示。
![7f30857cd36649e4a961ee0a56aa2c7b.png](https://i-blog.csdnimg.cn/blog_migrate/f59ef34bc2fae426bdee92ed89afaa2b.png)
迭代器用于在一个步长内连续输出N个数值,可用于遍访数组内部的数据,非常适合对数组进行索引操作,是对数组类型数据处理的神器。
分配器用于对数组进行指定位置的数据赋值。Y0是当前待处理数组,Idx1是数组的某一位索引,U是数组某一位具体的数值。假设Idx1=a,U=b,表达的意思就是将数组Y0的第a位数值替换为b。
所以上图中,通过迭代器和分配器配合,在