黄强,唐杰,林立,王源明,朱群峰
(1.多电源地区电网运行与控制湖南省重点实验室,湖南 邵阳,422000; 2.杭州拓生智能科技有限公司,江苏 杭州,310000)
随着科学技术、世界经济的迅速发展,机器人技术成为一项涵括控制理论、物理学、计算机科学、动力学等多学科领域的综合性技术[1]。移动机器人是整个机器人领域中不可缺少的一部分,而通过车轮移动的机器人更是当今世界研究的重点领域。两轮平衡小车是一种典型的车轮移动机器人,其具有成本低、控制简单、高速稳定运行等优点,因此,具有很高的理论价值和实用价值[2]。
国内外学者在两轮自平衡机器人[3-4]、智能后退控制[5]、多传感器数据融合[6]、离散神经动态规划算法[7]、分数阶PID控制[8]、控制量按任意函数变化的PID算法[9]等方面进行了深入研究。本文在参考这些文献的基础上,采用双闭环PID控制算法对两轮平衡小车控制问题进行了研究。角度环采用PD控制算法,速度环采用PI控制算法,并利用超声波检测回来的小车与物体的距离,通过区间判断来叠加或减小1个固定值控制PWM脉冲的占空比,增加系统的响应速度。最后搭建了两轮平衡小车样机,通过系统调试与运行,验证了双闭环PID控制算法的有效性。小车能够稳定地实现平衡控制,具有一定的实用价值。
为实现两轮小车自平衡控制,设计了系统硬件框图,框图如图1所示。
图1 硬件系统框图Fig.1 Block diagram of hardware system
硬件系统的主控芯片选用STM32F10系列的单片机,其内部采用RISC指令集。本次设计采用的是F103系,具有体积小,容量够用等优点。该单片机最小系统为STM32F103C8T6的小体积开发板,该型号的开发板片有40个外置引脚,其中包括I2C复用引脚,USART串口通信的引脚和32个可以实现50 MHz频率翻转电平的引脚。开发子上还集成了8 MHz的系统晶振和1个USB供电电源口。
陀螺仪采用MPU6050,具有6轴运动传感器,在内部检测三轴陀螺仪和加速度,检测到的值带有一定的噪声,所以,在MPU模块内部对数据进行了卡尔曼滤波处理[10]。通过内部DMP检测模块,解算姿态角,所得的数据传递给主控制器,在STM32内部得到1个四元数表示的平衡角[11]。
陀螺仪的设计得到了极大简化,因为不用刻意添加滤波模块的程序,只需实现I2C与从机的通信就可以实现旋转角的检测。同时,考虑到PCB板上的电信号多而复杂,容易对I2C通信造成干扰,为了得到稳定的数据,将MPU安装在靠近控制器的位置。
超声波采用HC-SR04的测距模块[12],该模块根据超声波遇到物体反弹的原理,配合定时器使用,得到障碍物最终与小车的距离[13-14]。
电机采用自带编码器的减速电机,其码盘采用1∶30的减速比,电机转1圈将得到780个脉冲,根据每次电机转动得到的脉冲数就可以得到小车移动的距离。
驱动模块采用TB6612FNG,对12 V电机进行驱动,利用驱动外设4个使能端口的高、低电压差异来实现2个电机的正反转。
为了得到更好的控制效果,本设计采用双闭环PID控制方法,角度环作为外环,角度调节器为主调节器,速度环作为内环,速度控制器为副调节器。通过双闭环中外环的粗调以及内环的细调,从而提高整个系统的控制精度。2个环的控制作用形成互补,最终得到比较合理的补偿效果。控制系统框图如图2所示。
图2 控制系统框图Fig.2 Block diagram of control system
在控制器中,角度环采用PD控制算法,其中P控制起主要作用,消除角度偏差;D控制作用于系统过于激烈的情况,降低系统超调。角度环的PD控制算法不仅直接对小车的倾角进行校正,而且是控制PWM脉冲占空比的主要因素,其作用程度直接决定控制效果。速度环采用PI控制算法,设计速度环是为了补偿角度环控制的不足。在该控制算法中I调节作为主要控制,通过对每次的速度检测,实现一个偏差值的积分,从而提高整个系统控制精度。速度环中的P调节是在速度反馈值与速度设定值产生偏差的基础上,利用此偏差产生一个微弱的控制作用,使之作用于电机,使得电机在小车速度失衡的初期有1个校正力,防止小车在控制时严重失速。速度环利用PI环控制的作用,解决了小车在基本平衡后处理失速、控制作用不足和失速等问题。由于速度环的存在,系统在很大程度上补偿了角度环的控制作用,同时提高了系统的稳定性和抗干扰能力。
本系统在设计了双闭环PID控制算法的基础上,还设计了超声波测距,利用超声波测量反馈回来的小车与物体的距离,来控制是否叠加或减小PWM脉冲的占空比,从而控制电机转速,增加系统的响应能力。若反馈回来的距离小于5 cm,则可以实现跟随功能,若反馈回来的距离为5~10 cm,则还可以实现避障功能。
利用之前介绍的硬件系统,设计出PCB板,并在实验室搭建好样机,样机如图3所示。
图3 两轮平衡小车样机Fig.3 The prototype for the two-wheeled balancing vehicle
为得到较好的PID整定参数,实现理想的控制效果,参数整定采用经验试凑法,遵循先外后内、先比例后积分再微分的原则对PID参数逐一进行整定。通过上位机采用串口下载的方式对参数进行实时更新。表1给出了参数整定的过程,通过多次试验最后得到理想的PID参数,并且得到了理想的控制效果。
具体的整定过程如下:先整定角度环P参数值,得到一定的控制效果后,再整定角度环D参数值,得到较平滑的控制效果,然后整定速度环P,最后整定速度环I控制提高整个系统精度。在参数整定过程中,利用超声波检测回来的小车与物体的距离,进一步完善PID参数,通过区间判断来叠加或减小1个固定值控制PWM脉冲的占空比[15],增加系统的响应速度。通过实验室最后得到角度环的KP=91.3,TD=1.2,速度环的KP=6.0,TI=0.2。
表1 双闭环PID参数的整定表
Table 1 Tuning Table of double closed loop PID parameters
角度环P角度环D速度环P速度环I角度偏差度/(°)控制效果50.0———>30矫正力不足98.0———>30或<-30矫正力过大91.3———-10~10振荡,不稳定91.32.0——-10~10振荡减弱,不稳定91.31.2——-5~5控制平滑,易失速91.31.26.0—-3~3稳定差,抗干扰弱91.31.26.00.2-3~3稳定,抗干扰
本文介绍了两轮平衡小车系统的总体设计方案,并从主控制器、检测环节、电机驱动等方面介绍了系统的主要硬件组成。针对多变量、强耦合、高度不稳定,非线性的两轮平衡小车控制问题进行了研究,采用双闭环PID控制算法对其进行控制,角度环采用PD控制算法,其中P控制起主要作用,消除角度偏差、D控制作用于系统过于激烈的情况,降低系统超调。速度环采用PI控制算法,速度环补偿了角度环控制的不足,在PI控制算法中I调节作为主要控制,通过对偏差值积分,提高了整个系统控制精度。系统利用超声波检测回来的小车与物体的距离,通过区间判断来叠加或减小1个固定值控制PWM脉冲的占空比,增加系统的响应速度。最后搭建了两轮平衡小车样机,并利用试凑法整定了相关的PID参数,通过系统的软硬件设计、调试及运行情况,验证了双闭环PID控制算法的有效性,小车能够稳定地实现平衡控制。