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

参数名
dt
Ak
Bk
Hk
Q
R
x0
P0
参数值
[ ] [ ] [ ] 0.02s
1 -0.02 01
0.02 0
(1 0) 80 0 0 0.01
(100)
() [ ] 0
1 0
0
0 1
实验结果如图 5 所 示,在 未 经 卡 尔 曼 滤 波 器 前,加 速 度计观测的俯仰角 度 存 在 较 大 的 噪 声干扰,角度输出为± 10°之 间 ;经 卡 尔 曼 滤 波 后 ,角 度 输 出 为 ±5°之 间 ,有 效 滤 除 噪 声干扰信号。
w
+
gyrok-1 +
0
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算法和卡尔曼滤波的平衡车控制系统

电子技术与软件工程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控制的平衡车控制系统设计

平衡 车控 制系 统 。利 用 卡尔 曼滤波 技术 提 高 了平 衡车 相对 于灵 敏轴
进行 线性化 ,可 以得 到系统 的简 化模 型:
} | ( 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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.。