第四章:搭建第一个模型

发布时间:2026/7/9 16:25:45
第四章:搭建第一个模型 第四章搭建第一个模型4.1 模型搭建基本流程4.1.1 需求分析搭建模型前先明确以下问题需求分析清单 ① 系统输入是什么 → 阶跃信号正弦波来自工作区的数据 ② 系统输出是什么 → 需要观察哪些信号 ③ 系统的数学模型是什么 → 传递函数状态空间差分方程 ④ 仿真时间和步长是多少 → 仿真多长时间连续还是离散 ⑤ 需要哪些模块 → 列出所需模块清单4.1.2 选择模块根据需求分析从 Library Browser 中找到所需模块建模步骤 Step 1打开新建模型CtrlN Step 2打开 Library BrowserCtrlShiftL Step 3搜索并拖拽所需模块到画布 Step 4合理排列模块位置从左到右信号流向清晰 模块排列原则 信号从左流向右 输入模块在左侧 输出模块在右侧 反馈回路在下方4.1.3 连接信号线连接方法 方法1拖拽连接 将鼠标悬停在输出端口▶ 出现十字光标后按住鼠标左键 拖拽到目标输入端口◀ 释放鼠标完成连接 方法2自动连接 选中源模块 按住 Ctrl 点击目标模块 → 自动连接两个模块适用于单输入单输出 方法3信号线分支 将鼠标悬停在已有信号线上 按住 Ctrl 鼠标左键拖拽 → 从信号线引出分支 连接规则 ✅ 一个输出端口可以连接多个输入端口信号分支 ❌ 一个输入端口只能连接一个输出端口 ❌ 不能将输入端口连接到输入端口4.1.4 配置参数参数配置步骤 1. 双击每个模块打开参数对话框 2. 根据需求填写参数值 3. 点击 OK 或 Apply 确认 仿真参数配置 菜单 Simulation → Model Configuration Parameters 快捷键 CtrlE 设置Start Time / Stop Time / Solver / Step Size4.1.5 运行仿真运行方式 方法1工具栏点击 ▶ 运行按钮 方法2菜单 Simulation → Run 方法3快捷键 CtrlT 仿真过程 ① 模型编译检查错误 ② 初始化设置初始条件 ③ 逐步计算按步长推进时间 ④ 输出结果更新 Scope 等显示 ⑤ 仿真结束 查看结果 双击 Scope 模块查看波形 查看 Display 模块的数值 在 MATLAB 工作区查看导出的数据4.2 实战搭建简单信号系统4.2.1 正弦波信号观测目标产生一个正弦波信号并用示波器观测所需模块Sine Wave → 产生正弦波 Scope → 显示波形搭建步骤Step 1新建模型 CtrlN → 新建空白模型 Step 2添加 Sine Wave 模块 双击画布 → 输入 sine → 选择 Sine Wave → Enter Step 3添加 Scope 模块 双击画布 → 输入 scope → 选择 Scope → Enter Step 4连接信号线 从 Sine Wave 输出端口拖拽到 Scope 输入端口 Step 5配置 Sine Wave 参数 双击 Sine Wave Amplitude 1 Frequency 2*pi 1Hz Phase 0 Step 6配置仿真参数 CtrlE Stop Time 2 Solver ode45 Step 7运行仿真 CtrlT → 双击 Scope 查看波形模型示意图[Sine Wave] ──────────────→ [Scope] A1, f2π预期结果Scope 显示 幅值为 1 的正弦波 周期为 1 秒频率 1Hz 仿真时间 0~2 秒显示 2 个完整周期4.2.2 信号加法运算目标将两路不同频率的正弦波叠加所需模块Sine Wave × 2 → 两路正弦波信号源 Sum → 信号叠加 Scope → 显示结果3路信号1、信号2、叠加结果 Mux → 合并3路信号送入Scope搭建步骤Step 1添加两个 Sine Wave 模块 Sine Wave 1Amplitude1, Frequency2*pi1Hz Sine Wave 2Amplitude0.5, Frequency4*pi2Hz Step 2添加 Sum 模块 双击 Sum → List of signs Step 3添加 Mux 模块 双击 Mux → Number of inputs 3 Step 4添加 Scope 模块 Step 5连接信号线 Sine Wave 1 → Sum 输入1 Sine Wave 2 → Sum 输入2 Sine Wave 1 → Mux 输入1 Sine Wave 2 → Mux 输入2 Sum 输出 → Mux 输入3 Mux 输出 → Scope Step 6运行仿真观察叠加效果模型示意图[Sine Wave 1] ──→ [Sum ] ──→ [Mux] ──→ [Scope] [Sine Wave 2] ──→ ──→ │ [Sine Wave 1] ────────────────→ │ [Sine Wave 2] ────────────────→ │4.2.3 信号增益放大目标对信号进行放大和衰减观察增益效果所需模块Step → 阶跃信号输入 Gain × 2 → 两个不同增益 Scope → 观察原始信号和放大/衰减后的信号 Mux → 合并信号搭建步骤Step 1添加 Step 模块 Step time 1, Initial value 0, Final value 1 Step 2添加两个 Gain 模块 Gain 1Gain 2 放大2倍 Gain 2Gain 0.5 衰减一半 Step 3连接并观察 Step → Gain1 → Mux → Scope Step → Gain2 → Mux Step → Mux原始信号 Step 4运行仿真 观察三路信号原始(1)、放大(2)、衰减(0.5)4.3 实战搭建一阶系统4.3.1 一阶低通滤波器系统描述传递函数H(s) ωc / (s ωc) 其中 ωc 为截止频率rad/s 物理意义 低频信号f ωc/2π→ 通过增益≈1 高频信号f ωc/2π→ 衰减 截止频率处f ωc/2π→ 增益 0.707-3dB搭建步骤Step 1定义参数在 MATLAB 命令行 wc 10; % 截止频率 10 rad/s约1.6Hz Step 2添加模块 Sine WaveAmplitude1, Frequency2*pi1Hz低于截止频率 Transfer Fcn Numerator [wc] → 输入 wc Denominator [1, wc] → 输入 [1, wc] Scope显示输入和输出 Step 3连接 Sine Wave → Transfer Fcn → Scope输出 Sine Wave → Scope输入用于对比 Step 4配置仿真 Stop Time 5 Solver ode45 Step 5运行并观察 1Hz 信号低于截止频率→ 输出幅值接近输入 修改 Sine Wave 频率为 20Hz高于截止频率→ 输出明显衰减模型示意图┌──────────────────────┐ [Sine Wave] ──┬──→ │ Transfer Fcn │──→ [Mux] ──→ [Scope] │ │ H(s) wc/(swc) │ ↑ └────────────────────────────────────┘ 原始信号也送入Scope对比4.3.2 RC 电路仿真电路描述RC 串联电路 输入电压源 Vin(t) 输出电容电压 Vc(t) 微分方程 RC × dVc/dt Vc Vin 传递函数 H(s) Vc(s)/Vin(s) 1/(RCs 1) (1/RC)/(s 1/RC) 参数 R 1kΩ 1000 Ω C 100μF 100×10⁻⁶ F τ RC 0.1 s时间常数 ωc 1/τ 10 rad/sMATLAB 参数定义R1000;% 电阻 1kΩC100e-6;% 电容 100μFtauR*C;% 时间常数 0.1swc1/tau;% 截止频率 10 rad/sSimulink 模型Transfer Fcn 参数 Numerator [wc] [10] Denominator [1, wc] [1, 10] 仿真设置 Stop Time 1观察约10个时间常数 输入Step模拟开关闭合预期结果阶跃响应 t 0Vc 0电容初始无电荷 t τ 0.1sVc ≈ 0.632 × Vin充电到63.2% t 5τ 0.5sVc ≈ 0.993 × Vin基本充满4.3.3 观察阶跃响应阶跃响应关键指标一阶系统阶跃响应 y(t) 1 - e^(-t/τ) 关键时间点 t τy 63.2%一个时间常数 t 2τy 86.5% t 3τy 95.0% t 4τy 98.2% t 5τy 99.3%通常认为已稳定 在 Scope 中观察 ① 上升时间Rise Time从10%到90%的时间 ② 稳态值Steady State最终稳定的值 ③ 时间常数τ到达63.2%稳态值的时间在 Scope 中测量时间常数1. 运行仿真后双击 Scope 2. 点击工具栏Measurements图标 3. 选择Peak Finder或手动读取坐标 4. 找到 y0.632 对应的时间即为 τ4.4 信号线操作技巧4.4.1 连接/断开信号线连接信号线基本连接 鼠标悬停在输出端口 → 出现十字 → 拖拽到输入端口 自动对齐 Simulink 会自动对齐信号线直角折线 按住 Shift 拖拽可以创建斜线不推荐 快速连接Ctrl点击 选中源模块 → 按住 Ctrl → 点击目标模块 适用于单输入单输出的简单连接断开信号线方法1选中信号线 → Delete 键 方法2选中信号线端点 → 拖拽到空白处 方法3右键信号线 → Delete4.4.2 信号线分支创建分支一个输出连接多个输入方法1从信号线中间引出分支 鼠标悬停在信号线上 按住 Ctrl 鼠标左键拖拽 → 从该点引出新的分支 方法2从输出端口直接连接多个目标 从输出端口拖拽到第一个输入端口 再次从输出端口拖拽到第二个输入端口 → 自动创建分支点 分支点显示 信号线分叉处显示一个实心圆点 ● 表示这是一个信号分支点示例一个信号送入多个模块┌──→ [Gain 1] [Sine Wave] ──●────┤ └──→ [Gain 2] └──→ [Scope]4.4.3 信号线标注添加信号标签方法1双击信号线 → 出现文本框输入标签名称 → 按 Enter 确认 方法2右键信号线 → Properties → Signal name 标签命名建议 使用有意义的名称error, velocity, position 避免使用空格用下划线代替motor_speed 与变量名保持一致信号标签的作用① 提高模型可读性 ② 在 Scope 中自动显示图例 ③ 在 Data Inspector 中识别信号 ④ 代码生成时作为变量名 ⑤ 使用 From/Goto 模块时必须命名显示信号值仿真时仿真运行时信号线上可以显示实时数值 菜单 Display → Signals Ports → Signal Values 或快捷键 CtrlD更新显示 信号线颜色含义 黑色标量 double 信号 绿色向量/矩阵信号 橙色非 double 数据类型4.4.4 信号线高亮追踪高亮显示信号路径功能追踪一个信号从源头到终点的完整路径 操作 点击选中一条信号线 → 该信号的完整路径高亮显示蓝色 → 可以快速了解信号流向 快捷键 选中信号线后按 Tab → 跳转到下一个连接的模块使用 Signal Tracing信号追踪菜单 Display → Highlight Signal to Source → 从当前信号追踪到信号源 菜单 Display → Highlight Signal to Destination → 从当前信号追踪到信号终点 适用场景 复杂模型中快速定位信号来源 调试时追踪异常信号的传播路径综合实战完整的一阶控制系统目标搭建一个带有比例控制器的一阶系统闭环控制系统描述被控对象G(s) 1/(s1)一阶系统 控制器 C(s) Kp比例控制 参考输入r(t) 1单位阶跃 目标 输出 y(t) 跟踪参考输入 r(t)MATLAB 参数Kp5;% 比例增益模型结构[Step r(t)] ──→ [Sum -] ──→ [Gain Kp] ──→ [Transfer Fcn G(s)] ──→ [Scope] ↑ │ └────────────────────────────────────────────────────┘ 负反馈搭建步骤Step 1MATLAB 命令行定义参数 Kp 5; Step 2添加模块 ① StepStep time0, Final value1参考输入 ② SumList of signs -误差计算 ③ GainGain Kp比例控制器 ④ Transfer Fcn Numerator [1] Denominator [1, 1]G(s)1/(s1) ⑤ Scope观察 r(t) 和 y(t) ⑥ Mux合并参考输入和输出 Step 3连接信号线 Step → Sum正输入 Sum → Gain → Transfer Fcn → Mux → Scope Transfer Fcn 输出 → Sum负输入反馈 Step → Mux参考输入用于对比 Step 4标注信号线 Step 输出标注r Sum 输出标注e误差 Transfer Fcn 输出标注y Step 5配置仿真 Stop Time 10 Solver ode45 Step 6运行仿真 观察 y(t) 如何跟踪 r(t) 尝试修改 Kp 值观察响应变化预期结果分析闭环传递函数 T(s) Kp·G(s) / (1 Kp·G(s)) Kp/(s1) / (1 Kp/(s1)) Kp / (s 1 Kp) 稳态值 y(∞) T(0) × r Kp/(1Kp) × 1 当 Kp5 y(∞) 5/6 ≈ 0.833存在稳态误差 时间常数 τ 1/(1Kp) 1/6 ≈ 0.167s响应加快 增大 Kp 稳态误差减小响应加快 但纯比例控制无法消除稳态误差本章小结本章核心要点 ✅ 建模流程需求分析→选模块→连信号线→配参数→运仿真 ✅ 信号从左到右流动反馈回路在下方 ✅ 双击画布空白处是最快的模块插入方式 ✅ Ctrl点击目标模块可以快速连接两个模块 ✅ 按住 Ctrl 拖拽信号线可以创建分支 ✅ 双击信号线可以添加标签提高可读性 ✅ 一阶系统时间常数τ到达63.2%稳态值的时间 ✅ 比例控制可以加快响应但存在稳态误差课后练习搭建正弦波观测模型修改频率和幅值观察 Scope 波形变化搭建 RC 电路仿真模型R1kΩC100μF输入阶跃信号观察电容充电过程在 Scope 中测量时间常数搭建比例控制闭环系统被控对象G(s) 2/(s2)分别设置 Kp 1, 5, 10观察稳态误差和响应速度的变化思考题如何消除比例控制的稳态误差提示积分控制