🔢 Simulink教程 - 第6章 | 离散系统模块
⏱️ 采样与数字信号处理! 本章聚焦离散时间系统模块,帮你搭建数字滤波器、离散控制器和采样系统模型。
📚 前言
前几章介绍了连续时间系统,但实际工程中很多系统都是数字化的,需要离散时间建模。本章讲解离散延迟、离散传递函数、数字滤波器和离散微积分等模块,这些是构建数字控制系统、信号处理系统的核心工具。每一节都配有采样概念和工程类比,帮你快速理解“离散与连续的区别、如何选择采样时间”。
1. 离散模块库导航
- 离散模块库包含延迟、传递函数、滤波器、积分、差分等模块,用于构建离散时间系统。

2. 离散延迟模块:信号的“时间存储器”
2.1 Unit Delay 单位延迟模块
- 数学表示:对应
算子,是构成离散系统的基础。
- 功能:将输入信号延迟一个采样周期后输出,相当于“把上一时刻的值存起来,这一时刻再拿出来”。

- 使用示例:正弦信号发生器需改为基于采样的离散形式,采样时间为 0.1 秒,每个周期采样 50 次。

2.2 Integer Delay 整数延迟模块
- 功能:单位延迟模块的扩展,可设置延迟参数(以采样周期为单位),实现延迟多个采样周期。
- 物理类比:可视为多个单位延迟模块串联,延迟参数为 N 时,相当于 N 个单位延迟串联。
- Variable Integer Delay:某些版本只有可变整数延迟模块,它集成了整数延迟功能,延迟参数可由外部输入控制。若要在属性中直接设定,将 “Source” 设置为 “Dialog”。

- 使用示例:采样时间为 0.1 秒。

2.3 Tapped Delay 抽头延迟模块
- 功能:将输入延迟指定数量的采样周期,并为每个延迟版本提供输出信号。
- 应用场景:常用于数字滤波器、自适应系统等需要多个历史值的场景。
- 输出排序:多个延迟版本通过同一根信号线输出,可选择“最老”或“最新”延迟版本排在前面。

- 使用示例:采样时间为 0.1 秒。

- 包含当前输入:可选择在输出向量中包含未延迟的当前输入信号。


3. 离散传递函数、零极点与状态空间:离散系统的“描述方式”
3.1 Discrete Zero-Pole 离散零极点增益模块
- 功能:用零极点增益形式描述离散传递函数,可直观看出零点、极点和增益,与离散传递函数形式可互相转换。



3.2 Discrete Transfer Fcn 离散传递函数模块
- 功能:模拟离散传递函数,只有一个输入和一个输出端口。
- 配置:双击模块可设置分子和分母的多项式系数。
- 注意:非最高次项系数为 0 时,不要省略,需完整填写。



3.3 Discrete State-Space 离散状态空间模块
- 功能:使用状态空间法求出离散传递函数对应的 A、B、C、D 四个矩阵后,将输入信号接入模块,模块会根据矩阵输出求解结果。


3.4 tf、zpk、ss 函数:离散传递函数的转换工具
-
功能:
tf、zpk、ss三个函数可实现离散传递函数在一般形式、零极点增益形式和状态空间形式之间互相转换。 -
tf 函数:构造一般形式离散传递函数
- 参数1:分子多项式系数矩阵
- 参数2:分母多项式系数矩阵
- 参数3:采样时间间隔

- zpk 函数:构造零极点增益形式
- 参数1:零点集
- 参数2:极点集
- 参数3:增益
- 参数4:采样时间间隔

- ss 函数:构造状态空间形式
- 参数1-4:A、B、C、D 四个矩阵
- 参数5:采样时间间隔
- 返回:含四个矩阵的结构体

- 转换功能:这三个函数的参数也可以是其他形式的离散传递函数,执行转换功能。

4. 离散滤波器:数字信号处理的“筛选器”
4.1 Discrete Filter 离散 IIR 滤波器模块
-
功能:实现无限脉冲响应(IIR)滤波器,具有反馈结构。
-
配置:在 “Main” 栏设置分子和分母多项式系数、初始状态和采样时间。
- 采样时间填写 “-1” 表示继承输入信号来源模块的采样时间。
-
多项式排列:多项式各项按底数
、指数从 0 开始逐次加 1 排列,即
、
、
……
-
应用示例:使用以下传递函数进行滤波。

- 连续转离散:使用
bilinear函数将连续传递函数转换为离散传递函数。

- 搭建模型:离散滤波器模块中的系数直接填写
bilinear返回的两个向量。


- 仿真结果:

4.2 Discrete FIR Filter 离散 FIR 滤波器模块
- 功能:实现有限脉冲响应(FIR)滤波器,无反馈结构。
- 滤波器结构:默认是直接形式(Direct form),其他形式需安装信号处理工具箱。
- 系数来源:
- Dialog parameters:对话框参数,适合时不变系数。
- Input port:输入端口,适合时变系数。

5. 差分与离散微积分:离散信号的“变化率”
5.1 Discrete-Time Integrator 离散时间积分模块
- 功能:构建离散时间积分器或累加器。
- 积分器模式:步长 T 可自定义,支持前向欧拉、后向欧拉和梯形法。


- 累加器模式:步长 T 固定为 1,支持前向欧拉、后向欧拉和梯形法。



5.2 Difference 差分模块
- 功能:计算当前输入值与上一采样时刻输入值的差,输出 = 当前值 - 上一时刻值。
- 初始条件:仿真开始时需设置初始条件,作为“上一采样时刻”的值。

- 应用示例:使用 Digital Clock 数字时钟模块,每隔 1 秒采集一次当前仿真时长。

5.3 Discrete Derivative 离散微分模块
- 功能:计算输入信号的变化率,输出 = (当前值 - 上一时刻值) / 采样时间间隔。
- 初始条件:需设置初始条件,注意输入的是 K×u/Ts(上一时刻值 × 增益系数 / 采样时间间隔)。

- 应用示例:对离散正弦波进行离散微分的仿真结果。

6. 参考
👨💻 关于作者
成大事 - 10年嵌入式与控制系统开发经验,长期深耕 Simulink 建模与车载软件工程。
擅长领域: Simulink 建模仿真、模型驱动开发、AUTOSAR、整车控制系统。
原创不易,请点赞! ⭐
版权声明: CC 4.0 BY-NC-SA。
3443

被折叠的 条评论
为什么被折叠?



