高中毕业,高考成绩不错,这一个假期的时间相当富裕,准备静下心来研究PID算法,手边有LEGO EV3机器人,正好是很优秀的实验平台,研究完了以后,在这里谈谈我的感想。
公式:
光感测定值 - OFFSET(平均值) = ERROR(误差)
TP(目标功率/直线功率)-/+ TURN = 左/右电机功率 (文章中所说的原函数)
KP*E + KI*I + KD*D = TURN
OFFSET、E和TURN看起来可能很没有必要,但是定义它们属于流传已久的经验方法是先人总结的产物,他们的巧妙之处在之后的实际参数调整和后续的计算中会慢慢体现出来。
不论用不用LEGO平台,入门的PID学习都可以参见糖大的帖子:用于乐高机器人的PID控制器
PID算法虽然可以说是应用最广泛的控制算法,但是它的的要求一点不少,比如:必须是线性变化,对动态范围宽度要求较高。这次我研究的是较为简单的PID算法,光感值经过PID算法处理只需要控制电机功率。具体算法以及实现方式,请参见糖大的帖子,在此不多赘述。
下面是心得体会:
选择LEGO的平台有优点也有缺点,优点是:电机性能保障,其动态范围宽(PID对动态范围有很高的的要求)、加减速响应快、扭矩大。缺点是:其一、常用的LEGO编程IDE——EV3-G(可以刷其他固件,直接写代码),是图形化编程界面,对这种变量较多的程序并不友好,写起来很累。其二、LEGO的颜色(光电)传感器在巡线时,离地高度不好控制,太高就容易被环境光干扰(太阳光敏感些),太低就容