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 ↑略快减小无影响变好,但怕噪声手动调参大概步骤先只加 P:从小到大,直到系统开始等幅振荡,再往回退一点。再加 I:从小往大,直到稳态误差消失,略有超调就停。最后加 D:抑制超调和振荡,但注意噪声,必要时加低通滤波。反复微调:P、I、D 会互相影响。嵌入式/机器人里要注意采样周期要固定,离散化后常用:输出要限幅,防止执行器过载。积分要限幅,防止“积分饱和”。微分对噪声敏感,通常加滤波或“不完全微分”。不同对象调法不同:电机速度、温度、位置、平衡车,参数差别很大。简单说,PID 参数就是调 P、I、D 三个数,让系统又快、又准、又稳。平衡车一般不是单环 PID,而是串级 PID:直立环(内环) + 速度环(外环) + 转向环其中直立环是核心,通常只用PD;速度环用PI;转向环用P 或 PD。1. 直立环:让车不倒输入:角度、角速度输出:电机 PWMtext角度误差 = 目标角度 - 实际角度 直立输出 = Kp_angle * 角度误差 + Kd_angle * 角速度Kp_angle:越大,回正越快,太大高频抖动。Kd_angle:抑制抖动,像阻尼,太大对陀螺仪噪声敏感。一般不用 I:积分会滞后,反而容易倒。调法:先只给 P,从小往大加,直到车能向平衡位置回正,但会抖。再加 D,从小往大加,直到抖动明显减弱、响应变硬。目标角度要设成机械中值,不是 0°,因为电池、重心会影响。2. 速度环:让车不漂输入:编码器速度输出:叠加到目标角度上text速度误差 = 目标速度 - 实际速度 速度输出 = Kp_speed * 速度误差 + Ki_speed * 积分 目标角度 = 机械中值 + 速度输出Kp_speed:车漂移时把它拉回来。Ki_speed:消除静差,让车真正停住。输出限幅:通常限制在 ±5° ~ ±10°,否则会干扰直立。调法:直立环稳定后,车会慢慢前后漂。加速度环 P,让车能缓慢回中心。再加 I,消除最后一点漂移。如果出现低频前后摆动,说明速度环太强,减小 P 或 I。3. 转向环:控制左右转输入:遥控转向量、陀螺仪 Z 轴输出:左右轮差速text转向输出 = Kp_turn * 转向误差 + Kd_turn * 转向角速度 左PWM = 直立输出 - 转向输出 右PWM = 直立输出 + 转向输出Kp_turn:转向力度,太大容易甩尾。Kd_turn:抑制转向过冲,让转向更稳。原地转向时注意电机死区,可加一点补偿。4. 调参顺序确认极性:车往前倾,轮子要往前加速;反了会直接飞车。调直立环:先 P 后 D,直到能静止站立。调速度环:先 P 后 I,直到不漂移。调转向环:先 P 后 D,直到转向跟手。联调:轻推、遥控、加负载、换地面,再微调。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但不同电机、轮径、重量、单位差别很大,不能照抄。
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 ↑略快减小无影响变好,但怕噪声手动调参大概步骤先只加 P:从小到大,直到系统开始等幅振荡,再往回退一点。再加 I:从小往大,直到稳态误差消失,略有超调就停。最后加 D:抑制超调和振荡,但注意噪声,必要时加低通滤波。反复微调:P、I、D 会互相影响。嵌入式/机器人里要注意采样周期要固定,离散化后常用:输出要限幅,防止执行器过载。积分要限幅,防止“积分饱和”。微分对噪声敏感,通常加滤波或“不完全微分”。不同对象调法不同:电机速度、温度、位置、平衡车,参数差别很大。简单说,PID 参数就是调 P、I、D 三个数,让系统又快、又准、又稳。平衡车一般不是单环 PID,而是串级 PID:直立环(内环) + 速度环(外环) + 转向环其中直立环是核心,通常只用PD;速度环用PI;转向环用P 或 PD。1. 直立环:让车不倒输入:角度、角速度输出:电机 PWMtext角度误差 = 目标角度 - 实际角度 直立输出 = Kp_angle * 角度误差 + Kd_angle * 角速度Kp_angle:越大,回正越快,太大高频抖动。Kd_angle:抑制抖动,像阻尼,太大对陀螺仪噪声敏感。一般不用 I:积分会滞后,反而容易倒。调法:先只给 P,从小往大加,直到车能向平衡位置回正,但会抖。再加 D,从小往大加,直到抖动明显减弱、响应变硬。目标角度要设成机械中值,不是 0°,因为电池、重心会影响。2. 速度环:让车不漂输入:编码器速度输出:叠加到目标角度上text速度误差 = 目标速度 - 实际速度 速度输出 = Kp_speed * 速度误差 + Ki_speed * 积分 目标角度 = 机械中值 + 速度输出Kp_speed:车漂移时把它拉回来。Ki_speed:消除静差,让车真正停住。输出限幅:通常限制在 ±5° ~ ±10°,否则会干扰直立。调法:直立环稳定后,车会慢慢前后漂。加速度环 P,让车能缓慢回中心。再加 I,消除最后一点漂移。如果出现低频前后摆动,说明速度环太强,减小 P 或 I。3. 转向环:控制左右转输入:遥控转向量、陀螺仪 Z 轴输出:左右轮差速text转向输出 = Kp_turn * 转向误差 + Kd_turn * 转向角速度 左PWM = 直立输出 - 转向输出 右PWM = 直立输出 + 转向输出Kp_turn:转向力度,太大容易甩尾。Kd_turn:抑制转向过冲,让转向更稳。原地转向时注意电机死区,可加一点补偿。4. 调参顺序确认极性:车往前倾,轮子要往前加速;反了会直接飞车。调直立环:先 P 后 D,直到能静止站立。调速度环:先 P 后 I,直到不漂移。调转向环:先 P 后 D,直到转向跟手。联调:轻推、遥控、加负载、换地面,再微调。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但不同电机、轮径、重量、单位差别很大,不能照抄。