载人自平衡电动独轮车的控制系统设计
2017-03-31叶秀敏魏巍
叶秀敏,魏巍
(杭州电子科技大学 电子信息学院,杭州 310018)
载人自平衡电动独轮车的控制系统设计
叶秀敏,魏巍
(杭州电子科技大学 电子信息学院,杭州 310018)
针对电动独轮车的载人自平衡功能,建立电动独轮车控制系统,设计控制系统的硬件和软件。硬件部分主要由以STM32单片机为核心的控制系统、MPU6050姿态感知系统、电机驱动系统和直流无刷电机等模块组成。软件部分是在KEIL软件平台下采用C语言编写程序,主要实现对采集到的姿态数据进行卡尔曼滤波处理、PID控制算法以及电机驱动等功能。研究结果表明,电动独轮车具有较好的载人自平衡效果。
电动独轮车;自平衡;卡尔曼滤波;PID控制算法
引 言
由于近年来汽油价格的显著提高和化石燃料造成的全球变暖问题,许多节能环保的轻量级交通工具应运而生。例如,电动自行车和电动汽车已经被广泛用于人们的短途运输中。作为一种新型的智能代步工具,载人自平衡电动独轮车也逐渐出现在人们的生活中,这是一种仅靠直流电机驱动的、结构紧凑的、由软件控制的机电一体化产品[1-2]。载人自平衡电动独轮车可以被看作是一种特殊的轮式移动倒立摆,通过驱动车轮来实现自我平衡。通过骑行者重心前后移动实现独轮车向前和向后运动,而左右方向的平衡则通过身体来控制。
1 系统结构
图1解释了骑行电动独轮车的工作原理,如果骑手向前倾斜,电动独轮车将向前运动以保持骑手的身体不倾倒。同样,如果骑手向后倾斜,电动独轮车将向后运动以保持骑手的稳定。
图1 骑行电动独轮车示意图
电动独轮车的系统框图如图2所示,控制模块采用STM32单片机来执行自平衡控制算法。姿态检测模块采用MPU6050六轴传感器,其整合了陀螺仪和加速度传感器。传感器检测倾角信号和角速度信号,在单片机内部经过一系列控制算法,最终输出控制信号给驱动模块,以驱动电机转动。
图2 电动独轮车系统框图
2 硬件系统设计
2.1 电压变换模块
电压变换模块包含3个子部分,分别是60 V转15 V电压变换电路、15 V转5 V电压变换电路、5 V转3.3 V电压变换电路。60 V转15 V电压变换电路采用串联型稳压电路[3],将60 V锂电池的输入电压转换成15 V的输出电压,从而给15 V电压网络供电。15 V转5 V电压变换电路利用78M05电压转换芯片,将15 V的输入电压转换成5 V的输出电压,从而给5 V电压网络供电。5 V转3.3 V电压变换电路利用ASM1117电压转换芯片,将5 V的输入电压转换成3.3 V的输出电压,从而给5 V电压网络供电。
2.2 姿态检测模块
姿态检测模块采用MPU6050姿态传感器,其集成了3轴 MEMS陀螺仪和3轴MEMS加速度计,可用来检测3个方向的角速度和加速度信息。MPU6050对陀螺仪和加速度计分别用了3个16位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为±250/±500/±1000/±2000°/s,加速度计可测范围为±2/±4/±8/±16g。一个片上1024字节的FIFO有助于降低系统功耗。MPU6050模块与主控设备寄存器之间的通信采用400 kHz的I2C总线接口,片上还内嵌了一个温度传感器和在工作环境下仅有±1%变动的振荡器。MPU6050姿态检测模块如图3所示,通过SDA和SCL与STM32单片机进行I2C总线通信,从而把角度和角速度的原始数据传输给STM32单片机[4]。
图3 姿态检测模块电路图
2.3 控制模块
控制模块采用ST公司的STM32F103C8T6作为主控芯片,它使用来自于ARM公司具有突破性的Cortex-M3内核,该内核集高性能、低功耗、实时应用、竞争性价格于一体。其主要性能参数有:主频最高为72 MHz,128 KB字节闪存程序存储器,20 KB SRAM,外设有定时器、ADC、SPI、12C、USART和USB等。控制模块的主要功能包括采集传感器的原始数据,解算出角度和角速度,进行卡尔曼滤波算法,然后通过平衡控制算法,得到合适的PWM,从而控制独轮车电机转动,以达到自平衡载人功能。
2.4 霍尔位置检测模块
电动独轮车所用的无刷直流电机在定子的非驱动端嵌有三个霍尔传感器,当转子磁极经过霍尔传感器时,霍尔传感器将会产生高低电平。通过3个霍尔传感器输出信号的组合可以得到电机的当前位置,从而得到电机的换相时序。利用图4所示的霍尔位置检测模块,微控制器可以检测到每个输出信号的上升沿和下降沿,从而控制电机精确换相。
图4 霍尔位置检测模块电路图
2.5 驱动模块
驱动模块采用上海居逸电子科技发展有限公司的JY01作为无刷直流电机驱动控制芯片,可适用于有霍尔与无霍尔电机,其具有应用方便、外围电路简单、低成本的特点;SPWM驱动方式具有噪音小、效率高等特点。采用3个MOS管驱动芯片IR2101和6个MOS场效应管HY3610组成一个全桥驱动电路[5],部分全桥驱动电路如图5所示。
图5 驱动模块电路图
3 软件系统设计
3.1 卡尔曼滤波算法
卡尔曼滤波器是一种高效率的递归滤波器(自回归滤波器),能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波器不仅能估计信号的过去和当前状态,甚至能估计将来的状态。
卡尔曼滤波器的操作主要包括两个阶段:预估与更新。在预估阶段,滤波器根据上一时刻状态估算出当前时刻状态;在更新阶段,滤波器利用当前时刻观测值优化在预估阶段获得的测量值,以获得一个更准确的新估计值[6]。
电动独轮车要实现自平衡控制,首先要得到准确的姿态信息,可以采用卡尔曼滤波算法,对MPU6050得到的角度和角速度信息进行滤波处理。
3.2 平衡控制算法
PID控制是最早发展起来也是应用最广泛的一种控制规律。现在的工业领域,由于系统复杂,构建系统模型比较困难,PID控制算法能够在不知道系统数学模型的基础上,使得控制器控制效果达到理想状态。PID控制算法的优点是参数容易调整,具有高可靠性和稳定性,因此在现在的工业测控系统中,应用PID控制算法能够达到稳定控制的目的[7]。
计算机控制系统中,数字PID调节器的差分方程模型为:
对电动独轮车系统进行建模及推导,可得PWM输出与最终角度和角速度的反馈关系如下:
3.3 系统程序设计
系统程序需要在定时器周期10 ms内完成角度和角速度采集、计算、卡尔曼滤波等,并在定时器周期内完成PID控制算法并发送PWM,本设计在1 s中完成100次姿态运算,实验证明此时间周期可行,程序流程图如图6所示。
图6 程序流程图
4 实验及结果分析
4.1 自平衡实验
对独轮车进行自平衡实验,由图7可知,独轮车初始倾角为10°左右,启动独轮车,经过1.2 s,独轮车基本恢复平衡状态。
图7 独轮车自平衡实验波形
4.2 阶跃干扰冲击实验
对独轮车进行阶跃干扰冲击实验。由图8可知,独轮车在1.1 s时进入动态平衡状态,在1.5 s时用手对独轮车施加外力进行阶跃干扰,经过1.0 s,即在2.5 s时独轮车基本恢复平衡状态。
图8 独轮车阶跃干扰冲击实验
结 语
本文完成了电动独轮车系统从整个硬件系统
Control System of Man Riding Self-balancing Electric Unicycle
Ye Xiumin,Wei Wei
(College of Electronic Information,Hangzhou Dianzi University,Hangzhou 310018,China)
Aiming at the riding and self-balancing function of electric unicycle,the electric unicycle control system is established,and the hardware and software of the control system are designed.The hardware parts include the control system using the STM32 MCU,the MPU6050 attitude perception system,the motor drive system and the brushless DC motor.The software is programed on the KEIL software platform,which using C language.The collected attitude data is applied with Kalman filter,the PID control algorithm and motor drive are achieved by the program.The research results show that the electric unicycle has better self-balancing effect.
electric unicycle;self-balancing;Kalman filter;PID control algorithm
TP13
A