logo资料库

一天攻克平衡小车(含STC15及STM32).pdf

第1页 / 共74页
第2页 / 共74页
第3页 / 共74页
第4页 / 共74页
第5页 / 共74页
第6页 / 共74页
第7页 / 共74页
第8页 / 共74页
资料共74页,剩余部分请下载后查看
封面
第一章:前言
第二章:原理篇
2.1任务分解
2.2平衡控制
2.3车模角度和角速度测量
2.4速度控制
2.5方向控制
第三章:电路设计篇
3.1整体电路思路
3.2单片机最小系统
IAP15W4K61S4
STM32F103C8T6
3.3系统电源
3.4六轴传感器电路
3.5电机驱动电路
3.6编码器电路
3.7USB转串口电路
3.8蓝牙模块
第四章:软件开发篇
4.1软件功能与框架
4.2主程序框架
4.3初始化
4.4主循环-125Hz循环
4.5主要算法及其实现
4.6命名规则:驼峰命名法
4.7主要控制函数说明
第五章:车模调试篇
5.1注意事项
单位大小
参数极性
5.2调试思路
5.3经典调试方法
角度环调试
估算P值范围
确定P值的极性
确定P值大小
确定D值的极性
确定D值大小
速度环调试
低通滤波
调试I值极性
确定P值与I值的大小
5.4快速调试方法
第六章:调试工具
喵呜手机端
功能介绍
移植代码
虚拟示波器
使用步骤
移植代码
第七章:滤波理论-互补滤波
第八章:高级控制-模糊控制
附录:配件购买推荐
开源造车 一天攻克平衡小车 一天攻克平衡小车 喵呜实验室倾心力作 版本号 0.6 2016 最适合初学者入门平衡小车的教程 喵呜实验室 20160518
喵呜实验室 开源造车: 一天攻克平衡小车 前言 两轮自平衡小车是集成机械、电子、通信、自动化、嵌入式等技术于一体的小型智能机 器人,涉及到传感器的驱动,数据的处理,角度的计算,电机的控制等,内容比较丰富。其 原理看似简单,但谁都不能小看它,它绝对当得上“精妙”二字。众所周知要深入学习一款 单片机最好的方法,是以高级项目制作为导向,边做边学,缺啥补啥,印象深刻。为了让初 学者快速入门,减少学习时间,在更短的时间内学到更多的知识,尤其为了那些准备制作平 衡小车而没时间深入研究平衡小车原理的朋友,我们特意写了 STC15/STM32 平衡小车开发 教程,力求大大减少初学者的学习时间。 喵呜平衡小车开发教程,主要有原理篇、电路设计篇、软件开发篇、调试工具篇、车模 调试篇。为了适应各层次的朋友参考移植程序,电路设计篇和软件开发篇分别介绍使用 STC15 及 STM32 两种单片机制作平衡小车的过程,并尽可能减少公式推导,使用通俗的科 学语言介绍控制原理和方法,给出平衡小车制作过程中的核心环节。 我们的口号是: 一天攻克平衡小车! 本教程的方案经过了实际验证测试,测试运行视频请在喵呜实验室官网上下载。 附录中给出了用于下载资料的网站地址以及教程中配件的购买地址。 喵呜淘宝店: https://shop275516297.taobao.com/(点我) 有问题就到: http://bbs.miaowlabs.com(点我) 第 1 页
喵呜实验室 开源造车: 一天攻克平衡小车 原理篇 2.1 任务分解 平衡小车为两轮直立着地行走,相比四轮着地状态,车模控制任务更为复杂。为了能够 方便找到解决问题的办法,首先将复杂的问题分解成简单的问题进行讨论。 维持车模直立也许可以设计出很多的方案,本参考方案假设维持车模直立、运行的动力 都来自于车模的两个车轮。车轮转动由两个直流电机驱动。 因此从控制角度来看,车模作 为一个控制对象,它的控制输入量是两个电极的转动速度。 车模运动控制任务可以分解成 以下三个基本控制任务: ( 1) 控制车模平衡:通过控制两个电机正反向运动保持车模直立平衡状态; ( 2) 控制车模速度:通过调节车模的倾角来实现车模速度控制,实际上最后还是演变成 通过控制电机的转速来实现车轮速度的控制。 ( 3) 控制车模方向:通过控制两个电机之间的转动差速实现车模转向控制。 车模直立和方向控制任务都是直接通过控制车模两个后轮驱动电机完成的。假设车模 电机可以虚拟地拆解成两个不同功能的驱动电机,它们同轴相连,分别控制车模的直立平 衡、左右方向。在实际控制中,是将控制车模直立和方向的控制信号叠加在一起加载电机 上,只要电机处于线性状态就可以同时完成上面两个任务。车模的速度是通过调节车模倾 角来完成的。车模不同的倾角会引起车模的加减速,从而达到对于速度的控制。 喵呜淘宝店: https://shop275516297.taobao.com/(点我) 有问题就到: http://bbs.miaowlabs.com(点我) 第 2 页
喵呜实验室 开源造车: 一天攻克平衡小车 三个分解后的任务各自独立进行控制。由于最终都是对同一个控制对象(车模的电机) 进行控制,所以它们之间存在着耦合。为了方便分析,在分析其中之一时假设其它控制对象 都已经达到稳定。比如在速度控制时,需要车模已经能够保持直立控制;在方向控制的时候, 需要车模能够保持平衡和速度恒定;同样,在车模平衡控制时,也需要速度和方向控制也已 经达到平稳。这三个任务中保持车模平衡是关键。由于车模同时受到三种控制的影响,从车 模平衡控制的角度来看,其它两个控制就成为它的干扰。因此对车模速度、方向的控制应该 尽量保持平滑,以减少对于平衡控制的干扰。以速度调节为例,需要通过改变车模平衡控制 中车模倾角设定值,从而改变车模实际倾斜角度。为了避免影响车模平衡控制,这个车模倾 角的改变需要非常缓慢的进行。 三层控制之间相互配合 喵呜淘宝店: https://shop275516297.taobao.com/(点我) 有问题就到: http://bbs.miaowlabs.com(点我) 第 3 页
喵呜实验室 开源造车: 一天攻克平衡小车 2.2 平衡控制 控制车模平衡的直观经验来自于人们日常生活经验。一般的人通过简单练习就可以让一 个直木棒在手指尖上保持直立。这需要两个条件:一个是托着木棒的手掌可以移动; 另一 个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角速度)。通过手掌移动抵消木 棒的倾斜 角度和趋势,从而保持木棒的直立。这两个条件缺一不可,实际上就是控制中的负反馈机制, 如图所示。 世界上还没有任何一个天才杂技演员可以蒙着眼睛使得木棒在自己指尖上直立,因为没 有了眼睛观察进行负反馈。 保持木棒直立的反馈控制 车模平衡控制也是通过负反馈来实现的,与上面保持木棒直立比较则相对简单。因为车 模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。控制轮子转动,抵消在一个维 度上倾斜的趋势便可以保持车体平衡了。如图所示。 通过车轮运动保持车模平衡 喵呜淘宝店: https://shop275516297.taobao.com/(点我) 有问题就到: http://bbs.miaowlabs.com(点我) 第 4 页
喵呜实验室 开源造车: 一天攻克平衡小车 那么车轮如何运行,才能够最终保持车体平衡稳定?为了回答这个问题,可以通过建立 车模的运动学和动力学数学模型,设计反馈控制来保证车模的平衡。为了使得同学们能够比 较清楚理解其中的物理过程。下面通过对比单摆模型来说明保持车模平衡的控制规律。 重力场中使用细线悬挂着重物经过简化便形成理想化的单摆模型。直立着的车模可以看 成放置在可以左右移动平台上的倒立着的单摆。如图所示。 对普通的单摆受力分析如图所示。 车模简化成倒立的单摆 普通单摆受力分析 当物体离开垂直的平衡位置之后,便会受到重力与悬线的作用合力,驱动重物回复平衡 位置。这个力称之为回复力,其大小为 F = − mgsinθ ≈ − mgθ 在偏移角度很小的情况下,回复力与偏移的角度之间大小成正比,方向相反。在此回复 力作用下,单摆便进行周期运动。在空气中运动的单摆,由于受到空气的阻尼力, 单摆最 终会停止在垂直平衡位置。空气的阻尼力与单摆运动速度成正比,方向相反。阻 尼力越大, 单摆越会尽快在垂直位置稳定下来。 图 2- 8 显示出不同阻尼系数下,单摆的运动曲线。 喵呜淘宝店: https://shop275516297.taobao.com/(点我) 有问题就到: http://bbs.miaowlabs.com(点我) 第 5 页
喵呜实验室 开源造车: 一天攻克平衡小车 总结单摆能够稳定在垂直位置的条件有两个: ( 1) 受到与位移(角度)相反的恢复力; ( 2) 受到与运动速度(角速度)相反的阻尼力。 如果没有阻尼力,单摆会在垂直位置左右摆动。阻尼力会使得单摆最终停止在垂直位 置。阻尼力过小(欠阻尼)会使得单摆在平衡位置附件来回震荡。阻尼力过大(过阻尼) 会使得单摆到达平衡位置时间加长。因而存在一个临界阻尼系数,使得单摆稳定在平衡位 置的时间最短。 为什么倒立摆在垂直位置时,在受到外部扰动的情况下,无法保持稳定 呢?分析倒立摆的受力,如图所示。 倒立摆之所以不能象单摆一样可以稳定在垂直位置,就是因为在它偏离平衡位置的时候, 所受到的回复力与位移方向相同,而不是相反!因此,倒立摆便会加速偏离垂直位置,直到 倒下。 如何通过控制使得倒立摆能够像单摆一样,稳定在垂直位置呢?要达到这一目的,只有 两个办法:一个是改变重力的方向;另一个是增加额外的受力,使得恢复力与位移 方向相 反才行。显然能够做到的只有第二种方法。 喵呜淘宝店: https://shop275516297.taobao.com/(点我) 有问题就到: http://bbs.miaowlabs.com(点我) 第 6 页
喵呜实验室 开源造车: 一天攻克平衡小车 控制倒立摆底部车轮,使得它作加速运动。这样站在小车上(非惯性系,以车轮作为 坐标原点)分析倒立摆受力,它就会受到额外的惯性力,该力与车轮的加速度方向相反, 大小成正比。这样倒立摆所受到的回复力为: F = mgsin θ – macosθ ≈ mgθ- mk1θ( 2-1) 式中,由于 θ 很小,所以进行了线性化。假设负反馈控制是车轮加速度 a 与偏角 θ 成 正比,比例为 k1 。如果比例 k1>g ,g(是重力加速度)那么回复力的方向便于位移方向相 反了。 此外,为了使得倒立摆能够尽快地在垂直位置稳定下来,还需要增加阻尼力。虽然存在 着空气和摩擦力等阻尼力,相对阻尼力比较小。因此需要另外增加控制阻尼力。增加的阻尼 力与偏角的速度成正比,方向相反。因此式( 2-1)可变为 F= mgθ - mk1θ - mk2θ'( 2-2) 按照上面的控制方法,可把倒立摆模型变为单摆模型,能够稳定在垂直位置。因此,可 得控制车轮加速度的控制算法 a= k1θ + k2θ' ( 2-3) 式中, θ 为车模倾角; θ' 为角速度; k1、 k2 均为比例系数;两项相加后作为车轮 加速度 的控制量。只要保证 k1>g,k2>0 条件下,可以使得车模像单摆一样维持在直立状 态。 其中有两个控制参数 ,k1 决定了车模是否能够稳定到垂直平衡位置,它必须大于重 力加速度; k2 决定了车模回到垂直位置的阻尼系数,选取合适的阻尼系数可以保证车模尽 快稳定在垂直位置。这两个系数的作用如图所示。 在上面简单分析中,通过类比倒立摆得到了车模直立的控制方案。 喵呜淘宝店: https://shop275516297.taobao.com/(点我) 有问题就到: http://bbs.miaowlabs.com(点我) 第 7 页
分享到:
收藏