|
里面包含了很多的PID知识,
免责声明:部分来源中国电子设计竞赛官网。
速度控制: 要进行速度控制,首先需要读取编码器的脉冲,由于 K60 自带正交解码的功能,因此输入编码器的 AB 相, 就可以直接读取速度脉冲以及正反转。
关于参数整定:
直立控制的速度 PID 只需要使用 PI 控制即可,在整定参数时根据出现的现象调整参数, (以下是直立车的
现象!!! )P 过大,小车过弯道时出现点头现象(摄像头车表现为轮子会有正反转,也就是在赛道上一快一慢),
当然速度要在 1m/s 以上,I 过大小车一走一停,速度不均匀,直立车速度在 2m/s 以下不要考虑直道加速,弯道 减速,这样会造成小车的不稳定,反而丧失了速度,如果你能以 2m/s 的速度匀速跑完,事实上参数已经整定的 不错了。一般来说,一组速度 PI 参数可以适应高速和低速,因此,这套参数不需要根据速度不同而多设几组。 参数整定的方法有很多,如果仅仅是利用肉眼观察,是不容易知道小车是否匀速,这时有几种方法可以借鉴。 第一种,由于速度 PI 是 100ms 控制一次,因此每 100ms 把编码器测的速度存到 SD 卡中,这里需要注意的是, 对 SD 卡不要写文件(如.txt),而是要写扇区,写文件太费时间了,如果是摄像头组的同学,建议好好研究下 SD 卡如何写扇区,如何读取(用 winhex),自己制作一套上位机(VB 就足够),用来读取。此种方法的缺点是需要 插拔 SD 卡,不方便。第二种方法,就是把编码器的脉冲存入单片机的一个数组,等到跑完一圈后,让小车发送 到虚拟示波器上,这种方法比较可靠、方便。 注意:不要期望小车边跑边发脉冲,本来直立车就是不稳定体,加之串口发送数据很费时间(波特率为 9600 时, 发送 4 个数字,大约费时 5ms,如果使用虚拟示波器发送一路信号大约费时 8ms),影响直立控制,表现为小车 发一次脉冲,小车抖一下,这种情况下测得的速度也是不可靠的,对于四轮车,也不建议使用这种边跑边发的方 法。 本届比赛我们采用第二种方法,具体思路是: 这里是当时的方法,现在看来有些复杂了,下面将介绍另一种简单的方法。第九届的思路是: 一、当小车刚刚站立所设速度为 0 时,不进行检测,由于我们使用上位机发送速度给小车,因此当小 车站稳后,发送给小车一个速度,之后小车起步开始跑了,当 15s 后开始检测所设速度是否为 0,如果为 0,就 利用串口把存入数组的数据发送到虚拟示波器上,当然在发送前,先把小车的驱动关掉,不然小车会疯转,所设 的数组大小根据赛道长度和小车速度来设,只要不溢出就行。 每 100ms 进入一次
了解相关程序下载文件。
|
评分
-
查看全部评分
|