☰
【嵌入式】PID调参
2026/10/20 2:06:15 网站建设 项目流程

PID 参数就是控制算法里的三个“调节旋钮”:P(比例)、I(积分)、D(微分)。它们决定控制器对“误差”的反应有多强、多快、多稳。

公式大致是:

其中 e(t)=目标值−实际值e(t)=目标值−实际值,u(t)u(t) 是输出控制量。
所以三个参数就是:

  • Kp:比例增益

  • Ki:积分增益

  • Kd:微分增益


1. P:比例项

看当前误差,差多少就出多大力。

  • Kp 越大:反应越快,但容易超调、振荡。

  • Kp 越小:反应迟钝,可能一直有稳态误差。

  • 作用:让系统快速靠近目标。

例子:机器人关节要转到 90°,现在在 0°,P 就是“差 90° 就输出大一点”。


2. I:积分项

看历史误差,一直差就一直加力,用来消除稳态误差。

  • Ki 越大:消除稳态误差越快,但容易超调、振荡。

  • Ki 越小:消除慢,可能永远差一点。

  • 作用:让最终值精确到达目标。

例子:电机带负载后总差 2°,I 会慢慢补偿这 2°。


3. D:微分项

看误差变化趋势,快到了就提前刹车。

  • Kd 越大:抑制超调、减少振荡,但对噪声非常敏感。

  • Kd 越小:阻尼不足,容易冲过头。

  • 作用:让系统更稳,像“阻尼器”。

例子:平衡车快倒时,D 根据倾斜速度提前给反向力。


一句话记忆

  • P:现在差多少

  • I:过去差多少

  • D:未来会差多少

调参口诀通常是:

P 负责快,I 负责准,D 负责稳。


参数增大的影响

参数响应速度超调稳态误差稳定性
Kp ↑变快变大减小变差
Ki ↑变快变大消除变差
Kd ↑略快减小无影响变好,但怕噪声

手动调参大概步骤

  1. 先只加 P:从小到大,直到系统开始等幅振荡,再往回退一点。

  2. 再加 I:从小往大,直到稳态误差消失,略有超调就停。

  3. 最后加 D:抑制超调和振荡,但注意噪声,必要时加低通滤波。

  4. 反复微调:P、I、D 会互相影响。


嵌入式/机器人里要注意

  • 采样周期要固定,离散化后常用:

  • 输出要限幅,防止执行器过载。

  • 积分要限幅,防止“积分饱和”。

  • 微分对噪声敏感,通常加滤波或“不完全微分”。

  • 不同对象调法不同:电机速度、温度、位置、平衡车,参数差别很大。

简单说,PID 参数就是调 P、I、D 三个数,让系统又快、又准、又稳。

平衡车一般不是单环 PID,而是串级 PID:

直立环(内环) + 速度环(外环) + 转向环

其中直立环是核心,通常只用PD;速度环用PI;转向环用P 或 PD。


1. 直立环:让车不倒

输入:角度、角速度
输出:电机 PWM

text

角度误差 = 目标角度 - 实际角度 直立输出 = Kp_angle * 角度误差 + Kd_angle * 角速度
  • Kp_angle:越大,回正越快,太大高频抖动。

  • Kd_angle:抑制抖动,像阻尼,太大对陀螺仪噪声敏感。

  • 一般不用 I:积分会滞后,反而容易倒。

调法:

  1. 先只给 P,从小往大加,直到车能向平衡位置回正,但会抖。

  2. 再加 D,从小往大加,直到抖动明显减弱、响应变硬。

  3. 目标角度要设成机械中值,不是 0°,因为电池、重心会影响。


2. 速度环:让车不漂

输入:编码器速度
输出:叠加到目标角度上

text

速度误差 = 目标速度 - 实际速度 速度输出 = Kp_speed * 速度误差 + Ki_speed * 积分 目标角度 = 机械中值 + 速度输出
  • Kp_speed:车漂移时把它拉回来。

  • Ki_speed:消除静差,让车真正停住。

  • 输出限幅:通常限制在 ±5° ~ ±10°,否则会干扰直立。

调法:

  1. 直立环稳定后,车会慢慢前后漂。

  2. 加速度环 P,让车能缓慢回中心。

  3. 再加 I,消除最后一点漂移。

  4. 如果出现低频前后摆动,说明速度环太强,减小 P 或 I。


3. 转向环:控制左右转

输入:遥控转向量、陀螺仪 Z 轴
输出:左右轮差速

text

转向输出 = Kp_turn * 转向误差 + Kd_turn * 转向角速度 左PWM = 直立输出 - 转向输出 右PWM = 直立输出 + 转向输出
  • Kp_turn:转向力度,太大容易甩尾。

  • Kd_turn:抑制转向过冲,让转向更稳。

  • 原地转向时注意电机死区,可加一点补偿。


4. 调参顺序

  1. 确认极性:车往前倾,轮子要往前加速;反了会直接飞车。

  2. 调直立环:先 P 后 D,直到能静止站立。

  3. 调速度环:先 P 后 I,直到不漂移。

  4. 调转向环:先 P 后 D,直到转向跟手。

  5. 联调:轻推、遥控、加负载、换地面,再微调。


5. 常见问题

  • 一上电就疯转:电机方向或角度符号反了。

  • 高频抖动:直立环 Kp 太大,或 Kd 太大引入噪声。

  • 低频前后摆:速度环太强,或直立环阻尼不够。

  • 往一边跑:机械中值没校准,或陀螺仪零偏。

  • 加速后倒:速度环输出限幅太大,或电池电压下降。

  • 积分饱和:积分项要限幅,倾倒时及时清零。


6. 代码注意

  • 采样周期固定,比如 5ms。

  • 角度用互补滤波或卡尔曼,角速度直接用陀螺仪,别用角度差分。

  • 微分项对噪声敏感,加低通滤波。

  • PWM 输出必须限幅,防止烧电机。

  • 电池电压变化会影响参数,最好做电压补偿。


经验数量级(仅参考)

以角度单位“度”、PWM 0~1000 为例:

  • 直立环:Kp ≈ 30~100,Kd ≈ 0.5~3

  • 速度环:Kp ≈ 0.5~5,Ki ≈ 0.01~0.1

  • 转向环:Kp ≈ 1~10,Kd ≈ 0~0.5

但不同电机、轮径、重量、单位差别很大,不能照抄。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询