基于卡尔曼滤波和PID控制的两轮自平衡车

合集下载

卡尔曼滤波在两轮自平衡代步车姿态检测中的应用_张团善

卡尔曼滤波在两轮自平衡代步车姿态检测中的应用_张团善

参数名
dt
Ak
Bk
Hk


x0
P0
参数值
[ ] [ ] [ ] 0.02s
1 -0.02 01
0.02 0
(1 0) 80 0 0 0.01
(100)
() [ ] 0
1 0

0 1
实验结果如图 5 所 示,在 未 经 卡 尔 曼 滤 波 器 前,加 速 度计观测的俯仰角 度 存 在 较 大 的 噪 声干扰,角度输出为± 10°之 间 ;经 卡 尔 曼 滤 波 后 ,角 度 输 出 为 ±5°之 间 ,有 效 滤 除 噪 声干扰信号。


gyrok-1 +

0k
(4)
其中,wk 是过程 噪 声,并 假 定 其 符 合 均 值 为 零 、协 方 差 矩
阵为 R的正态分布。
测量方程为:
[ ] θk = (1 0)gyarnog_lbeias k +vk
(5)
其中,θk 是 k时刻加速度 计 的 俯 仰 角 观 测 值 ;vk 是 观 测 噪
由式(4)、(5)得 到 的 车 体 姿 态 的 状 态 方 程 及 观 测 方
程,在应用卡尔曼滤 波 实 现 姿 态 信 息 融 合 的 过 程 中 ,滤 波
器的状态由以下两个变量描述 :k时刻的状态 估 计 x^k|k;度 量状 态 估 计 值 精 确 程 度 的 误 差 相 关 矩 阵 Pk|k。 其 滤 波 算 法框图如图4所示。
倾 角 测 量 典 型 误 差 小 于 1°,具 有 小 巧 轻 薄 、超 低 功 耗 、可 变
量程、高分辨 率 等 特 点。ADXL345 可 在 倾 斜 敏 感 应 用 中

两轮自平衡车

两轮自平衡车

两轮自平衡送餐车【摘要】:本项目为“两轮自平衡车送餐机器人”系统的研究与实现,从加速度计和陀螺仪传感器得出的角度。

运用卡尔曼滤波优化,补偿陀螺仪的漂移误差和加速度计的动态误差,得到更优的倾角近似值。

根据PID控制调节参数,实现两轮直立行走。

通过电磁传感器对电磁线的检测和GPS模块精确定位,实现了平衡车的自动送餐功能。

【关键字】:加速度计陀螺仪卡尔曼滤波PID控制调节电磁传感器GPS模块【Abstract】:This is a project of "research and Realization of a two wheeled self balancing robot car room" system, from the accelerometer and gyro sensor of angle. Using the Calman filter optimization, the dynamic error of gyroscope drift error and acceleration compensation plan, to get better approximations angle. According to the PID control parameters, achieve two upright. Through the detection and accurate positioning of GPS module electromagnetic sensors on the magnet wire, the balance of the car automatic room function.【Keyword】:saccelerometer gyroscope Calman filtering PID control electromagnetic sensor GPS module第一章引言 (2)第二章基本原理 (3)2.1两轮自平衡送餐车整体框架 (3)2.2送餐车直立控制 (3)2.3速度控制 (4)2.4方向控制 (5)第三章硬件电路设计与实现 (5)3.1主控芯片 (5)3.2电机驱动方案 (5)3.3电磁信号处理电路 (6)3.4红外遥控模块 (6)第四章系统软件控制流程图 (7)第五章卡尔曼滤波 (8)4.1卡尔曼滤波简介 (8)4.2卡尔曼滤波实现的效果 (8)4.3卡尔曼滤波原型 (9)4.4卡尔曼滤波化简 (10)4.5卡尔曼滤波参数调试 (12)5总结 (13)第一章引言两轮自平衡送餐车具有运动灵活、智能控制、操作简单等优点。

基于PID算法和卡尔曼滤波的平衡车控制系统

基于PID算法和卡尔曼滤波的平衡车控制系统

电子技术与软件工程Electronic Technology & Software Engineering电子技术Electronic Technology基于P ID算法和卡尔曼滤波的平衡车控制系统杨俊伟(广东东软学院广东省佛山市528225 )摘要:本文以S T M32F407V G TX单片机作为主控制芯片,提出了基于PID算法和卡尔曼滤波的平衡车控制系统方案,从数学糢型、PII)算法、卡尔曼滤波、硬件电路等方面分析并设计了一套两轮自平衡车控制系统,经实验验证,能快速调整平衡车姿态,具有较好的转 向精度和抗干扰能力,实现了设计目标。

关键词:S T M32单片机;两轮自平衡车;PID算法;卡尔曼滤波1引言自平衡乍控制系统是移动机器人领域的热点问题,能够将人工智能技术和丨1动控制理论有机结合的典型应用。

随着微电子技术的迅猛发展,_动控制与人工智能的融合会得到进一步提升,平衡车也是未來载具的重要方向之一 m。

本文以STM32为主控制芯片,在数学模喂分析基础之上,采用P ID算法和卡尔曼滤波实现了两轮自平衡午.控制系统的设计与实现,由姿态传感器模块收集的倾角、角速度等数据,经过卡尔曼滤波数据融合分析,得到精确的平衡车姿态信息,通过P ID算法实现平衡车的直立控制、速度控制、转向控制、手机蓝牙遥控等,做到了平衡车的速度与稳定性的统一。

2设计原理如阁1所示,平衡车的运动状态与倒立的单摆相似,因此,利 用可简化的笮摆模型进行数学建模,不考虑空气阻力和摩擦力。

设 车体的质量为m,正常行驶时的加速度为a,平衡车与竖直方向之 间的夹角为0,当平衡车离开竖直方向平衡位置的时候,使重心恢 复竖直方向所需拉力为:F=m acos0-mgsin0 (1)当0很小时与sin0近似,车轮加速度a与倾角成正比例关系,假设为k,因此可将公式近似为:F=mk0-mg0 (2)上述公式中,加入平衡车角速度0)的阻尼力影响,可将公式修 改如下:F=mk0+mk,(i)-mg0 (3)因此,嬰将平衡车控制在竖直方向的加速度a的控制公式为:a=mk0+mk|〇)(4)其中,e是倾角,C O是角速度,k和k,是比例系数,实际操作时,需要满&k>g,k,>0,实时测量平衡车的倾角,通过卡尔曼滤波和 PID算法给f,电机控制信号来控制平衡车的车体维持稳定。

基于激光雷达和卡尔曼滤波的双轮自平衡车设计

基于激光雷达和卡尔曼滤波的双轮自平衡车设计

基于激光雷达和卡尔曼滤波的双轮自平衡车设计作者:胡佳辉来源:《科技风》2019年第07期摘要:为在嵌入式平台上实现同时定位与建图(SLAM)以降低硬件成本,并利用双轮自平衡小车的灵活性以实现特定功能,采用了包括激光雷达、firefly-rk3399开发板、MPU6050模块、编码器等硬件设计。

同时,利用卡尔曼滤波算法以及PID双环控制以提高自平衡小车姿态计算的精度和运行稳定性。

关键词:激光雷达;双轮自平衡小车;SLAM;卡尔曼滤波;PID双环控制1 绪论随着智能时代的到来和自动控制技术的发展,双轮自平衡小车逐渐展露出其独特的优势,尤其是在空间较为狭窄、弯道较多等场所,此外其较低的硬件成本也使其被广泛地应用到了安防巡逻等方面。

本文提出了一种基于激光雷达和卡尔曼滤波的双轮自平衡车设计,其特点在于:将SLAM 运用到了自平衡车上,使其能够按照自定义的行走轨迹完成相应的任务。

此外在平衡方面,本文加入了卡尔曼滤波和PID双环控制,提高了自平衡车的稳定性。

2 硬件设计该双轮自平衡小车的硬件设计由四部分组成,如图1所示,分别为主控系统、24V电源、车身以及传感器。

主控系统为一块firefly-rk3399开发板,搭载Linux系统,在此基础上运行ROS机器人操作系统。

传感器包括B0602激光雷达、MPU6050模块以及电机编码器。

3 软件设计3.1卡尔曼滤波卡尔曼滤波是一种通过系统输入输出观测数据,并利用线性系统状态方程,对系统下一步的走向做出有根据的预测的算法。

由于观测数据中包括系统中的噪声和干扰的影响,所以预测过程也可看作是滤波过程,即使系统受到各种干扰的影响,卡尔曼滤波也能对系统状态进行较为准确的预测。

因为MPU6050回传的角度值受震动的影响较大,且回传的角速度信息也存在漂移误差,误差的累计势必降低自平衡车的平衡性能。

本文引入卡尔曼滤波的目的在于:将MPU6050模块回传的角度和角速度信息代入卡尔曼滤波中相融合从而得到更加精准的自平衡车车体倾角使其更加接近于真实值。

双轮智能自平衡车的设计

双轮智能自平衡车的设计

双轮智能自平衡车的设计作者:王兆宇赵明明张宏川黄怡宁来源:《科学与财富》2017年第12期摘要:本文设计了一款人可以搭乘的自平衡车,本文利用飞思卡尔公司的一款基于ARM 内核的芯片MK60FN1M0VLQ15,平衡车的传感器采用的是加速度计MMA7361与陀螺仪ENC03MB组合而成的传感器模块,其能直接输出稳定的合成角度信号,并且利用光码盘做速度检测。

同时增加了一款黑白摄像头,用于环境的拍摄。

本文完成了硬件的搭建,完成了软件设计。

对传感器信号做了平滑处理,同时使用卡尔曼滤波处理后使其所得信号更加接近真实,保证了平衡车的站立。

关键词:自平衡车;加速度计;陀螺仪自平衡车属于倒立摆的一种形式,它是结合动力学和自动控制理论而成的项目,对它的研究,也推动了相关学科的发展。

在本质不稳定系统中,如最优控制、比例积分微分控制、模糊控制、神经网络控制都将得到实践验证。

总的来说,由于自平衡车车的平衡性是一个理论与实践相结合的产物,具有一定的理论意义和应用价值,引起了极大的研究兴趣,并让全世界的科学家聚焦于此。

1 两轮自平衡车的电路硬件设计1.1两轮自平衡车硬件电路总体设计硬件电路主要由电源稳压模块、控制芯片、陀螺仪和加速度传感器模块、摄像头模块,液晶屏模块,电机驱动模块,串口通信模块,测速模块等组成,如图1.1所示。

采用飞思卡尔的32位微控制器MK60FN1M0VLQ15作主控芯片,工作标准频率150MHZ。

微控制器通过ENC03和MMA7361采集的数据进行相应的算法运算,从而得到对电机驱动的较为精确的控制。

电机驱动采用用MOSFET管搭成的内阻很小的H桥电路。

1.2主要硬件选择陀螺仪与加速度计部分:加速度传感器选用飞思卡尔公司的MMA7361芯片,加速度传感器可以测量由地球引力作用或者物体运动所产生的加速度。

MMA7361选用了半导体表面微机械加工和集成电路技术,传感器体积小,重量轻等优点尤为突出。

测速模块:测速模块采用带有相位差的光点码盘,其可以利用FTM模块测出正反转。

基于卡尔曼滤波算法自平衡智能车系统设计

基于卡尔曼滤波算法自平衡智能车系统设计

基于卡尔曼滤波算法自平衡智能车系统设计作者:孙长伟唐斌王志强来源:《科学导报·学术》2019年第37期摘要:基于卡尔曼滤波算法自平衡智能车系统设计,以STM32F103为控制核心,采用卡尔曼滤波算法和PID算法。

该设计提高了平衡车倾角的计算精度和平衡车的稳定性。

通过系统调试和分析,获得了适合平衡车运行的各项系统参数,运行结果表明该平衡车运动平稳,适应性强。

关键词:STM32F103;卡尔曼滤波;PID 控制算法;智能平衡车;控制系统引言两轮自平衡小车是一个综合复杂的系统,集动态决策和规划、环境感知、行为控制和执行等多种功能于一体[1]。

STM32单片机作为控制单元,陀螺仪、加速度计、光电编码器和电流检测等传感器采集相关的数据信息[2],基于卡尔曼滤波算法和PID算法,实现平衡车的自动直立与快速运动[3]。

1 平衡智能车原理平衡智能车的动力输出来自车身底部的两路直流电机与车轮之间运动,根据电机之间不同转速引起车轮之间不同转速控制智能车的直立不同、速度不同、方向不同。

智能车车体的控制任务可分解成三个基本任务:(1)控制车模平衡:电机的正向反向运动控制保持车模的直立平衡状态;(2)控制车模速度:车模的倾角的调节控制车模速度,实质通过控制电机的转速来实现车轮速度的控制。

(3)控制车模方向:通过控制两个电机之间的转速差控制车模转向 [4]。

智能车控制采用的核心算法是PID算法。

平衡小车速度控制系统由负反馈PD 直立控制器和正反馈PI 速度控制器组成[5]。

在直立控制中,只要一产生角度偏差信号,在负反馈的作用下角度偏差最终被消除,小车保持直立状态;在速度控制中,一旦检测到角度偏差信号,即明白小车要产生速度的变化,在正反馈的速度控制器作用下,速度会朝着期望方向上逐渐增加,以达到速度控制的目的。

2 系统总体方案设计系统由五部分组成:中央处理部分,电源管理部分,运动控制部分,数据感知部分,人机交互部分。

基于卡尔曼滤波和双闭环PID控制的平衡车控制系统设计

t i o n a c c ur a c y o f d i p a n gl e b e t we e n he t b a l a n c e d v e h i c l e nd a s e n s i t i v e a xi s . An d t h e d o ub l e c l os e d l oo p s P I D c o n ro t l i S a p pl i e d t o i mp r o ve he t op e r a t i o n
平衡 车控 制系 统 。利 用 卡尔 曼滤波 技术 提 高 了平 衡车 相对 于灵 敏轴
进行 线性化 ,可 以得 到系统 的简 化模 型:
} | ( J + m l 2 ) F - m 2 1 2 g O
{ L 强 J ± ( 生 翌 ! 二
s t a b i l i t y o f b a l a n c e d v e h i c l e . T h e s y s t e m p ra a ma t e r s re a o b t a i n e d t h r o u g h s y s t e m d e b u g g i n g a n d a n a l y s i s . T h e s y s t e m o p e r a t i o n r e s u l t s s h o w ha t t he t d e s i ne g d b a l a n c e d v e h i c l e c a n ma i n t a i n s t e a d y mo t i o n wi t h g o o d a d a p t a b i l i y t nd a s t a b i l i t y . Ke y wo r d s :b a l a n c e d v e h i c l e ;c o n t r o l s y s t e m; Ka l ma n i f r e ;d o u b l e c l o s e d l o o p s P I D c o n r t o l

基于卡尔曼滤波和PID算法的自平衡小车调试过程分析

《装备维修技术》2020年第18期—127—基于卡尔曼滤波和PID 算法的自平衡小车调试过程分析周 斌1,2 孔丙亚3 冯高明1(1.河南理工大学电气工程与自动化学院,河南 焦作 454010;2.河南中车重型装备有限公司,河南 三门峡 472300;3.平煤股份十三矿,河南 许昌襄城 461700)引言两轮自平衡小车是一个比较复杂的控制系统,是研究各种控制理论的实验和研究平台,理论意义和现实意义都很重大。

很多自平衡小车都采用的是PID 算法,在进行PID 参数调试时,调试过程比较复杂,需要反复调试。

本文结合基于卡尔曼滤波和PID 算法的自平衡小车调试过程给出了调试的一般步骤和方法。

1 系统硬件上电调试硬件上电测试是进行自平衡小车系统进行整体调试前的准备工作,目的是为了确定系统的各个硬件模块都可以正常的工作。

将测试程序从计算机下载到自平衡小车系统后,给自平衡车车上电,观察自平衡车的运动状态,自平衡小车的运动状态如果符合测试程序的预期输出,说明系统的硬件电路没有问题,可以进入下一步进行系统各个参数的具体调试。

2 系统软件PID 参数调试2.1姿态检测模块调试 姿态模块的调试对象主要是姿态传感器陀螺仪和加速度计,调速的目的是要保证测得的角度和角速度信号的准确性。

调试过程如下:使自平衡车与地面保持一定的倾角(调试时采用了450、900、1350三种倾角),观察陀螺仪与加速度计实际的输出数值,每一种状态多测几组数据,然后根据测得的数值求出测量平均值,将测得的平均值与角度的实际值进行对比,求出两者之间的误差,然后对该误差进行补偿。

2.2角度环参数调试 直立角度环控制输出函数为: AngleControlOut=VehicleAngle*VehicleAngle_P+VehicleAngle_d ot* VehicleAngle_D;//角度*P+角速度*D 角度环控制参数有两个,分别是比例系数VehicleAngle_P 和微分系数VehicleAngle_D。

毕业设计(论文)-两轮自平衡小车的设计

本科毕业设计(论文)题目两轮自平衡小车的设计学院电气与自动化工程学院年级专业班级学号学生姓名指导教师职称论文提交日期两轮自平衡小车的设计摘要近年来,两轮自平衡车的研究与应用获得了迅猛发展。

本文提出了一种两轮自平衡小车的设计方案,采用陀螺仪ENC-03以及MEMS加速度传感器MMA7260构成小车姿态检测装置,使用卡尔曼滤波完成陀螺仪数据与加速度计数据的数据融合。

系统选用飞思卡尔16位单片机MC9S12XS128为控制核心,完成了传感器信号的处理,滤波算法的实现及车身控制,人机交互等。

整个系统制作完成后,各个模块能够正常并协调工作,小车可以在无人干预条件下实现自主平衡。

同时在引入适量干扰情况下小车能够自主调整并迅速恢复稳定状态。

小车还可以实现前进,后退,左右转等基本动作。

关键词:两轮自平衡陀螺仪姿态检测卡尔曼滤波数据融合IDesign of Two-Wheel Self-Balance VehicleAbstractIn recent years, the research and application of two-wheel self-balanced vehicle have obtained rapid development. This paper presents a design scheme of two-wheel self-balanced vehicle. Gyroscope ENC-03 and MEMS accelerometer MMA7260 constitute vehicle posture detection device. System adopts Kalman filter to complete the gyroscope data and accelerometer data fusion.,and adopts freescale16-bit microcontroller-MC9S12XS128 as controller core. The center controller realizes the sensor signal processing the sensor signal processing, filtering algorithm and body control, human-machine interaction and so on.Upon completion of the entire system, each module can be normal and to coordinate work. The vehicle can keep balancing in unmanned condition. At the same time, the vehicle can be adjusted independently then quickly restore stability when there is a moderate amount of interference. In addition, the vehicle also can achieve forward, backward, left and right turn and other basic movements.Key Words: Two-Wheel Self-Balance; Gyroscope; Gesture detection; Kalman filter; Data fusionII目录1.绪论 (1)1.1研究背景与意义 (1)1.2两轮自平衡车的关键技术 (2)1.2.1系统设计 (2)1.2.2数学建模 (2)1.2.3姿态检测系统 (2)1.2.4控制算法 (3)1.3本文主要研究目标与内容 (3)1.4论文章节安排 (3)2.系统原理分析 (5)2.1控制系统要求分析 (5)2.2平衡控制原理分析 (5)2.3自平衡小车数学模型 (6)2.3.1两轮自平衡小车受力分析 (6)2.3.2自平衡小车运动微分方程 (9)2.4 PID控制器设计 (10)2.4.1 PID控制器原理 (10)2.4.2 PID控制器设计 (11)2.5姿态检测系统 (12)2.5.1陀螺仪 (12)2.5.2加速度计 (13)2.5.3基于卡尔曼滤波的数据融合 (14)2.6本章小结 (16)3.系统硬件电路设计 (17)3.1 MC9SXS128单片机介绍 (17)3.2单片机最小系统设计 (19)3.3 电源管理模块设计 (21)3.4倾角传感器信号调理电路 (22)III3.4.1加速度计电路设计 (22)3.4.2陀螺仪放大电路设计 (22)3.5电机驱动电路设计 (23)3.5.1驱动芯片介绍 (24)3.5.2 驱动电路设计 (24)3.6速度检测模块设计 (25)3.6.1编码器介绍 (25)3.6.2 编码器电路设计 (26)3.7辅助调试电路 (27)3.8本章小结 (27)4.系统软件设计 (28)4.1软件系统总体结构 (28)4.2单片机初始化软件设计 (28)4.2.1锁相环初始化 (28)4.2.2模数转换模块(ATD)初始化 (29)4.2.3串行通信模块(SCI)初始化设置 (30)4.2.4测速模块初始化 (31)4.2.5 PWM模块初始化 (32)4.3姿态检测系统软件设计 (32)4.3.1陀螺仪与加速度计输出值转换 (32)4.3.2卡尔曼滤波器的软件实现 (34)4.4平衡PID控制软件实现 (36)4.5两轮自平衡车的运动控制 (37)4.6本章小结 (39)5. 系统调试 (40)5.1系统调试工具 (40)5.2系统硬件电路调试 (40)5.3姿态检测系统调试 (41)5.4控制系统PID参数整定 (43)5.5两轮自平衡小车动态调试 (44)IV5.6本章小结 (45)6. 总结与展望 (46)6.1 总结 (46)6.2 展望 (46)参考文献 (47)附录 (48)附录一系统电路原理图 (48)附录二系统核心源代码 (49)致谢 (52)V常熟理工学院毕业设计(论文)1.绪论1.1研究背景与意义近年来,随着电子技术的发展与进步,移动机器人的研究不断深入,成为目前科学研究最活跃的领域之一,移动机器人的应用范围越来越广泛,面临的环境和任务也越来越复杂,这就要求移动机器人必须能够适应一些复杂的环境和任务。

一种采用双pid串级控制的双轮自平衡车的研制

摘 要一种采用双PID串级控制的双轮自平衡车的研制双轮自平衡车因其动力学系统同时具有多变量,非线性,不稳定,强耦合等特性,在研究各种控制方法等方面是较为领先的领域,所以双轮自平衡车的发展引起了人们广泛的关注。

双轮自平衡车可以用倒立摆模型进行分析,因其系统极其不稳定,务必要用强效巧妙的控制方法才能维持其稳定。

系统整体上主要由姿态传感子系统、CPU处理子系统、驱动子系统三部分构建而成,其中获取精确的姿态信息以及将获得数据进行融合和处理的算法决定了自平衡车的优劣。

其原理是自平衡车通过姿态传感器(MPU6050)高频率实时检测运行情况,将所采集的俯仰角和角度及加速度变化率传输给CPU,经由CPU融合处理并输出调整姿态的指令,从而驱动电动机使两个轮的转速发生相应的改变,实现车体平衡以及加速和减速的目的。

本文研制了一种采用双PID串级控制的双轮自平衡车,系统以STM32最小系统为核心板,采用运动处理传感器MPU6050实时检测角速度以及角度,并通过互补滤波的方式进行数据融合,用于减小传感信号温度漂移的影响,同时使自平衡车即使受到很大的外界干扰(如推拉、震动、颠簸等)也能够快速进行调整。

系统通过串级PID(Proportion Integration Differentiation)算法进行车体的控制,通过PD(Proportion Differentiation)控制使得车身能够直立运行,通过安装在直流电机上的测速码盘实时反馈电机转速和方向,并通过PI(Proportion Integration)控制来控制车身的速度。

该双轮自平衡车运用TB6612FNG电机驱动系统,调节PWM输出的占空比来改变电机的转速。

系统通过LM2940以及ASM1117子系统作为电源驱动,准确的转换电压并对STM32和电机供电。

最后对系统进行控制参数的调整和优化,最终实现让双轮自平衡车直立平衡运行的目标。

关键词:双轮平衡车,PID控制,互补滤波,姿态检测ABSTRACTDeveloping of a dual-wheel self-balancing vehicle using double PID cascade controlThe dual-wheeled self-balancing vehicle is a leading field in the research of various control methods because of its dynamic system of multi-variable, nonlinear, unstable and strong coupling, so the development of self-balancing two-wheeled vehicles has attracted widespread attention.The dual-wheel self-balancing vehicle can be analyzed by using inverted pendulum model. The system is extremely unstable, so it is important to use a effective method to maintain its stability. The system is mainly composed of three parts: attitude sensing subsystem, CPU processing subsystem and driving subsystem. The accurate attitude information and the algorithm which gets the data to be fused and processed determine the performance of self-balancing vehicle. The self-balancing vehicle detects operating conditions through the real-time high-frequency sensor (MPU6050), the collected pitch angle and acceleration rate of change is transmitted to the CPU, CPU fusion processing and output adjustment attitude commands, which drive the motor to make two wheels' speed change to achieve the purpose of acceleration, deceleration and balancing the body.In this paper, a dual-wheel self-balancing vehicle using double PID cascade control is developed. Using STM32 as the cord board and motion detection sensor(MPU6050)detects angular velocity and angle in real time. And performing data fusion by complement filter to reduce the influence of the temperature drift of the sensing signal. At the same time, even if the self-balancing vehicle suffers from great external interference (Push and pull, vibration, bump, etc.) can also be quickly adjusted. The system controls the vehicle body through the Proportion Integration Differentiation (PID) algorithm. By the control of PD (Proportion Differentiation), the vehicle body can be erected. The speed and direction of the motor are fed back in real time by the speed encoder installed on the DC motor. And using the control of Proportion Integration(PI) to control the body speed. The TB6612FNG driving system of motor is used in the self-balancing dual-wheel vehicle, and the motor speed is changed by adjusting the PWM output duty cycle. The system is powered by the LM2940 and the ASM1117 subsystem, which can convert voltage accurately, power theSTM32 and the motor. Finally, two-wheeled self-balancing vehicle upright balance operation is achieved by adjusting and optimizing the control parameters.Keywords:a auto-balancing vehicle with two wheels, PID control, Complementary filter, attitude detection目 录摘 要 (I)ABSTRACT (II)第一章 绪论 (1)1.1研究背景及意义 (1)1.2国内外研究现状 (1)1.2.1国外现状 (1)1.2.2国内现状 (5)1.3本文主要内容及章节内容 (6)第二章 平衡车系统原理分析 (7)2.1控制系统任务分析 (7)2.2平衡车数学模型 (8)2.2.1 平衡车的受力分析 (8)2.2.2平衡车的运动微分方程 (11)2.3 串级PID在平衡控制和速度控制中的应用 (12)2.3.1 PID算法简介 (12)2.3.2 PID算法在平衡控制中的应用原理 (14)2.3.3 PID算法在速度控制中的应用原理 (14)2.3.4 串级PID的原理及在系统中的应用 (15)2.4基于互补滤波的数据融合 (16)2.5本章小结 (16)第三章 系统硬件电路设计 (17)3.1 单片机最小系统STM32F103C8T6 (18)3.2系统电源模块 (19)3.3 运动处理传感器模块 (20)3.4电机驱动电路 (21)3.5编码器电路 (23)3.6底板综合设计 (24)3.7系统遥控电路设计 (26)3.7.1 单片机STC89C52 (26)3.7.2 无线收发器模块NRF24L01 (27)3.7.3 液晶显示模块12864 (28)3.8本章总结 (29)第四章 系统软件程序设计 (30)4.1主程序框架与初始化 (30)4.2 数据采集 (32)4.2.1.输入信号采集函数 (32)4.2.2.捕获电机脉冲函数 (32)4.3互补滤波数据融合算法 (33)4.4 串级PID控制 (33)4.4.1直立PD控制 (33)4.4.2速度PI控制 (34)4.5电机PWM输出 (36)4.6程序优化 (37)4.7本章小结 (37)第五章 系统调试 (38)5.1系统开发平台 (38)5.2姿态检测系统调试 (39)5.3控制系统PID参数的整定 (41)5.3.1直立PD控制参数调试 (41)5.3.2速度PI控制参数调试 (41)5.4本章小结 (42)第六章 总结与展望 (43)6.1总结 (43)6.2展望 (43)参考文献 (44)作者简介及攻读硕士期间发表的论文 (46)致 谢 (47)第一章 绪论1.1研究背景及意义近年来,双轮自平衡车的发展势头迅猛主要有以下两个原因,其一是它的实用性很强,可以应用到绝大多数领域,其二是支撑搭建双轮自平衡车的理论体系逐渐完善,技术手段日益先进,如数据获取更简单有效,数据处理更科学精确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于卡尔曼滤波和PID控制的两轮自平衡车
【摘要】针对两轮自平衡车的稳定和运动过程中的控制问题,我们在信号处理的过程中引入卡尔曼滤波对信号进行处理并且采用传统的pid控制,将控制过程分为三个部分,即站立、直线运动和转向。

由于车体运动分为这三个部分,并且这三个部分必须几乎同时控制,所以采用分时控制每一部分的方法,该方法被成功应用于“飞思卡尔”智能车大赛,并且取得良好效果。

【关键词】倒立摆系统;自平衡车;卡尔曼滤波;pid控制
引言
倒立摆系统是控制系统的一个重要的分支和典型的应用。

实际上它可以理解成在计算机的控制下,通过对系统各种状态参数的实时分析,使系统在水平方向或垂直方向上的位移和角度(角速度)的偏移量控制在允许的范围以内,从而使系统保持平衡。

自平衡车就是以倒立摆系统为工作原理的成品,两轮自平衡智能小车直立行走是要求仿照两轮自平衡电动车的行进模式,让车模以两个后轮驱动进行直立行走。

近年来,两轮自平衡电动车以其行走灵活、便利、节能等特点得到了很大的发展。

国内外有很多这方面的研究,也有相应的产品。

相对于传统的四轮行走的车模竞赛模式,车模直立行走在硬件设计、控制软件开发以及现场调试等方面提出了更高的要求。

实物图如下:
一、系统构成
整个模型车分为两个部分组成,即硬件电路和软件两部分。

硬件电路主要由加速度计、陀螺仪、微控制器、编码器、线性ccd、电机驱动电路组成。

由微处理器对陀螺仪、滤波电路和加速度计构成的传感器组进行高速a/d采样后,通过卡尔曼滤波器对传感器数据进行补偿和信息融合,得到准确的姿态角度信号,此角度信号再通过pid控制器运算,输出给电子调速器转换成pwm 信号,进而对电机进行控制。

系统结构框图如下图所示:
二、卡尔曼滤波
加速度计用于测量物体的线性加速度,加速度计的输出值与倾角呈非线性关系,随着倾角的增加而表现为正弦函数变化。

因此对加速度计的输出进行反正弦函数处理,才能得到其倾角值。

测量数据噪声与带宽的平方根成正比,即噪声会随带宽的增加而增加。

式中:为传感器带宽(单位为hz)。

因此在设计卡尔曼滤波器时,首先要确定被测加速度的频率范围,然后再设计滤波器的参数,尽量使滤波器的带宽略高于被测频率,这样不仅有助于滤除高频干扰,而且也有利于降低系统噪声干扰。

但是如果要得到精确的倾角值,带宽就需要设置得比较小,而这时加速度计动态响应慢,不适合跟踪动态角度运动,如果期望快速的响应,又会引入较大的噪声。

再加上其测量范围的限制,使得单独应用加速度计检测小车倾角并不合适,需要与其他传感器共同使用。

陀螺仪的作用是用来测量角速度信号,通过对角速度积分,便能得到角度值。

陀螺仪本身极易受噪声干扰,微机械陀螺不能承受较
大的震动,同时由于温度变化、不稳定力矩等因素,陀螺仪会产生漂移误差,并会随着时间的推移而累加变大,通过积分会使得误差变得很大。

因此,也不能单独使用陀螺仪作为本系统的倾角传感器。

(一)卡尔曼滤波过程
建立系统的状态方程与测量方程。

其中,为车体倾斜的真是角度,为陀螺仪的常值温漂,为包含固定偏差的陀螺仪输出角速度,为陀螺仪测量噪声,为加速度计经处理后得到的角度值,为加速度计的测量噪声。

令系统的采样周期为,得到离散系统的状态方程:
在进行卡尔曼递归运算过程中,需要知道系统过程噪声协方差阵以及测量误差的协方差矩阵,对卡尔曼滤波器进行校正。

与矩阵的形式如下:
式中,和分别是加速度计和陀螺仪测量的协方差,其数值代表卡尔曼滤波器对其传感器数据的信任程度,值越小,表明信任程度越高.在该系统中陀螺仪的值更为接近准确值,因此取的值小于的值。

卡尔曼递归运算的相关算式:
为时刻的最优估计值,为对应的协方差。

为根据时刻的最优估计得到的时刻的预测值。

为卡尔曼增益。

为时刻测量的角度值。

这一次得到的最优估计值,作为下一次预测值得参考,这样周而复始反复循环计算这些算式,可以使收敛到最小,这样就是最优值。

(二)滤波结果
在进行卡尔曼滤波过程中,需要根据实际情况调试与,可以使滤波后的波形平滑,毛刺少,并且与实际波形的相位差小。

在小车控制中
卡尔曼滤波前后的波形如下(绿色为滤波前,红色为滤波后):三、pid控制
在卡尔曼滤波后和信号处理好后,小车的重点就在控制上面。

小车的运动可以分为三个部分,即为站立、直线运动和转向。

由于车体运动分为这三个部分,并且这三个部分必须几乎同时控制,所以采用分时控制每一部分的方法,类似cpu时间分片。

程序的控制和信号处理都是在中端里面执行,通过设置全局变量来确定执行什么操作。

程序设置1毫秒中断,程序进入中断后,全局变量加1,判断全局变量的值,进入不同的执行部分,执行相应的操作。

中断服务程序的框架:
其中,除了上述基本框架外,在每次进入中断后,首先执行卡尔曼滤波程序,并且执行单片机ad采样。

根据我们实际获得的经验,卡尔曼滤波是比较耗时间的,并且ad采样同样也是很消耗时间,如果在中断执行的总时间超过1毫秒,这将会影响卡尔曼滤波的效果,因此在这个方面,必须考虑ad所开的通道数目,当通道数目过多,将会导致一次中断服务程序执行的时间超过1毫秒。

这时可以选择增加中断定时时间,进而也就需要改变卡尔曼的。

在控制中,我们采用传统pid控制。

我们对直立控制采用pd控
制,这主要原因是在直立控制中的主要要求就是快速性,因而舍弃积分单元。

对于速度控制采用pid控制,积分单元消除误差。

对于方向控制采用pd控制。

在直立控制过程中,p越大,车体抗干扰能力越强,但过大会导致车体振荡,这时可以通过加大微分参数消除振荡。

当p达到一定程度时,车体会抖动并不是振荡,这时调节d并不能消除抖动。

车体抖动的主要原因来源于卡尔曼滤波后的信号精度,当精度比较低时,p过大,会直接放大信号的幅度,进而表现为车体的抖动。

在做车的速度控制过程中,速度控制的周期会影响车体的运行的稳定性。

在我们实际测试中当速度控制周期定为100毫秒时,低速运行车体比较稳定。

但当车速度给定为1.3m/s时,车体在转弯后,恢复平稳比较困难。

设置速度控制周期为200毫秒后,效果改善明显。

在方向控制中,我们使用分段pid控制。

这主要原因是车体在直道运行时,稍微偏离中心线对车体运行没有影响,也就是在知道上方向控制不需要太灵敏,太灵敏不利于车在直道的稳定和进入弯道的稳定。

相反,在弯道就需要方向控制的灵敏,灵敏度越高越好,但前提是保证车体的直立基本稳定。

在实际中,车体陀螺仪传感器的安装水平程度对车体运行是否稳定影响很大,安装越水平越好,越利于车的提速。

安装不水平会出现车载转弯的过程中加速和减速的现象。

参考文献:
[1] 百度百科.自平衡电动车[db/ol]. http:
///view/2362793.htm.2013-8-26/2013-8-26. [2] 冯志勇,曾翰,张力,赵艺欣,黄伟.基于陀螺仪及加速度计信号融合的姿态角度测量.[j]西南师范大学学报(自然科学版),2011(8):137-141.
[3] 何友,王国宏,彭应宁编著.多传感器信息融合及应用[m].2版.北京:电子工业出版社,2007:12-23.。

相关文档
最新文档