控制现在很大程度上是个工程问题。距离纯粹的学术研究越来越远。这意味着,任何控制理论最后的落脚点必须是现实的问题。一个控制理论做得再炫,不能解决任何实际问题也白搭。
这一点需要每一个学习控制论的人心中有数。
PID控制好不好用?很好用。你可以不知道经典控制理论,不知道什么是二阶系统,不知道零极点分布,只要知道PID三个增益各自会如何影响系统响应就够了。
我觉得世界上也许有80的控制问题可以用PID搞定,剩下的20%里面又有90%可以用PID加前馈解决。最后其实可能只有那么1-2%的控制问题必须用成体系的控制理论去解决。如果你要做控制,就要把自己摆在那1-2%的控制问题所在的位置。
这些问题可能有哪些特征呢?
1. 高度非线性;
2. 多输入/多输出,且高度耦合;
3. 系统延迟极大,但控制指标要求却不低;
4. 传感器信息非常有限,或更新频率相对很低;
5. 系统参数变化很大;
等等。
对于这些高难度系统,一个控制工程师不应该再仅仅专注于控制,而应该从全局上把握整个系统。
很多的控制问题,只要把传感器或者驱动装置进行一定限度的改良,立刻就能将难度降低大半。
比方说自动驾驶车辆里面的车辆朝向的控制,如果只部署一个GPS传感器,那么只有当车子运动起来以后你才能知道具体的朝向(磁力计的精度太差),而且运动速度越低方向测量精度越差。如果你需要低速下高精度的方向测量,那么你可能需要花费非常大的精力在扩展卡尔曼滤波、传感器融合等方面。但如果你一开始就部署两个GPS天线,直接测量车辆朝向,也就没这么多麻烦了。
越是复杂的系统越是如此。
在这个意义上,我一直主张控制工程师应该成为复杂机电系统的项目经理或者系统工程师。所有的机械部件,所有的传感器,所有的电路,最后都要由控制系统来支配。所有的控制目标都要由控制系统来实现。只有控制工程师是同时要和一个设备的上下游同时打交道,只有控制工程师能够将最终目标转化为对各个子系统的具体要求。如果仅仅是把一个已经定型的复杂机电系统交给控制工程师去设计控制算法,那么大部分时候将无法完全发挥这个机电系统全部的潜力,或者会为了实现性能指标而产生成本浪费。
如此一来,一个控制专家,在如今的背景下,绝不只是一个能推公式写算法的专家,而是一个能够从全局高度上把握整个系统、根据控制目标来规划整个硬件/机械系统设计的项目经理。他必须了解各种相关传感器各自的优劣,能够权衡利弊,能够在成本允许的条件下对驱动器、传感器进行选型,向机械和电子工程师传达明确无误的信息,在必要时用算法补足实体系统的不足。
一向都有人说自动控制专业是万金油,而项目经理恰恰就应该是万金油——除了自己那一块要精通,其他方面也都需要有相当的涉猎,这才能够高水平的完成工作。
所以,对于做控制的人来说,首先需要明白那些需要你这样的人来解决的1-2%的问题在哪里。然后要尽可能地了解周边系统(机械、电子、力学等等)的知识。否则的话,往往会觉得并无用武之地,或者工作难以展开。