预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

4.3.2PID控制调整速度本系统采用的是增量式数字PID控制,通过每一控制周期(10ms)读入脉冲数间接测得小车当前转速vi_FeedBack,将vi_FeedBack与模糊推理得到的小车期望速度vi_Ref比较,由以下公式求得速度偏差error1与速度偏差率d_error。error1=vi_Ref–vi_FeedBack;(公式3)d_error=error1–vi_PreError;(公式4)公式4中,vi_PreError为上次的速度偏差。考虑到控制周期较长,假设按2.5m/s的平均速度计算,则一个控制周期小车大概可以跑过2.5cm,如果按这种周期用上述PID调节速度,则会导致加速减速均过长的后果,严重的影响小车的快速性和稳定性。为了解决这个问题,可以在PID调速控制中加入BANG-BANG控制思想:根据error1的大小,如果正大,则正转给全额占空比;如果负大,则自由停车或给一个反转占空比;否则就采用PID计算的占空比。PID控制算法为了使赛车平滑得保持在黑线中央,即使赛车的偏移量平滑地保持在0,实用了PID控制算法。P为比例参数,D为微分参数。基准值为0,PID输入为水平偏移量X0,PID输出为转角,转角方向:向左转为正,向右转为负。P参数在智能车控制器中表示水平偏差量的权,D参数在智能车控制器中表示水平偏差速度的权。水平偏差量直接反映了赛车偏离黑线的程度,例如赛车偏向黑线的左边越厉害,则赛车的右转角度将越大。水平偏差量,是PID控制器的P部分。水平偏差速度则直接反映了赛车的运动倾向,因为有了赛车的水平偏差速度,对赛车的掌握,将更加精确。例如赛车偏向黑线左边,然而它的运动方向是向右的,那么,他的转角将比向左运动时的转角要小,因为,我知道赛车已经开始朝正确的方向调整了。水平偏差速度,是PID控制器的D部分。通过两个相隔一定采样时间的水平偏差量的差,来得到赛车的水平偏差速度。然而,这个时间间隔多少比较合适呢?图3.3上述函数图像的横坐标为采样时间t,每小格为4ms。第1幅图像的纵坐标为赛车水平偏差量;第2幅图像的纵坐标为间隔为1的时候水平偏差速度;第3幅图像的纵坐标为间隔为3时候水平偏差速度;第3幅图像的纵坐标为间隔为5的时候的水平偏差速度。由上图可知:相邻采样点越远,数据的值域越大,更有利于描述车辆的偏差程度,但是,会降低赛车判断的响应度;相邻采样点越近,数据的值域越小,0状态越多,不利于描述赛车的偏差程度,但是有利于响应赛车的偏差程度,所以,这个相邻的数量要适中。上图中,间隔3比较合适。Proportion为的P参数,Derivative为的D参数,LastError[]为的水平偏差量队列,水平偏差速度即队尾-队头,队列长度为LAST_ERROR_NUM,即表示间间隔。通过实验,长度20比较合适。有了偏差Error,有了dError=LastError[0]-LastError[LAST_ERROR_NUM],输出值为PID_Output=Proportion*Error+Derivative*dError。3.6PID控制算法的改进通过实验和软件仿真,发现,PID控制器并不是在任何情况下,都是最优的选择,比如,在直线上,PID控制器的调整时间,远大于枚举调整法,而在严重偏离的时候,由于赛车的水平偏移量已经固定不变,所以,也没有必要使用PID控制了。所以,将赛车的状态分成了3种,下面逐一介绍并说明智能车在这一状态下的控制算法。1:赛车处于直线状态:如果赛车居中,则转角=0。如果赛车在右边,则转角=2。如果赛车在左边,则转角=-2。电机占空比均为最高。2:赛车处于严重偏离状态:如果赛车严重偏左,则赛车右转最大角度。如果赛车严重偏右,则赛车左转最大角度。电机占空比均反向,表示刹车。3:赛车处于一般弯道状态(即赛车有偏移,但能检测到黑线):则将赛车的水平偏移量作为PID控制器的输入,然后经过PID运算,得出的值为转角的映射。最后,通过一个一次函数,将输出映射成转角的值即可。对于电机的控制,抽象出3种情况。第1种,是稳定过弯,即水平偏移速度很小,这时候,采用加速过完的策略。第2种,是极不稳定的情况,即水平偏移速度很大,这时候,采用刹车策略。第3种,是一般情况,此时,采用匀速通过转弯的策略。实验证明,这种抽象可以使赛车适应几乎任何曲率半径小于500mm的弯道。模拟量的采集和PD控制模拟量的采集和位置、角度计模拟量采集传感器仍然是红外光耦传感器,接收管输出不经过施密特触发器转化成数字量,而是接到单片机的A/D转换接口进行转换。位置计算全局求位置法通过各个传感器的信号可以计算出连续的黑线位置,较简单的办法是用类似于长杆求重心的方法,将各个传感器输出分别乘以