赞
踩
实现智能小车进行光标追踪定位,实现智能小车的平稳的速度控制,此外还可以智能避障。
KL26 单片机,编程语言 C,OV7725 摄像头,SHARP 红外传感器,舵机,电机,
车架等。
没有强烈日光下的条件下。
舵机控制算法:
在智能小车在采集到图像数据后,为了使智能小车能够迅速定位光标所在位置,并且调整车体方向,因为其简介明了的公式以及良好的控制效果被广泛地应用在工业现场。在舵机控制上,采用 PID 控制算法中 PD 控制算法。PID 是传统的工业控制算法,智能小车在舵机控制上整体具有较大的惯性,所以方向控制有迟滞性,为抑制车体在方向转换时的抖动和控制量输出的积分死区,为此采用 PD 控制算法来调节。假如使用 PID 调节的话,那么积分项会不停的累加所以就会造成积分饱和的现象,积分饱和就是指积分项在 e(t)不断的累积下,控制量的输出达到了最大,但是误差还在累积,这样就会造成积分项过大,即使误差变为开始反向后,由于积分项的累加不能及时的减小控制量的输出,造成整个系统的震荡。模拟系统 PD 调节器的公式如公式(1)所示。
P(t)= Kp[e(t) +Td *de(t)/ dt] (1)
式中,P(t)——调节器的输出信号(此系统的输出 PWM 占空比);
e(t)——调节器的偏差信号,(此系统的采集图像的目标中值和摄像头中线的偏差);
Kp——调节器的比例系数;
Td——调节器的微分时间;
经过计算机离散后的公式如(2)所示。
P(k)=Kp{E(k)+(Td /T)[E(k)-E(k-1)]} (2)
式中,T——采样周期;
E(k)——第 k 次采样时的偏差;
E(k-1)——第 k 次采样时的偏差值;
k——采样序号;
P(t)——第 k 次采样调节器的输出;
2. 电机控制算法:
PID 算法包括位置 PID 式和增量式 PID,其中位置式 PID适用于阀门开度和输出一一对应的情况,比如经过归一化后,控制量输出 0.5那么阀门就开到一半,控制量输出为 0,那么阀门就会全关(没用信号时为常闭阀门)。例如电机和舵机就用位置式 PID 即可。而增量式 PID 它的输出是控制量的增量,每次只输出一个增量,用于控制一些带有积分环节的执行机构,比如步进电机等。他们都是 PID 调节只是形式不同而已。增量式的优点就是每次只是输出一个控制增量,其误动作很小,系统故障的时候不至于产生较大的波动;增量式也不会产生积分饱和的问题,因为在推导出增量式以后,每次输出的增量都只是与 e(k),e(k-1),e(k+1)有关,与误差的累积量无关,所以不会有误差累积的问题;在手动和自动的控制输出切换的时候不会产生设定值变化过大造成的系统振荡。而在采用位置式的时候,也可以根据一些策略来控制积分饱和问题,例如积分限幅,即将积分项的输出控制在一定范围内,不让其过大,此外还有积分分
离等积分项控制算法。
在控制智能小车的电机时采用的是位置式的变形,推导如下:
当前的输出:
上一次的输出:
将(3)和(4)作差:
得:
以上的位置式变形后就不需要积分项的累加,只需要上一次的输出以及e(k),e(k-1),e(k+1)三次连续的偏差即可。
上述的算法中,其中有比例系数,积分系数,微分系数,这三个量的好坏影响着整个系统的运行,三个参数的选择十分关键,可利用建模的方式进行分析此外工业现场一般利用经验来调试参数,这种方式用于系统精度要求不高的情况下。
3. 摄像头控制算法:
摄像头采集图像后,将图像数据进行处理,通过将摄像头传来的数据进行解压,解压为一个二值化的二维数组,摄像头的控制主要操作这个数组。这个二维数组就代表着一幅图像,我们的目的是将图像采集的光标中点坐标信息提取出来,因为实验在理想的没有强烈日光的影响下,我们的图像中只会有光标产生的图像。我们遍历二维数组的每一个像素(这里一个数组的数据代表着一个像素),当遍历到像素值跳变的时候:像素值从0变到1的时候,记住这个下角标,然后在1变到0的时候记住此时下角标,然后作差得出当前行的宽度,继续遍历每一行,然后通过冒泡算法得出光标最宽的一行即光标的纵坐标,然后将最宽的一行的左右跳变点的横坐标相加除以2再加上最左边的跳变点就得出光标中心的横坐标。最后将纵坐标的值带入舵机进行PD运算。在这个过程中虽然是在理想的情况下,但是图像避免不了还是会有一些噪点,所以采用图像滤波的方法,因为我们对图像信息不需要清晰图像信息,只要坐标位置,顾才有高斯模糊。高斯模糊简述:我们已当前遍历像素点为中心,取此像素点的邻域像素点,并给每个像素点赋值满足某一特定分布的权重最后相加取值进行判断。
4. 避障控制算法:
在避障上会遇到的问题主要是误判以及评价指标的偶然性,所以采用四个传感器来减少偶然性,并给每个传感器对应的数据分配符合实际情况的权重,以为由于传感器的位置不同,他们的评价指标必然不同,不能同一相比。第二点就是才回来的数据的质量问题,由于某些原因,传感器采集回来的数据会有噪声所以采用滑动平均滤波的方法来讲这些数据的毛刺去除。滑动平均值滤波:由于均值滤波的每次都要攒齐一定的数据进行加权平均,所以会占用一定的时间,而采用滑动平均滤波则是采用排队的方式的先进先出原则进行滤波,这样加大运行效率。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。