2.2 离散时间系统建模


2.2 离散时间系统建模

本节摘要:数字控制器只在采样瞬间感知世界、在每个控制周期更新一次输出,这类行为由差分方程与采样时间刻画。本节讲清离散系统的三个基本量——采样周期、离散状态与离散传递函数,对比"连续设计后离散化"与"直接离散化设计"两条路线的取舍,并用一个 PI 控制器的完整建模过程演示两者的差异。承接 2.1 节的连续建模,本节之后你的框图就能同时容纳电机的"连续"与控制器的"离散"。

控制器眼里的时间不是连续的

2.1 节的电机转速在物理时间里连续变化,但驱动它的数字控制器每一毫秒才"睁一次眼":读一次转速采样、算一次 PI、更新一次 PWM 占空比,然后"闭眼"等待下一个周期。两次采样之间控制器对外部世界一无所知。这个行为写进数学就是差分方程:当前输出等于上一拍输出加一个与当前及历史误差有关的增量;写进框图就是带采样时间的模块——单位延迟、离散积分器、离散传递函数,它们共享同一个关键属性:只在采样瞬间更新,其余时间保持。

采样时间是离散建模的第一参数,它同时决定三件事:控制算法的行为(延迟多少、能抑制多快的扰动)、模型与实物代码的一致性(代码里的定时器就是这个周期)、以及仿真计算量(周期越密步数越多)。选周期的工程折中:太疏,相位滞后吃掉稳定裕度;太密,处理器算不过来还放大量化噪声。常见起步值是闭环带宽对应周期的十分之一到二十分之一,再用仿真核对相位裕度。

离散模块的语义:状态只在节拍上跳动

单位延迟模块是离散域的积分器类比物:它输出上一拍的输入值。每个单位延迟或离散积分器持有一个离散状态,这个状态在采样时刻到来时瞬间跳变,两次跳变之间严格保持。这与连续积分器"时刻都在爬"的行为形成鲜明对比——混域系统(下一节的主角)的全部难点都源于这两种时间观在同一个模型里并存。

在框图里指定离散属性有两种粒度:给每个离散模块单独设采样时间,或者只给少数关键模块设置、让其余模块继承。继承规则用多了模型会变成谜语,推荐折中:关键速率显式设置,同速率的下游模块继承,整图的速率图定期用采样时间图例(1.2 节的颜色系统)检查一遍。

% 连续 PI 与离散 PI 的对照:同一个控制器,两种来历 Kp = 1.2; Ki = 8; % 路线一:连续设计后离散化(模拟控制器时代的手法) Cc = pid(Kp, Ki); % 连续 PI Ts = 1e-3; % 控制周期 1 kHz Cd1 = c2d(Cc, Ts, 'tustin'); % 双线性变换离散化 % 得到离散传函:积分项带一个单位延迟 % 路线二:直接离散化设计(按采样序列直接推差分方程) Cd2 = pid(Kp, Ki*Ts, 0, Ts, 'ts', Ts); % 位置式:积分用前向欧拉近似 % 差分形式:u(k) = u(k-1) + Kp*(e(k)-e(k-1)) + Ki*Ts*e(k) % 两者在同一被控对象上闭环对比 G = tf(50, [0.02 1]); % 简化的一阶对象 T1 = feedback(Cd1*G, 1); T2 = feedback(Cd2*G, 1); step(T1, T2, 0.3); % 两条曲线:上升快慢与超调差异可见

图:连续设计离散化与直接离散化的路线对比

图:连续设计离散化与直接离散化的路线对比

两条路线的取舍

路线一(连续设计后离散化) 继承了模拟控制时代的方法论:先把控制器当连续系统设计到满意,再用变换把传递函数搬到 z 域。优点是设计工具成熟、频域指标直接;缺点是离散化这一步总会引入偏差,采样周期一旦偏大,实际性能与设计指标脱节,而且模型里的控制器与将来代码里的实现隔着一层转换,一致性验证要多做一步。

路线二(直接离散化设计) 从一开始就把控制器当作采样序列上的差分方程:周期、延迟、定点量化、抗积分饱和全部作为设计对象显式处理。MBD 项目里它有决定性优势——模型与代码的对应关系是逐行的,软件在环验证(第 7 章)时不存在"模型行为与代码行为天生就该有点不一样"的托词。代价是设计直觉要重新建立,连续域的频域经验不能直接照搬。

工程上两条路线经常混合:内环电流环用路线一快速起步(它周期极短、动态要求苛刻但结构简单),外环速度环与监控逻辑用路线二精修。无论哪条路线,建模完成后做一件事:给控制器模块的采样时间做一次全图核对,确认它与目标处理器的定时器配置一致——模型与实物周期不一致,是一切"仿真很好、上机变味"问题的头号来源。

⚠️ 常见坑:在离散控制器框图里误用了连续积分器。症状是采样时间图例上控制器区域被染成连续色,代码生成时该模块无法落到离散执行框架。养成习惯:从离散模块库里拖每一个模块,拖完看一眼图标上的时钟标记。

延伸:延迟是离散系统的第一公民

连续世界里延迟常常小到可以忽略,离散世界里它无处不在且必须显式面对:采样要花一拍、计算要花一拍、执行器响应再花半拍——每个控制周期里,控制器实际是在用"一到两拍之前"的转速信息做决策。相位裕度对此极其敏感:1 毫秒周期下一拍的延迟,在 50 赫兹带宽处就吃掉约十八度相位。建模时把延迟真实地写出来(在反馈通路加单位延迟,或在离散传函里保留该有的延迟因子),仿真才能复现真实闭环的相位关系。

一个实用的核对方法:数一遍从"采样时刻"到"输出生效时刻"之间的节拍数,与目标处理器任务链的实际耗时对表——采样、滤波、运算、输出锁存,每段各有几拍,模型里就应有几拍。这个"延迟对表"是本节一致性铁律的细化:周期一致只是底线,相位链一致才算齐。实测中大量"仿真稳、上机震荡"的案例,追到最后都是模型里少了一拍延迟。抗积分饱和也在此顺带强调:限幅与积分器直接串联会把超调放大成振荡,模型阶段就把抗饱和结构(反算法或条件积分)建进去,代码生成后行为才不会变味。

本节要点回顾

  • 离散三要素:采样周期、离散状态、差分方程;离散模块只在节拍上更新并保持;
  • 采样时间一石三鸟:决定控制行为、代码定时器与仿真计算量,是离散建模的第一参数;
  • 单位延迟类比积分器:它是离散域的状态载体,混域建模的难点源于两种时间观并存;
  • 路线取舍:路线一继承频域经验但隔一层转换,路线二模型即代码、落地一致性最好;
  • 继承要克制:关键速率显式、下游继承,定期用采样时间图例全图核对;
  • 一致性铁律:模型里的控制周期必须与目标处理器定时器一致,否则仿真结果不可迁移。

控制器与对象现在分属两个时间世界,把它们拼进同一张框图时会发生什么?下一节专门处理连续与离散的交界地带。


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