小张选择了一片空地。准备建设自己的家园。水无疑是最重要的,日常生活里少了水可不行,这片空地旁有条河,小张看中这里也正因如此。但令小张苦闷的是,每次用水的时候都需要自己去挑,偶尔还好,随着需求的增加,这样的方式明显越来越累。有人说这好办,雇个人专门负责呗,但雇人也得用钱不是。于是小张去河边看了看,正好有一个合适的地方,可以安装水管,这样每次当他需要用水时,打开水龙头就可以了。大家想一想,从需要用水到打开水龙头,一般不需要什么其他的操作,一条线下来就可以了,所以这种方式也被称为开环控制。
水的来源解决了,接水时又出现了一个问题,因为无论大小,只要是容器,它的容量是有限的,所以接水时,小张需要在旁边随时观察着水位情况,一来二去每天有很多的时间花费在这个方面,处理这个问题的一种思路是引入定时器,通过生活经验可以知道接满一个具体的容器大概需要多长时间,然后设定定时器,到点自动关,这是另一种开环控制。
有同学可能要问,其他的我都知道,为啥不叫直线控制,叫什么开环控制,引入“环”这个字做什么?我们接着看,设定定时器这个思路很有用,但对于不同容器情况,这种思路不怎么适用,每换一个容器得重新设置一下定时器,这比较麻烦,我们研究控制,最主要的目的还是能省事就省事,得抽出时间去做其他更要紧的事情。
于是小张分析了接水过程,发现其中一个重要的环节就是测水位然后把信号再送回人,人再去关闭水龙头,流程上形成了一个环,把这个过程画成图后,可以画出一个圆圈,所以被形象的称为闭环控制。而“测水位把信号送回人”这个部分如果去掉,我们就又回到了上边的定时器场景,所以为了展现区别,使用了开环控制来描述。
这样,小张获得了一个可以控制水位的系统,别的不说,接水时省了很多事情,水龙头一扭,需要时直接拿走,不用担心其他问题。等的这段时间就可以做其他事情了。引入的这个部分丛直观上讲比较简单,似乎是理所应当的东西,但如果我们抽象一下,用一个词来形容这个部分的功能,我们就可以想到反馈这个词,这个问题的解决“反馈”做了很大贡献。既然效果这么好,我们接下来处理问题时可以从这个角度出发了。
过了不久,又有了一个需求:水虽然有了但是凉的,能不能接点热水?这样喝水时比较方便,这个简单,在水管上开了一个分支,加入了一个加热器(比如锅炉),剩下的都相同,这样出来的就是热水了。在安装完成后,小张接了一杯,但刚拿起来差点就掉在地上,因为温度实在太高,于是一个更加高级的需求产生:能不能直接出温水?这样也不需要在旁边再晾一会儿,还能防止烫伤。
拿到这个需求时,小张梳理了一下,温水?好办,设计两个管子,一边加冷水,一边加热水,随时检测温度,温度高了加冷水,温度低了加热水。这样不就行了。这种简单闭环的设计思路被称为开关控制,很快搞了出来投入使用。
但有些事情并没有那么简单,小张使用时发现,这个开关控制的思路存在着一些问题,比如这种设计理论上很好,实际中,尤其是到温度线那里时,温度差一点,热水开关打开,温度上升很快超过了界限,然后冷水开关打开,温度又迅速下降低于界限,如果把温度曲线绘制出来,可以观察到反复震荡的图像。等到温度差不多了。估计出来的水都能装满一个池塘了。
有一个很直接的道理:既然想自动,首先得明白怎么手动。所以为了摸清楚里面的机理,小张决定拿上温度计,自己手动去调节,看看怎么得到温水。经过一系列的实验后,特别是烫了不少次手、浪费了不少水后,小张总结了里面需要用到的一些技巧,比如在温度比较低时,把热水开关开大,随着温度的升高,逐渐关小热水开关,以控制温度上升速度,如果温度超过期望值,则逐渐打开冷水开关。简单来说,需要关注的量,就是温度的差值和温度的变化速度。
那么,温度的变化怎么衡量呢,高中数学告诉我们,求导,导数就是用来衡量变化的,没有接触过导数的同学也不用着急,只要记住他是一个衡量变化的量就可以。至于累计的变化量则用积分表示,这里的积分并不是我们常说的游戏里的积分,它是一种求累计的工具,摸清楚这个机理之后,小张在原有的反馈机制里,用电路等形式加入了求导和积分环节,模仿自己手动操作,用来处理变化速率问题。如果大家之前接触过控制,问问自动化专业的学生什么方法最常用,大部分人都会说PID,听上去很高大上是不是,其实我们这段说的就是至今仍然在广泛运用的PID控制算法。
到这里,小张获得了一个可以随时接温水的机器,暂时没有了其他问题,装修完新家后,邀请了一些朋友来家里玩,顺带给大家介绍介绍自己的心血。其中有位朋友叫小王,是数学系的,对这套温水器感觉非常好奇,仔细听过小张的经验介绍后,提出了一个问题:**你怎么能够确定,经过你这个调节方案,能够达到你所期望的值呢?**小张一时难以回答,因为他在实践中确实也发现,一些调试方案不能达到预期的效果。
小王感觉到这是一个值得讨论的话题,回到学校后,和同事讨论了起来,他们首先画了整体的图,然后找了几组变量,列出了再熟悉不过的方程,因为包含求导和积分环节,被称为微分方程,然后就开始解,解完又求了各种参数,还探讨了几种新解答。
不过大家也都知道,普通方程有时都很难解,更不用说微分方程了,而要是想解决上边这个问题,还真得知道解的情况,此时有人提出,哎,咱们可以只盯着输入输出啊,说白了就是把温水器看成一个整体,只关心输入多少与输出多少的比值,里面的机理暂时不用描述太多,又有人提出,我记得拉普拉斯他老人家好像提过一个变换,可以简化微分方程,然后一顿操作,得出了一个输出与输入的比值函数,它反映了这个系统的基本性质,至于叫法不同,有的叫传递函数,有的叫系统函数。
拿到这个函数,要分析它什么性质成为一个问题,小王看了看现场需要,发现现场总是需要经过控制达到一个输出稳定的状态,比如输出恒温的水,输出稳定的电流,保持一定的水位,而这种状态,转化成数学,就是当时间趋于无穷时函数是否有一个固定值,如果有,就可以说这个函数是稳定的。
问题清楚了,剩下的就是求解,根据前面的说法,前面的传递函数是输出输入之比,大家想到比值会想到什么呢,分母不能为零。那么这个使分母为零的点就是一个需要关注的点。
这里为了方便下面结论的理解,我们稍微偏下题,1*1=1,2*2=4,3*3=9,那么谁乘以谁等于-1呢?这个问题曾经给数学带来的冲击不小,最后大家为了解决这个问题引入了一种新的数,规定i*i=-1,称为虚数,并放在了我们熟悉的数后边,举一个例子,比如2,用这种新表述就是2+0*i。如果我们把以前熟悉的数放在一条线上,而把i放在另外一条线上,让这两条线成90度,那么我们就获得了熟悉的坐标系。而那些前边数字为负数、后边i的系数无所谓的点,则全部在坐标系I轴的左侧。
我们回到主题,有了“使分母为零的点”这个可能的方向,小王很快发现,对于传递函数来说,当使分母为零的点在坐标系i轴的左侧时,它是稳定的。由这个现象出发,通过数学推导,利用方程的系数上总结了几条结论,用来判断系统的稳定性,这就是著名的劳斯稳定判据。
小王带着这个判据回去找到了小张,与他一同进行了多次实验,细致分析了温度曲线,陆陆续续规定了一些指标,比如:
上升时间(从零时刻到首次达到稳态值的时间)、
调节时间(从零开始到进入稳态值的95%--105%(或98%--102%)误差带时所需要的时间)
超调量(过渡过程的最大偏差)等;
做完这些之后,小张对于自己的系统也有了更清晰的了解,尤其是提出的指标体系更加细化,感觉到了数学帮助人思考的重要作用,但他又向小王提问了一个自己之前遇到的问题:在一些设计方案中,输出的水温比较稳定,这很好,但是用温度计一测,和期望值有点差距,比方说需要39度的水,可能输出的一直就是20度的水,这让小张感到很困惑。
小王感觉到这里面一定有秘密,于是他们又开始实验和理论分析,通过分析,他发现,这是一个系统性质。称为稳态误差,而对于如何求解,小王想起来数学上一个专门处理这类问题的工具:**终值定理。**终值二字,正是我们所要解决的前面刚提到的:“当时间趋于无穷时函数是否有一个固定值”。
到这里,似乎理论已经齐备了。但真的齐备了吗?
(未完待续)