直立平衡车PID控制策略以及数据平滑算法

文章探讨了平衡车控制中的PID控制策略,包括双闭环控制和串级PID,并详细介绍了如何通过数据平滑算法确保速度环输出的稳定性。作者通过实例解释了如何在直立环稳定后添加速度环,并分享了速度平滑输出函数的实现,以及开机角度平滑变化的处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在某些场合下,如果我们把一个突变的数据直接加到一个已经稳定的系统中,那么这个系统可能会很难再次达到稳定,这个时候就需要对突变的数据进行平滑处理,逐渐的加大。可能这样说不太容易理解,举个例子,最近在做一个机器人项目,机器人的行动靠的是一个大型的两轮平衡车,平衡车调试时,在直立环稳定后需要增加速度环对其行走速度进行控制,关于直立环和速度环,目前我所了解的就是三种结合方式:

第一:采用双闭环控制策略,内环为速度环,外环为直立环。这种方法没试过,据说是平稳行进没问题,但是抗干扰能力太差。反正我是不怎么认同这种控制策略。
第二:仍然采用双闭环控制策略,内环为直立环,外环为速度环。个人感觉这种方案还是可以一试的,首先在直立环调好以后,改变一个给定的角度,平衡车为了达到给定的角度,由于 PID 调节的作用,必然会打破当前的机械平衡状态,当达到给定角度时,由于车体的重心变了,由于惯性,平衡车必然向一个方向行进,至于行进的速度就得看我们给定角度的大小了。知道了这一
点,将外环速度环的输出作为直立环的给定,然后在速度环上给定一个速度,然后通过速度 PID 调节和直立 PID 调节最终控制小车前进。
第三,采用平衡控制策略。即将直立环的 PID 输出与速度环的 PID 输出求和作为最终的 PWM 输出,这种方案也可行,大部分做平衡车的人也在使用。不过之前看过一个文档,里面说使用这种策略实际上就是第二种串级 PID 的拆解,他将串级 PID 拆解成了一个负反馈的直立环,一个正反馈的速度环。我也没试过,不过经过推导,理论上说的过去。


扯远了,再回到数据平滑,当平衡车直立环调好以后,无论使用哪种策略,接下来都是增加速度环,而速度环的输出如果不够平滑,那么直接加在直立环上会对其造成影响,平滑方法就是将输出值分成若干份,每次在上次一的基础上增加一点点,这样输出就会平滑很多。不多说,直接上算法:
void SpeedControlOutput(void) //速度

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值