常熟理工学院毕业设计(论文)
少,短时误差较小。由于陀螺仪及其放大电路存在温漂,且需要经过积分运算,最终会导致误差累积,致使检测结果出错。因此不能直接利用陀螺仪的积分结果作为可以直接使用的角度[7][8]。 2.5.2加速度计
加速度计是一种利用检测质量块的惯性力来测量载体加速度的敏感装置,分为线加速度计和角加速度计。本系统采用飞思卡尔公司利用MEMS微电子技术开发生产的三轴加速度计MMA7260。MMA7260是一种低g值、小量程线性加速度传感器,在不运动或不受重力作用(0g)条件下输出为1.65V,最大测量范围0-6g,灵敏度最高可到800mV/g,MMA7260实物如图2-10所示。
图2-10 加速度计MMA7260
加速度计可以直接通过反三角函数计算出小车倾斜角度,但是其对震动非常敏感,输出值中含有大量噪声,而且其输出的值是小车运动加速度与重力加速度的混合数据。因此不能直接使用。
通过示波器连接陀螺仪与加速度计可以观察其输出波形,如图2-11。
图2-11 陀螺仪与加速度计输出波形(1为陀螺仪输出,2为加速度计输出)
11
常熟理工学院毕业设计(论文)
2.5.3基于卡尔曼滤波的数据融合
虽然单一惯性传感器就可以单独进行姿态角度检测,但是其准确性主要取决于惯性器件的精度,单从改善硬件结构和生产工艺方面难以有很大幅度的提高,并且系统误差会随时间累积,不适用于长时间姿态检测。由于利用单一传感器(陀螺仪或加速度计)难以获得相对真实的小车姿态角度,出于对系统测量姿态角度准确性的考虑,本系统采用多传感器信号进行数据融合,以获得最佳姿态角度[9][10]。
多传感器数据融合是一个非常重要的研究内容,只有采用最适合的融合方法才能获得最佳的效果。常用数据融合方法有加权平均法,神经网络法等。加权平均法是一种简单的融合方法,故其运算精度很差;神经网络法具有很好的非线性和有效的自学能力,但是其涉及的模型构建,参数优化非常复杂,不适用于本系统。国外有研究者根据加速度计与陀螺仪的互补特点研究出互补滤波算法,其简单明了并且具有较好的实时性与稳定性,能够较好的融合出姿态角度。考虑到本系统使用的惯性器件特性较差,互补滤波在本质原理上不能弥补器件特性缺陷,故本系统采用卡尔曼滤波算法作为数据融合方法。
1960年卡尔曼发表了著名的用递归方法解决离散数据线性滤波问题的论文。随着数字计算技术的进步,卡尔曼滤波器得到了越来越广泛的应用和推广,尤其是在自主或协助导航领域。卡尔曼滤波器与大多数滤波器不同之处,在于其是一种纯粹的时域滤波器,不需要像低通滤波器等频域滤波器那样,需要在频域设计再转换到时域实现。对于解决大部分的问题,是最优,效率最高甚至是最有用的。卡尔曼滤波器的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等[11][12]。
卡尔曼滤波器是一种高效率的递归滤波器(自回归滤波器),能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波器不仅能估计信号的过去和当前状态,甚至能估计将来的状态。
卡尔曼滤波器解决离散时间控制过程的一般方法,首先定义模型线性随机微分方程。假设卡尔曼滤波模型k时刻真实状态是从(k-1)时刻推算出来,如下式
xk?Axk?Buk?wk (式2-15)
式2-15中,xk是k时刻状态;A是k-1时刻状态变换模型;B是作用在控制器向量uk上的输入控制模型;wk是过程噪声,假设其均值为零,协方差矩阵Qk符合多元正态分布:
wk~N(0,Qk) (式2-16)
12
常熟理工学院毕业设计(论文)
k时刻对应真实状态xk的测量zk满足下式:
zk?Hkxk?vk (式2-17)
式2-17中Hk是观测模型,将真实控制映射为观测空间;vk为观测噪声,其均值为零,协方差矩阵Rk符合正态分布:
vk~N(0,Rk) (式2-18)
初始状态以及每一时刻的噪声都认为是互相独立的。
卡尔曼滤波器的操作主要包括两个阶段:预估与更新。在预估阶段,滤波器根据上一时刻状态,估算出当前时刻状态;在更新阶段,滤波器利用当前时刻观测值优化在预估阶段获得的测量值,以获得一个更准确的新估计值[11][12][13]。
卡尔曼滤波器迭代过程如下: 1. 先验状态估计:
?kxk?1?k?1?Buk?1 (式2-19) ?Ax2. 先验估计误差协方差
PkT?APA?Qkk?1k?1 (式2-20)
3. 卡尔曼增益
Kk?PkTHHPkk?1?TH?Rk?1? (式2-21)
4. 后验状态估计
?k?x?kxk?1?k?Kk(zk?Hxk?1
k?1) (式2-22)
5. 后验误差协方差
Pk?(I?KkH)Pk在上面各式中:
(式2-23)
?k?1上的n阶矩阵; A:作用在xB:作用在控制向量uk?1上的n×1输入控制矩阵;
H:m×n观测模型矩阵,将真实状态空间映射为观测空间;
Pkk?1:n×n先验估计误差协方差矩阵;
Pk:n×n后验估计误差协方差矩阵;
13
常熟理工学院毕业设计(论文)
Q:n×n过程噪声协方差矩阵; R:m×m过程噪声协方差矩阵; I:n阶单位矩阵;
Kk:n×m矩阵,称之为卡尔曼增益。
2.6本章小结
本章阐述了小车平衡控制原理与所需条件。对小车进行受力分析,构建了小车的运动模型并提出了小车的运动微分方程。解算出小车运动控制的传递函数并利用自动控制理论进行了分析,设计了两轮自平衡车的PID控制器。介绍了本系统使用的姿态检测传感器,分析了其性能特点。简述了卡尔曼滤波器原理及其设计流程。
14
常熟理工学院毕业设计(论文)
3.系统硬件电路设计
本系统硬件电路的设计目标为:可靠、高效、简洁。可靠性是系统设计的第一要求,因此对电路设计的所有环节都进行了电磁兼容性设计,做好各部分的接地、屏蔽、滤波等工作,将高速数字电路与模拟电路分开,从而大大提高本系统工作的可靠性。系统主要由以下几个模块组成:MC9S12XS128单片机最小系统硬件设计、电源模块硬件设计、倾角传感器信号调理电路设计、电机驱动电路设计、速度检测电路。系统硬件设计图如下:
串口通讯max232加速度计MMA7260角度主控制器角速度MC9S12XS128陀螺仪ENC-03H桥电机驱动直流电机测速模块编码器 图3-1 硬件设计总体框图
3.1 MC9SXS128单片机介绍
本系统采用飞思卡尔公司(原摩托罗拉公司半导体事业部)的MC9S12XS128单片机为控制核心。该单片机是飞思卡尔公司的16位HCS12系列单片机,简称S12系列。MC9S12XS128是HCS12系列的增强型产品。基于S12的CPU内核,可达到25MHz的HCS12的2~5倍性能。S12X系列增加了172条额外指令,可以执行32位计算(共280条指令),总线频率最高可以达到40MHz,改进了中断处理能力。S12X系列的CPU采用复杂指令集CISC架构,集成了中断控制器,有丰富的寻址方式。中断有7个优先级并且内核支持优先级的调度,最多可有117个中断源,S12X可访问最多8M的全部存储空间(包括片内和片外资源)[14][15]。
MC9S12XS128采用的是5V供电,芯片内部含有128K的Flash存储器,8K的RAM,
15