0%

pid笔记

前言

今天智能车培训听完綦佬讲解pid体验良好,决定做下记录,顺便自己也正儿八经写篇关于pid的笔记。

一、PID基础

1.1 控制系统的框图

  • 执行器
  • 传感器
  • 控制器
    控制系统的框图

1.2 控制器的设计

1.2.1 on-off控制

  比如我们举个烧水壶加热到60℃的例子,仅仅控制电热丝的通断可实现on-off控制,即当温度小于60℃时通,大于60℃时断,这样便可实现简单的控制。
  这样的设计虽然简单但是这样存在一定的缺陷:频繁开关会损伤执行器的寿命。

1.2.2 带死区的on-off控制

  即在1.2.1的基础上,假如并不需要控制水温60℃,而是存在一定的死区,如50℃-70℃都可以,则此时温度小于50℃时通,大于70℃时断。
  这样减少了开关通断的频率从而提高了使用寿命。

1.2.3 相对连续的控制器–P控制(Proportion)

  看了上述的两种控制器,我们不由得思考是否存在一种控制器能同时相对精准的控制温度,同时又能减少开关的频繁通断。
  由此我们引出了相对连续的控制器。与之相应的也应该有相对连续的传感器。

  我们记当前值$Z$与预期值$X$的偏差为$error$,即$$error=X-Z$$

于是输出值$out=K_c*error$ ,其中$K_c$为比例系数

当$error$减小时,$out$也随之减小

通过error值我们便可以用占空比来得到相对连续的控制量。

那么这样是否存在问题呢?
  我们可以看到当Z与X相等时,error值则为0,即停止输出,当Z小于X时再输出。从一个长的时间跨度来看输出的平均值便小于了预期值,即存在稳态误差。
  另外,我们还要注意$K_c$值不能设的太大,否则一个很小的误差便会引起系统很大的改变,于是误差便会越来越大(发散系统)。

1.2.4 P-I控制 (比例-积分) (Proportion-Integration)

为减小稳态误差,我们引入了积分量
$$out=K_c(e(t)+\frac{1}{T_i}\int e(t)dt)$$
其中$\frac{1}{T_i}$为积分时间常数,$\frac{1}{T_i}\int e(t)dt$为耗散
这样又是否已经可以很好的控制系统了呢?
我们思考这样两种情况:
D的引入

可以看到左图的当前值是趋向于预期值的,而右图的当前值是远离期望值的,对于P-I控制来说他们输出的out值却是一样的,对于这样的情况这样的控制策略显然并不好。

1.2.4 P-I-D控制 (比例-积分-微分) (Proportion-Integration-Derivation)

于是我们引入微分项
$$out=K_c\Big(e(t)+\frac{1}{T_i}\int e(t)dt+T_d\frac{de(t)}{dt}\Big)$$
这里当$K_c$变化时,PID三项均会变化,于是我们引入一种更实用的写法
$$out=K_pe(t)+K_i\int e(t)dt+K_d\frac{de(t)}{dt}$$
只需改变$K_p$、$K_i$、$K_d$即可分别控制PID三项

二、PID调参

三、PID理论证明

四、待定

咕咕咕咕咕咕咕咕