【matlab】Simulink 常用模块速查与功能理解(信号、控制与数学模块)


文章目录

  • 前言
  • [定义概念 + 缩写](#定义概念 + 缩写)
  • 性质
    • [1. 信号源模块(输入端)](#1. 信号源模块(输入端))
    • [2. 连续系统与控制模块](#2. 连续系统与控制模块)
    • [3. 数学运算模块](#3. 数学运算模块)
    • [4. 信号路由与重组模块](#4. 信号路由与重组模块)
    • [5. 逻辑与比较模块](#5. 逻辑与比较模块)
    • [6. 显示与观测模块](#6. 显示与观测模块)
  • 使用步骤
    • [步骤 1:明确系统类型](#步骤 1:明确系统类型)
    • [步骤 2:从库中搜索模块](#步骤 2:从库中搜索模块)
    • [步骤 3:搭建最小可运行模型](#步骤 3:搭建最小可运行模型)
    • [步骤 4:逐步增加复杂度](#步骤 4:逐步增加复杂度)
    • [示例(MATLAB + Simulink 思维对应)](#示例(MATLAB + Simulink 思维对应))
  • 总结

前言

在使用 Simulink 进行自动控制、信号处理或系统建模时,最容易遇到的问题并不是"理论不会",而是不知道该用哪个模块、模块在库里的位置、以及模块之间如何组合

这张图【1】可以看作是一张 Simulink 常用模块的功能地图 ,涵盖了信号源、传递函数、控制器、数学运算、逻辑判断以及信号整形等核心模块。本文将基于这张图,对这些模块进行系统梳理,帮助建立一个从功能到建模的直觉映射


定义概念 + 缩写

  • Simulink

    MATLAB 提供的基于模块(Block)的系统建模与仿真工具,广泛用于

    • 自动控制
    • 信号与系统
    • 数字信号处理
    • 通信与嵌入式系统
  • Block(模块)

    Simulink 中的基本功能单元,每个模块完成一个确定的数学或逻辑功能。

  • Subsystem(子系统)

    用于对复杂模型进行封装与层次化管理。

  • PID

    比例(P)、积分(I)、微分(D)控制器,是控制系统中最常见的控制模块。


性质

从功能上看,图中的模块可以分为以下几类:

1. 信号源模块(输入端)

用于产生系统的输入信号,常见于仿真激励:

  • 常数(Constant)

  • 阶跃信号(Step)

  • 脉冲信号

  • 正弦波(Sine Wave)

  • 随机信号 / 噪声

特点

  • 通常位于模型最左侧
  • 决定系统的"测试场景"

2. 连续系统与控制模块

用于描述系统动力学与控制律:

  • 传递函数(Transfer Function)

  • 积分器(1/s)

  • 微分器

  • PID 控制器(PID(s)、离散 PID)[5]

特点

  • 直接对应控制理论中的数学模型
  • 是自动控制建模的核心模块

3. 数学运算模块

完成基础或非线性数学运算:

  • 加法、减法、

  • 乘法(增益)

  • 除法

  • 乘方(平方、开方)

  • 三角函数(sin、cos)

  • 绝对值、指数函数

特点

  • 用于构建非线性系统或中间计算过程
  • 在状态方程、信号变换中非常常见

4. 信号路由与重组模块

用于整理、拆分或组合信号:

  • Mux / Demux

  • Selector

  • Reshape

  • Matrix Multiply

  • Transprot Delay 传递延迟

  • Transfer Function 传递函数

特点

  • 不改变信号本身的物理意义
  • 只改变信号的"组织方式"
  • 在状态空间、多输入多输出系统中非常重要

5. 逻辑与比较模块

用于条件判断和逻辑控制:

  • 比较器(>、<、=)
  • Min / Max
  • Switch
  • 逻辑运算(AND / OR)

特点

  • 常用于控制切换、饱和限制、保护逻辑
  • 在工程模型中不可或缺

6. 显示与观测模块

用于结果观察:

  • Scope 示波器

  • Display

  • 运行与观测长度

特点

  • 通常放在模型最右侧
  • 用于验证系统动态性能

使用步骤

下面给出一个**从"看到模块 → 能搭系统"**的通用使用流程。

步骤 1:明确系统类型

  • 控制系统 → 重点关注 传递函数 / PID / 积分器
  • 信号处理 → 重点关注 信号源 / 数学运算 / FFT / 滤波
  • 状态空间 → 重点关注 Mux / Matrix / Integrator

步骤 2:从库中搜索模块

推荐做法:

  • 直接在 Simulink Library Browser 搜索英文关键词
    • transfer
    • pid
    • sum
    • mux
    • scope

步骤 3:搭建最小可运行模型

最基本结构通常为:

yaml 复制代码
信号源 → 系统模块 →(可选)控制器 → Scope

步骤 4:逐步增加复杂度

  • 先跑通
  • 再加反馈
  • 最后加非线性、逻辑判断、噪声等

matlab 复制代码
% 连续系统传递函数
G = tf(1, [1 2 1]);

% 闭环系统
sys_cl = feedback(G, 1);

step(sys_cl)

在 Simulink 中,上述代码对应的模块组合就是:

Transfer Function

Sum(负反馈)

Scope

总结

看到 PID → 想到控制律

看到 Integrator → 想到状态变量

看到 Mux → 想到状态向量

那么从理论到 Simulink 建模的距离,就已经被大幅缩短了。

参考文献

1\] https://www.bilibili.com/video/BV1rK4y1i714 \[2\] 自动控制原理(胡寿松) \[3\] 信号与系统(Oppenheim) \[4\] MATLAB \& Simulink 官方文档 \[5\] https://www.bilibili.com/video/BV1AK41157kE

相关推荐
winner88813 分钟前
从零吃透C++命名空间、std、#include、string、vector
java·开发语言·c++
AI人工智能+电脑小能手11 分钟前
【大白话说Java面试题】【Java基础篇】第26题:Java的抽象类和接口有哪些区别
java·开发语言·面试
bzmK1DTbd20 分钟前
SOLID原则在Java中的实践:单一职责与开闭原则
java·开发语言·开闭原则
AI进化营-智能译站23 分钟前
ROS2 C++开发系列07-高效构建机器人决策逻辑,运算符与控制流实战
开发语言·c++·ai·机器人
winner888125 分钟前
C++ 命名空间、虚函数、抽象类、protected 权限全套通俗易懂精讲(附与 Java 对比)
java·开发语言·c++
不会编程的懒洋洋35 分钟前
C# P/Invoke 基础
开发语言·c++·笔记·安全·机器学习·c#·p/invoke
直奔標竿36 分钟前
Java开发者AI转型第二十五课!Spring AI 个人知识库实战(四)——RAG来源追溯落地,拒绝AI幻觉
java·开发语言·人工智能·spring boot·后端·spring
时空系43 分钟前
认识Rust——我的第一个程序 Rust中文编程
开发语言·后端·rust
yqcoder44 分钟前
JavaScript 柯里化:把“大餐”拆成“小炒”的艺术
开发语言·javascript·ecmascript
每天吃饭的羊1 小时前
JSZip的使用
开发语言·javascript