• 收藏
  • 加入书签
添加成功
收藏成功
分享

基于PID与卡尔曼滤波的自平衡小车控制系统的设计与实现

蓝杏耘 谭程霈 梁凤珠 周科发 罗国星通讯作者
  
安防科技
2024年21期
玉林师范学院计算机科学与工程学院 广西 玉林 537000

打开文本图片集

摘要:本文聚焦于基于PID控制原理和卡尔曼滤波算法的自平衡小车控制系统的设计与实现。该控制系统主要配备了陀螺仪传感器,以实时监测车辆的倾斜角度和速度。同时,通过STM32微控制器处理传感器数据,并运用比例-积分-微分(PID)控制算法和卡尔曼滤波算法对编码电机进行精确控制,确保小车在行驶过程中能够保持平衡。经过一系列精确地测试和参数微调,开发出了一款反应快速、安全可靠和稳定性极佳的自平衡小车控制系统,为智能交通领域的实际应用研究提供了有力的例证。

关键词:PID控制算法;陀螺仪传感器;编码电机;STM32微控制器

引言

在当今这个科技飞速发展的时代,自动控制系统已经成为现代工业和日常生活中的重要组成部分。从基础的家用电器到复杂的工业机器人,再到先进的自动驾驶汽车,自动控制系统无处不在,它们在提升效率、精确度和安全性方面扮演着至关重要的角色。自动控制技术的发展历程悠久,从最初的机械控制系统到现代的电子和计算机控制系统,经历了翻天覆地的变化。在众多控制算法中,比例-积分-微分(PID)控制算法[1]因其简洁性、稳定性和高效性而备受青睐。而卡尔曼滤波算法则因其在处理噪声数据和不确定性方面的优势而广泛应用于各种控制系统中。因此,本研究设计并实现了一款基于PID控制算法和卡尔曼滤波算法的自平衡小车控制系统,使得平衡小车具有精确的传感器数据采集系统和优化的控制策略,能够在各种复杂路况下保持稳定的平衡,从而为用户提供安全可靠的骑行体验。

一、硬件设计

(一)硬件系统总体设计

两轮自平衡小车硬件系统由STM32控制模块、电机驱动模块、电源模块、姿态处理模块以及蓝牙模块组成,如图1所示。通电启动后,姿态处理模块通过IIC总线将采集到的姿态数据传输至STM32控制模块。随后,STM32控制模块进行计算,并向电机驱动模块发出控制指令,以调整电机状态,确保平衡车的稳定运行。此外,用户还可以通过手机APP向蓝牙模块发送指令,从而控制平衡车的运动。

(二)电源电路模块设计

电源电路模块由12V航模电池供电的电源电池和能够输出5V及3.3V稳定电压的稳压电路组成。该稳压电路为STM32单片机、MPU6050等模块提供所需的电源。而12V航模电池则作为主要的能量来源,为电压驱动模块供给充足的电力。整个电源电路模块设计合理,各组件协同工作,确保了系统的稳定运行和高效能表现。

(三)主控芯片模块设计

主控芯片模块采用STM32系列中的C8T6微控制器,这是一款基于ARM Cortex-M3核心的32位处理器,其最高工作频率可达72MHz,如图2所示。该微控制器内置了20KB的SRAM和64KB的FLASH存储器,并且集成了I2C、SPI、USART等多种通信接口。此外,它还配备了多个定时器,能够生成多个PWM信号[2]。

(四)电机驱动模块设计

电机驱动模块采用的是TB6612FNG,如图3所示。该模块的VM引脚应连接至+12V电源,而AIN1和AIN2引脚则用于控制一个370型号的电机,同理,BIN1和BIN2引脚用于控制另一个370型号的电机。一旦电源接通,便可以通过STM32微控制器的相应引脚输出PWM信号来调节电机的转速。

(五)蓝牙通信模块设计

本项目采用HC-05型号的蓝牙模块来实现无线通信功能,如图4所示。通过该模块的TX(发送)和RX(接收)信号线,可以实现蓝牙与STM32微控制器之间的数据传输,进而实现对平衡小车的远程操控功能。

(六)传感器模块设计

陀螺仪集成了MPU6050传感器芯片,该芯片内嵌了3轴微机电陀螺仪和3轴微机电加速度计。加速度计能够精确捕捉平衡车在三维空间中的线性加速度变化。例如,当平衡小车发生前倾或后倾时,加速度计会检测到沿相应轴向的加速度变化,并将这些物理变化转换为电信号。STM32微控制器接收来自MPU6050的电信号数据,通过模数转换和算法处理后,能够解析出平衡小车的姿态信息。利用这些姿态信息,STM32单片机能够迅速作出反应,通过电机驱动模块控制电机的运转,进而调整平衡小车的位置,确保其保持稳定状态。平衡小车通过MPU6050传感器分别采集X、Y、Z轴上的电压值,这些值反映了小车的实时状态[3]。采集到的电压值为模拟信号,需要通过MPU6050内置的16位模数转换器(AD转换器)进行数字化处理,最终通过I2C总线传输至STM32单片机进行数据读取。

霍尔编码器是一种传感器,它利用磁电转换原理,将输出轴上的机械位移转换为脉冲或数字信号。这种编码器由霍尔码盘和霍尔元件构成。霍尔码盘是一个直径固定的圆板,其上均匀分布着不同的磁极。它与电动机的轴心相连,当电动机转动时,霍尔元件能够检测并输出一系列脉冲信号。为了确定旋转方向,通常会输出两组具有特定相位差的方波信号。由于编码器具备AB两相输出,它不仅可以测量速度,还能识别旋转方向。只需为编码器提供5伏特的电源,它便能在电机转动时通过AB相输出相应的方波信号。

二、PID控制算法

在自动控制系统领域,结合比例、积分和微分三种控制策略,依据目标值与实际反馈值之间的偏差进行调节的技术,被称为PID控制算法。比例控制依据当前偏差的大小,产生一个与之成比例的输出。比例系数决定了控制的力度和响应速度。若比例系数过大,则可能导致系统过度调整或产生振荡。积分控制则针对过去的偏差进行积分,以消除长期存在的小偏差。积分系数决定了积分作用的强度,恰当的设置可以有效降低系统的稳态误差。微分控制预测偏差的未来变化趋势,并提前进行调节。微分系数用于控制微分作用的范围,合理的设置可以提升系统的稳定性和动态响应性能。

在自平衡小车控制系统中,PID控制算法主要用于调节小车的倾斜角度和速度,以保持小车的平衡状态。倾斜角度传感器将实际姿态角反馈给PID控制器,控制器根据设定的目标姿态角和当前实际姿态角计算偏差,并通过PID算法生成相应的控制信号以调节小车的姿态。而控制信号通常与小车电机的驱动电压或电流相关联,通过改变电机的输出功率来调整小车的平衡状态。PID控制算法的各个参数(比例系数、积分系数、微分系数)需要根据小车的具体属性和运行环境进行细致的调整和优化,以获得最佳的控制效果和系统的稳定性。PID控制算法的参数整定是控制系统设计中的关键环节。通常可以通过实验法(如试凑法、响应曲线法等)或理论计算(如最佳整定法、稳定裕量法等)来确定最适合系统的比例系数、积分系数和微分系数值。在自平衡小车的设计中,采用适当的整定方法可以帮助实现快速响应、低超调和高稳定性的控制要求。

因此,通过恰当的参数选择与调整,PID控制器能够实现对自平衡小车姿态的精准控制,从而提升系统的稳定性和用户的骑行体验。

三、卡尔曼滤波算法

在平衡小车的控制系统中,准确读取和处理陀螺仪数据至关重要,因为这些数据直接关系到平衡车的倾角计算。然而,在实际应用中,陀螺仪在读取数据的过程中常常会遇到零点漂移的问题。零点漂移是指陀螺仪在没有受到任何外力作用的情况下,其输出值仍然会发生变化,这种变化会严重影响到平衡小车倾角计算的准确性。为了克服这一问题,确保平衡小车能够稳定运行,需要采取一种有效的数据处理方法。

在这种情况下,卡尔曼滤波算法被引入到陀螺仪数据处理中[4]。卡尔曼滤波是一种高效的递归滤波器,它能够在存在噪声的情况下,对系统的状态进行最优估计。通过卡尔曼滤波,可以有效地减少零点漂移对陀螺仪数据的影响,从而提高倾角计算的准确性。具体而言,卡尔曼滤波通过对测量数据进行加权平均,结合系统的动态模型,逐步修正和优化状态估计值,最终得到更加准确和可靠的倾角数据。这种方法不仅能够提高平衡小车的控制精度,还能增强系统的稳定性和可靠性。因此,在平衡小车的控制系统中,引入卡尔曼滤波对陀螺仪数据进行处理显得尤为重要。

结论

本研究成功设计并实现了基于PID控制算法与卡尔曼滤波算法的自平衡小车控制系统。在硬件层面,通过整合陀螺仪传感器、编码电机、STM32微控制器等关键模块,构建了一个协同工作的系统,实现了车辆的平衡控制和远程操作功能。在控制算法方面,本研究采用了PID控制原理和卡尔曼滤波算法来提升自平衡小车的控制精度。经过一系列的测试和参数调整,该自平衡小车控制系统展现出了快速响应和卓越的稳定性。

参考文献

[1]Araki M. PID control[J]. Control Systems, Robotics and Automation: System Analysis and Control: Classical Approaches II, 2009: 58-79.

[2]赵保睿,李昆鹏,王昊,等.基于STM32的自平衡自行车设计[J].电子测试,2022,36(20):32-35+41.

[3]何晓凤.一种双轮自平衡小车的设计[J].电子器件,2023,46(02):391-396.

[4]张彦文.基于PID算法和卡尔曼滤波的平衡车控制系统设计[J].造纸装备及材料,2022,51(01):41-43.

基金项目:2024年玉林师范学院大学生创新创业训练计划项目“基于PID算法的平衡小车”(项目编号:S202410606110)。

作者简介:蓝杏耘(2004.04-),女(壮族),广西安瑶族自治人,本科,研究方向:数据科学与大数据技术;

通讯作者:罗国星(1994.8-),男(汉族),广西北流人,硕士研究生,研究方向:进化算法。

*本文暂不支持打印功能

monitor