山东省菏泽一中 李泽宇
近年来,随着自动控制技术的不断发展与应用,各种类型和用途的自动控制设备已被广泛应用的人们的生成生活中。双轮平衡车作为一种方便快捷的代步工具,已被广泛应用到个人出行、安保巡逻等多个方面[1-4]。本文设计了基于卡尔曼滤波和双闭环PID控制的平衡车控制系统。利用卡尔曼滤波技术提高了平衡车相对于灵敏轴的倾角的计算精确度,采用双闭环PID控制算法提高了平衡车运行的稳定性,并通过系统调试和分析获得适合平衡车运行的各项系统参数,实际运行结果表明,所设计的平衡车运行平稳,具有较强的适应性和稳定性。
平衡车控制系统的控制目标是通过给平衡车底座施加一个力F(控制量),使平衡车停留在预定的位置,同时不超过一个预先定义好的垂直偏离角度范围。平衡车系统如图所示,平衡车下部分质量为M,平衡车上部分质量为m,平衡车上部分长为2l,平衡车的位置为x,摆的角度为θ,作用在平衡车水平方向上的力为F,O1以转轴为质心。图1为两轮平衡车受力示意图。
图1 两轮平衡车受力示意图
双轮平衡车系统角度伺服控制的核心是在保证平衡车不倒的条件下,使平衡车角度可控,因此设计了如图2所示两轮平衡车控制系统。
图2 两轮平衡车控制系统方框图
对系统内环采用反馈校正进行控制,其结构图如图3所示,反馈校正采用 PD 控制器。外环结构图如图4所示。
图3 内环反馈校正方框图
平衡车双闭环控制系统进行仿真,建立系统的Simulink仿真结构图如图5所示,仿真曲线如图6所示。
图4 外环系统结构图
图5 平衡车双闭环控制系统Simulink仿真结构图
图6 平衡车双闭环控制系统仿真曲线
所设计的双轮平衡车控制系统主要由控制核心模块MPU6050传感器模块、无线遥控模块、电源模块、电机驱动模块、车速检测模块及显示模块等组成,系统总体框图如图7所示。姿态传感器采用MPU6050,主要采集平衡车的角度和角速度信号;采用STM32单片机作为控制芯片,该芯片具有I2C接口和PWM输出,抗干扰能力强;显示模块的主要功能为显示车体的倾角等相关信息。
图7 系统硬件整体框图
控制系统选用STM32F405单片机为控制器,该控制器是以CortexTM-M4为内核的高性能MCU,具备并行运算功能,控制器的运算能力大大提高,适用于交复杂环境下的系统控制。
加速度传感器采用MMA7260加速度传感器,其是一款基于重力分量换算原理的低功耗高灵敏度的加速度传感器,能够同时输出x,y,z 三个方向的加速度值,用于测量平衡车的运动姿态和方向。
角速度传感器-陀螺仪采用ENC-03陀螺仪测量平衡车相对于灵敏轴的倾角。陀螺仪输出的模拟电压信号与角速度成正比;通过将该角速度对时间积分便得到灵敏轴旋转过的角度值,即平衡车的倾角。其具有体积小、重量轻、响应快和功耗低等特征。
数据滤波是一种去除噪声还原真实检测值的数据处理技术,卡尔曼滤波在测量方差己知的前提下可以从存在噪声的数据中估算系统的状态[5-6]。在平衡车姿态检测系统中,加速度计用于测量车体静态时的角度,但对震动较敏感,受动态加速度的影响较大;陀螺仪用于检测车体倾斜角的变化,通过对测量的角速率累加计算倾斜角,存在累积漂移误差。系统采用卡尔曼滤波算法对加速度计和陀螺仪的输出值进行融合,使加速计得到的角度与陀螺仪积分得到的角度更接近真实的角度值,其逻辑关系如图8表示:
图8 加速计与陀螺仪角度的逻辑关系
当双轮平衡车车体产生倾斜时,系统采用PID控制算法,通过整合车体角度、角速度、车体速度和位置等参数值,输出PWM信号驱动电机,产生相应的力矩,从而保持车体的动态平衡[7-8]。
采用双闭环PID控制算法对平衡车进行控制,其原理如下:
(1)位置闭环控制实现静态自平衡。
利用两个姿态传感器可快速获取系统的位姿信息,经过一系列融合将信息送给主控芯片从而实现机器人位置闭环控制。位置闭环主要实现平衡车在平衡点处无外界干扰时的静态自平衡。
(2)速度闭环控制实现动态自平衡。
利用上次获得的PWM信号,通过软件算法的处理,获得车轮的速度和位置信息,通过处理实现机器人速度闭环控制。此环可在没有编码盘等传感器提供硬件支持的前提下,通过软件编码算法获取机器人的速度信息,从而同样可实现闭环控制。速度闭环主要功能在于实现机器人在外界干扰状态时的动态自平衡。
两轮平衡平衡车控制系统控制框图如图9所示。
图9 两轮平衡平衡车控制系统控制框图
为了方便测试方便,将传感器数据通过串口发送到计算机,通过上位机显示出来。卡尔曼滤波器的调试采用波形显示的方式进行,保持平衡车后轮不动,对平衡车姿态倾角进行人为改变,通过上位机软件显示波形。加入滤波器后,调节参数,使得输出波形变得相对平滑一些,如图10和图11所示 。
图10 加速度计输出波形滤波效果对比
图11 陀螺仪输出波形滤波效果对比
通过不断地改变参数,可以得到十分接近实际值的波形,使卡尔曼滤波器具有十分良好的效果。
本文采用工程经验法对PID控制参数进行整定。考虑到直立控制环为外环,因此先对直立控制环进行参数整定,再对速度控制环进行参数整定。
4.2.1 两轮自平衡平衡车直立控制调试
直立控制环采用PD(比例微分控制器),以保证系统对干扰能做出迅速响应。比例参数kp保证平衡车保持直立状态,过小平衡车无法保持直立,过大会导致平衡车来回摆动;微分参数kd能有效抑制系统的来回摆动,过大会造成系统过阻尼,从而导致车体抖动。表1为直立控制实验调试过程参数。
表1 直立控制实验调试过程参数
此确定得到kp=500,kd=1.7是参数最大值,根据工程经验,将最大值乘以0.6,可得kp=300,kd=1。此时,平衡车非常平稳,无抖动。
4.2.2 速度控制
采用PI控制器对系统进行速度控制。表2为速度控制实验调试过程参数。
表1 速度控制实调试过程参数
本文完成了基于卡尔曼滤波和双闭环PID控制的平衡车控制系统设计。在系统硬件设计上,完成了以STM32为控制核心的控制系统硬件结构设计;在软件设计上,利用卡尔曼滤波技术提高了平衡车相对于灵敏轴的倾角的计算精确度,同时采用双闭环PID控制算法,提高了平衡车运行的稳定性;通过系统调试和分析获得适合实际运行的各项系统参数,实际运行结果表明,该平衡车能保持直立行走运动并快速移动,具有较强的适应性和稳定性。
[1]赖义汉,王凯.基于MPU6050的双轮平衡车控制系统设计[J].河南工程学院学报(自然科学版),2014,26(1): 53-57.
[2]纪伟,曾宪阳,左翠翠,等.基于STM32与Android系统远程控制的两轮自平衡车设计[J].微型机与应用,2017(2): 90-92.
[3]秦富康,孟凡曦.基于线性CCD的双轮平衡车控制系统设计[J].机电产品开发与创新,2016,29(4):38-40.
[4]林枫,蔡延光.双轮自平衡车的双闭环式PID控制系统设计与实现[J].工业控制计算机,2017,30(6): 73-76.
[5]崔平远,黄晓瑞.基于联合卡尔曼滤波的多传感器信息融合算法及其应用[J].电机与控制学报,2001,5(3):204-207.
[6]刘二林,姜香菊.基于卡尔曼滤波的两轮自平衡车姿态检测[J].自动化与仪器仪表,2015(2): 52-54.
[7]金奇,邓志杰.PID控制原理及参数整定方法[J].重庆理工大学学报,2008,22(5):91-94.
[8]王耀辉,强天伟.PID控制原理简析[J].洁净与空调技术,2013(3):79-82.