[运动控制]PID算法再深入--多环组合控制

发布于:2025-09-09 ⋅ 阅读:(31) ⋅ 点赞:(0)

一、PID 核心概念:P、I、D 的含义与作用

PID 控制由比例(P)、积分(I)、微分(D)三种算法组成,三者通过不同组合实现不同控制效果,核心是基于 “误差” 进行系统调整,其中误差(error)= 理论值(期望目标)- 测量值(传感器实测数据)(或反之,需根据实际极性确认)。

1. 比例算法(P):主动减小误差

  • 数学表达式:输出 =Kp*error(Kp为比例系数,需调参)
  • 核心逻辑:误差越大,P 的输出响应越强,系统调整力度越大;随着误差减小,P 的输出也随之减弱,最终使测量值向理论值靠近。
  • 作用:是 PID 控制的基础,能主动缩小误差,让系统快速响应目标。
  • 问题:仅用 P 控制易出现 “过充现象”(系统响应剧烈,超出理论值)。例如:控制小车转向时,P 参数过大会导致车头超调;控制舵机云台找小球时,舵机可能越过目标位置。

2. 微分算法(D):抑制系统剧烈响应

  • 数学表达式:输出 = Kd*(当前error-上一次error)(Kd为微分系数,需调参)
  • 核心逻辑:通过 “当前误差与上一次误差的差值” 反映系统响应速度(类似加速度):差值越大,说明系统变化越快,D 的输出越强;差值越小,D 的输出越弱。
  • 作用:抑制 P 控制带来的过充和震荡,相当于 “阻尼”(类似在水中挥拳,速度越快阻力越大)。当系统响应剧烈时,D 会削弱 P 的输出,降低调整力度,避免超调。
  • 问题:Kd过大会导致高频小幅度震荡(类似 “抽搐”),例如平衡小车直立环 D 参数过大会出现快速小幅度抖动。

3. 积分算法(I):消除稳态误差

  • 数学表达式:输出 = Ki*累积误差   
  • 核心逻辑:即使误差很小(稳态误差),I 会通过 “持续累加误差” 逐步增强输出,直到系统响应足以消除误差。例如:转向环控制角度到 28 度(理论 30 度),P 的输出因误差小而不足,I 的累加会最终推动电机调整到 30 度。
  • 作用:解决 P(或 P+D)控制无法消除的稳态误差,提升控制精度。
  • 使用场景:需高精度控制的场景(如转向环、舵机云台);特殊控制环(如速度环);当 P+D 控制仍有明显稳态误差时。

二、单环 PID 控制:算法组合与调参

单环控制指仅针对一个目标(如角度、距离、速度)设计 PID 环,核心是根据系统需求选择 “P/P+D/P+D+I” 的组合,调参需遵循 “观察现象、逐步优化” 的原则。

1. 纯 P 控制:简单场景的基础选择

  • 适用场景:对响应速度和精度要求低、系统不易过充的场景,如:
    • 转向环(小范围角度控制,P 参数较小时无明显过充)
    • 舵机云台(低精度定位,如粗略找目标)
    • 距离控制(短距离、低速度场景)
  • 调参方法:Kp从 0 开始逐步增大,直到系统能稳定缩小误差,且无明显过充或震荡即可。
  • 问题:Kp过小会导致 “响应慢、稳态误差大”(电机动力不足,无法调整到理论值);Kp过大则出现过充和震荡。

2. P+D 控制:抑制过充的主流组合

  • 适用场景:需快速响应且避免过充的场景,如:
    • 转向环(大范围角度控制,需抑制车头超调)
    • 舵机云台(高精度定位,避免越过目标)
    • 距离控制(中长距离,防止小车冲过目标)
    • 平衡小车直立环(核心组合,需特殊调参)
  • 通用调参步骤
    1. 先调 P:Kp从 0 增大,直到系统出现大幅度低频震荡(如转向环被拨后左右摆 3-4 次)。
    2. 再调 D:Kd从 0 增大,逐步抑制震荡,直到震荡幅度和频率达到预期(无明显过充,且响应不迟钝)。
    3. 注意:若Kd过大,会出现高频小幅度震荡(类似抽搐),需回调Kd。
  • 特殊案例:平衡小车直立环调参(与通用逻辑不同,需 “不稳定前置”):
    1. 调 P:Kp增大到出现 “大幅度低频震荡”,且震荡明显(需比通用场景的震荡更剧烈),此时 P 参数 “偏大”。
    2. 调 D:Kd增大到出现 “小幅度高频震荡”(类似抽搐),且震荡明显,此时 D 参数 “偏大”。
    3. 参数优化:将 P 和 D 参数同时乘以 0.6,削弱输出,此时小车呈 “疲软状态”(推一下缓慢倒下),后续可加入速度环实现平衡。

3. P+D+I 控制:高精度控制的补充

  • 适用场景:P+D 控制仍有稳态误差,需更高精度的场景,如:
    • 转向环(需精确到 0.1 度,无角度偏差)
    • 舵机云台(目标定位无偏移,如摄像头精准跟踪小球)
    • 滚球系统(小球需完全停在板子中心,无偏移)
  • 调参步骤
    1. 先按 “P+D 控制” 调好 P 和 D,确保无明显过充和震荡。
    2. 再调 I:Ki从 0 开始极小幅度增大(因误差每 10ms 累加一次,I 会快速增强),直到稳态误差消除(如转向环从 28 度调到 30 度)。
    3. 注意:Ki过大易导致系统震荡,需 “宁小勿大”。
  • 特殊案例:滚球系统调参(先保稳定,再追精度):
    1. 先调 D:Kd从 0 增大,直到小球放在板子上推动后不掉落(D 抑制小球运动,防止掉落)。
    2. 再调 P:Kp极小幅度增大,直到板子轻微倾斜,小球能向目标位置运动(P 无需过大,避免小球冲过目标)。
    3. 最后调 I:Ki极小幅度增大,消除小球与中心的稳态误差(如小球始终差 1cm 到中心,I 累加后推动板子调整)。

三、多环 PID 控制:并级与串级组合

多环控制指针对复杂系统(如平衡小车、带距离控制的小车),设计多个 PID 环协同工作,核心分为 “并级 PID” 和 “串级 PID” 两种模式。

1. 并级 PID:多环输出直接叠加

  • 原理:多个 PID 环独立计算输出,最终输出为各环输出的叠加(需注意极性,确保方向一致),适用于 “多目标并行控制”。
  • 典型案例:平衡小车(直立环 + 速度环 + 转向环):
    • 直立环(P+D):控制小车直立,输出为电机角度调整量。
    • 速度环(PI):控制小车速度(如匀速前进),输出为电机转速调整量。
    • 转向环(P/P+D):控制小车转向,输出为左右电机差速调整量。
    • 最终输出:直立环输出 + 速度环输出 + 转向环差速输出,驱动电机运行。
  • 调参顺序:先调 “核心环”(如直立环),再调 “辅助环”(如速度环、转向环),避免相互干扰。
  • 特殊注意:反馈极性
    • 平衡小车的速度环为 “正反馈”(与直立环的负反馈配合,实现平衡)。
    • 普通三轮 / 四轮小车的速度环为 “负反馈”(常规 PID 逻辑,误差越小输出越弱)。

2. 串级 PID:外环输出作为内环理论值

  • 原理:将 “外环(如距离环)” 的输出作为 “内环(如速度环)” 的理论值,形成 “外环控目标、内环控执行” 的层级结构,适用于 “目标需通过中间量间接控制” 的场景。
  • 典型案例:带距离控制的小车(距离环 + 速度环):
    • 内环:速度环(PI/P+D),测量值为编码器转速,理论值为距离环的输出。
    • 外环:距离环(P/P+D),测量值为超声波 / 红外测距数据,理论值为期望距离。
    • 控制逻辑:
      1. 若距离未达目标(有误差),距离环输出非零值,作为速度环的理论值。
      2. 速度环根据该理论值调整电机转速,驱动小车前进 / 后退,缩小距离误差。
      3. 随着距离误差减小,距离环输出减小,速度环理论值减小,最终小车停在目标位置(距离误差为 0,速度环理论值为 0)。
  • 调参顺序:先调 “内环(速度环)”,确保内环稳定(如速度环能精准跟踪理论转速);再调 “外环(距离环)”,逐步优化距离控制精度。
  • 优势:控制更丝滑(距离误差大时速度快,误差小时速度慢),避免小车冲过目标。

四、PID 调参方法总结:观察法为主,上位机为辅

调参的核心是 “根据系统现象判断参数方向”,而非追求统一标准,需结合实际硬件(电机、电池、机械结构)调整。

1. 核心方法:观察法

  • 核心逻辑:通过观察系统实际现象(如震荡幅度、响应速度、误差大小),判断参数是否合理,具体对应关系如下:
    现象 可能原因 调整方向
    大幅度低频震荡 Kp过大 减小Kp
    高频小幅度震荡(抽搐) Kd过大 减小Kd
    响应慢、稳态误差大 Ki过小 / 缺 I 增大Kp / 加小幅度 I
    过充严重(超调量大) 缺 D / Kd过小 增大Kd
    系统无响应(电机不动) P/I/D过小 逐步增大参数
  • 注意事项
    • 不追求 “与参考视频现象一致”:不同硬件(如航模电池 vs 锂电池、12V 电机 vs7.4V 电机)会导致响应差异,需找到适合自身系统的参数。
    • 调参顺序固定:单环先调 P,再调 D,最后调 I;多环先调内环 / 核心环,再调外环 / 辅助环。

2. 辅助工具:上位机

  • 适用场景:初学者用于 “可视化理解”,通过波形观察参数对系统的影响(如 P 的震荡波形、D 的抑制效果、I 的误差消除过程)。
  • 优势:直观展示误差变化趋势,帮助理解 PID 原理。
  • 局限性
    • 需编写串口协议和代码,耗时且需适配不同系统。
    • 波形与实际现象可能存在出入,最终仍需根据实际场景调整。
  • 建议:初学阶段用上位机辅助理解,熟练后直接通过 “观察现象” 调参(比赛中更高效)。

五、常见问题与补充说明

  1. 参数初始值:P/I/D均从 0 开始,逐步增大(尤其是 I,需极小幅度调整)。
  2. 定时器配置差异:高级定时器需开启 “总输出使能”,且部分通道输出占空比可能与普通定时器相反(需用示波器实测确认)。
  3. 滚球系统抖动原因
    • 摄像头误识别(即使视觉上不明显,仍可能影响误差计算)。
    • 机械结构不稳定(板子或支架摇晃)。
    • PID 参数不当(如 D 过大导致高频震荡)。
  4. 小车跑圈算法:基于 “圆心角与弧度的关系” 设计,可设定半径和时间;滚球系统画圆需 X/Y 方向运动合成(sin 函数相位差 π/2 为正圆,否则为椭圆)。
  5. 电赛小车题规律:无 “每年必出小车题” 的固定规律,需以官方题目为准,不可仅凭猜测准备。

网站公告

今日签到

点亮在社区的每一天
去签到