基于PID控制的智能平衡车设计与实现
- 难度系数:4分
- 工作量:4分
- 创新点:3分
随着机器人研究的进一步深入,在工业生产、安防系统、智能家居、物流网等领域
的应用更加广泛, 在实际应用中, 可能遇到复杂的任务环境。
相比多轮的轮式机器人,两轮自平衡机器人体积小, 运动灵活, 能够在比较狭窄、 需要大转角的场合中运动。 这种机器人两轮共轴,可以通过运动保持自身平衡,能实现前进、 后退、 转向、 原地静止等基本运动功能, 由于其结构特殊, 能适应不同的地形环境, 研究两轮自平衡机器人,具有重要的意义。
2 设计内容使用 ARM Cortex-M4 内核的 Freescale K60 单片机为主控制器, 对加速度计和陀螺
仪的数据进行融合, 得到车身倾角最优估计, 设计 MOS 电机驱动电路, 编写 PID 控制算法控制车轮, 达到自主直立的目的。 利用编码器构成速度反馈回路, 使用 PID 控制算法进行速度和转向的控制, 最终使其保持平衡、 实现期望的运动。 本文将就倾角融合算法、机器人控制算法等问题展开研究, 具体内容如下:
- 1) 硬件电路设计: 设计制作主控电路板、 电机驱动控制板。
- 2) 传感器数据融合: 将陀螺仪所测数据和加速度计所测数据进行融合, 得到稳定、可靠的倾角值。
- 3) 控制程序设计: 通过对状态反馈控制、 PID 算法等方法和理论的研究, 设计控制程序, 使小车能够完成直立、 前进、 后退、 转向等运动功能。
- 4)单片机程序设计: 设计单片机程序, 使其具备人机交互、 控制等功能。
从控制的角度来看, 电机是系统唯一的控制对象。 车模运动控制任务可以分解成以下三个基本控制任务:
- (1) 直立控制任务: 车模的倾角作为控制的输入量, 使用PD算法, 控制车模稳定在平衡位置。
- (2) 速度控制任务: 直立车模的速度控制与普通的车模速度控制不同, 在直立系统中, 速度控制是通过改变车模倾角来完成的。 具体实施思路是, 对电机转速加入干扰,使车身偏离平衡位置, 以此刺激直立控制任务, 从而达到控制速度的目的, 速度控制使用PI算法。
- (3)方向控制任务: 通过控制两个电机的差速来达到转向的目的, 方向控制使用PD算法, 使用X轴的角速度作为微分项的因子, 可以极大改善转向的动态性能, 避免振荡。
程序设计中, 三个控制任务独立进行计算。 但是每一个任务的控制对象都是电机,因此它们直接也存在着干扰与耦合。 在设计每一个控制任务时, 为了便于分析, 都假设其他两个任务是稳定的。 例如, 在进行速度控制程序设计时, 车模是能够稳定直立的;在进行方向控制程序设计时, 车模的直立控制和速度控制都是稳定的;
在进行直立控制时, 车模的速度控制和方向控制都是稳定的。这三个任务中保持车模平衡是最关键的。 由于车模同时受到三种控制的影响, 从车模平衡控制的角度来看, 其它两个控制就成为它的干扰。 为了避免影响车模平衡控制,这个车模倾角的改变需要非常缓慢的进行。 因此, 虽然三个控制任务独立运行, 但是它们之间有优先级, 即控制应该最优先满足直立的要求, 其次是方向控制的要求, 最后才是速度控制的要求。
3.3 硬件设计主控电路板主要包括以下部分: 微控制器电路、 电源管理电路、 微控制器接口、 按键电路、蜂鸣器电路。
其中,电源管理电路分为 3. 3V 电源管理电路和 5V 电源管理电路,5V 管理电路使用 LM2940 三端线性稳压器, 输入 7. 2V 电池电压, 输出 5V 电压。
3.3V 管理电路使用 LM1117 三端线性稳压器, 输入接 LM2940 的 5V 电压, 输出 3. 3V 电压。
考虑到本系统中器件、 传感器较多, 因此 5V 管理电路和 3. 3V 管理电路均使用两个。
微控制器接口主要包括: OLED 接口、 蓝牙接口、 MMA7361 传感器接口、 L3G4200D 传感器接口、编码器正交解码接口 2 个、 四通道 PWM 接口、 遥控器解码接口, 以及预留 IO,方便调试使用。
3.4 软件设计小车的控制主干流程如下: