约束与鲁棒性

本页目录

控制器请求120%加热时,执行器最多只能提供100%。如果积分器不知道这个差距,它可能继续累积误差,在目标恢复可达后仍长时间输出过大。本篇连接PID与频域分析,讨论模型之外必须显式保留的约束。

控制请求与实际动作

令未限幅请求为 ,实际动作是

热对象只接受实际 。环境20 °C、热损失系数20 W/K、加热上限1000 W时,最高平衡温度70 °C。把目标设为80 °C,无论积分增益多大都无法达到。

若 ,在饱和期间只要误差为正, 就继续增加。之后目标降低到40 °C,即使误差已变负,也需要时间“消耗”积累的积分量。输出被限幅,并不意味着内部状态也停止增长。

正在呈现知识画面
约束与鲁棒性 · 实验

室温20 °C,目标80→40 °C在200 s切换;80 °C不可达。Kp=0.04、Ki=0.001,动作限制0–1。回算根据实际动作与请求之差修正积分;P/I图不含基准0.4。

实验从40 °C开始,目标先升到80 °C,在200 s降回40 °C。对比无抗饱和与回算,观察温度、未限幅请求、实际动作和积分贡献。目标80 °C不可达这一事实,在两种策略中都不变。

回算与条件积分

回算利用执行器实际动作与请求之间的差异:

高端饱和时 ,回算项抵消过度积累。例: K、、、、 s,得到 。没有回算时则为+0.01。 控制恢复速度,过小也会引入过快动态,不能无条件趋近零。

另一方法是条件积分:在上限饱和且误差仍推动动作增大时暂停积分,在下限饱和且误差仍推动动作减小时同样暂停;允许把动作拉回有效范围的积分继续发生。不能简单写成“只要饱和就永久冻结”。

若前馈、其他控制器或速率限制也参与执行器输入,回算信号需要反映同一位置的实际可用动作。手动切自动时还要匹配内部积分状态,避免切换瞬间跳变。MathWorks 的示例展示了回算、条件积分及外部跟踪的实现区别。

用灵敏度函数明确三条通路

限定单位负反馈,输出端扰动为 ,测量为 ,环路为 。由 得到

描述参考到输出以及测量噪声到输出的通路, 描述此处输出扰动到输出的通路。控制动作满足 ,因此即使输出中的噪声很小,动作仍可能剧烈变化。

若扰动加在对象输入端,它到输出的传递函数是 ;若是热模型中的额外功率 ,还要使用“功率到温度”的对象增益。画清进入位置后再写公式。

是复数关系,不是 。在同一频率不能同时让二者都任意接近零,但具体跨频率的积分限制还依赖极点、相对阶次等条件,不能仅凭这个恒等式推出完整“水床效应”。

模型不准时怎样检查?

对热对象,分别改变热容、散热系数和延迟,保持控制器固定;比较目标跟踪、恒定扰动恢复、峰值动作与饱和时间。热容变化主要改变动态,散热变化同时改变静态增益,延迟直接损失相位。不要把三者混成一个没有物理意义的“误差百分比”。

更正式地,若对象写为 , 描述乘性不确定性的频率大小, 稳定且 ,在标称内部稳定和互联适定等条件下, 给出小增益意义下的鲁棒稳定充分条件。这说明鲁棒性必须先定义允许的误差集合;扫描几个参数点并不等于证明整个集合。

自检

在上限饱和时,误差已变负,条件积分应该暂停吗?

参考思路

通常应允许积分把请求拉低,使其退出饱和。判断的是积分方向是否进一步推向受限区,不是仅检查当前是否到顶。

为什么测量曲线平滑,执行器仍可能频繁动作?

参考思路

对象可能滤掉高频动作,输出看起来平滑;噪声到动作的通路是,不能只看噪声到输出的。需要同时记录动作和测量。

延伸

python-control 鲁棒控制示例展示用频率权重描述性能要求的方式。工程验证还需包含模型有效区间、执行器限制和实际测量质量。