前言:最近在梳理px4串级pid时,发现在位置控制中不用串级pid也可以实现位置控制,但是会存在一个现象:在做长距离移动时,接近目标位置会出现超调现象,而采用串级pid这种现象就会减缓,很平滑地接近目标位置。
针对上面的问题,于是我仔细去学习了串级pid,得到以下几点体会:
在单级pid里面,最好是期望值(反馈值)是能够直接被执行器改变的,比如加速度。而速度和位移是由执行器间接改变的,所以就需要串级pid。
在位置控制pid中这时候我们就需要引进速度变化曲线,什么是「合适的速度变化曲线」呢,首先当到达期望位置的时候,速度应该为0。其次当没有到达期望位置的时候,期望速度是可以减小位置误差的。总结一下:「期望速度必须能减小位置误差,且位置误差为0时,期望速度为0。」
什么意思呢?如果前方为正方向,当期望位置在我们前方时,即target-current>0,那我们就希望能有个向前的正速度,去缩小这个误差,当误差为0时,我们希望速度为0。满足这样的过程的速度变化曲线,就是「合适的速度变化曲线」。
怎么去构造合适的速度变化曲线就是要怎么由位置差产生期望速度。??
显然外环用pid是可以的,但是微分会影响相应速度,积分又会引起噪声,而只用P又简单又有效,何乐而不为呢?所以最常用的外环控制器就是p控制器,除此之外还有开方控制器,就是对位置差开发产生期望速度。这两种的速度曲线就是:
显然这两种速度曲线都满足要求,即位置有误差时产生期望速度,位置没有误差时就没有期望速度。但这两者适用对象有细小差别,下次我们再来细谈。