找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1683

积分

0

好友

216

主题
发表于 2026-2-12 01:14:12 | 查看: 50| 回复: 0

PID及其衍生算法是工业应用中最广泛的算法之一,堪称“万能算法”。如果能够熟练掌握PID算法的设计与实现过程,对于大多数研发人员来说,足以应对常见的控制问题了。更可贵的是,在众多控制算法中,PID控制算法相对简单,最能体现反馈思想的核心,是经典中的经典。经典并不意味着复杂,相反,它常常是简单的。

PID算法的一般形式

PID算法通过误差信号来控制被控量,而控制器本身就是比例、积分、微分三个环节的输出之和。我们规定在 t 时刻:

  1. 输入量为 输入信号 i(t)
  2. 输出量为 输出信号 o(t)
  3. 偏差量为 偏差 err(t)

则 PID 控制器的输出 u(t) 为:
PID连续公式

PID算法的数字离散化

在数字系统中,我们需要将连续的PID公式进行离散化。假设采样间隔为 T,则在第 K 个采样时刻:

偏差 err(k) = 离散误差

积分环节用加和的形式表示:积分项求和

微分环节用斜率(即差分)的形式表示:微分项差分

由此,PID算法离散化后的表达式为:
离散PID公式

通常可以表示为更简洁的形式:
简化离散PID公式

其中:

  • 比例系数 k_p k_p:控制器的输出与输入偏差值成比例关系。系统一旦出现偏差,比例调节立即产生调节作用以减少偏差。
    特点:过程简单快速;比例作用大,可以加快调节,减小误差;但过大的比例增益会使系统稳定性下降,产生振荡,并且存在稳态余差。
  • 积分系数 k_i k_i:积分环节主要用来消除静差。静差是指系统稳定后,输出值与设定值之间的差值。积分环节实质上是偏差累计的过程,将累积的误差添加到系统输出中,用以抵消系统固有的静差。
  • 微分系数 k_d k_d:微分信号反映了偏差信号的变化规律或趋势。根据偏差的变化趋势进行超前调节,可以增加系统的快速响应能力,抑制超调。

上述离散表达式属于 位置型PID。另一种常用的表述方式是 增量式PID。由 u(k) 的表达式,我们可以轻易得到上一时刻的输出 u(k-1):
u(k-1)公式

那么,当前时刻输出的增量 Δu(k) = u(k) - u(k-1) 为:
增量式PID公式

这个公式就是离散化 PID 的增量式表示。从公式可以看出,增量式的输出只与最近三次的偏差有关,这有助于提高系统的稳定性和抗积分饱和能力。需要注意的是,最终的执行机构输出量应为:当前输出量 = 上次输出量 + 本次计算出的增量调节值 u(k)

为何需要PID控制?

也许你会问:我控制温度,难道不能等温度值一到就停止加热吗?这里首先要明确控制目标。假设我们设定目标温度为30℃,理想的响应曲线是快速、平稳地达到设定值,没有过冲和抖动。

理想系统响应曲线

如果采用“温度一到就停”的简单开关控制,由于系统的热惯性和散热等因素,温度往往会超过设定值,然后下降,再上升,形成振荡,无法快速稳定在目标值。这正是计算机科学中经典反馈控制所要解决的问题。因此,我们需要PID这类算法来应对具有滞后特性的系统,使输出能够快速、稳定、精确地到达设定值。

PID控制的整体框图如下,清晰地展示了其反馈控制过程:
PID控制器结构框图

控制器的P、I、D项选择

不同的控制规律有其适用的场景:

  1. 比例控制 (P):能较快克服扰动,响应速度快,但会存在稳态余差。适用于控制要求不高、允许存在余差的场合。
  2. 比例积分控制 (PI):在比例基础上加入积分,可消除稳态余差,是应用最广泛的一种。适用于不允许有余差的场合。
  3. 比例微分控制 (PD):微分具有超前预测作用,能提高系统的动态性能,减少超调。适用于系统惯性(容量滞后)较大的场合。但对于纯滞后很大的系统或测量噪声大的系统,不宜使用微分。
  4. 比例积分微分控制 (PID):结合了三者的优点,既能消除余差,又能提高稳定性和快速性。适用于控制要求较高、时间常数或滞后较大的场合,如温度、成分控制。

Kp、Ti、Td(或 kp、ki、kd)三个参数的设定是PID控制算法的核心。通常编程时先设定大概数值,然后在系统运行时通过反复调试来确定最佳值。

数字PID控制器

数字控制器的设计基于连续系统的离散化。

  1. 模拟PID的离散化
    连续到离散的转换
  2. 数字PID的差分方程
    数字PID差分方程

PID参数的自整定

对于不确定被控对象的通用场合,需要参数自整定功能。即系统首次运行时,自动寻找一套合适的PID参数。常用方法有三种:

1. 临界比例度法 (Ziegler-Nichols)

在纯比例控制下,逐渐增大比例增益 K,直至系统出现等幅振荡。记录此时的临界增益 Ku 和临界振荡周期 Tu。
等幅振荡曲线

然后根据下表计算PID参数:
临界比例度法参数表

注意事项:此法适用于可承受短暂等幅振荡的系统,且对象通常为二阶以上。若系统开环增益 KpKu 满足 2 < KpKu < 20 开环增益范围,则较为适用。

2. 衰减曲线法

在纯比例控制下,调整增益 K,使系统出现4:1(或10:1)的衰减振荡。记录此时的比例增益 Ks 和振荡周期 Ts(或上升时间 Tr)。
然后根据下表经验公式计算参数:
衰减曲线法参数表

3. 经验整定法

这是工程中最常用的方法,依靠工程师的经验和试凑。

  • 先P后I再D:先整定纯比例P,使系统有较快响应且有一定余差;然后加入积分I以消除余差,同时观察系统稳定性;最后根据需要加入微分D来抑制超调,加快稳定。
  • 口诀参考:“阶跃扰动投闭环,参数整定看曲线;先投比例后积分,最后再把微分加;理想曲线两个波,振幅衰减4比1;比例太强要振荡,积分太强过程长;动差太大加微分,频率太快微分降;偏离定值回复慢,积分作用再加强。”
  • 经验参数范围(供初始值参考):
    • 流量系统:P=40-100%, I=0.1-1分钟
    • 压力系统:P=30-70%, I=0.4-3分钟
    • 液位系统:P=20-80%, I=1-5分钟
    • 温度系统:P=20-60%, I=3-10分钟, D=0.5-3分钟

实际应用体会

在STM32等嵌入式平台上实现PID控制是常见的任务。例如:

  1. 控制直流电机速度:通过光电编码器测量转速,与设定值比较得到误差,经PID运算后输出PWM占空比控制电机电压。实践中会发现控制有范围限制,且稳态精度和调节时间需要反复调试。
  2. 控制直流减速电机位置:通过电位器测量角度位置,与目标位置比较。这里需要将位置误差合理地映射为控制电机的PWM信号,系统建模和参数整定更具挑战性。

很多初学者的问题在于,对PID参数整定没有清晰的理论和步骤指导,导致调试过程盲目,效果不理想。在云栈社区的嵌入式板块,常有开发者分享他们的调试经验和教训。

形象理解PID算法

通过一个生活化的例子可以更直观地理解PID:

任务:维持一个漏水水缸的水位在固定高度。

  • 采样周期:多久检查一次水位。检查太频繁浪费精力,太慢则水位偏差过大。
  • 比例P:用什么工具加水(瓢、桶、盆)。工具大小决定了“加水量与水位偏差的比例关系”。用盆可能刚好,比例系数合适。
  • 积分I:为了彻底消除因水缸漏水特性导致的持久水位差(稳态误差),你安装了一个漏斗,缓慢持续地加水来累积补偿这个误差。漏斗的口径大小决定了补偿的速度,即积分时间
  • 微分D:为了在水位快速下降时能及时反应,你准备了一盆备用水,一发现水位骤降就立刻泼水(根据水位变化趋势提前动作)。同时,你在水位线上方开个溢流孔,让加多的水流走,防止过冲。这个溢流的快慢体现了微分时间的作用。

PID各环节的深入解析

比例控制与稳态误差

比例控制的输出与误差成正比。比例带(PB)越小,比例作用越强。
比例带与输出关系

纯比例控制必然存在稳态误差,这是因为在平衡时,控制器的输出必须恰好抵消干扰(如漏水),而这需要一个固定的误差来产生这个输出。
比例控制产生的稳态误差

为了消除它,早期控制器引入了手动复位功能,即手动给输出加上一个偏移量MR:OUT = (100 / PB) * DV + MR 手动复位公式。这相当于人为将平衡点调整到设定值。
手动复位消除稳态误差

积分控制

积分控制能自动完成“手动复位”的功能,自动消除稳态误差。只要存在误差,积分作用就会不断累积输出,直到误差为零。
积分控制作用示意

积分时间的定义是:在阶跃误差下,积分作用的输出达到与比例作用的输出相等时所需要的时间。积分时间越短,积分作用越强。

微分控制

微分控制根据误差的变化率进行调节,具有“预见性”。它能在误差变大之前就产生一个抑制性的控制作用,从而有效减少超调,提高系统稳定性。
微分控制作用示意

微分时间的定义是:在斜坡误差下,微分作用的输出达到与比例作用的输出相等时所需要的时间。微分时间越长,微分作用越强。

PID参数对控制效果的影响

不同参数组合会产生截然不同的控制效果:
PID设定值改变时的控制效果
根据响应曲线调整PID参数

实际应用中的分段PID策略

以高频感应加热将工件从25℃加热到700℃为例,说明PID在实际中如何分阶段使用:

  1. 大偏差阶段(25~600℃):采用全功率(或开环最大输出)加热,快速逼近目标区。此时使用PID意义不大,主要追求速度。
  2. 中等偏差阶段(600℃以上):开启P控制。根据当前误差计算输出,平稳拉近与目标值的距离。但纯P控制会停留在某个低于目标的稳态值(如650℃)。
  3. 小偏差消除阶段(640℃附近):引入I控制。目的是累积P控制无法消除的残余误差(700-650=50℃),逐渐将输出推向目标值,最终消除稳态误差。
  4. 微调稳定阶段(690℃附近):可加入D控制。在非常接近目标时,抑制因积分或惯性可能引起的超调和振荡,实现平滑、精准的稳定。

总结:PID三个环节并非必须同时全程使用。P用于“粗调”和主体跟踪,I用于“精修”和消除残留偏差,D用于“微操”和抑制抖动。在许多对超调要求不高的场合,PI控制器已足够。理解每个环节的物理意义和作用时机,是成功优化和整定PID参数的关键。




上一篇:电子工程师如何系统学习硬件设计?从理论到实践的完整路线图
下一篇:高频电路PCB设计的十大布线技巧:从信号完整性与阻抗匹配讲起
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 14:18 , Processed in 0.724387 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表