采样与数字控制

本页目录

软件控制器在离散时刻读取测量并更新动作,真实对象在两次更新之间仍继续变化。本篇使用动态建模中的精确递推,区分采样、保持、计算延迟与数值仿真。

一次采样包含哪些事件?

在 读取 ,计算 ,然后将动作保持到下次更新,这叫零阶保持。先假设计算与传输没有额外延迟。 是真实控制周期,不是画面刷新周期。

采样、计算与保持顺序t = kTₛ:读取 yₖ用当前状态计算 uₖ区间内保持 uₖ对象持续演化t = (k+1)Tₛ:读取新状态

对 ,时间常数1 s,输入在每段保持不变,精确离散模型为

先作用于 ,再得到 。不能把未来状态拿来计算当前动作。这里只讨论偏差状态,允许正负动作,没有执行器饱和。

连续稳定,采样后还能稳定吗?

连续状态反馈 给出 ,对 渐近稳定。采样反馈 却给出

离散状态按 演化,稳定要求 。取 ,得到 ,所以

s时 ,单调衰减; s时约−0.896,符号交替但幅度衰减; s时约−1.096,交替发散。这个差异来自真实采样保持,即使使用精确对象更新也存在。

正在呈现知识画面
采样与数字控制 · 实验

对象ẋ=−x+u,x0=1,K=2;每次动作保持一周期,区间内用解析解。延迟模式以x−1=x0初始化。谱半径小于1才渐近稳定,纵轴会随发散幅度调整。

从 开始,改变控制周期并观察采样点与连续区间内的对象轨迹。横轴是秒,保持固定观察时长。数据点之间按恒定输入下的解析解绘制,不用直线连接假装连续响应。

一拍延迟再增加一个状态

如果本轮只能执行上一轮动作,,就有

这时必须保存旧状态或待执行动作。取 ,无延迟时极点约−0.180,稳定;一拍延迟时共轭根模长为 ,仍稳定但振荡。若 ,无延迟极点约−0.652,而一拍延迟根模长约1.049,变为不稳定。不能把“读数更新频繁”直接等同于“动作没有延迟”。

一般离散 LTI 状态模型为 。其渐近稳定条件是所有闭环特征值严格位于单位圆内。映射 适用于连续自由模态的精确采样;采样反馈的闭环通常不等于把连续闭环极点直接代入该映射,因为控制在区间内被保持。

仿真步长为何是另一件事?

用 Euler 模拟连续 时,数值更新为 。若 s,系数−2导致数值发散,但解析解 稳定。此处错在积分步长,不是控制周期。

验证应固定 和延迟,仅减小内部积分步长 ;如果结果显著变化,先检查数值收敛。线性对象在零阶保持下可用精确离散化避开该误差,但测量采样、噪声混叠与计算延迟仍然存在。

PID 的离散实现需要明确顺序

例如前向积分 ,微分低通可用精确保持更新 ,。计算动作时使用哪个时刻的状态,需要在整个实现中一致。

抗混叠滤波在采样前处理超出可辨范围的分量,采样后平滑无法恢复已混叠的信息。滤波同时增加动态和相位代价。选择周期应依据所需闭环带宽、计算/通信预算与对象模态,并验证最坏延迟和抖动,而不是套一个对所有系统都有效的倍数。

自检

时,。这是渐近稳定吗?

参考思路

不是。无输入时状态正负交替且幅度不衰减,是稳定区间的边界。严格稳定要求模长小于1。

降低浏览器动画帧率是否应该改变实验的极点与采样周期?

参考思路

不应该。仿真按规定的物理时间与控制事件计算,屏幕只负责显示。否则画面性能就错误地成为模型参数。

延伸

python-control sample_system提供不同离散化方法及采样周期参数。与实际保持方式一致的离散化,才适合后续闭环设计。