2.1 连续时间系统建模


2.1 连续时间系统建模

本节摘要:连续系统的行为由常微分方程刻画,Simulink 用积分器作为原子模块把方程"翻译"成框图。本节从状态方程的框图化方法讲起,覆盖传递函数与状态空间两种表达的选择逻辑、初始条件的正确设置,以及从物理机理推导框图时最容易犯的三个错误。承接第 1 章的画布操作,本节之后你搭建的每个连续模块都应能对应到一个明确的数学对象。

从一个箱子的动力学说起

小林在 1.2 节画了第一个模型,现在我们把它换成真正带物理的对象:一台直流电机拖动惯性负载。转速 dynamics 写出来只有两行——电学一行、力学一行。电枢回路:电感压降加电阻压降加反电动势等于输入电压;力学侧:转动惯量乘以角加速度加粘性摩擦转矩等于电磁转矩。这两行方程里藏着两个状态变量——电枢电流与转速——以及一个明显的因果链:电压影响电流,电流产生转矩,转矩改变转速,转速又反过来产生反电动势削弱电流。

这种"输出绕回来影响输入"的结构,正是连续系统建模的常态,也是框图范式的舒适区:画一根反馈线,物理世界里的相互作用就表达完毕。框图化的通用手法是把最高阶导数放在链条起点,逐级积分得到低阶量——转速是角加速度的积分,电流变化率是回路方程解出的量再积分。积分器是唯一带状态的记忆模块,每个积分器对应方程里的一个状态变量,这条对应关系是连续建模的第一原理。

两种表达:传递函数与状态空间

同一个电机,两种表达方式。传递函数视角:输入电压到转速是一条二阶传函,参数是时间常数与增益,频率特性一目了然,控制工程师设计校正环节时最顺手。状态空间视角:状态向量由电流与转速组成,矩阵 A、B、C、D 直接对应物理方程,多输入多输出、时变参数、非线性环节表达起来不吃力。

框图里怎么选?经验法则是:单入单出的线性环节,用传递函数模块最省事要保留内部状态的可观测性(比如限流保护需要知道电流)、要做参数辨识、或系统本身是多变量耦合的,用状态空间。还有第三条路——用基础模块手工搭(积分器、增益、求和),虽然模块数多,但每个物理量在图上都有名字,调试时直接挂示波器看状态。教学与排错阶段推荐手工搭,模型成熟后再封装成传函或状态空间模块。

% 电机参数(与 1.1 节的 motor_params.m 保持一致) J = 0.01; b = 0.1; Kt = 0.05; Ke = 0.05; R = 1; L = 0.5e-3; % 用状态空间对象核对框图:同样参数下两者响应必须重合 A = [-R/L, -Ke/L; Kt/J, -b/J]; % 状态:电枢电流 i,机械转速 w B = [1/L; 0]; % 输入:电枢电压 u C = [0, 1]; % 输出:转速 w D = 0; motor_ss = ss(A, B, C, D); step(motor_ss); % 阶跃响应:约 0.05 秒进入稳态约 0.5 rad/s % 框图核对法:给手工搭建的框图与 motor_ss 施加同一阶跃, % 叠加两条曲线,肉眼可见的重合即证明框图搭对了

图:电机连续模型的框图结构与状态位置

图:电机连续模型的框图结构与状态位置

工程实践要点

初始条件不是摆设。 积分器对话框里的初始条件默认为零,但很多场景不是零态启动:风机在海拔环境里带初始转速、电容预充电到母线电压。漏设初始条件的模型,前半段仿真数据全部作废——它模拟的是另一个初始状态下的物理过程。批量管理初始条件的做法与参数一样:定义为变量,集中在参数脚本里。

代数约束要提前识别。 如果你的框图里出现了"增益到求和再到增益、没有积分器"的闭环,这是一个代数环——方程里没有状态变量,求解器需要在每个时间步解一个代数方程。它会拖慢仿真甚至报错,处理手段在第 4 章 4.2 节专门复盘。建模阶段的预防办法是问自己:这条瞬时闭环在物理上是否对应一个被忽略的小惯性?若是,把这个惯性显式建出来,环自然消失。

刚性问题在此埋下伏笔。 电时间常数 L 除 R 是毫秒级,机械时间常数 J 除 b 是百毫秒级,两者相差百倍以上——这就是刚性系统的特征。模型本身没有错,但它的仿真难度在方程诞生时就已注定:第 3 章会讲清为什么变步长求解器在它身上突然变慢、以及刚性求解器如何救场。

参数与结构分离。 把 Kt、J 这些量直接敲进增益模块,是新手最贵的手误。参数集中管理(1.1 节的 motor_params.m 模式)之后,本节的核对方法才可行:同一份参数喂给框图与状态空间对象,两条阶跃曲线重合,框图即验证通过。这个"双路核对"习惯建议保持终身——它总能在模型传承前拦下结构性错误。

⚠️ 常见坑:把传递函数模块串进手工积分链时,忘了传函模块内部自带状态,结果同一物理量被建模两次,响应比真值快或慢一个量级。原则:同一个物理环节,要么手工搭、要么用封装模块,不要两者叠加。

延伸:非线性怎么进框图

真实电机不会温顺地线性到底。电流过大时磁路饱和,转矩系数不再是常数;转速过高时风阻按平方增长;低温下摩擦转矩还会粘滑跳变。这些非线性的框图化有固定套路:查表模块(一维或二维插值)承载"参数随工况变化",把饱和曲线、磁化曲线直接做成表数据;饱和、死区、继电器模块承载"输出本身的非线性",限幅与间隙特性各归其位;乘法与函数模块承载"变量之间的非线性耦合",平方风阻这类关系一行连线就能表达。

非线性的引入位置也有讲究:能放在参数层(让 Kt 成为电流的查表函数)就不要放在结构层(另搭一套分段切换逻辑)——前者只是数据换了形状,模型结构保持线性框架的清爽,第 3 章的求解器分析也照常适用;后者会把连续系统悄悄变成分段切换系统,仿真难度上一个台阶。引入任何非线性之后,记得回 3.3 节检查它是否引入了新的跳变面——饱和与死区都自带过零检测,事件数量会跟着涨。最后一道工序是核对线性化有效域:把查表参数在额定工作点做一次线性化,与原非线性模型在工作点附近对比小信号响应,确认控制设计的线性假设仍然站得住。

本节要点回顾

  • 积分器是连续建模的原子:每个积分器对应方程里的一个状态变量,这是框图与方程的映射根基;
  • 框图化手法:最高阶导数放链条起点,逐级积分得到低阶量,反馈线表达物理耦合;
  • 表达选择:单入单出用传函,多变量与需观测状态用状态空间,排错教学期用手工搭;
  • 双路核对法:框图与状态空间对象喂同一参数,阶跃曲线重合即结构正确;
  • 初始条件与参数纪律:非零初态必须显式设置,参数一律走脚本集中管理;
  • 两个伏笔:瞬时闭环指向代数环(第 4 章复盘),时间常数悬殊指向刚性问题(第 3 章展开)。

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U