---
title: 约束与鲁棒性
url: https://doc.liz6.com/theory/02-control-theory/08-constraints-and-robustness
locale: zh
area: theory
tags:
- 控制理论
- 基础理论
date: 2026-09-10
modified: 2026-09-10
description: 控制器请求120%加热时，执行器最多只能提供100%。如果积分器不知道这个差距，它可能继续累积误差，在目标恢复可达后仍长时间输出过大。本篇连接PID与频域分析，讨论模型之外必须显式保留的约束。
---

# 约束与鲁棒性

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

## 控制请求与实际动作

令未限幅请求为 $u_c=u_b+K_pe+z$，实际动作是

$$u=\operatorname{clip}(u_c,0,1).$$

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

若 $\dot z=K_ie$，在饱和期间只要误差为正，$z$ 就继续增加。之后目标降低到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不可达这一事实，在两种策略中都不变。

## 回算与条件积分

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

$$\dot z=K_ie+\frac{u-u_c}{T_t},\qquad T_t>0.$$

高端饱和时 $u-u_c<0$，回算项抵消过度积累。例：$e=10$ K、$K_i=0.001$、$u_c=1.4$、$u=1$、$T_t=20$ s，得到 $\dot z=0.01-0.02=-0.01\ \mathrm{s}^{-1}$。没有回算时则为+0.01。$T_t$ 控制恢复速度，过小也会引入过快动态，不能无条件趋近零。

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

若前馈、其他控制器或速率限制也参与执行器输入，回算信号需要反映同一位置的实际可用动作。手动切自动时还要匹配内部积分状态，避免切换瞬间跳变。[MathWorks 的示例](https://www.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html)展示了回算、条件积分及外部跟踪的实现区别。

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

限定单位负反馈，输出端扰动为 $d_o$，测量为 $y+n$，环路为 $L=PC$。由 $y=PC(r-y-n)+d_o$ 得到

$$S=\frac1{1+L},\qquad T=\frac L{1+L},\qquad y=Tr+Sd_o-Tn.$$

$T$ 描述参考到输出以及测量噪声到输出的通路，$S$ 描述此处输出扰动到输出的通路。控制动作满足 $u=CSr-CSd_o-CSn$，因此即使输出中的噪声很小，动作仍可能剧烈变化。

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

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

## 模型不准时怎样检查？

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

更正式地，若对象写为 $P=P_0(1+W\Delta)$，$W$ 描述乘性不确定性的频率大小，$\Delta$ 稳定且 $\|\Delta\|_\infty\le1$，在标称内部稳定和互联适定等条件下，$\|WT_0\|_\infty<1$ 给出小增益意义下的鲁棒稳定充分条件。这说明鲁棒性必须先定义允许的误差集合；扫描几个参数点并不等于证明整个集合。

## 自检

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

<details><summary>参考思路</summary>

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

</details>

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

<details><summary>参考思路</summary>

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

</details>

## 延伸

[python-control 鲁棒控制示例](https://python-control.readthedocs.io/en/stable/examples/robust_siso.html)展示用频率权重描述性能要求的方式。工程验证还需包含模型有效区间、执行器限制和实际测量质量。
