地点:斧王岛屠夫训练营。
假如你是一只屠夫,你看到一只斧王从你的屏幕前缓缓走过……
毋庸置疑,你要做的事情就是勾中他!
假如斧王处于屏幕的正中央位置,而你的鼠标光标在屏幕的最左端。
比例环节P
屠夫训练营1:勾中一只挂机的斧王。
一开始,你迫不及待地移动鼠标,想要将光标对准斧王的位置!因为这时候你的光标和斧王的距离很远,也就是误差还很大,你并不担心鼠标的移动速度问题。
但是后来误差值减小,你的钩子就很难瞄准斧王,你不得不放慢鼠标移动的速度,因为你要尽可能地让光标和斧王重合。
在这个过程中,鼠标灵敏度就是比例系数kp,如果比例系数太小,那么想达到稳态需要的时间就会很长,对于我们超凡选手而言,钩一个人要花费5秒钟的时间是不可饶恕的。而如果比例系数太大,就会产生难以控制的震荡,你的鼠标稍微一动就会使光标从屏幕的最左端移动到最右端,这种情况就算是职业选手也无能为力,斧王呆呆站在屏幕中间挂机,仿佛在嘲讽你。
所以一个合适的比例系数是很重要的。但这只能帮助你钩到一个挂机原地不动的斧王。
积分环节I
屠夫训练营2:勾中一只移动中的斧王,钩子移动速度为亚光速。
单纯依靠比例环节是不能勾中一只移动中的斧王的,假设斧王的移动速度是1m/s,初始误差为4m,比例系数为kp=0.5,每一秒改变一次控制策略。
这样一来,第一秒斧王移动了1m,你的鼠标移动了2m,误差减少1m变为3m;第二秒你的鼠标只能移动1.5m,误差减少0.5m变为2.5m;第三秒你的鼠标移动1.25m,误差减少0.25m变成2.25m……一万年后,你的鼠标移动速度无限趋近于1m/s,而误差无限趋近于2m,你永远也摸不到斧王一根毫毛。
你会发现你做了一万年的无用功。但我们的耐心是有限的,如果太久还是勾不到,我们就会变得烦躁,忍不住加快手中的动作,时间过得越久,我们摔键盘的冲动就会越大。
所幸,冲动就是动力,假设积分系数ki=0.5,第一秒你没觉得厌烦所以维持不变,第二秒你忍不住加快速度,你想起第一秒还剩3m的误差e1,于是你在之前的基础上增加了e1×ki=1.5m/s的速度,第二秒你的鼠标就移动了1.5m+1.5m=3m,斧王依旧移动1m,于是误差只剩下e2=1m了。
然后同样道理,第三秒你本来的速度应该是e2×kp=0.5m,但请神容易送神难,你在第二秒增加的1.5m/s的速度赖着你不走了,不仅如此,你还要再加上第三秒因积分环节产生的速度,也就是上一秒剩下的误差乘上积分系数e2×ki=0.5m/s,于是你第三秒的速度变成了0.5+1.5+0.5=2m/s,与斧王的速度差为1m,而误差e2也是1m——诶!你发现你的鼠标终于碰到了斧王。
所以说积分环节是一种对过去错误的补偿,但是它是一种敌我不分的40m长的大砍刀,很容易就会伤到自己人。上述示例过程只是一种理想的情况,你恰好在第三秒结束的时候瞄准了斧王;但如果积分系数的选择不是恰到好处,你一不小心将鼠标移动多了一点,那么因积分环节累加的速度将会被保留下来,让你来不及“刹车”。
微分环节D
屠夫训练营3:勾中一只移动的斧王,钩子移速正常。
到这里其实就很好理解了,你的钩子并不是亚光速,你除了需要计算光标和斧王之间的距离,还要考虑屠夫自身与斧王的距离,这个距离会影响到你的出钩时间。然后你要根据这个出钩时间,计算出在这段时间内斧王会移动多少距离,然后提前将鼠标移动到几秒之后的位置……也就是我们常说的“预判”能力了。
微分环节就是一种对未来的预判。
至此,我们终于能从斧王岛毕业了!
然后你收到了斧王保护协会发来的律师函。