1、1 本科生单片机课程设计报告 课 题:光电平衡小车 2 目录目录 第一章 车模整体设计方案 3 1.1 两轮自平衡智能车整体框架 . 3 1.2 直立任务分解5 1.3 车模直立控制9 1.4 车模速度控制10 1.5 车模方向控制10 第二章程序控制说明 11 2.1 主程序框架 11 6.1 电机死区补偿 12 6.2 角度单闭环控制 . 13 6.3 角度、速度双闭环控制 14 第二章 车模机械设计 . 15 3.1 车模地盘安装 15 3.2 车模编码器安装 . 15 3.3 车模电池位置改装 . 16 第三章 车模硬件电路设计 18 第四章 卡尔曼滤波. 18 4.1 卡尔曼滤波简介
2、 . 18 4.2 使用卡尔曼滤波的原因 18 4.3 卡尔曼滤波原型 . 20 4.4 卡尔曼滤波化简 . 21 4.5 卡尔曼滤波参数整定 23 第五章车模参数调试图解 . 29 附录源代码 30 附录硬件电路图 . 30 个人总结 30 3 第一章第一章 车模整体设计方案车模整体设计方案 1.1 两轮自平衡智能车整体框架两轮自平衡智能车整体框架 智能车是在车模结构的框架上, 搭上硬件结构, 通过 MC9S12XS128 单片机的处理能力, 将传感器采集到的信息处理分析后得出运算结果, 指挥电机做出适应赛道及战术策略的响应 的一套系统。其硬件结构框架如下图: 1.2 直立行走任务分解直立行
3、走任务分解 电磁组比赛要求车模在直立的状态下以两个轮子着地沿着赛道进行比赛, 相 比四轮着地状态,车模控制任务更为复杂。为了能够方便找到解决问题的办法, 首先将复杂的问题分解成简单的问题进行讨论。为了分析方便,根据比赛规则, 假设维持车模直立、运行的动力都来自于车模的两个后车轮,后轮转动由两个直 流电机驱动。因此从控制角度来看,由控制车模两个电机旋转方向及速度实现对 车模的控制。车模运动控制任务可以分解成以下三个基本任务: (1) 控制车模直立:通过控制两个电机正反向运动保持车模直立状态; (2) 控制车模速度:通过控制两个电机转速速度实现车模行进控制; (3) 控制车模转向: 通过控制两个电
4、机之间的转动差速实现车模转向控制。 以上三个任务都是通过控制车模两个后轮驱动电机完成的。 可以假设车模的 电源模块 S12XS128 控制核心单 加速度计模块 控制器模块 CCD 路径检测 测速模块 陀螺仪模块 电机驱动模块 4 电机可以虚拟地被拆解成三个不同功能的驱动电机,它们同轴相连,分别控制车 模的直立平衡、前进行走、左右转向,如图 2.1 所示。 图 2.1 车模运动控制分解示意图 直流电机的力矩最终来自于电机驱动电压产生的电流。 因此只要电机处于线 性状态, 上述拆解可以等效成三种不同控制目标的电压叠加之后, 施加在电机上。 在上述三个任务中保持车模直立是关键。由于车模同时受到三种控
5、制的影响, 从车模直立控制的角度,其它两个控制就成为它的干扰。因此在速度、方向控制 的时候,应该尽量平滑,以减少对于直立控制的干扰。三者之间的配合如图2.2 所示。 图 2.2 三层控制之间相互配合,底层尽量减少对于上层的干扰 上述三个控制各自独立进行控制, 它们各自假设其它两个控制都已经达到稳 5 定。比如速度控制时,假设车模已经在直立控制下保持了直立稳定,通过改变电 机的电压控制车模加速和减速。车模在加速和减速的时候,直立控制一直在起作 用,它会自动改变车模的倾角,移动车模的重心,使得车模实现加速和减速。 1 1. .3 3 车模直立控制车模直立控制 控制车模直立的直观经验来自于杂技表演。
6、 一般的人通过简单练习就可以让 一个直木棒在手指尖上保持直立。这需要两个条件:一个是托着木棒的手掌可以 移动;另一个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角加速度) 。通过 手掌移动抵消木棒的倾斜角度和趋势,从而保持木棒的直立。这两个条件缺一不 可,实际上就是控制中的负反馈机制,参见图 2.3。 世界上还没有任何一个天才杂技演员可以蒙着眼睛使得木棒在自己手指上 直立,因为没有了负反馈。 图 2.3 通过反馈保持木棒的直立 车模直立也是通过负反馈实现的。但相对于上面的木棒直立相对简单。因为 车模有两个轮子着地,因此车体只会在轮子滚动的方向上发生倾斜。控制轮子转 动,抵消倾斜的趋势便可以保持车体直立了。如图 2.4 所示。 6 图 2.4 通过车轮运动控制保持车体直立 那么车轮如何运行,才能够最终保持车体垂直稳定?为了回答这个问题,一 般的做法需要