文章目录

串级PID控制在温度湿度系统中的应用

发布于 2026-03-25 00:25:12 · 浏览 11 次 · 评论 0 条

串级PID控制在温度湿度系统中的应用

温湿度控制系统通常具有大滞后、非线性和时变性的特点。传统的单回路PID控制在面对这种系统时,往往因为反馈信号延迟大,导致控制响应慢、超调量大,甚至在干扰出现时产生持续的震荡。串级PID控制通过引入一个动作迅速的内环回路,能够有效抑制主要干扰,显著提升系统的控制精度和响应速度。


1. 理解串级控制的核心逻辑

串级控制的核心在于“分工”。它将控制过程分为两个层级:

  1. 主回路(外环):负责“看结果”。主控制器接收主被控量(如温湿度箱内的实际温度)的反馈,将其与设定值比较,输出一个信号作为副回路的给定值。主回路关注的是最终的控制精度。
  2. 副回路(内环):负责“干脏活”。副控制器接收主控制器的输出指令,并直接控制执行器(如加热棒、加湿器),同时采集一个反应更快的中间变量(如加热器表面温度或空气处理单元的出风温度)作为反馈。副回路关注的是快速消除内部扰动。

在温湿度系统中,通常将环境箱内的温度/湿度作为主被控量,将加热器功率送风温度作为副被控量。


2. 系统架构与信号流向

构建串级PID控制系统,首先需要明确硬件连接和信号流向。以下逻辑图展示了典型的温度串级控制结构:

graph LR A["主设定值 r(t)"] --> B["主控制器\n(Outer Loop PID)"] B -- "主输出 u1\n(副回路设定值)" --> C["副控制器\n(Inner Loop PID)"] C -- "控制量 u2\n(PWM信号)" --> D["执行器\n(固态继电器/加热棒)"] D --> E["被控对象\n(空气处理过程)"] E --> F["主传感器\n(箱内温度传感器)"] F -- "主反馈 y1(t)" --> B E --> G["副传感器\n(出风温度/电流传感器)"] G -- "副反馈 y2(t)" --> C

解析关键信号流:

  1. 主控制器 比较 箱内温度设定值与实际反馈值,计算出所需的加热功率目标,输出给副回路。
  2. 副控制器 接收 这个功率目标(转化为出风温度设定),根据出风温度传感器的反馈,快速调节固态继电器的PWM占空比。
  3. 当电网电压波动导致加热功率下降时,副传感器 会立即检测到出风温度降低,副控制器 迅速调整PWM,抑制 扰动,而无需等待箱内温度发生变化。

3. 参数整定实操步骤

串级PID的整定原则是“先副后主”。副回路要求响应快、抗扰强;主回路要求精度高、平稳。

3.1 准备工作

断开 主回路与副回路的连接,将系统切换为手动控制模式。确认 执行器(如加热器)处于安全状态,防止过热。

3.2 整定副回路(内环)

副回路通常要求反应迅速,一般采用纯比例控制(P)或比例积分控制(PI)。

  1. 设置 副控制器为纯比例模式(积分时间 $T_i$ 设为无穷大,微分时间 $T_d$ 设为0)。
  2. 逐步增大 比例增益 $K_p$,同时向系统施加阶跃扰动(如突然改变输出幅值)。
  3. 观察 副被控量(如出风温度)的响应曲线。
  4. 当系统出现临界震荡(即等幅震荡)时,记录 此时的比例增益为 $K_{u}$,震荡周期为 $T_{u}$。
  5. 应用 Ziegler-Nichols法则计算参数:
    • 比例增益 $K_p = 0.45 \times K_{u}$
    • 积分时间 $T_i = 0.83 \times T_{u} / 60$(若需要消除余差)
  6. 投入 副回路自动运行,验证 其跟踪性能。

3.3 整定主回路(外环)

副回路整定好后,将其视为广义对象的一部分,开始整定主回路。主回路通常采用PI控制。

  1. 闭合 主回路,设置 主控制器为纯比例模式。
  2. 改变 主设定值(如将目标温度从25℃升至30℃)。
  3. 调整 主控制器的比例增益 $K_p$,直到主被控量(箱内温度)出现4:1的衰减震荡(即第二个波峰高度是第一个波峰的1/4)。
  4. 计算 主控制器参数:
    • 比例增益 $K_p$:取衰减震荡时的增益值。
    • 积分时间 $T_i$:取震荡周期的 $1/2$。
  5. 微调 参数。如果超调过大,减小 $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 温度持续震荡

原因:主回路比例作用过强,或副回路反应过慢。
解决

  1. 减小 主控制器的比例增益 $K_p$。
  2. 检查 副回路的采样频率。副回路的采样周期应比主回路短,通常副回路采样时间是主回路的 $1/3$ 到 $1/5$。

5.2 湿度控制耦合干扰

温湿度系统存在强耦合。加热时,空气相对湿度会下降;加湿时,温度可能降低。

解决

  1. 引入 解耦控制逻辑。在温度控制输出增加时,自动补偿 加湿器的输出量。
  2. 采用 “先稳温度,后调湿度”的策略。由于温度对湿度的测量影响大(相对湿度依赖温度),温度控制环应作为主控优先整定。

5.3 抗积分饱和策略

在升温初期,误差很大,积分项会迅速累积,导致温度大幅超调。

解决

  1. 实施 积分分离法。当误差绝对值 $|e(t)|$ 大于某个阈值 $\epsilon$ 时,取消 积分作用(设 $K_i = 0$);仅当误差较小时,投入 积分作用。
    • 条件判断公式:$use\_integral = (|e(t)| < \epsilon) ? 1 : 0$
  2. 实施 遇限削弱积分法。当计算出的控制量 $u(t)$ 已经达到最大或最小值时,停止 积分项的继续累积。

5.4 参数自整定辅助

如果手动整定困难,使用 继电反馈法自动获取临界参数。

  1. 设置 控制器为继电反馈模式,输出周期性的方波信号。

  2. 测量 系统响应的震荡周期和幅值。

  3. 代入 修正后的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$ 以内,满足高精度工艺要求。

评论 (0)

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

扫一扫,手机查看

扫描上方二维码,在手机上查看本文