平衡车平衡原理Arduino.pdf
《平衡车平衡原理Arduino.pdf》由会员分享,可在线阅读,更多相关《平衡车平衡原理Arduino.pdf(27页珍藏版)》请在三一文库上搜索。
1、平衡原理平衡原理 一、平衡小车原理一、平衡小车原理 平衡小车是通过两个电机运动下实现小车不倒下直立行走的多功能智能小 车,在外力的推拉下,小车依然保持不倒下。这么一说可能还没有很直观的了解 究竟什么是平衡小车, 不过这个平衡小车实现的原理其实是在人们生活中的经验 得来的。如果通过简单的练习,一般人可以通过自己的手指把木棒直立而不倒的 放在指尖上, 所以练习的时候, 需要学会的两个条件: 一是放在指尖上可以移动, 二是通过眼睛观察木棒的倾斜角度和倾斜趋势(角速度) 。通过手指的移动去抵 消木棒倾斜的角度和趋势,使得木棒能直立不倒。这样的条件是不可以缺一的, 实际上加入这两个条件,控制过程中就是负
2、反馈机制。 而世界上没有任何一个人可以蒙眼不看,就可以直立木棒的,因为没有眼睛 的负反馈,就不知道笔的倾斜角度和趋势。这整个过程可以用一个执行式表达: 平衡小车也是这样的过程,通过负反馈实现平衡。与上面保持木棒直立 比较则相对简单,因为小车有两个轮子着地,车体只会在轮子滚动的方向上发生 倾斜。控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了。 所以根据上述的原理, 通过测量小车的倾角和倾角速度控制小车车轮的加 速度来消除小车的倾角。因此,小车倾角以及倾角速度的测量成为控制小车直立 的关键。我们的亚博智能平衡小车使用了测量倾角和倾角速度的集成传感器陀 螺仪-MPU6050(模块详细介
3、绍在亚博智能平衡小车光盘资料3.硬件资料中)。 二、角度(物理分析二、角度(物理分析 PD 算法)算法) 图 1 图2 控制平衡小车,使得它作加速运动。这样站在小车上(非惯性系,以车轮 作为坐标原点)分析倒立摆受力,它就会受到额外的惯性力,该力与车轮的加 速度方向相反,大小成正比。这样倒立摆(如图 2)所受到的回复力为:公式 1 控制平衡小车,使得它作加速运动。这样站在小车上(非惯性系,以车轮 作为坐标原点)分析倒立摆受力,它就会受到额外的惯性力,该力与车轮的加 速度方向相反,大小成正比。这样倒立摆(如图 2)所受到的回复力为:公式 1 F = mg sin -ma cos mg -mkF =
4、 mg sin -ma cos mg -mk1 式 1 中,由于式 1 中,由于很小,所以进行了线 性化。假设负反馈控制是车轮加速度 a 与偏角成正比,比例为 很小,所以进行了线 性化。假设负反馈控制是车轮加速度 a 与偏角成正比,比例为 k k1。如果比例。如果比例 k k1gg, (g 是重力加速度)那么, (g 是重力加速度)那么回复力的方向便于位移方向相反了回复力的方向便于位移方向相反了。 而为了让倒立摆能够尽快回到垂直位置稳定下来,还需要增加阻尼力。增 加的阻尼力与偏角的速度成正比,方向相反,因此公式1可改为: 。 而为了让倒立摆能够尽快回到垂直位置稳定下来,还需要增加阻尼力。增 加
5、的阻尼力与偏角的速度成正比,方向相反,因此公式1可改为: F = mg -mkF = mg -mk1 -mk -mk2 按照上述倒立摆的模型,可得出控制小车车轮加速度的算法: a =k 按照上述倒立摆的模型,可得出控制小车车轮加速度的算法: a =k1+k+k2 式中为小车角度,为角速度。k 式中为小车角度,为角速度。k1 k k2都是比例系数 根据上述内容,建立速度的比例微分负反馈控制,根据基本控制理论讨论 小车通过闭环控制保持稳定的条件( 都是比例系数 根据上述内容,建立速度的比例微分负反馈控制,根据基本控制理论讨论 小车通过闭环控制保持稳定的条件(这里需要对控制理论有基本了解这里需要对控
6、制理论有基本了解)。)。假设外 力干扰引起车模产生角加速度 假设外 力干扰引起车模产生角加速度x(t)。沿着垂直于车模地盘方向进行受力分析,可 以得到车模倾角与车轮运动加速度以及外力干扰加速度 。沿着垂直于车模地盘方向进行受力分析,可 以得到车模倾角与车轮运动加速度以及外力干扰加速度a(t)x(t)之间的运动方 程。如图 之间的运动方 程。如图3所示。 所示。 图3 在角度反馈控制中, 与角度成比例的控制量是称为比例控制; 与 角速度成比例的控制量称为 在角度反馈控制中, 与角度成比例的控制量是称为比例控制; 与 角速度成比例的控制量称为微分控制微分控制(角速度是角度的微分) 。因此 上面系数
7、 (角速度是角度的微分) 。因此 上面系数 k1,k2 分别称为分别称为比例比例和和微分微分控制参数。 其中微分参数相当于 阻尼力, 可以有效抑制车模震荡。 通过微分抑制控制震荡的思想在后 面的速度和方向控制中也同样适用。 控制参数。 其中微分参数相当于 阻尼力, 可以有效抑制车模震荡。 通过微分抑制控制震荡的思想在后 面的速度和方向控制中也同样适用。 总结控制车模直立稳定的条件如下:总结控制车模直立稳定的条件如下: (1)能够精确测量车模倾角的大小和角速度)能够精确测量车模倾角的大小和角速度的大小;的大小; (2)可以控制车轮的加速度。)可以控制车轮的加速度。 上述控制实际结果是小车与地面不
8、是严格垂直, 而是存在一个对 应的倾角。在 上述控制实际结果是小车与地面不是严格垂直, 而是存在一个对 应的倾角。在重力重力的作用下,的作用下,小车会朝着一个方面加速前进小车会朝着一个方面加速前进。为了保 持小车的 。为了保 持小车的静止或者匀速运动静止或者匀速运动需要需要消除消除这个安装误差。 在实际小车制作 过程中需要进行 这个安装误差。 在实际小车制作 过程中需要进行机械调整机械调整和和软件参数设置软件参数设置。 另外需要通过软件中的速 度控制来实现速度的稳定性。在小车角度控制中出现的小车倾角偏 差, 使得小车在倾斜的方向上产生加速。 这个结果可以用来进行小车 的速度控制。下面将利用这个
9、原理来调节小车的速度。 。 另外需要通过软件中的速 度控制来实现速度的稳定性。在小车角度控制中出现的小车倾角偏 差, 使得小车在倾斜的方向上产生加速。 这个结果可以用来进行小车 的速度控制。下面将利用这个原理来调节小车的速度。 三、测速(物理模型三、测速(物理模型 建立数学模型建立数学模型 传递函数传递函数 PD 算法)算法) 假设小车在上面假设小车在上面直立控制调节直立控制调节下已经能够保持平衡了, 但是由于 安装误差, 传感器实际测量的角度与车模角度有偏差, 因此小车实际 不是保持与地面垂直,而是存在一个倾角。在重力的作用下,小车就 会 下已经能够保持平衡了, 但是由于 安装误差, 传感器
10、实际测量的角度与车模角度有偏差, 因此小车实际 不是保持与地面垂直,而是存在一个倾角。在重力的作用下,小车就 会朝倾斜的方向加速前进朝倾斜的方向加速前进。 控制速度控制速度只要通过控制小车的倾角就可以 实现了。具体实现需要解决三个问题: 只要通过控制小车的倾角就可以 实现了。具体实现需要解决三个问题: (1)如何测量小车速度?)如何测量小车速度? (2)如何通过小车直立控制实现小车倾角的改变?)如何通过小车直立控制实现小车倾角的改变? (3)如何根据速度误差控制小车倾角?)如何根据速度误差控制小车倾角? 第一个问题第一个问题可以通过安装在电机输出轴上的可以通过安装在电机输出轴上的霍尔测速霍尔测
11、速来测量得 到小车的车轮速度。如图 来测量得 到小车的车轮速度。如图 4 所示。利用控制单片机的所示。利用控制单片机的外部中断外部中断 IO 口口 在不间断测速,速度为在不间断测速,速度为脉冲信号的个数脉冲信号的个数可以反映电机的转速可以反映电机的转速。 图4 图4 第二个问题第二个问题可以通过角度控制给定值来解决。 给定小车直立控制 的设定值,在角度控制调节下,小车将会自动维持在一个角度。通过 前面小车直立控制算法可以知道,小车倾角最终是跟踪重力加速度Z 轴的角度。因此小车的 可以通过角度控制给定值来解决。 给定小车直立控制 的设定值,在角度控制调节下,小车将会自动维持在一个角度。通过 前面
12、小车直立控制算法可以知道,小车倾角最终是跟踪重力加速度Z 轴的角度。因此小车的倾角给定值倾角给定值与与重力加速度Z轴角度重力加速度Z轴角度相减,便可 以最终决定小车的 相减,便可 以最终决定小车的倾角 倾角 第三个问题第三个问题分析起来相对比较困难, 远比直观进行速度负反馈分 析复杂。首先对一个简单例子进行分析。假设小车开始保持静止,然 后增加给定速度, 为此需要小车往前倾斜以便 分析起来相对比较困难, 远比直观进行速度负反馈分 析复杂。首先对一个简单例子进行分析。假设小车开始保持静止,然 后增加给定速度, 为此需要小车往前倾斜以便获得加速度获得加速度。 在小车直 立控制下,为了能够有一个往前
13、的 。 在小车直 立控制下,为了能够有一个往前的倾斜角度倾斜角度,车轮需要,车轮需要往后往后运动,这 样会引起车轮速度下降(因为车轮往负方向运动了)。由于负反馈, 使得小车往前倾角需要更大。如此循环,小车很快就会 运动,这 样会引起车轮速度下降(因为车轮往负方向运动了)。由于负反馈, 使得小车往前倾角需要更大。如此循环,小车很快就会倾倒倾倒。原本利 用负反馈进行速度控制反而成了“正”反馈。 。原本利 用负反馈进行速度控制反而成了“正”反馈。 为什么负反馈控制在这儿失灵了呢?原来在直立控制下的小车为什么负反馈控制在这儿失灵了呢?原来在直立控制下的小车 速度与小车倾角之间传递函数具有速度与小车倾角
14、之间传递函数具有非最小相位非最小相位特性(在此省略了分 析),在反馈控制下容易造成系统的 特性(在此省略了分 析),在反馈控制下容易造成系统的不稳定性不稳定性。 为了保证系统稳定, 往往取的小车倾角控制 。 为了保证系统稳定, 往往取的小车倾角控制时间常数时间常数TzTz很大。 这 样便会引起系统产生两个共轭极点, 而且极点的实部变得很小, 使得 系统的速度控制会产生的 很大。 这 样便会引起系统产生两个共轭极点, 而且极点的实部变得很小, 使得 系统的速度控制会产生的震荡现象震荡现象。 这个现象在实际。 这个现象在实际参数整定参数整定的时候 可以观察到。那么如何消除速度控制过程中的震荡呢?
15、要解决控制震荡问题,在前面的小车角度控制中已经有了经验, 那就是在控制反馈中增加 的时候 可以观察到。那么如何消除速度控制过程中的震荡呢? 要解决控制震荡问题,在前面的小车角度控制中已经有了经验, 那就是在控制反馈中增加速度微分控制速度微分控制。 但由于车轮的速度反馈信号 中往往存在着 。 但由于车轮的速度反馈信号 中往往存在着噪声噪声,对速度进行微分运算会进一步加大噪声的影响。 为此需要对上面控制方法进行 ,对速度进行微分运算会进一步加大噪声的影响。 为此需要对上面控制方法进行改进改进。 原系统中倾角调整过程时间常数 往往很大, 因此可以将该系统近似为一个 。 原系统中倾角调整过程时间常数
16、往往很大, 因此可以将该系统近似为一个积分环节积分环节。 将原来的。 将原来的微分环 节和这个积分环节合并, 形成一个比例控制环节 微分环 节和这个积分环节合并, 形成一个比例控制环节。 这样可以保持系统 控制传递函数不变,同时避免了微分计算。 但在控制反馈中, 只是使用反馈信号的 。 这样可以保持系统 控制传递函数不变,同时避免了微分计算。 但在控制反馈中, 只是使用反馈信号的比例和微分比例和微分, 没有利误差 积分, 所以最终这个速度控制是 , 没有利误差 积分, 所以最终这个速度控制是有残差的控制有残差的控制。 但是直接引入误差积 分控制环节,会增加系统的复杂度,为此就不再增加积分控制,
17、而是 通过与 。 但是直接引入误差积 分控制环节,会增加系统的复杂度,为此就不再增加积分控制,而是 通过与角度控制角度控制相结合后在进行相结合后在进行改进改进。 要求小车在原地停止,速度为0。但是由于采用的是 。 要求小车在原地停止,速度为0。但是由于采用的是比例控制比例控制, 如果此时陀螺仪有 , 如果此时陀螺仪有漂移漂移, 或者加速度传感器安装有误差, 最终小车倾 角不会最终调整到0,小车会朝着倾斜的方向恒速运行下去。注意此 时车模不会像没有速度控制那样加速运行了, 但是速度不会最终为0。 为了消除这个误差, 可以将小车倾角设定量直接积分补偿在角度控制 , 或者加速度传感器安装有误差, 最
18、终小车倾 角不会最终调整到0,小车会朝着倾斜的方向恒速运行下去。注意此 时车模不会像没有速度控制那样加速运行了, 但是速度不会最终为0。 为了消除这个误差, 可以将小车倾角设定量直接积分补偿在角度控制 输出中,这样就会彻底消除速度控制误差。输出中,这样就会彻底消除速度控制误差。第二点第二点,由于加入了,由于加入了速度 控制 速度 控制, 它可以补偿陀螺仪和重力加速度的, 它可以补偿陀螺仪和重力加速度的漂移和误差漂移和误差。 所以此时重力 加速度传感器实际上没有必要了。 。 所以此时重力 加速度传感器实际上没有必要了。 此时小车在控制启动的时候,需要保持小车的垂直状态。此时 陀螺仪的积分角度也初
19、始化为0。当然如果电路中已经包括了重力加 速度传感器,也可以保留这部分,从而提高小车的稳定性。在后面的 最终给定的控制方案中,保留了这部分的控制回路。 此时小车在控制启动的时候,需要保持小车的垂直状态。此时 陀螺仪的积分角度也初始化为0。当然如果电路中已经包括了重力加 速度传感器,也可以保留这部分,从而提高小车的稳定性。在后面的 最终给定的控制方案中,保留了这部分的控制回路。 四、转向控制(四、转向控制(PD 算法)算法) 通过左右电机通过左右电机速度差速度差驱动小车转向消除小车距离道路中心的偏 差。通过调整小车的方向,再加上车前行运动,可以逐步消除小车距 离中心线的距离差别。 这个过程是一个
20、 驱动小车转向消除小车距离道路中心的偏 差。通过调整小车的方向,再加上车前行运动,可以逐步消除小车距 离中心线的距离差别。 这个过程是一个积分过程积分过程, 因此小车差动控制 一般只需要进行 , 因此小车差动控制 一般只需要进行简单的比例控制简单的比例控制就可以完成小车方向控制。 但是由于 小车本身安装有电池等比较重的物体, 具有很大的 就可以完成小车方向控制。 但是由于 小车本身安装有电池等比较重的物体, 具有很大的转动惯量转动惯量, 在调整 过程中会出现小车转向 , 在调整 过程中会出现小车转向过冲过冲现象, 如果不加以现象, 如果不加以抑制抑制, 会使得小车过度 转向而倒下。 根据前面
21、, 会使得小车过度 转向而倒下。 根据前面角度角度和和速度速度控制的经验, 为了消除小车方向控 制中的过冲,需要增加角度 控制的经验, 为了消除小车方向控 制中的过冲,需要增加角度微分控制微分控制。 。 五、全方案整合五、全方案整合 通过上面介绍, 将车模直立行走主要的控制算法集中起来, 如图 5 通过上面介绍, 将车模直立行走主要的控制算法集中起来, 如图 5 图5 为了实现小车 为了实现小车直立行走直立行走,需要采集如下信号: (1)小车 ,需要采集如下信号: (1)小车倾角速度倾角速度陀螺仪信号,获得小车的倾角和角速度。 (2) 陀螺仪信号,获得小车的倾角和角速度。 (2) 重力加速度信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 平衡车平衡原理 Arduino 平衡 原理
链接地址:https://www.31doc.com/p-8985237.html