在 Simulink 中,Delay 模块是一个非常常用的离散单元。它的核心功能就是对输入信号施加一个“延迟”,可以是固定步长,也可以是可变步长。
简单理解:
输入信号 -> 保存一定时间/步长 -> 输出时再吐出来。
Simulink Delay模块主要用法
- 固定步长延迟:模块参数中延迟长度设为“Dialog”,延迟一个或多个采样周期,常用于实现数字信号处理里的移位寄存器功能。
- 可变延迟:模块参数中延迟长度设为“Input port”,输入一个延迟长度信号,模块根据该输入动态改变延迟量。常用于建模通信信道、网络延迟、或者机械系统的动态响应。
- 固定初始条件:模块参数中初始条件设为“Dialog”,可以设定延迟输出的初始值为0或其他常数。在控制系统建模时,常用来保证系统状态在仿真开始时有个合理的初值。
- 可变初始条件:模块参数中初始条件设为“Input port”,通过外部信号输入延迟输出的初始值,配合“外部重置”功能,实现多次触发时,不同初始值。
- 使能端口:允许通过外部信号冻结/解冻Delay模块的状态更新,当使能信号为False时,维持上一个有效输出值作为输出,使能信号为True时,正常更新状态并输出。
- 外部重置:允许通过外部信号将延迟输出重置为初始值。可选上升沿/下降沿/双边沿/电平/电平保持等方式触发重置。
Simulink Delay模块典型应用场景
- 数字控制与滤波器设计:例如 IIR 滤波器、FIR 滤波器,都会用到多个 Delay 模块实现信号的“历史值存储”。
- 离散控制系统建模:典型应用如 PID 控制器的离散实现,积分和微分项往往依赖延迟信号。
- 状态机/离散逻辑:需要比较当前值和前一采样值时(例如边沿检测:上升沿、下降沿)。
- 信号同步/对齐:在多通道系统中,有的信号通道存在计算延迟或传输延迟,可以用 Delay 模块对其他通道做补偿对齐。
- 环路系统建模:在数字通信、控制系统中,经常存在环路反馈(feedback loop),为避免代数环路问题,常需要插入一个 Delay 来打破代数环路。