第三章:模块库详解

发布时间:2026/7/9 16:29:49
第三章:模块库详解 第三章模块库详解3.1 常用模块库分类Simulink 的模块库Library Browser按功能分类以下是最常用的几个库Simulink 模块库总览 ├── Commonly Used Blocks → 最常用模块集合新手首选 ├── Sources → 信号源产生输入信号 ├── Sinks → 信号接收显示/记录输出 ├── Math Operations → 数学运算 ├── Continuous → 连续系统模块 ├── Discrete → 离散系统模块 ├── Signal Routing → 信号路由与选择 ├── Logic and Bit Ops → 逻辑与位运算 └── Lookup Tables → 查找表3.1.1 Sources信号源信号源模块用于产生输入信号是模型的起点。模块名图标特征功能Constant数字框输出固定常数Step阶梯形阶跃信号Sine Wave正弦曲线正弦波信号Ramp斜线斜坡信号Pulse Generator方波脉冲信号Signal Generator波形图多种波形可选Clock时钟输出当前仿真时间From Workspace工作区箭头从MATLAB工作区读取数据From File文件图标从.mat文件读取数据Random Number骰子高斯随机信号Uniform Random Number骰子均匀分布随机信号3.1.2 Sinks信号接收信号接收模块用于显示或记录信号是模型的终点。模块名功能Scope示波器实时显示波形XY GraphXY 坐标图Display数值显示实时数字To Workspace将数据导出到MATLAB工作区To File将数据保存到.mat文件Stop Simulation满足条件时停止仿真Terminator终止未使用的输出端口3.1.3 Math Operations数学运算模块名功能数学表达Sum求和/求差u1 ± u2 ± …Gain增益乘法y K·uProduct乘积y u1 × u2Divide除法y u1 / u2Abs绝对值y |u|Math Function数学函数sqrt/exp/log/…Trigonometric Function三角函数sin/cos/tan/…MinMax最大最小值min(u1,u2)Saturation饱和限幅限制输出范围Dead Zone死区小信号不响应3.1.4 Continuous连续系统模块名功能数学表达Integrator积分器y ∫u dtDerivative微分器y du/dtTransfer Fcn传递函数Y(s)/U(s) N(s)/D(s)State-Space状态空间ẋAxBu, yCxDuPID ControllerPID控制器比例积分微分控制Zero-Pole零极点模型零极点增益形式3.1.5 Discrete离散系统模块名功能Unit Delay单位延迟z⁻¹Discrete Integrator离散积分器Discrete Transfer Fcn离散传递函数Discrete State-Space离散状态空间Zero-Order Hold零阶保持器Discrete PID Controller离散PID控制器3.1.6 Signal Routing信号路由模块名功能Mux多路信号合并为向量Demux向量分解为多路信号Bus Creator创建总线信号Bus Selector从总线选择信号Switch条件切换信号Multiport Switch多路选择开关Selector从向量中选择元素From / Goto跨区域信号传递无连线3.1.7 Logic and Bit Operations逻辑运算模块名功能Logical OperatorAND/OR/NOT/XOR等Relational Operator//// 比较Compare To Constant与常数比较Compare To Zero与零比较Bit Clear/Set位清零/置位3.1.8 Lookup Tables查找表模块名功能1-D Lookup Table一维查找表线性插值2-D Lookup Table二维查找表n-D Lookup Tablen维查找表Interpolation插值计算3.2 常用模块详解3.2.1 Constant常数位置Sources → Constant功能输出一个固定不变的常数值参数配置 Constant value常数值可以是标量、向量、矩阵 Interpret vector parameters as 1-D向量处理方式 Sample time采样时间-1表示继承 示例 Constant value 5 → 输出标量 5 Constant value [1 2 3] → 输出行向量 [1,2,3] Constant value pi → 输出 3.14159... Constant value Kp → 输出工作区变量 Kp 的值典型用法设定值Setpoint→ [Constant] ──→ [Sum] ──→ 控制器 ↑ 反馈信号负3.2.2 Step阶跃信号位置Sources → Step功能在指定时刻从初始值跳变到终止值参数配置 Step time跳变时刻默认 1 秒 Initial value跳变前的值默认 0 Final value跳变后的值默认 1 Sample time采样时间 信号波形 值 1 | ┌───────────── | │ 0 |──────────┘ └──────────┴──────────→ 时间 0 1Step time典型用法测试控制系统的阶跃响应 [Step] ──→ [控制器] ──→ [被控对象] ──→ [Scope] ↑ [反馈回路]3.2.3 Sine Wave正弦波位置Sources → Sine Wave功能产生正弦波信号参数配置 Sine type基于时间Time-based或采样Sample-based Amplitude幅值 A默认 1 Bias直流偏置默认 0 Frequency频率 ωrad/s默认 1 Phase初相位 φrad默认 0 Sample time采样时间 数学表达 y(t) Amplitude × sin(Frequency × t Phase) Bias 示例 A2, ω2π, φ0 → y 2·sin(2πt) 1Hz正弦波幅值23.2.4 Gain增益位置Math Operations → Gain功能将输入信号乘以一个增益系数参数配置 Gain增益值标量、向量或矩阵 Multiplication Element-wise(K.*u) → 逐元素相乘 Matrix(K*u) → 矩阵乘法 Matrix(u*K) → 矩阵乘法u在左 数学表达 y K × u 示例 Gain 2 → 信号放大2倍 Gain 0.5 → 信号缩小一半 Gain -1 → 信号取反常用于负反馈 Gain Kp → 使用工作区变量作为增益负反馈连接技巧[Setpoint] ──→ [Sum(−)] ──→ [Controller] ──→ [Plant] ↑ │ └──── [Gain(-1)] ←──────────────┘ 或者直接在 Sum 模块设置符号为 -3.2.5 Sum求和位置Math Operations → Sum功能对多路输入信号进行加减运算参数配置 Icon shape圆形round或矩形rectangular List of signs符号列表 → 两路相加 - → 第一路减第二路 → 三路相加 | → 竖线分隔用于布局 示例 符号 y u1 u2 符号 -y u1 - u2常用于误差计算 符号 y u1 u2 u3误差计算最常见用法e(t) r(t) - y(t) [r(t)] ──→ [Sum -] ──→ e(t) ──→ [Controller] ↑ [y(t)] ─────────┘负号输入3.2.6 Integrator积分器位置Continuous → Integrator功能对输入信号进行积分运算参数配置 Initial condition source初始值来源internal/external Initial condition初始值默认 0 Limit output是否限制输出范围 Upper/Lower saturation limit输出上下限 数学表达 y(t) ∫u(t)dt y(0) 示例 输入速度信号 v(t) → 积分 → 输出位移 x(t) 输入加速度 a(t) → 积分 → 输出速度 v(t)防积分饱和Anti-windup当积分器输出超出限制时停止积分累积 配置勾选 Limit output设置上下限3.2.7 Transfer Fcn传递函数位置Continuous → Transfer Fcn功能实现拉普拉斯域的传递函数参数配置 Numerator coefficients分子多项式系数降幂排列 Denominator coefficients分母多项式系数降幂排列 数学表达 H(s) (b₀s^m b₁s^(m-1) ... bₘ) / (a₀s^n a₁s^(n-1) ... aₙ) 示例 一阶系统 H(s) 1/(s1) Numerator [1] → 分子1 Denominator [1, 1] → 分母s1 二阶系统 H(s) 10/(s²2s10) Numerator [10] Denominator [1, 2, 10] PD控制器 C(s) Kp Kd·s Kd·s Kp Numerator [Kd, Kp] Denominator [1]3.2.8 Scope示波器位置Sinks → Scope功能实时显示信号波形是最常用的调试工具基本操作 双击 Scope 模块 → 打开波形窗口 仿真运行时实时更新波形 仿真结束后可以缩放、平移查看 Scope 工具栏 放大 → 框选区域放大 - 缩小 → 缩小视图 ↔ 自动缩放 → 自动调整坐标轴 保存图像 → 保存波形图片 ⚙ 参数设置 → 配置显示选项多路信号显示方法1多个输入端口 Scope 默认1个输入端口 右键 → Signals Ports → Number of Input Ports → 设置为N 方法2使用 Mux 合并 [信号1] ──→ [Mux] ──→ [Scope] [信号2] ──→ │ [信号3] ──→ │Scope 参数配置右键 Scope → Parameters General Number of input ports输入端口数 Time range时间轴范围auto 或 指定值 Tick labels坐标轴标签 Display Y-limitsY轴范围 Title标题 Show legend显示图例3.2.9 Display数值显示位置Sinks → Display功能实时显示信号的当前数值数字形式参数配置 Format显示格式 short → 5位有效数字默认 long → 15位有效数字 short e → 科学计数法 bank → 货币格式2位小数 适用场景 显示控制误差的当前值 显示传感器读数 调试时查看中间计算结果3.2.10 Mux/Demux信号复用/解复用位置Signal Routing → Mux / DemuxMux多路复用功能将多路标量信号合并为一个向量信号 参数 Number of inputs输入端口数量 示例 [u11] ──→ ┌─────┐ [u22] ──→ [Mux] │ 3×1 │──→ [1; 2; 3] [u33] ──→ └─────┘Demux解复用功能将向量信号分解为多路标量信号 参数 Number of outputs输出端口数量 示例 [1; 2; 3] ──→ [Demux] ──→ u11 ──→ u22 ──→ u333.3 模块的搜索与使用3.3.1 Library Browser 搜索搜索方法1. 打开 Library BrowserCtrlShiftL 2. 在顶部搜索框输入关键词 3. 按 Enter 或点击搜索图标 4. 结果列表中找到目标模块 搜索技巧 输入 pid → 找到所有PID相关模块 输入 filter → 找到所有滤波器模块 输入 delay → 找到所有延迟模块 支持模糊搜索3.3.2 快速插入模块方法一双击画布空白处最快1. 在画布空白处双击 2. 弹出搜索框 3. 输入模块名称 4. 从下拉列表选择 5. 按 Enter 插入 这是最高效的插入方式方法二从 Library Browser 拖拽1. 在 Library Browser 找到模块 2. 按住鼠标左键 3. 拖拽到画布目标位置 4. 释放鼠标方法三复制粘贴1. 选中已有模块 2. CtrlC 复制 3. CtrlV 粘贴 4. 移动到目标位置3.3.3 模块参数配置打开参数对话框方法1双击模块 方法2选中模块 → 右键 → Block Parameters 方法3选中模块 → 在右侧 Property Inspector 中修改参数输入规则数值直接输入数字 例Gain 2.5 MATLAB 表达式输入合法的 MATLAB 表达式 例Gain pi/2 例Gain sqrt(2) 工作区变量输入变量名变量需在工作区中存在 例Gain Kp 例Constant value setpoint 向量/矩阵使用 MATLAB 语法 例[1 2 3] → 行向量 例[1; 2; 3] → 列向量 例[1 2; 3 4] → 2×2矩阵使用工作区变量的好处% 在 MATLAB 命令行或脚本中定义参数Kp1.5;Ki0.3;Kd0.05;setpoint100;% 在 Simulink 模块参数中直接引用变量名% 修改 MATLAB 变量后重新运行仿真即可生效% 便于参数扫描和优化本章小结本章核心要点 ✅ Sources 产生信号Sinks 接收/显示信号 ✅ 最常用模块Constant/Step/Sine Wave/Gain/Sum/Integrator/Transfer Fcn/Scope ✅ 双击画布空白处是最快的模块插入方式 ✅ 模块参数可以使用数值、MATLAB表达式或工作区变量 ✅ Scope 是最重要的调试工具支持多路信号显示 ✅ Mux/Demux 用于信号的合并和分解 ✅ Transfer Fcn 参数按多项式系数降幂排列输入课后练习在 Library Browser 中搜索以下模块并记录其所在库PID ControllerSaturationUnit DelayBus Creator新建模型添加以下模块并配置参数Sine Wave幅值2频率2π rad/sGain增益0.5Scope显示输入和输出两路信号使用 Transfer Fcn 模块实现以下传递函数H(s) 5/(s5)一阶低通滤波器H(s) s/(s10)一阶高通滤波器练习使用 Mux 将三路信号合并后送入 Scope 显示