串级PID控制在温度湿度系统中的应用
温湿度控制系统通常具有大滞后、非线性和时变性的特点。传统的单回路PID控制在面对这种系统时,往往因为反馈信号延迟大,导致控制响应慢、超调量大,甚至在干扰出现时产生持续的震荡。串级PID控制通过引入一个动作迅速的内环回路,能够有效抑制主要干扰,显著提升系统的控制精度和响应速度。
1. 理解串级控制的核心逻辑
串级控制的核心在于“分工”。它将控制过程分为两个层级:
- 主回路(外环):负责“看结果”。主控制器接收主被控量(如温湿度箱内的实际温度)的反馈,将其与设定值比较,输出一个信号作为副回路的给定值。主回路关注的是最终的控制精度。
- 副回路(内环):负责“干脏活”。副控制器接收主控制器的输出指令,并直接控制执行器(如加热棒、加湿器),同时采集一个反应更快的中间变量(如加热器表面温度或空气处理单元的出风温度)作为反馈。副回路关注的是快速消除内部扰动。
在温湿度系统中,通常将环境箱内的温度/湿度作为主被控量,将加热器功率或送风温度作为副被控量。
2. 系统架构与信号流向
构建串级PID控制系统,首先需要明确硬件连接和信号流向。以下逻辑图展示了典型的温度串级控制结构:
解析关键信号流:
- 主控制器 比较 箱内温度设定值与实际反馈值,计算出所需的加热功率目标,输出给副回路。
- 副控制器 接收 这个功率目标(转化为出风温度设定),根据出风温度传感器的反馈,快速调节固态继电器的PWM占空比。
- 当电网电压波动导致加热功率下降时,副传感器 会立即检测到出风温度降低,副控制器 迅速调整PWM,抑制 扰动,而无需等待箱内温度发生变化。
3. 参数整定实操步骤
串级PID的整定原则是“先副后主”。副回路要求响应快、抗扰强;主回路要求精度高、平稳。
3.1 准备工作
断开 主回路与副回路的连接,将系统切换为手动控制模式。确认 执行器(如加热器)处于安全状态,防止过热。
3.2 整定副回路(内环)
副回路通常要求反应迅速,一般采用纯比例控制(P)或比例积分控制(PI)。
- 设置 副控制器为纯比例模式(积分时间 $T_i$ 设为无穷大,微分时间 $T_d$ 设为0)。
- 逐步增大 比例增益 $K_p$,同时向系统施加阶跃扰动(如突然改变输出幅值)。
- 观察 副被控量(如出风温度)的响应曲线。
- 当系统出现临界震荡(即等幅震荡)时,记录 此时的比例增益为 $K_{u}$,震荡周期为 $T_{u}$。
- 应用 Ziegler-Nichols法则计算参数:
- 比例增益 $K_p = 0.45 \times K_{u}$
- 积分时间 $T_i = 0.83 \times T_{u} / 60$(若需要消除余差)
- 投入 副回路自动运行,验证 其跟踪性能。
3.3 整定主回路(外环)
副回路整定好后,将其视为广义对象的一部分,开始整定主回路。主回路通常采用PI控制。
- 闭合 主回路,设置 主控制器为纯比例模式。
- 改变 主设定值(如将目标温度从25℃升至30℃)。
- 调整 主控制器的比例增益 $K_p$,直到主被控量(箱内温度)出现4:1的衰减震荡(即第二个波峰高度是第一个波峰的1/4)。
- 计算 主控制器参数:
- 比例增益 $K_p$:取衰减震荡时的增益值。
- 积分时间 $T_i$:取震荡周期的 $1/2$。
- 微调 参数。如果超调过大,减小 $K_p$;如果稳定速度过慢,适当增大 积分作用(减小 $T_i$),但需注意防止积分饱和。
4. 核心算法代码实现
在嵌入式系统或PLC中,需要编写程序实现串级逻辑。关键在于主环的输出作为副环的输入。
// 定义PID结构体
typedef struct {
float Kp; // 比例系数
float Ki; // 积分系数
float Kd; // 微分系数
float integral; // 积分累积值
float prev_err; // 上一次误差
float limit_min; // 输出下限
float limit_max; // 输出上限
} PID_Controller;
// 单个PID计算函数
float PID_Calc(PID_Controller *pid, float setpoint, float measurement) {
float error = setpoint - measurement;
// 计算积分(带限幅防饱和)
pid->integral += error;
if (pid->integral > pid->limit_max) pid->integral = pid->limit_max;
if (pid->integral < pid->limit_min) pid->integral = pid->limit_min;
// 计算微分
float derivative = error - pid->prev_err;
// 计算输出
float output = pid->Kp * error + pid->Ki * pid->integral + pid->Kd * derivative;
// 输出限幅
if (output > pid->limit_max) output = pid->limit_max;
if (output < pid->limit_min) output = pid->limit_min;
pid->prev_err = error;
return output;
}
// 串级控制主循环
void Cascade_Control_Loop(float main_target_temp) {
// 1. 采集数据
float main_feedback = Get_Chamber_Temp(); // 主传感器读数
float sub_feedback = Get_Heater_Temp(); // 副传感器读数
// 2. 主回路计算 (输出作为副回路的设定值)
// 注意:主回路的输出范围应匹配副回路的设定值范围
float sub_target = PID_Calc(&Main_PID, main_target_temp, main_feedback);
// 3. 副回路计算 (输出控制执行器)
// 副回路的输出通常是PWM占空比或模拟电压值
float actuator_output = PID_Calc(&Sub_PID, sub_target, sub_feedback);
// 4. 执行动作
Set_Heater_PWM(actuator_output);
}
代码要点解析:
- 数据类型:使用
float类型确保计算精度。 - 抗积分饱和:在积分累加后立即进行限幅处理。如果不处理,当加热器全速工作但仍达不到目标温度时,积分项会无限累积,导致温度过冲后难以回调。
- 主副连接:
sub_target变量接收主环输出,作为副环的设定值。主环的输出限幅必须与副环传感器的量程物理意义一致(例如,主环输出代表“期望的出风温度”,范围为0-100℃)。
5. 常见问题与调试技巧
在实际部署中,可能会遇到震荡无法消除或响应迟滞的问题。
5.1 温度持续震荡
原因:主回路比例作用过强,或副回路反应过慢。
解决:
- 减小 主控制器的比例增益 $K_p$。
- 检查 副回路的采样频率。副回路的采样周期应比主回路短,通常副回路采样时间是主回路的 $1/3$ 到 $1/5$。
5.2 湿度控制耦合干扰
温湿度系统存在强耦合。加热时,空气相对湿度会下降;加湿时,温度可能降低。
解决:
- 引入 解耦控制逻辑。在温度控制输出增加时,自动补偿 加湿器的输出量。
- 采用 “先稳温度,后调湿度”的策略。由于温度对湿度的测量影响大(相对湿度依赖温度),温度控制环应作为主控优先整定。
5.3 抗积分饱和策略
在升温初期,误差很大,积分项会迅速累积,导致温度大幅超调。
解决:
- 实施 积分分离法。当误差绝对值 $|e(t)|$ 大于某个阈值 $\epsilon$ 时,取消 积分作用(设 $K_i = 0$);仅当误差较小时,投入 积分作用。
- 条件判断公式:$use\_integral = (|e(t)| < \epsilon) ? 1 : 0$
- 实施 遇限削弱积分法。当计算出的控制量 $u(t)$ 已经达到最大或最小值时,停止 积分项的继续累积。
5.4 参数自整定辅助
如果手动整定困难,使用 继电反馈法自动获取临界参数。
-
设置 控制器为继电反馈模式,输出周期性的方波信号。
-
测量 系统响应的震荡周期和幅值。
-
代入 修正后的Tyreus-Luyben参数公式,获得更保守、鲁棒性更强的参数:
$$K_p = \frac{K_u}{3.2}$$
$$T_i = \frac{T_u}{0.45}$$其中 $K_u$ 和 $T_u$ 分别为临界增益和临界周期。
6. 单回路与串级控制性能对比
为直观展示串级控制的优势,以下是两种控制方式在抗干扰能力上的对比。
| 性能指标 | 单回路PID控制 | 串级PID控制 |
|---|---|---|
| 抗干扰能力 | 弱,需等待主被控量变化后才修正 | 强,副回路瞬间吸收内部扰动 |
| 响应速度 | 慢,受大滞后影响严重 | 快,副回路加快了起始响应 |
| 超调量 | 较大,容易过冲 | 较小,内环抑制了惯性过冲 |
| 参数整定 | 简单,需兼顾平稳与速度 | 复杂,需分步整定主副回路 |
| 适用场景 | 滞后小、干扰少的简单系统 | 滞后大、干扰多、高精度系统 |
通过上述步骤构建并调试串级PID系统,温湿度控制系统的温度波动范围可从 $\pm 2^{\circ}C$ 降低至 $\pm 0.1^{\circ}C$,湿度波动控制在 $\pm 2\%RH$ 以内,满足高精度工艺要求。

暂无评论,快来抢沙发吧!