Simulink中Delay模块用于将输入信号延迟指定的时间或采样周期数。
它是时序建模中非常常用的模块,广泛应用于控制系统、信号处理等场景中。
模块参数
- 延迟长度:支持在对话框中直接定义固定延迟长度和通过输入端口动态定义延迟长度,当选择输入端口作为源时,可以定义延迟长度的上限
- 初始条件:同样支持对话框和输入端口两种定义方式
- 输入处理:指定模块是执行基于采样还是基于帧的处理
- 使用环形缓冲区保存状态:对于大型复杂系统仿真,使用ring buffer可以避免内存分配带来的性能开销
- 防止直接馈通:用于限制由输入端口定义的延迟长度最小值
- 在生成代码中去除延迟长度检查:延迟长度选择由输入端口定义时,生成的代码中会包含检查超范围延迟长度的条件语句,勾选后可以去除检查代码,提高执行效率,但不适用于安全性要求较高的应用领域
- 延迟长度的诊断:仿真过程中,当由输出端口定义的延迟长度,触发下限(“防止直接馈通”)或上限(“延迟长度”对话框直接定义)时的处理措施
- 显示使能端口:通过外部使能信号控制延迟输出,当外部输入的使能信号为false时,输出将hold,维持不变,直到再次被使能
- 外部重置:支持关闭(“无”)和设置多种触发方式(“上升沿”、“下降沿”...等),触发重置时,输出被重置为初始条件
- 状态名称:自定义状态变量的名称,便于仿真调试或增加生成代码的可读性
优点和缺点
优点
灵活:支持可变延迟长度、外部初始状态、外部使能、外部重置
直观:模块图标显示为z-1,z-3,可以一眼看出延迟长度
缺点
随着延迟长度增加,效率降低,增加内存开销和执行负担