基于卡尔曼滤波的两轮平衡姿态检测系统设计
2021-01-07陈晓飞
贾 勇,陈晓飞
(新疆工程学院 信息工程学院,乌鲁木齐 830023)
0 引言
两轮平衡系统是一种自然稳定性差、非线性、欠驱动的系统,以两轮平衡车为例,若想维持车体的稳定性和平衡度,务必确保车身的重心和车轮的重心一直保持在同一个轴线上面[1]。在车体的平衡控制阶段,姿态传感器需要把检测所得的车体倾角信号发送到控制器当中,通过相关计算得到控制量对左右电机进行驱动的控制力矩,进而对两轮平衡车的右轮的运动速度与方向进行调节,能够让两轮平衡车车轮沿着倾斜的方向运动,进而达到让两轮平衡车恢复到直立状态的目的[2]。然而,传统的互补滤波融合算法下的检测控制借助的是传统的惯性传感器,因为惯性传感器自身具备的固有特性,导致检测过程中,传感器会被温度和噪声等因素进行干扰,使得传感器发生某种程度的偏移现象,这就会使得车体姿态检测过程很难对真实的姿态角度进行检测,所以在两轮平衡姿态的检测当中,需要借助多传感器信号的信息融合,对最佳姿态角度进行检测[3]。在得到传感器检测出的相关数据之后,传统方式是利用互补滤波算法对传感器检测的数据进行融合,然而这种算法的置信度的设置比较固定,在动态的条件下,融合效果差,融合精度低,进而导致检测效果差。
基于此提出以多传感器为基础的多传感器信息融合算法的两轮平衡姿态检测系统,即为基于卡尔曼滤波的两轮平衡姿态检测系统。两轮平衡系统被广泛应用在军事、航天、科研工作等诸多领域,具有非常广阔的发展前景,具有很大的应用价值与实际价值,是当今社会着重关注的热点之一所以基于卡尔曼滤波的两轮平衡姿态检测系统的设计具有十分重要的意义。
1 硬件系统结构设计
硬件部分的总体构成框架包括加速度计、上位机显示器、姿态采集传感器、PC通信、电动驱动、换向信息部分、主控芯片CPU、电源模块,微控制器模块,左右轮机等[4]。姿态检测系统的核心是数字信号处理器,负责对相关数据信息进行获取,分析处理与传递。主要构成部件有陀螺仪,姿态检测系统的主体硬件结构设计如图1所示。
图1 硬件结构设计
针对上述内容,对硬件各个部分展开详细分析。
1.1 姿态传感器的设计
两轮平衡系统的本质是一个不稳定的多变量系统,姿态检测系统需要借助SCA610-CA1H1G型号姿态传感器,姿态传感器是以MEMS技术为基础的,高性能的三维运动姿态测量系统[5]。姿态传感器包含着诸多的组件,比如三轴陀螺仪、三轮加速计等一系列的运动传感器。姿态传感器的工作原理是借助内嵌的低功耗的ARM处理器进行相关的处理,进而能够获取到进行过温度补偿的三维姿态和方位的相关信息数据[6]。之后再借助以四元数为基础的三维算法设计与特定的数据信息等技术四元数、欧拉角等用于对三维姿态方位数据信息进行表示与输出。姿态传感器的应用范围很广泛,比如航模、无人机、机械云平台、虚拟现实、以及两轮平衡系统等诸多方面[7]。
基于卡尔曼滤波的两轮平衡姿态检测系统设计当中,利用加速度计与陀螺仪借助整合型的6轴运动处理组件模块形成新型的姿态传感器电路,对比于传统方式的传感器的方式,剔除了加速计和陀螺仪间的轴差间形成的误差数据,此外,在一定程度上也节省了很大的空间姿态传感器的减速带感测范围是±250°/sec(dps)、±500°/sec(dps)、±1 000°/sec(dps)。
姿态传感器的主要构成结构如图2所示。
图2 姿态传感器结构图
由图2可知,使用能够对快速、慢速等动作进行精确、较高的感应。姿态传感器具备诸多特性,主要特性如下:
1)具有多数据输出接口,比如串口式接口,SPI接口,12C接口等。
2)功耗很低,通过实际测量得出约为17 mA。
3)姿态传感器是复合型滤波和数据的融合,利用了捷联式惯导技术。
4)三维姿态方位数据的输出是全角度的,并且没有盲区的。
5)开机启动快,进入稳定状态系统消耗时间短,大约是0.1 s。
6)数据输出率值很高,最大上限为500 Hz。
7)功耗很低,通过实际测量得出约为17 mA。
8)具备可选择的多种数据输出模式,比如欧拉角,旋转矩阵,四元数等[8]。
1.2 硬件控制电路设计
电源的稳定性在整个系统中占据非常重要的地位,基于卡尔曼滤波的两轮平衡姿态检测系统利用的是独立电源的设计,电源的组成部分的主体是多个相互独立的电源共同执行供电任务,通过这种设计能够很大程度上减弱因为每个模块瞬时通过过大电流造成的整个系统的稳定性被破坏的问题。
电路中电源的设计指标如下所示:
1)对于直流减速电机供电的电源最适宜选取36 V电源。
2)对于有关外电路的供电最佳选择5 V的电源。
3)系统的总电源由36 V铅酸电池充当,把3个12 V 12 AH的铅酸电池利用串联在一起,保证能够提供36 V的电能能源,经过DC/DC转换之后,向各个用电模块供电。
1.3 主控芯片CPU设计
主控芯片Pentium II/III/4系列CPU被称作系统的“心脏”,因此它在整个系统中的地位非常高。CPU控制芯片能够将系统的需要与相关可利用的资源进行重新组合、整合、分配、规划利用[9]。CPU是一种能够编程化的特殊性质的集成电路,CPU是可编程化的一种集成电路,属于处理器的种类之一,它可以把所有组成元件执行小型化的处理、压缩等存储在电路之中,它是一种集成电路,能够在一端或者是多端对编码指令进行接收,运行该指令下达的内容,并将它的状态信息进行描述和对外输出,一系列的指令信息可以集中存储在系统内部,别名半导体中央处理器,即CPU,属于微型计算机的重要组成部件之一。微处理器的构件通常安装在一个单片或者是同一个构件内部,然而却不能保证一定分布在同一芯片上,可以分布在不同芯片上。
2 两轮姿态检测软件设计
2.1 基于卡尔曼滤波去噪
由于硬件采集到的数据是包含噪声的数据,因此,需将采集数据作为样本数据,采用卡尔曼滤波法去除噪声[10],去噪流程如图3所示。
图3 基于卡尔曼滤波去噪流程
由图3可知,在获取测量角速度信息后,对告饶信号初步消噪,并使用噪声估计量统计噪声值大小,利用卡尔曼滤波,判断整个估计过程是否在迭代中进行,如果是,则直接输出去噪后的数据,否则,重复检测,直到满足条件为止,为两轮平衡姿态检测提供数据支持[11]。
2.2 两轮平衡姿态检测流程设计
对于姿态检测系统,只利用陀螺仪或者是加速仪都不能够获得到具有价值性并且精确度较高的信息,来确保系统的整体平衡度[12],两轮平衡姿态检测流程设计如下所示:
步骤一:根据上述卡尔曼滤波检测流程剔除噪声数据后,设定两轮工作参数;
步骤二:利用状态更新方程依据目前的系统运行情况以及噪声的方差对下一个状态的将运行状况进行相关的估计与测量。
步骤三:将检测的结果当作滤波器的输入信息数据,借助状态更新获得先验状态的预估计状态,进行一些列的状态估计操作。
步骤四:依据下一时刻系统预计误差,估计前一时刻系统预计误差,获取卡尔曼增益。
步骤五:构建误差修正模型,由三轴陀螺仪和重力加速度计组成的系统,需将地理坐标系上重力加速度通过四元数转旋转矩阵转移到当前设备坐标系上处理,设四元数方程为:
E=w(a0+a1+a2+a3)
(1)
Qbc=
(2)
地理坐标系重力向量为g,经过旋转后,得到的重力向量到设备坐标系为:
gb=Qbc·g=
(3)
对测量数值进行归一化处理,可得到无量纲标量。
步骤六:为了提高检测精度,需更新四元数,使用定时采样三阶逼近法,计算公式为:
(4)
公式(4)中,ϑ为陀螺仪在采样周期内角增量,将该计算结果代入四元数方程中可确定两轮平衡姿态旋转方向,由此完成姿态检测。
3 实验研究
为了验证基于卡尔曼滤波的两轮平衡姿态检测系统设计合理性,进行实验验证分析。
3.1 实验背景与参数设置
以互补滤波检测系统作为实验对比方法,以两轮平衡小车为实验对象,对两种算法的数据曲线效果,进而反映姿态检测系统的准确度。车体运动简化模型如图4所示。
图4 车体运动简化模型
实验的设置环境背景是,将两轮平衡车的车体倾角在人为控制的前提下,把角度值由0°,逐渐上升到了25°左右之后,又逐渐下降到0的过程。在这个过程当中,两轮平衡车的车体的运动状态是由静止变成加速状态,之后变成慢慢减速至速度为0的静止状态。实验的基本前提是需要保证在整个实验的过程当中,加速度传感器需要保持相对平稳状态,尽力控制对加速传感器造成的“抖动”状态,并且要将它的加速度控制在一个小范围当中,进行相关实验。加速度计直接测出的数据曲线的效果比较精确,将它作为空白对照组,作为参照和卡尔曼滤波器与互补滤波器下的实验结果进行对照分析,进而得出相关的结论。
3.2 实验结果与分析
3.2.1 0~15 dB噪声环境下
在0~15 dB噪声环境下,分别采用互补滤波设计的检测系统和基于卡尔曼滤波方法设计的检测系统对旋转角度检测进行对比分析,结果如表1所示。
表1 0~15 dB噪声环境下两种系统旋转角度对比分析 (°)
由表1可知,使用互补滤波设计的检测系统在0~15 dB噪声环境下,检测误差最大为11°,最小为2°;而使用基于卡尔曼滤波方法设计的检测系统在0~15 dB噪声环境下,检测误差最大为2°,最小为0°,由此可知,使用基于卡尔曼滤波方法设计的检测系统检测误差较小。
3.2.2 15~30 dB噪声环境下
15~30 dB噪声环境下,同样使用这两种系统对旋转角度检测进行对比分析,结果如表2所示。
表2 15~30 dB噪声环境下两种系统旋转角度对比分析 (°)
由表2可知,使用互补滤波设计的检测系统在15~30 dB噪声环境下,检测误差最大为40°,最小为5°;而使用基于卡尔曼滤波方法设计的检测系统在0~15 dB噪声环境下,检测误差最大为3°,最小为0°,由此可知,使用基于卡尔曼滤波方法设计的检测系统检测误差较小。
结合上述对比情况,再次将两种系统的检测精准度进行对比分析,结果如图5所示。
图5 两种系统检测精准度对比分析
由图5可知,在0~15 dB噪声环境下,使用基于卡尔曼滤波方法设计的检测系统,在旋转角度为10°时,检测精准度为85%。在旋转角度为50°时,检测精准度最高为92%;在15~30 dB噪声环境下,使用基于卡尔曼滤波方法设计的检测系统,在旋转角度为10°时,检测精准度为84.5%,在旋转角度为50°时,检测精准度最高为90%。
而采用互补滤波系统的检测系统在0~15 dB噪声环境下,旋转角度为10°时,检测精准度为18%。在旋转角度为50°时,检测精准度最高为51%;在15~30 dB噪声环境下,使用基于卡尔曼滤波方法设计的检测系统,在旋转角度为10°时,检测精准度为8%,在旋转角度为50°时,检测精准度最高为31%。
综上所述,基于卡尔曼滤波的两轮平衡姿态检测系统检测精准度较高。
4 结束语
基于卡尔曼滤波的两轮平衡姿态检测系统能够精准检测出两轮平衡姿态旋转方向,实验结果表明卡尔曼滤波下的角度拟合曲线与多传感器融合测量的加速度计测出角度曲线的角度差值比传统的互补滤波小,拟合效果更好,说明检测精度较高通过卡尔曼滤波有效地修正了零位误差,减小了震动干扰的影响,同时实现了对动态倾角的平滑滤波。除此之外,这种方法与传统的互补滤波方法相比,能够更加容易借助嵌入式系统达成,提高姿态检测性能的同时也方便了对两轮自平衡车学习控制算法的深入研究。