当前位置:文档之家› 双轮自平衡智能车行走伺服控制算法设计报告

双轮自平衡智能车行走伺服控制算法设计报告

自动控制原理课程设计目录一.引言 (4)二.系统模型的建立 (4)三.系统控制的优化 (9)3.1 PID调节参数的优化 (9)3.2 积分分离PID的应用 (13)四,结语 (16)双轮自平衡智能车行走伺服控制算法摘要:全国第八届“飞思卡尔”智能汽车大赛已经结束。

光电组使用大赛提供的D车模,双轮站立前进,相对于以前的四轮车,双轮车的控制复杂度大大增加。

行走过程中会遇到各种干扰,经过多次的实验,已经找到了一套能够控制双轮车的方法。

双轮机器人已经广泛用于城市作战,排爆,反恐,消防以及空间消防等领域。

实验使用单片机控制双电机的转速,达到了预期的效果。

关键词:自平衡;智能;控制算法Motion Servo Control Algorithm for DualWheel Intelligent CarAbstract: The 8th freescale cup national Intelligent Car competition of has been end.The led team must used D car which has only 2tires.It is more difficult to control prefer to control A car which has 4tires.There is much interference on the track. A two-wheeled robots have been widely used in urban warfare, eod, counter-terrorism, fire control and space fire control and other fields。

We has searched a good ways to control it.We used MCU to control the speed of motors and get our gates.Key Words: balance by self; intelligent; control algorithm一.引言双轮自平衡车是智能汽车中一个重要的组成部分。

由于其是两轮站立,在很多场合有比四轮车更灵活,更方便控制的特点。

基于双轮车的机器人已经用于在城市作战,排爆,反恐,消防,空间探测等领域。

双轮自平衡车的控制过程与倒立摆相似。

本次研究主要是对双轮车直立的研究。

由于车在前进过程中还可能遇到弯道和路障,所以本文还对整个系统的稳定性做了比较深入的研究。

在理论证明正确的前提下,再次进行仿真验证,仿真验证的结果与实验结果相符合。

二.系统模型的建立智能汽车竞赛使用的是D车模。

D 车模是双电机,双轮的车模。

单电机控制双轮时可以满足车身保持平衡和前进的要求,而之所以使用双电机是为了前进过程中转弯的需要。

本文只讨论跟直立和干扰有关的内容,鉴于此,本文余下内容默认是单电机控制的车模。

自平衡车在没有电机控制的情况下属于不稳定系统,在极小的干扰下,就会偏离平衡位置而失去平衡。

因此,控制系统必须使用反馈控制。

图1是站立在赛道上的双轮车模。

图1 站立在赛道上的自平衡双轮车自平衡双轮车在只研究直立的情况下与倒立摆相似,因此这里将借助倒立摆的研究方式研究双轮车的平衡控制。

控制车模平衡的主观经验。

一般的人通过简单练习就可以让一个直木棒在手指尖上保持直立。

这需要两个条件:一个是托着木棒的手可以移动;另一个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角速度)。

通过手掌移动抵消木棒的倾斜角和趋势,从而保持直立。

这两个条件缺一不可,实际上就是控制中的负反馈控制,见图2。

图2 在手上不倒的木棍世界上没有一个天才杂技演员可以蒙着双眼使得木棒在自己指尖上直立,因为没了双眼就没了负反馈的环节。

经过简单的分析可以得到图3所示的控制结构图。

图3 不倒的木棍的控制结构图同样,双轮直立车的控制也是通过负反馈来实现的,与上面保持木棍直立则比较简单。

因为车模有2个轮子着地,车体只会在轮子滚动的防线上发生倾斜。

控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体的平衡了。

如图4,5, 6所示。

图4 车体平衡,车轮静止图5 车体后倾,车轮向后加速图6 车体前倾,车体向前加速将双轮车简化成高度为L,质量为m的简单倒立摆,它可以放置在左右移动的车轮上。

与空气中的单摆类似,车身偏离平衡位置后要想能迅速的回到平衡位置,车身应该受到与位移方向相反的的回复力。

在平衡点附近,角度θ很小,即有sinθ≈θ。

假设车身偏离平衡角度后,将受到电机产生的与角度成比例的力:f = mk1θ(1)由于重力原因,车身偏离平衡位置后受到的回复力为:F = mgθ– mk1θ(2)从上式中可以看出回复力要想与位移相反,必须有k1 > g。

假设外力干扰引起车模产生角速度x(t)。

沿着垂直于车模底盘的方向进行受力分析,可以得到车模倾角与车轮加速度a(t)以及外力干扰加速度x(t)之间的的运动方程。

受力分析如图7所示。

图7 车模受力分析(4)车模静止不向前运动时,a(t) = 0,即:(5)对应车模静止时,系统输入输出的传递函数为:(6)此时系统具有2个极。

一个极点位于s平面的右半平面,车模不稳定。

在此处假设,k1 = 20用matlab仿真此系统:Matlab代码如下:%程序目的:在没有微分量的情况下仿%真系统的阶跃响应%author:程顺均%时间:2013.8.28sys = tf([1], [1 0 100]);t = 0:0.01:3;figure(1)step(sys,t);grid on仿真截图如图8所示:0.0020.0040.0060.0080.010.0120.0140.0160.0180.02Time (sec)Amplitude图8 比例控制系统的阶跃响应从图来看,与分析结果一样,系统的阶跃响应为等幅振荡,不稳定。

原因是在阶跃响应中没有阻尼,也就是说实际中的车不会倒向一边,而是在平衡位置附近来回震荡。

这显然不是我们需要得到的效果。

因此在系统中我们加入为微分量,也就是阻尼。

在实际中变现为阻碍车模转动的力,类似于摩擦阻力,大小方向与车身角速度有关。

即阻力(7)经过拉式变换,得到带阻尼的系统的控制结构图,如图9所示:图9 加入比例微分反馈控制的系统系统传递函数为:(8)此时系统的极点为:(9)根据自动控制原理稳定性分析知识知道,只有系统的2个极点都在s平面的左半平面时系统才是稳定的。

因此系统必须满足。

假设k2 = 0.5,k1 = 20。

利用matlab仿真。

仿真代码如下:%程序目的:在比例微分控制的情况下仿%真系统的阶跃响应%author:程顺均%时间:2013.8.28sys = tf([1],[1,5,100]);t = 0:0.01:3;figure(1)step(sys,t);grid on;title('比例微分控制时的阶跃响应');阶跃响应曲线如下:0.0050.010.015Time (sec)Amplitude图10 比例微分控制的阶跃响应曲线从响应的曲线来看比例—微分控制曲线能够比较收敛下来。

在宏观看来,就是车身能够很快到我们需要的角度,而不是一直在设定角度的前后震荡。

研究到此也智能算是解决了直立控制的问题。

在实际中往往有很多干扰因素,例如飞思卡尔竞赛中赛道上就设有比赛道高的路障。

如果稳定性较差的直立车在通过路障的时候,会直接倒下。

假设干扰信号为D(s),D(s)与的关系为:(10)这里我们把路障一类的干扰看成是脉冲干扰,D(s) = 1。

仿真参数不变,对干扰进行一次仿真。

仿真代码如下:%程序目的:仅在干扰下的输出响应 %author:程顺均 %时间:2013.8.28sys = tf([0.1 0 -10],[0.1 0.2 10]); t = 0:0.2:10; figure(1); impulse(sys,t); gird on;仿真截图如图11所示:Time (sec)A m p l i t u d e图11 系统对脉冲干扰的响应 从仿真的图来看,脉冲干扰会让本来已经稳定的系统来回的震荡,在多次震荡后才回到比较稳定的状态。

因此比例-微分控制的方式能够满足我们的要求。

对于一个系统来讲,能够稳定下来并不是我们追求的最终目标。

接下来将详细研究系统的优化和稳定性。

三.系统控制的优化飞思卡尔智能汽车竞赛中评比成绩是以在赛道上跑一圈的时间为唯一依据的。

这要求车在保持稳定的前提下以最大的速度前进。

系统的响应时间,抗干扰能力都是需要反复调整的。

快的调整时间,小的超调量,高的稳定性都是我们期望的结果。

3.1 PID 调节参数的优化一般的系统我们都需要短的调节时间,小的超调量。

往往我们是不能两方面做到极限,但是通过PID 参数的调节,我们可以得到一个满意的调节过程。

为了研究每个参数的意义,先进行单参数的研究。

P 一般是作为比例项,决定了系统的部分响应速度。

在这里我们使用一个仿真代码完成这个仿真。

仿真代码见附件1:Kp的研究通过改变系统的Kp,可以得到一系列的仿真图。

这里选取4组做研究。

分别为100,400,1000,2000。

仿真图如图12,13,14,15所示。

图12 Kp = 100时的阶跃响应图13 Kp = 400时的阶跃响应图14 Kp = 1000时的阶跃响应图15 Kp = 2000时的阶跃响应为了方便对比出他们的不同,这里将他们的响应特征列表出来,如表1所示。

从表的的数据和调整图像来看,Kp的值很小的时候,系统的第一次上升达不到我们需要的值,需要积分项才能弥补。

这不是我们需要的结果。

而当Kp值很大的时候,上升时间缩短,超调量也会增大。

因此Kp值得选择主要影响了系统的响应能力。

Ki的研究PID中的I是积分项,主要是消除稳态误差。

下面通过4组不同的参数的测试研究其作用。

Ki的值为100,400,1000,2000的时候的值仿真图如图15,16,17,18所示。

图16 Ki=100的稳态误差图17 Ki=400的稳态误差图18 Ki=1000的稳态误差图19 Ki=2000的稳态误差从图像可以看出来,其上升速度和超调量并无太大的差异。

他们的差异主要体现在稳态误差上了。

将四组仿真的稳态误差在1.5S时取值列表得表2。

从表的数据很明显的可以看出,增大Ki值可以减小稳态误差。

但是由于系统会受到一些小的干扰,所以Ki的值也并不是越大越好!Kd的研究在PID调节中微分项起预见作用,在系统靠近预期值时可以减小控制输入量,进而减小超调量,增强系统的性能。

下面同样通过4组数据研究Kd 值对系统的影响。

Ki分别为10,20,40,60时的仿真图如图20,21,22,23所示。

相关主题