基于卡尔曼滤波和PID算法的自平衡小车调试过程分析
2020-12-25周斌孔丙亚冯高明
周斌 孔丙亚 冯高明
摘要:为了解决基于卡尔曼滤波和PID算法的自平衡小车的调试过程复杂、需要反复调试的问题,本文给出了一种按照姿态检测模块、角度环、速度环、转向环的先后顺序对自平衡小车进行调试的方法,并对具体的调试过程进行了分析。调试和实验结果表明这种调试的步骤和方法缩短了自平衡小车的调试时间,简化了调试过程。
关键词:卡尔曼滤波;PID算法;自平衡小车
引言
两轮自平衡小车是一个比较复杂的控制系统,是研究各种控制理论的实验和研究平台,理论意义和现实意义都很重大。很多自平衡小车都采用的是PID算法,在进行PID参数调试时,调试过程比较复杂,需要反复调试。本文结合基于卡尔曼滤波和PID算法的自平衡小车调试过程给出了调试的一般步骤和方法。
1 系统硬件上电调试
硬件上电测试是进行自平衡小车系统进行整体调试前的准备工作,目的是为了确定系统的各个硬件模块都可以正常的工作。将测试程序从计算机下载到自平衡小车系统后,给自平衡车车上电,观察自平衡车的运动状态,自平衡小车的运动状态如果符合测试程序的预期输出,说明系统的硬件电路没有问题,可以进入下一步进行系统各个参数的具体调试。
2 系统软件PID参数调试
2.1姿态检测模块调试
姿态模块的调试对象主要是姿态传感器陀螺仪和加速度计,调速的目的是要保证测得的角度和角速度信号的准确性。调试过程如下:使自平衡车与地面保持一定的倾角(调试时采用了450、900、1350三种倾角),观察陀螺仪与加速度计实际的输出数值,每一种状态多测几组数据,然后根据测得的数值求出测量平均值,将测得的平均值与角度的实际值进行对比,求出两者之间的误差,然后对该误差进行补偿。
2.2角度环参数调试
直立角度环控制输出函数为:
AngleControlOut=VehicleAngle*VehicleAngle_P+VehicleAngle_dot* VehicleAngle_D;//角度*P+角速度*D
角度环控制参数有两个,分别是比例系数VehicleAngle_P和微分系数VehicleAngle_D。VehicleAngle_P决定着自平衡车回复力大小,比例系数大于重力加速度才能使回复力的方向与平衡车的倾斜方向相反。这两个数值在调试的时候一定要从最小的数值逐步向大的数值进行调节,不能从大的数值向小的数值进行调节,否则会对小车的稳定性有错误的判断。而且从小数值向大数值调节的过程中会对自平衡车稳定性的逐步改善有所体会。调试器先将小车的电池充满电,否则调试的结果会大打折扣。当两个参数全为0时,小车没有任何动作,因为即使姿态检测模块测量有一定的数值,但PWM波的占空比为0,逐步调大P,可以按照0-1-2-4-8-16-32-64的顺序来调试。当P为16时系统开始有明显的反馈;当P为32时反馈力度还不够,小车经过摆动后最后还不能直立,但当P为64时,小车抖动比较明显,说明P的设定值有点大,需要向下调,经过反复的调试,当比例系数P为54时,自平衡小车基本上可以保持站立,但还有低频振荡现象。此时可以小幅度的调整P,尽量减小振荡的次数,最后确定当P为53时,效果相对来说比较可以接受,比例系数调节结束。如果加入合适的微分系数即给自平衡车的振荡加入一定的阻尼力,便可以有效地抑制小车的振荡,当微分系数过大时,会引起小车本身的高频振荡,其原因在于小车具有一定的共振频率,如果微分参数过大自平衡车会在电机的驱动下产生共振。
比例系数P和微分系数D两个参数的调节时应该先调节P后调节D,当调到可以使小车基本上保持直立但还是存在低频振荡时说明P基本上可以克服重力的影响,下一步就需要调节D。D调节也是按照从小到大的原则进行(实际按照0.01-0.1-0.5的数值进行调试),直至小车可以保持短暂的直立,进一步增D,自平衡车开始出现共振,这时就不能再增加D的数值了,然后再适当减小D反复调整。最后D的数值确定为0.3。但此时自平衡车还不能保持稳定,稍加干扰自平衡车就会朝干扰方向加速前进,说明仅有角度反馈闭环控制很难保持自平衡车的长期稳定,还需要加入速度环控制,即对速度环的参数进行调试和整定。
2.3速度环参数调试
速度环控制输出函数为:
SpeedControlOutNew=(VehicleSpeedOldVEHICLE_SPEED_SET)*VehicleSpeed_P+(VehiclePosition - VEHICLE_POSITION_SET ) * VehicleSpeed_I;// 速度*P +位移*I
确定好角度比例系数与微分系数之后,还需要进行速度控制参数的调试。速度闭环有比例系数VehicleSpeed_P和积分系数VehicleSpeed_I两个可调参数。
在对两个参数进行调试时,因为调试的目的是要使小车稳定在某一特定位置,而不是运动起来,所以先将给定速度值设为零,然后再对在P和I进行调试。调试过程遵循的原则是先对I进行调试后对P进行调试。调试过程为:首先逐步增大I,增大梯度很小,从0.1-0.15-0.2-0.4,调试过程中要仔细观察小车的运动状态,当I从0.1-0.15-0.2增加的过程中,自平衡车始终是向某一方运动,没有向设定的0位回转的现象,当把I设定为0.4时,自平衡车可以向0位回转,但调整的距离(位移量)有点大,说明这个参数有点大了,设定为0.3,自平衡车可以在0位附近来回抖动,但是回到0位的速度有点小。现在需要解决的问题是如何减小自平衡车在0位的摆动幅度,这个问题可以通过调整P来解决。逐渐增大比例系数,实际调节是从1-2-4-5,当把P设定为1、2、4时,小车回到0位的速度变快,但摆动幅度或者说振荡距离还是有点大,当把P设定为5时,小车的抖动幅度很小,可以较快的停留在平衡位置。但在外来干扰作用下,自平衡车的调节时间还是有点长,需要进一步提高抗干扰性能。再减小I的数值为0.15,小车可以很快的趋于0位并保持平衡静止。
2.4转向环参数调试
相对于角度负反馈环与速度负反馈环的参数调试,转向负反馈环的调试比较简单,只需要调试比例系数一个参数,它决定了转向的速度,可以直接将比例系数定为1。
3小车自平衡实验
将以上内容进行综合整定,然后对小车进行整体调试,最终可以达到理想效果,即不发送控制指令时可以静止平衡,发送相應的控制指令时可以完成对应的动作。
小车上电后先是向某一方向做加速运动,超过平衡位置后又向相反的方向运动,经过几次往复运动后至平衡状态。自平衡小车实现自平衡的时间为4s,平衡时的倾角大约为10度左右。在常规干扰情况下,自平衡车的调节时间约为7s。小车以较快的速度调整姿态,然后逐渐趋向平衡状态。
4.结论
(1)调试时要按照姿态检测模块、角度环、速度环、转向环的先后顺序进行,可以缩短系统的调试时间;
(2)按照文中的方法对系统各个模块的PID参数进行调试后,可以使小车达到一个比较好的平衡状态。
参考文献
[1] 丁汕汕.基于模糊滑模控制的两轮自平衡小车系统设计[D]. 安徽工业大学,2019.
[2] 金奇,邓志杰.PID控制原理及参数整定方法[J].重庆工学院学报(自然科学版),2008, 1(5):91-94.