经典控制
开环控制与闭环控制
这是机器执行命令的两种最基本方式。开环控制就是“盲发命令”:你把指令发出去,然后干脆相信它能成,从不检查结果。闭环控制则是去测量实际发生了什么,再把这个测量结果反馈回来调整命令,直到现实与目标相符为止。最鲜明的对比就是用两种方式烤面包——定个时间然后走开(开环:面包可能没烤上色,也可能烤焦了,你要事后才知道),相对的是站在旁边盯着面包、一变金黄就立刻把它取出来(闭环)。
开环更简单、更便宜、也更快,因为它不需要传感器、也从不自我怀疑——微波炉转九十秒、洒水器按钟点喷水、步进电机被命令正好走两百步。只要世界完全按照假设的样子运行,它就能干得漂亮。但它根本不知道自己什么时候出了错:如果食物本来是冻的、土壤其实已经湿了、或者电机打滑了,开环系统照样兴高采烈地一路运行下去,最后给出一个糟糕的结果,因为那条从输出回到输入的“环”被留成了开口、断掉了。
闭环代价更高——它需要传感器、需要做比较、还需要仔细整定——但它用这份代价换来了在混乱多变的世界里依然保持准确的能力。“环”这个字指的是信息绕的那个圈:命令发出去,传感器读取结果,这个读数再回流过来、重塑下一条命令,把圈合上。几乎每一台必须精确或必须安全的机器人都跑闭环;而开环只在任务廉价、可预测、且出点错也无所谓的地方才能存活。
一台老式摆钟跑的是开环——它只按自己的节律不停摆动,从不核对真正的时间——所以会慢慢走偏;而一部会重新和授时服务器同步的手机跑的是闭环,因此始终精准。
不核对就会慢慢漂移;核对并纠正才能始终如实。
许多真实机器其实两者都用:用一个快速的开环估计把你大致带到目标附近,再用一个较慢的闭环修正去清除剩下的误差——这叫做前馈加反馈。
又称
另见