欢迎光临散文网 会员登陆 & 注册

十六届单车分享1-直立算法

2021-08-23 20:45 作者:骑砍理财家  | 我要投稿

这篇主要分享下我们的直立算法。

原先的小舵机SD-12应该是很早之前就坏了的,我们一直用到7月底才发现这个问题,此前一直以为是我们控制算法的问题。具体现象就是,舵机调整打角时会有小幅的抖动。

因为这个,原先的单级PID完全调不出来。最初只需要一个PD环就可以稳定走直线和左右画圆。不过也是因为这个问题,我们发展了我们直立的算法,到七月初就可以调出不同速度下静态指标和动态性能都比较好的参数。只不过到后面,那个舵机的抖动比之前要厉害的多多了,影响了我们的循迹。具体表现就是,车的轨迹比之前差,伴随着高频的抖动。后来就换了大舵机3010,效果非常好,好到哭了。

下面具体介绍下直立算法的思路吧。

直立环为串级控制,内环为角速度环,外环为角度环,内外环同周期控制。

直立环我们关注点主要有两个,静态指标、动态性能。静态指标就是车稳态时实际倾角与目标倾角之间的偏差。动态性能就是在给车的目标倾角一个大的跳变时车的响应性能。我们认为这两个东西是相互矛盾的,如果只是同周期串级控制。

实际循迹对于静态指标和动态性能要求都比较高的。

我们也试出了一种比较好的解决方案。同周期串级控制,用实际倾角-稳态舵机打角的拟合公式替换原先的积分项。如此一来既可以保证一定的静态指标,也能够有较好的动态性能。

有时会想,也许是同周期限制了这个串级控制的另一种可能性,静态和动态的双赢吧。只不过当时舵机只能50Hz,20ms一个周期来响应。

用实际倾角-稳态舵机打角的拟合公式替换原先的积分项”,我们直立环算出的PWM是一个相对于舵机中值的偏移量。这个拟合公式,是我们认为在这一个速度下,这一个实际倾角下,对应最优的舵机打角。然后,只包含PD的串级控制,一方面用于调整到目标倾角,另一方面用于保持车的稳定,并且不会有积分项带来的大惯性。

关于确定拟合公式和参数。我们先调一个静态指标比较好的串级PID参数,然后在这基础上采集得到各个倾角下对应的横滚角速度、航向角速度、外环输出和内环输出,然后确定拟合公式。后面就是去掉I项,在内环应用拟合公式,调内外环的PD得到静态和动态都比较好的一组参数。

另外,慢速下我们没有用拟合,而是用串级PID。慢速下倾角改变最多也就0.1度,这里用积分项可以做到更加精细,效果不错。我们这个速度下的拟合就失效了,调不出来。

望和各位朋友交流学习。以上。

十六届单车分享1-直立算法的评论 (共 条)

分享到微博请遵守国家法律