APP下载

一种基于PID算法的自平衡车控制系统设计

2019-09-10吴振磊孙二威李笑笑

甘肃科技纵横 2019年8期

吴振磊 孙二威 李笑笑

摘要:自平衡小车相当于一台小型移动机器人,因为它是集机械、通信、数据处理、电子等于一身的移动智能处理系统,并且拥有较复杂的非线性系统,将它作为各种控制算法的理想平台再合适不过了。本文设计了一种基于PID算法的自平衡车控制系统,首先根据控制要求对其进行了建模,从原理上解释了控制的方式,并采用PID算法进行实行。

关键词:自平衡车;PID算法;平衡建模;

中图分类号: TP319         文献标志码:A

1   引言

自平衡小车可以说是小型移动机器人,因为它是集机械、通信、数据处理、电子等于一身的移动智能处理系统,并且拥有较复杂的非线性系统,将它作为各种控制算法的理想平台再合适不过了。

这些年来,由于人类科学技术的不断进步,微电子领域的急速发展,各种各样新型的、模块化的、低成本的集成芯片成为电子产品设计的重要组成部分,朝着体积愈来愈小,重量愈来愈轻,功用愈来愈巨大的目标飞速成长,使得本来仅仅存在于理论上的两轮自平衡小车得以设计出来,并大批运用到军事领域。同样在民用领域,由于其绿色无污染、独特的外观和人性化的设计,并且相对于普通轮式机器人来说,它的优点更是突出,因为是两轮直立所以占用的空间更小,相当小的转弯半径使得它适用于多种应用场景,如仓储运输、载人工具、自动投递等。

2   基本控制要求

2.1 总体要求

本设计是在假定小车在获得来自两轮的动力能保持自身平衡的状态情况下进行的,在有这样假定的前提下,我们对小车的平衡系统进行分析就会相对容易,那我们就可以得到一个控制理论:只要通过控制驱动模块来控制电机的运行状态就可以实现对小车的平衡状态进行控制。因此,两轮自平衡小车的控制要求可以分为以下三个基本任务:

(1)车身的平衡控制:在进行下一步控制前首先要保持小车自身的平衡,這只需要对小车的两个车轮进行控制,从而保持小车模型不向一边倾倒;

(2)车身的速度控制:在一定的倾斜角度下,对小车倾倒的快慢进行控制,经过一系列控制后,电机的速度最终演变为实现电机的速度;

(3)车身的转向控制:我们可以通过控制车模的转速不一样从而形成速度差,这样就可以实现对运行方向的选择,并且转弯半径较小;

并且无论平衡、速度还是转向,所有的控制要求最终都只能通过两个车轮的驱动电机所完成,所以在控制时各个任务之间就会存在相互耦合。相比之下,这三个任务中最为关键的则是保持车身的平衡,如果车身不能平衡,去谈速度控制和转向控制是毫无意义的,两轮小车的用途也会大打折扣,所以速度控制和转向控制就需要尽量减少对平衡控制的干扰。

2.2 平衡模型分析

平衡小车活动方式和倒立摆相同,我们先研究单摆的活动控制。在简化的单摆模型中,当单摆离开竖直方向的平衡位置之后,会受到两个力的作用,分别是摆自身的重力和摆线拉住摆的作用合力,它们的合作用力会推动负重物摆动到开始时候的平衡位置,我们把这个力叫做回复力。

而小车无法像单摆那样可以持续在平衡地点不乱动,原因是它会在偏离平衡位置的时刻,所受回复力与位移方向相同,所以它会加速离开平衡地点,直到它倒下。因此,我们需要加入一个外力,使得它的回复力与位移方向相反,则它所受到的回复力为:

式子中,由于回复力很小,可以进行线性化,假设车轮加速度ɑ与倾角成正比,比例为k1。如果k1>g(重力加速度),这样获得的回复力偏向就与移动目标相反,再加上阻尼力的影响,上式可变为:

根据如上的掌控方式,不妨把倒立摆模子变为单摆模子,可以保持在竖直地点,于是我们得到了掌控车轮加速度的控制算法

上式里,为小车倾斜角;是小车角速度;k1、k2分别是比例系数;两项相加后作为车轮的加速度控制算法。在操作中,要满足k1>g、k2>0,即可让小车如同单摆那样保持在垂直、竖直形态。其中的k1确定了小车能否稳定到竖直平衡地点;k2确定了小车回到竖直地点的阻尼系数。

3   平衡算法实现

PID算法在两轮自平衡小车控制中起到关键作用,由姿态传感器收集到的角度值、角速度值结合直流减速电机上霍尔传感器收集到的速度值,在微控制器芯片中以PID算法计算,将计算得到的数值通过PWM方式再传回电机驱动芯片,告知如何驱动两个车轮,从而完成小车从直立平衡到前进平衡的控制。其典型的PID算法框架如图1所示。

在控制程序中用该方法设置合适的三个参数即可完成对平衡小车的精确控制。PID控制算法的核心是闭环控制,而由于两轮自平衡小车的独特性,我们又把控制分为角度环控制和速度环控制。以下就简单说明一下这两个闭环控制器的主要步骤:

(1)角度环是平衡小车最重要的控制闭环,一般使用PD(比例/微分)控制器。

(2)设置我们的期待误差值(一般为设为0);

(3)将此时采集到的角度值和期待误差值相减,计算出角速度误差;

(4)进行PD控制器计算,确定P值的极性(也就是正负号)和大小、D值得极性和大小;

另外平衡小车的速度环使用的则是 PI(比例积分)控制器,这也是速度控制最常使用的控制器。PI控制器是一种线性控制器,它能根据给定值与实际输出值构成控制偏差,将之前有偏差的比例(P)和积分(I)通过线性的组合构成控制量,对被控对象进行控制。

(1)开始将从编码器采集到的脉冲进行数据转换,得到速度值进行低通滤波;

(2)设定速度期望值(要使小车保持直立不是一直运行此处期望值为0),然后减去采集到的速度值,得到速度误差;

(3)接着将此速度差值進行速度环PI控制器运算,先乘以速度环P值后乘以I值再累加,防止积分一直增大对积分设置一个上限;

速度环PI主控制器计算结束,这样就能得到我们所需要的PMW输出值。当并未对被控对象的参数结构数据有完全的了解时,并不能准确建立数学模型。即便是在一个我们完全不了解的系统和被控对象上,又或者是在这个系统或被控对象上我们无法通过测量手段来获取相关系统参数,这时最适合且最方便的就是PID控制算法技术。

4   结束语

通过实验验证,基于PID算法的自平衡车能快速准确的保持平衡状态,在运动状态变换时调整速度较快。如果对传感器采样数据加以滤波,便可获得更优异的性能。

两轮自平衡车可应用的范围广泛,为了能顺应科技的发展和市场的需求,继续深入的研究双轮直立机器人就变得尤为重要,这就意味着其在以下几个方面需要持续发展和提高:

(1)目前的自平衡车需要借助人手帮助才能维持相对平衡状态,需要研究动态平衡移动式的小车,能够在没有人的帮助下实现从倾倒状态站立起来并能维持自身不再倾倒,称之为自主式动态平衡控制。

(2)自平衡小车在载物、载人也有相当的应用场景,当小车处于空载、负荷等负重状态下的运行状态转换。

(3)制作两轮直立机器人有多种方案可以选择,但在选择最优方案时需要考虑我们想要实现的效果,并要体现出它的经济性。如在满足了系统动能的前提下,在单位距离下运动消耗较小,那么这样设计出的小车就能在相同的电量消耗下能跑的更远,对要推出市场的产品来说这是绝对的优势。

参考文献:

[1]吴振磊.一种两轮自平衡车的控制模型分析与实现[J].轻工科技.2018.6;

[2]赖义汉,王凯.基于MPU6050的双轮平衡车控制系统设计[J].河南工程学院学报(自然科学版).2014.3;

[3]张洪伟.基于STM32的平衡车设计[J] .科技创新与应用.2016.2;

[4]高正中.基于STM32的智能平衡车控制系统设计[J].现代电子技术.2016.7;

[5]周祎明.基于STM32的两轮自平衡车设计[J].电子技术设计与应用.2016.11;

作者简介:吴振磊(1981-),男,江苏苏州人,硕士,讲师,研究方向:电子信息工程技术。

基金项目:江苏省大学生创新创业训练项目:《基于CORTEX-M3内核的智能平衡车设计》。项目编号201912685014Y