PID算法的应用思路(并级PID)

前言:本章我们会根据实际的情况来介绍PID算法的直立环,速度环,转向环的调参技巧。

一、直立环,速度环,转向环简介

直立环控制的是小车的前后的在竖直方向上的摆动,就像人在站立过程中会保持身体垂直于地面一样的平衡状态。直立环一般是用P算法+D算法来实现,有时也可以只用P算法。

速度环控制的是小车的前后行进的速度,速度环固定使用P算法+I算法(一般Kp=200Ki)而且速度环的PI算法从编码器读取来的数据必须经过一个一阶滤波函数,来对原始的数据进行滤波,防止小车跑崩。

这个滤波系数一般是取0.3,这是经验函数。这个滤波函数的作用其实就是降低了当前数据的权重,引入了上一次数据来对当前数据进行调和,使之达到一个滤波的效果。

速度环的作用是可以加快小车的响应速度,,起到一个正反馈的作用。要起到正反馈的作用,就必须要调整速度环参数Kp与Ki的正负。具体方法是,先注释掉直立环,单独调整速度环,尝试Kp与Ki的正负,调到当轮子转动时,速度会一直加大,直到最大状态。这就是速度环的正反馈,此时的正负值就是Kp与Ki的最终正负值,也叫做极性。

转向环是控制小车进行左右的转向,一般使用P算法+D算法。但是小车的转向靠的是左右轮子的差速旋转来实现的,所以此时的PWM输出就不是简单的加到直立环和速度环后面。而是+-在后面

实际的调参步骤:先调直立环再调速度环。

1、先调直立环的Kp与Kd的极性,先给它随便赋个值,目的是观察当小车往一个方向倾斜的时候,轮子会不会也向这个方向转(利用的就是小车的惯性)

2、极性调完之后,逐渐加大,调到小车变成大幅度低频率震荡的状态,这就是找到的Kp的上限。再加大Kp现象也不改变。这个时候再稍微调大,调到一个中等偏大的Kp。这个时候再加入Kd,使得小车震荡的幅度慢慢变小,当调到差不多平衡的时候就达到一个中等值,但是Kd同样也要调到中等偏大的状态,所以再继续加大一点Kd。直到小车呈现一种小幅度高频率的震荡状态(出现这种状态后马上关闭电机,不然电机容易烧毁)。可以再调高Kd观察这个状态的趋势有没有改变,如果没有就是Kd参数过大,则之前的那个代码是正确的。这里面调参讲究一个趋势,要找到最大的值,然后再减到中等偏大的值。

3、在直立环调好之后,将它的Kp和Kd同时乘以0.6,再进行速度环的调参。

4、速度环调参先找极性,即参数的正负值,上面有提到。然后就慢慢加大Vp与Vi直到平衡。

5、如果当速度环调到了中等偏大的时候,小车还是有些抖动,那么可以回去把直立环的Kd调大一点点。

你可能感兴趣的:(算法)