智能化时代的实时控制
上周去清华大学时,软件学院的王建民院长拿出一本30年前内部印刷教材感叹道:前辈们早已认识到的问题,现在很多人还是没有意识到!王老师说的,是关于实时系统和非实时系统的差异。
实时系统的特点,是必须及时响应——慢了可能就会出错。而“快”只是表现:背后的难点是要“对”——如果做错了,可能没有时间改正。
要防错,就要知道出错的原因。实时系统为什么会做出错误决策呢?最常见的原因,是输入数据的误差过大。在网络时代,还可能有延迟过大或者时序颠倒等问题。安全、稳定、可靠是现代工业的底线。技术做到极致时,难点往往就是处理这些麻烦。
自动化系统是典型的实时系统。
控制论中有种控制算法叫做“逆系统方法”。理论上讲,这种方法是“指哪里打哪里”、是最好的控制方法。但为什么人们很少知道、很少使用呢?一个重要的原因就是这种方法对(输入或模型)误差太敏感,导致控制结果不稳定。事实上,控制论最重要的思想“反馈”,其实就是在允许出现误差的基础上不断校正——没有误差是不可能的。
在工业中,传统的自动控制算法往往是用在某个工作点附近,自变量的变化不大。我们知道:在一个工作点附近,系统往往可以用线性近似。但是,产品种类、设备状态、上下工序协同要求、经营目标(比如,更重视质量、产量还是能量?)发生变化时,会导致而工作点的变化。工作点变化时,系统的非线性特征往往会显现出来。非线性会导致模型参数变化,不确定因素会导致模型结构变化。这样,固定参数的控制算法往往就不行了。
还有一种麻烦的事情是“时间的变化”:控制系统运行久了,外部环境(如温度)、系统特定(如管道堵塞)也会发生很大的变化,甚至控制目标都会发生变化。这时,控制算法的效果会严重变差。
在现代化工厂中,这些变化几乎是不可避免的。这时候,书本上的控制方法、特别是基于线性系统的方法往往就难用了。
面对这种复杂问题,一般是用控制软件来处理的。软件就是用来应对这些复杂变化的。如系统特性变化、工作点变化、控制要求变化等。我们知道:软件处理问题的前提是计算机能够得到充分的、数字化的信息。如果决策所需的信息不是数字化的(如打电话获得的、眼睛看到的),就离不开人的操控,智能化就会打折扣。
软件所需的信息从哪里来呢?一般是从设备传感器和管理系统中来。最典型的是:管理系统告我们生产什么产品(工作点和要求变化)、前后工序的要求(生产节奏变化等)、设备状态(可能引起模型参数变化)等。大家注意到:要做到这一点,前提就是要做“信息集成”啊;换个角度看,就是要做“管控一体”啊!这样,其实就是进入了智能化的时代。
变化因素多了,可能会出现各种不同状态的组合,组合出无穷多种场景。但是,既然是实时控制,数据的质量问题还会出现、甚至更加严重。对这些组合怎么办呢?于是,麻烦的事情就来了。
有一种常见的现象是:人们不知道某些特定的场景下,系统的控制方法是不是合理的。工业中最怕风险。如果不能确定,就不能智能化运行,只能交给人去做。
这个问题怎么解决呢?我们过去的办法是:针对各种场景做一些仿真。把各种可能的极端情况试一下,就可以放心用了。所以,开发智能控制系统,常常需要做仿真。未来的数字孪生,会在调试过程有用。
另外,系统的特性漂移几乎是难以避免、又难以检测的。这时候怎么办?这时,智能系统需要搞一些参数。这些参数最好能够进行自学习。实在不行,让人去设定系数。如果没有这些手段,系统往往很快就不能用了。所以,智能控制系统中的自学习也是常见的。
现实中,还会有大量的信息难以进入系统。比如,今天领导重视质量、明天重视交货期。处理这些问题的时候,需要系统有一定的灵活性,还需要使用软件的人有一定的水平。
所以,智能化时代的实时控制,麻烦真的很多。几年搞好一个东西,也不意外。搞不成实时控制,做实时管控也不错。