16.Simulink离散模块
16.1 概述
Discrete,离散模块。主要讲一下与延时模块相关的,其他的一些也是比较高阶的数学模块,我们在后期如果有机会讲到高级算法的时候再来看,入门篇就暂时不讲那么高阶的东西了。
16.2 延时模块delay
延时周期设置,1代表延时一个周期,模块Z负一次方。设置10就是延时10个周期,也就是取出10个周期前的数据。
可以选择length的来源,对话框就是直接在对话框里输入的数值。
设置外部输入延时周期的时候,注意限值。生成代码对内存的消耗也会比较大。
Input port会增加一个输入接口。
可以设置数据存储的算法,使用环形队列等。
初始值设置,注意一下初始值的设置最好将数据类型包含在里面。比如boolean类型的我们可以写false,uint8类型的我们可以写uint8(0),枚举类型就可以写具体的枚举值在里面。
Source的设置跟上面length的Source一样的。
将要延时的模块的初始值作为延时模块的初始值。
使能控制和复位设置。
打开使能设置,Enable的时候正常的进行延时,Disable的时候,保持延时的最后一个有效值
Reset在delay作为某个函数运行的时候,新来的信号处理的时候,如果不进行Reset,那将会用上一个信号的最后一个值作为初始值,在这种情况下会多一个无效值,使我们运算有可能会出错
16.3 带使能的延时模块EnabledDelay
基础的Delay模块勾选Enable设置。
16.4 延时模块Memory
与单元延时模块功能一样。
16.5 可复位的延时模块ResettableDelay
可复位的延时模块,在基础的延时模块上勾选外部输入默认值以及外部复位的设置。
16.6 延时向量TappedDelay
输出一个延时的数组,包含了多个延时值。
初始值的设置就不讲了。Sampletime推荐使用-1。要延时的个数设置,比如设置4,就是一个有4个元素的数组。
数据顺序还是倒序。
向量里包不包含当前输入。比如说当前时刻为0.05s,步长为0.01s,包含当前时刻的话,数据是0.05,0.04,0.03,0.02时刻的值。不包含当前时刻的话,数据是0.04,0.03,0.02,0.01时刻的值。
按照Oldest为开始。
按照Newest为开始。
包含当前的输入值。
16.7 单位延时UnitDelay
16.8 可变延时VariableIntegerDelay
基础延时模块,设置了Delay length的Source为Input port。