2. Simulink建模基础与信号流

Simulink 建模的本质,是把一个物理系统或控制算法拆解成若干可计算的模块,再用信号线把它们的输入输出按因果关系连接起来。模型能否正确运行,取决于三件事:模块选得对不对、信号流连得对不对、采样时间设得对不对。本节围绕这三件事展开,并以直流电机转速开环模型作为贯穿示例。

常用模块:从数学运算到系统描述

Simulink 的模块库中,最基础的一类是数学运算模块。Gain(增益)实现输出等于输入乘以常数,常用于表示放大系数、传动比、单位换算;Sum(求和)实现多个输入的加减,通过符号列表(如 +-)定义每个输入端口的正负;Integrator(积分)实现输出为输入对时间的积分,是描述“累积量”的核心模块,例如由加速度得到速度、由角加速度得到转速。

描述线性系统动态特性时,常用Transfer Fcn(传递函数)和State-Space(状态空间)两个模块。传递函数模块以分子、分母多项式系数向量描述输入输出关系,例如一阶惯性环节 1/(Ts+1) 只需填写 Numerator [1]、Denominator [T 1];状态空间模块则以 A、B、C、D 四个矩阵描述多输入多输出系统,适合电机、机械臂等多变量对象。二者的选择原则是:单输入单输出且已知传递函数时用 Transfer Fcn 更直观;需要保留内部状态、处理多变量耦合时用 State-Space 更合适。

信号源与显示模块负责模型的“输入”和“观察”。Step(阶跃)用于施加突变给定,Constant(常数)用于施加固定电压或负载,Sine Wave(正弦)用于频域或跟踪测试;Scope(示波器)用于观察时域波形,Display(数字显示)用于读取稳态数值,To Workspace 则把数据导出到 MATLAB 工作区,便于后续用 plot 或数据分析脚本处理。

信号线、总线与子系统

信号线承载的是带方向的数据流,箭头方向即计算依赖方向。连线时要注意:一个模块的输出可以分叉送给多个模块,但一个输入端口只能接受一条信号线;维度不匹配(如标量连到向量端口)会直接报错。当信号较多时,使用 Bus Creator / Bus Selector 把多路信号打包成一条总线,可以显著减少连线交叉,也让模型接口更清晰。总线的本质是“带命名的信号集合”,不是数学上的向量,因此不能直接对总线做加减运算,必须先经 Bus Selector 拆出成员信号。

当一组模块反复出现或逻辑相对独立时,应把它们封装成子系统(Subsystem)。子系统对外只暴露输入输出端口,内部结构被隐藏,既减少画面杂乱,也便于复用和分层设计。若同一模型需要在多个模型或多次仿真中共享,则使用模型引用(Model Reference):被引用模型独立编译、独立设置采样时间,主模型通过 Model 模块调用它。子系统适合“同一模型内的功能分组”,模型引用适合“跨模型复用与团队并行开发”,这是两者最关键的区别。

采样时间与连续/离散建模

采样时间是 Simulink 建模中最容易被忽视、却最容易导致结果错误的参数。连续系统使用连续求解器(如 ode45),模块采样时间设为 0 或 continuous;离散系统按固定步长计算,采样时间设为具体数值(如 0.001 秒);采样时间设为 -1 表示继承上一级模块的采样时间,inf 表示常数模块不参与采样。若模型中同时存在连续和离散部分,就构成混合系统,此时求解器需选择变步长并允许过零检测,同时要保证离散部分的采样时刻被正确命中。

常见错误:把离散模块的采样时间误设为 0,Simulink 会按连续方式处理,导致本该离散保持的信号被连续插值,仿真波形与理论分析不符。排查时应先用 Sample Time Legend 查看全模型采样时间着色,确认每个模块的采样属性是否符合设计意图。

建立电机转速开环模型

下面以他励直流电机为例,建立转速开环模型。设电枢电阻 Ra = 1.2 Ω,电枢电感 La = 0.005 H,反电动势系数 Ke = 0.05 V·s/rad,转矩系数 Kt = 0.05 N·m/A,转动惯量 J = 0.0002 kg·m²,粘性摩擦系数 B = 0.0001 N·m·s/rad。电枢回路电压方程为 Ua = Ra·Ia + La·dIa/dt + Ke·ω,机械方程为 Kt·Ia = J·dω/dt + B·ω。

建模时,用 Step 模块给出电枢电压给定(例如 0 秒时从 0 跳变到 12 V),经 Sum 模块减去反电动势 Ke·ω 得到净电压,再经传递函数 1/(La·s + Ra) 得到电枢电流 Ia;电流乘以 Kt 得到电磁转矩,减去摩擦转矩 B·ω 后经 1/(J·s) 积分得到转速 ω。转速再乘以 Ke 反馈回电压求和点,形成电枢回路的内部反馈。整个模型用 Scope 观察转速和电流波形。

仿真前需设置求解器为 ode45,相对误差 1e-4,仿真时间 0.5 秒。运行后应看到:转速从 0 平滑上升,约 0.1 秒后趋于稳态;电流在启动瞬间出现较大冲击,随后回落。若稳态转速约为 Ua/Ke = 240 rad/s(忽略摩擦和电枢压降的近似值),说明模型基本正确;若转速持续上升不收敛,应检查反电动势反馈的符号是否接反,或积分器初值是否被误设。

直流电机转速开环模型信号流 Step Ua 给定 Σ + − 1/(La·s+Ra) 电枢回路 Kt 转矩系数 Σ + − 1/(J·s) 机械积分 Scope ω 波形 Ke·ω 反电动势 B·ω 摩擦转矩 Ua 净电压 Ia Te T净 ω 图例与关键参数 前向信号流 反电动势反馈 摩擦转矩反馈 Ra=1.2Ω La=0.005H Ke=0.05V·s/rad Kt=0.05N·m/A J=0.0002kg·m² B=0.0001N·m·s/rad

从图中可以清楚看到,开环模型并非“没有反馈”,而是没有转速外环控制器;电枢回路内部的反电动势反馈和机械摩擦反馈仍然存在,它们决定了电机的自然动态。理解这一点,是后续加入 PI 转速调节器、构成闭环调速系统的基础。建模时建议先用 Scope 分别观察 Ia 和 ω,确认电流冲击和转速上升趋势符合物理直觉,再进入控制器设计环节。