PID学习笔记

6 阅读4分钟

1、什么是PID?

PID是一种经典且广泛应用的自动控制算法,全称是Proportional-Integral-Derivative Control(比例-积分-微分控制)。它核心目标是:让系统的输出快速、稳定、准确地跟踪设定的目标值。

生活举例:

  1. 假设我要控制一个烧水壶,目标温度是100℃。
  2. 目前的温度是20℃。
  3. 误差 = 目标 - 当前 = 80 ℃。

PID就是三个工人,它们合伙决定该给加热器多大的功率。

1.1 P(Proportional)-----------比例(只看现在)

  • 性格:直肠子、鲁莽。

  • 逻辑:“误差有多大,我就出多大力,争取维持到我的目标值”

  • 行为:现在的误是80℃,很大!P说:”全功率加热!“。

  • 缺点:永远到不了目标值(静差)

    • 场景:当水温到达99℃时,误差只有1℃,P计算出的力气太小(比如1%功率),这点功率可能还不够抵消散热,于是水温卡在99%不动了,这就是静差。

1.2 I(Integral)------------积分(纠正过去)

  • 性格:记仇、有耐性。
  • 逻辑:”只要误差还在,我就一直在小本本上记账,时间越久,我越生气,力气越大。“
  • 行为:P卡在99℃不动了。I 看了一会说:“怎么还是99度?不行!” I 开始慢慢增加输出,知道把水温推到100℃。I 主要用来消除误差。
  • 缺点:反应慢,容易过头(超调)。因为它看的是历史积累。

1.3 D(Derivative)---------------微分 (预测未来)

  • 性格:预言家,冷静。
  • 逻辑:“我看的是变化的趋势。如果你冲得太快,我就踩刹车。“
  • 行为:水温20℃迅速升到80℃。D发现温度上升率太快了,预测会冲过头。D说:”慢点慢点!减小功率!”即使此误差还很大,D也会产生一个负向的力来抑制过冲。
​
                              |---------Kp(比例环节)------------
                              |                               |
                              |                               +
---------输入误差(error)----------------Kidt(积分环境)------- +⚪------》输出
                              |                               +
                              |                               |
                              |---------kd d/dt(微分环境)-------
​

2、如何确定PID参数

2.1凭感觉便利法(不推荐)

  1. 先调Kp,让系统快速响应。
  2. 再调Ki,以消除稳态误差。
  3. 最后调Kd,以消除震荡。

缺点多多:

  • 风险高,代价大:

    • “试凑”意味着需要系统先跑起来,如果只是普通小型设备也就算了,如果是几吨重的机械臂,高温锅炉或者无人机等,先调P看有没有震荡,可能设备直接炸机了、烧毁了或者撞坏了。
    • 盲目试凑无法预知系统的边界,容易引起安全事故。
  • 无法保证最优解:

    • 调出来的参数可能能用,电机能转,也能停。但它是不是最快的?是不是最省电的?是不是抗干扰最强的?无从知晓。
    • 我们可能在一个次优的参数陷阱里打转,而永远找不到那个完美的参数组合。
  • 不可复制玄学:

    • 今天如果手感好调好了A机器,明天来了一台一模一样的B机器,但是摩檫力大了一些,参数就不行了,又要重新测,缺乏鲁棒性。

2.2科学计算法(nb)

核心逻辑是:先懂对象,再出参数。

  1. 被控对象建模

    • 这是最难的一步,也是最科学的一步。
  • 实现:

    • 做法:进行建模,这里的建模不是指画3D图,而是数学建模。我们需要知道电机的电感、电阻、转动惯量、摩擦系数,然后写出它的传递函数,比如 G(s) = K/(Ts+1)。
    • 意义:一旦有了数学模型,就不需要通电了,我们可以再MATLAB/Simulink里完全模拟它的行为。
  1. 画波特图

    • 做法:利用数学模型分析系统的频域特性。

    • 意义:波特图能告诉你这个系统的脾气:

      • 带宽:系统反应能有多块?
      • 相角裕度:系统离发疯震荡还有多远的距离?
  2. 根据指标计算Kp,Ki,Kd

    • 做法:进行计算

      • 比如客户要求:“调节时间小于100ms,超调量小于5%”。
      • 工程师利用控制理论公式,直接推导出满足上述需求的三个指标。
    • 结果:算出来的参数填进去,通常第一次上电就能达到90%的效果,然后进行微调。