Simulink教程 - 第6章 | 离散系统模块

🔢 Simulink教程 - 第6章 | 离散系统模块

⏱️ 采样与数字信号处理! 本章聚焦离散时间系统模块,帮你搭建数字滤波器、离散控制器和采样系统模型。

📚 前言

前几章介绍了连续时间系统,但实际工程中很多系统都是数字化的,需要离散时间建模。本章讲解离散延迟、离散传递函数、数字滤波器和离散微积分等模块,这些是构建数字控制系统、信号处理系统的核心工具。每一节都配有采样概念和工程类比,帮你快速理解“离散与连续的区别、如何选择采样时间”。

1. 离散模块库导航

  • 离散模块库包含延迟、传递函数、滤波器、积分、差分等模块,用于构建离散时间系统。

离散模块库概览

2. 离散延迟模块:信号的“时间存储器”

2.1 Unit Delay 单位延迟模块

  • 数学表示:对应 z^{-1} 算子,是构成离散系统的基础。
  • 功能:将输入信号延迟一个采样周期后输出,相当于“把上一时刻的值存起来,这一时刻再拿出来”。

单位延迟数学表示

  • 使用示例:正弦信号发生器需改为基于采样的离散形式,采样时间为 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 函数:离散传递函数的转换工具

  • 功能tfzpkss 三个函数可实现离散传递函数在一般形式、零极点增益形式和状态空间形式之间互相转换。

  • tf 函数:构造一般形式离散传递函数

    • 参数1:分子多项式系数矩阵
    • 参数2:分母多项式系数矩阵
    • 参数3:采样时间间隔

tf函数构造离散传递函数

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

zpk函数构造离散传递函数

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

ss函数构造离散传递函数

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

离散传递函数形式转换

4. 离散滤波器:数字信号处理的“筛选器”

4.1 Discrete Filter 离散 IIR 滤波器模块

  • 功能:实现无限脉冲响应(IIR)滤波器,具有反馈结构。

  • 配置:在 “Main” 栏设置分子和分母多项式系数、初始状态和采样时间。

    • 采样时间填写 “-1” 表示继承输入信号来源模块的采样时间。
  • 多项式排列:多项式各项按底数 1/z、指数从 0 开始逐次加 1 排列,即 (1/z)^0(1/z)^1(1/z)^2……

  • 应用示例:使用以下传递函数进行滤波。

滤波传递函数

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

bilinear函数转换

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

离散滤波器模型搭建

离散滤波器模块配置

  1. 仿真结果

离散滤波器仿真结果

4.2 Discrete FIR Filter 离散 FIR 滤波器模块

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

离散FIR滤波器配置

5. 差分与离散微积分:离散信号的“变化率”

5.1 Discrete-Time Integrator 离散时间积分模块

  • 功能:构建离散时间积分器或累加器。
  • 积分器模式:步长 T 可自定义,支持前向欧拉、后向欧拉和梯形法。

离散积分器表达式

离散积分器配置

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

离散累加器表达式

离散累加器配置1

离散累加器配置2

5.2 Difference 差分模块

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

差分模块配置

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

差分模块示例

5.3 Discrete Derivative 离散微分模块

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

离散微分模块配置

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

离散微分模块示例

6. 参考


👨‍💻 关于作者

成大事 - 10年嵌入式与控制系统开发经验,长期深耕 Simulink 建模与车载软件工程。

擅长领域: Simulink 建模仿真、模型驱动开发、AUTOSAR、整车控制系统。

原创不易,请点赞!


版权声明: CC 4.0 BY-NC-SA。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成大事AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值