自动控制的科普综述文章少之又少,这一篇是难得好文章。甚至高于科普了。自动化专业的学生,能够把自己学的道理理解到这种程度的,又能占到多少比例呢?
写完聚乙烯的故事,就有写自动控制的故事的念头,但一直没有动笔。这个题目太大了,大得都不知道从何说起。既然大家看聚乙烯的故事还有一点意思,四一在 催,马鹿要“一”什么的,那就接着写自动控制的故事吧。反正是故事,别太当真,看着好玩就接着看,看着枯燥就拍桌子,看着有错就提个醒,看着糊涂的尽管 问,看着不耐烦了呢,也言语一声,我好闭上嘴不再烦人。哈哈。
(一)
小时候喜欢看杂书,没什么东西看,不正在文 化 大 革 命嘛?不过看进去了两个“化”:机械化和自动化。打小就 没有弄明白,这机械化和自动化到底有什么差别,机器不是自己就会动的吗?长大了,总算稍微明白了一点,这机械化是力气活,用机器代替人的体力劳动,但还是 要人管着的,不然机器是不知道该干什么不该干什么的;这自动化嘛,就是代替人的重复脑力劳动,是用来管机器的。也就是说,自动化是管着机械化的,或者说学 自动化的是管着学机械的……啊,不对,不对,哪是哪啊!
有人考证古代就有自动化的实例,但现代意义上的自动控制 开始于瓦特的蒸汽机。据说纽考门比瓦特先发明蒸汽机,但是蒸汽机的转速控制问题没有解决,弄不好转速飞升,机器损坏不说,还可能说大事故。瓦特在蒸汽机的 转轴上安了一个小棍,棍的一端和放汽阀连着,放气阀松开来就关闭,转速增加;按下去阀就打开,转速降低;棍的另一端是一个小重锤,棍中间某个地方通过支点 和转轴连接。转轴转起来的时候,小棍由于离心力的缘故挥起来。转速太高了,小棍挥会挥得很高,放汽阀就被按下去打开,转速下降;转速太低了,小棍挥不起 来,放汽阀就被松开来关闭,转速回升。这样,蒸汽机可以自动保持稳定的转速,即保证安全,又方便使用。也就是因为这个小小的转速调节器,瓦特的名字和工业 革命连在一起,而纽考门的名字就要到历史书里去找了。
类似的例子在机械系统里很多,家居必备的抽水马桶是另一个 例子。放水冲刷后,水箱里水位降低,浮子随水面下降,进水阀打开。随着水位的升高,进水阀逐渐关闭,直到水位达到规定高度,进水阀完全关闭,水箱的水正好 准备下一次使用。这是一个非常简单但非常巧妙的水位控制系统,是一个经典的设计,但不容易用经典的控制理论来分析,不过这是题外话了.
这些机械系统设计巧妙,工作可靠,实在是巧夺天工。但是在实用中,如果每次都需要这样的创造性思维,那太累,最好有一个系统的方法,可以解决“所有”的自动控制问题,这就是控制理论的由来。
从小大人就教我们,走路要看路。为什么呢?要是不看着路,走路走歪了也不知道,结果就是东撞西撞的。要是看着路呢?走歪了,马上就看到,赶紧调整脚步,走回到正道上来。这里有自动控制里的第一个重要概念:反馈(feedback)。
反馈是一个过程:
1、设定目标,对小朋友走路的例子来说,就是前进的路线。
2、测量状态,小朋友的眼睛看着路,就是在测量自己的前进方向。
3、将测量到的状态和设定的目标比较,把眼睛看到的前进方向和心里想的前进方向作比较,判断前进方向是否正确;如果不正确,相差有多少。
4、调整行动,在心里根据实际前进方向和设定目标的偏差,决定调整的量。
5、实际执行,也就是实际挪动脚步,重回正确的前进方向。
在整个走路的过程中,这个反馈过程周而复始,不断进行,这样,小朋友就不会走得东倒西歪了。但是,这里有一个问题:如果所有的事情都是在瞬时里同时发生 的,那这个反馈过程就无法工作。要使反馈工作,一定要有一定的反应时间。还好,世上之事,都有一个过程,这就为反馈赢得了所需要的时间。
小时候,妈妈在锅里蒸东西,蒸好了,从锅里拿出来总是一个麻烦,需要抹布什么的垫着,免得烫手。但是碗和锅的间隙不大,连手带抹布伸进去颇麻烦,我常常 不知天高地厚,自告奋勇地徒手把热的碗拿出来。只要动作快,手起碗落,可以不烫手。当然喽,要是捧着热碗再东晃晃,西荡荡,那手上感觉的温度最终会和热碗 一样,肯定要把手心、手指烫熟不可的。在从接触碗到皮肤温度和碗表面一样,这里面有一个逐渐升温的过程,这就是动态过程 (dynamic process)。这里面有两个东西要注意:一个是升温的过程有多快,另一个是最终的温度可以升到多少。要是知道了这两个参数,同时知 道自己的手可以耐受多少温度,理论上可以计算出热的碗在手里可以停留多少时间而不至于烫手。
反馈过程也叫闭环 (closed loop)过程。既然有闭环,那就有开环(open loop)。开环就是没有反馈的控制过程,设定一个控制作用,然后就执行,不根据实 际测量值进行校正。开环控制只有对简单的过程有效,比如洗衣机和烘干机按定时控制,到底衣服洗得怎么样,烘得干不干,完全取决于开始时的设定。对于洗衣 机、烘干机这样的问题,多设一点时间就是了,稍微浪费一点,但可以保证效果。对于空调机,就不能不顾房间温度,简单地设一个开10分钟、关5分钟的循环, 而应该根据实际温度作闭环控制,否则房间里的温度天知道到底会达到多少。记得80年代时,报告文学很流行。徐迟写了一个《哥德巴赫猜想》,于是全国人民都 争当科学家。小说家也争着写科学家,成就太小不行,所以来一个语不惊人死不休,某大家写了一个《无反馈快速跟踪》。那时正在大学啃砖头,对这个科学新发现 大感兴趣,从头看到尾,也没有看明白到底是怎么无反馈快速跟踪的。现在想想,小说就是小说,不过这无良作家也太扯,无反馈还要跟踪,不看着目标,不看着自 己跑哪了,这跟的什么踪啊,这和永动机差不多了,怎么不挑一个好一点的题目,冷聚变什么的,至少在理论上还是可能的。题外话了。
在数学上,动态过程用微分方程描述,反馈过程就是在描述动态过程的微分方程的输入项和输出项之间建立一个关联,这样改变了微分方程本来的性质。自动控制就是在这个反馈和动态过程里做文章的。
房间内的空调是一个简单的控制问题。不过这只是指单一房间,整个高层大楼所有房间的中央空调问题实际上是一个相当复杂的问题,不在这里讨论的范围。夏天 了,室内温度设在28度,实际温度高于28度了,空调机启动致冷,把房间的温度降下来;实际温度低于28度了,空调机关闭,让房间温度受环境气温自然升上 去。通过这样简单的开关控制,室内温度应该就控制在28度。不过这里有一个问题,如果温度高于28度一点点,空调机就启动;低于28度一点点,空调机就关 闭;那如果温度传感器和空调机的开关足够灵敏的话,空调机的开关频率可以无穷高,空调机不断地开开关关,要发神经病了,这对机器不好,在实际上也没有必 要。解决的办法是设立一个“死区” (dead band),温度高于29度时开机,低于27度时关机。注意不要搞反了,否则控制单元要发神经了。
有了一个死区后,室内温度不再可能严格控制在28度,而是在27到29度之间“晃荡”。如果环境温度一定,空调机的制冷量一定,室内的升温/降温动态模型已知,可以计算温度“晃荡”的周期。不过既然是讲故事,我们就不去费那个事了。
这种开关控制看起来“土”,其实好处不少。对于大部分过程来说,开关控制的精度不高但可以保证稳定,或者说系统输出是“有界”的,也就是说实际测量值一 定会被限制在一定的范围,而不可能无限制地发散出去。这种稳定性和一般控制理论里强调的所谓渐进稳定性不同,而是所谓BIBO稳定性,前者要求输出最终趋 向设定值,后者只要求在有界的输入作用下输出是有界的,BIBO指bounded input bounded output。
对于简单的精 度要求不高的过程,这种开关控制(或者称继电器控制,relay control,因为最早这种控制方式是用继电器或电磁开关来实现的) 就足够了。但是很多时候,这种“毛估估”的控制满足不了要求。汽车在高速公路上行驶,速度设在定速巡航控制,速度飘下去几公里,心里觉得吃亏了,但要是飘 上去几公里,被警察抓下来吃一个罚单,这算谁的?
开关控制是不连续控制,控制作用一加就是“全剂量”的,一减也 是“全剂量”的,没有中间的过渡。如果空调机的制冷量有三个设定,:小、中、大,根据室温和设定的差别来决定到底是用小还是中还是大,那室温的控制精度就 可以大大提高,换句话说,温度的“晃荡”幅度将大幅度减小。那么,如果空调机有更多的设定,从小小到小中到……到大大,那控制精度是不是更高呢?是的。既 然如此,何不用无级可调的空调机呢?那岂不可以更精确地控制室温了吗?是的。
写完聚乙烯的故事,就有写自动控制的故事的念头,但一直没有动笔。这个题目太大了,大得都不知道从何说起。既然大家看聚乙烯的故事还有一点意思,四一在 催,马鹿要“一”什么的,那就接着写自动控制的故事吧。反正是故事,别太当真,看着好玩就接着看,看着枯燥就拍桌子,看着有错就提个醒,看着糊涂的尽管 问,看着不耐烦了呢,也言语一声,我好闭上嘴不再烦人。哈哈。
(一)
小时候喜欢看杂书,没什么东西看,不正在文 化 大 革 命嘛?不过看进去了两个“化”:机械化和自动化。打小就 没有弄明白,这机械化和自动化到底有什么差别,机器不是自己就会动的吗?长大了,总算稍微明白了一点,这机械化是力气活,用机器代替人的体力劳动,但还是 要人管着的,不然机器是不知道该干什么不该干什么的;这自动化嘛,就是代替人的重复脑力劳动,是用来管机器的。也就是说,自动化是管着机械化的,或者说学 自动化的是管着学机械的……啊,不对,不对,哪是哪啊!
有人考证古代就有自动化的实例,但现代意义上的自动控制 开始于瓦特的蒸汽机。据说纽考门比瓦特先发明蒸汽机,但是蒸汽机的转速控制问题没有解决,弄不好转速飞升,机器损坏不说,还可能说大事故。瓦特在蒸汽机的 转轴上安了一个小棍,棍的一端和放汽阀连着,放气阀松开来就关闭,转速增加;按下去阀就打开,转速降低;棍的另一端是一个小重锤,棍中间某个地方通过支点 和转轴连接。转轴转起来的时候,小棍由于离心力的缘故挥起来。转速太高了,小棍挥会挥得很高,放汽阀就被按下去打开,转速下降;转速太低了,小棍挥不起 来,放汽阀就被松开来关闭,转速回升。这样,蒸汽机可以自动保持稳定的转速,即保证安全,又方便使用。也就是因为这个小小的转速调节器,瓦特的名字和工业 革命连在一起,而纽考门的名字就要到历史书里去找了。
类似的例子在机械系统里很多,家居必备的抽水马桶是另一个 例子。放水冲刷后,水箱里水位降低,浮子随水面下降,进水阀打开。随着水位的升高,进水阀逐渐关闭,直到水位达到规定高度,进水阀完全关闭,水箱的水正好 准备下一次使用。这是一个非常简单但非常巧妙的水位控制系统,是一个经典的设计,但不容易用经典的控制理论来分析,不过这是题外话了.
这些机械系统设计巧妙,工作可靠,实在是巧夺天工。但是在实用中,如果每次都需要这样的创造性思维,那太累,最好有一个系统的方法,可以解决“所有”的自动控制问题,这就是控制理论的由来。
从小大人就教我们,走路要看路。为什么呢?要是不看着路,走路走歪了也不知道,结果就是东撞西撞的。要是看着路呢?走歪了,马上就看到,赶紧调整脚步,走回到正道上来。这里有自动控制里的第一个重要概念:反馈(feedback)。
反馈是一个过程:
1、设定目标,对小朋友走路的例子来说,就是前进的路线。
2、测量状态,小朋友的眼睛看着路,就是在测量自己的前进方向。
3、将测量到的状态和设定的目标比较,把眼睛看到的前进方向和心里想的前进方向作比较,判断前进方向是否正确;如果不正确,相差有多少。
4、调整行动,在心里根据实际前进方向和设定目标的偏差,决定调整的量。
5、实际执行,也就是实际挪动脚步,重回正确的前进方向。
在整个走路的过程中,这个反馈过程周而复始,不断进行,这样,小朋友就不会走得东倒西歪了。但是,这里有一个问题:如果所有的事情都是在瞬时里同时发生 的,那这个反馈过程就无法工作。要使反馈工作,一定要有一定的反应时间。还好,世上之事,都有一个过程,这就为反馈赢得了所需要的时间。
小时候,妈妈在锅里蒸东西,蒸好了,从锅里拿出来总是一个麻烦,需要抹布什么的垫着,免得烫手。但是碗和锅的间隙不大,连手带抹布伸进去颇麻烦,我常常 不知天高地厚,自告奋勇地徒手把热的碗拿出来。只要动作快,手起碗落,可以不烫手。当然喽,要是捧着热碗再东晃晃,西荡荡,那手上感觉的温度最终会和热碗 一样,肯定要把手心、手指烫熟不可的。在从接触碗到皮肤温度和碗表面一样,这里面有一个逐渐升温的过程,这就是动态过程 (dynamic process)。这里面有两个东西要注意:一个是升温的过程有多快,另一个是最终的温度可以升到多少。要是知道了这两个参数,同时知 道自己的手可以耐受多少温度,理论上可以计算出热的碗在手里可以停留多少时间而不至于烫手。
反馈过程也叫闭环 (closed loop)过程。既然有闭环,那就有开环(open loop)。开环就是没有反馈的控制过程,设定一个控制作用,然后就执行,不根据实 际测量值进行校正。开环控制只有对简单的过程有效,比如洗衣机和烘干机按定时控制,到底衣服洗得怎么样,烘得干不干,完全取决于开始时的设定。对于洗衣 机、烘干机这样的问题,多设一点时间就是了,稍微浪费一点,但可以保证效果。对于空调机,就不能不顾房间温度,简单地设一个开10分钟、关5分钟的循环, 而应该根据实际温度作闭环控制,否则房间里的温度天知道到底会达到多少。记得80年代时,报告文学很流行。徐迟写了一个《哥德巴赫猜想》,于是全国人民都 争当科学家。小说家也争着写科学家,成就太小不行,所以来一个语不惊人死不休,某大家写了一个《无反馈快速跟踪》。那时正在大学啃砖头,对这个科学新发现 大感兴趣,从头看到尾,也没有看明白到底是怎么无反馈快速跟踪的。现在想想,小说就是小说,不过这无良作家也太扯,无反馈还要跟踪,不看着目标,不看着自 己跑哪了,这跟的什么踪啊,这和永动机差不多了,怎么不挑一个好一点的题目,冷聚变什么的,至少在理论上还是可能的。题外话了。
在数学上,动态过程用微分方程描述,反馈过程就是在描述动态过程的微分方程的输入项和输出项之间建立一个关联,这样改变了微分方程本来的性质。自动控制就是在这个反馈和动态过程里做文章的。
房间内的空调是一个简单的控制问题。不过这只是指单一房间,整个高层大楼所有房间的中央空调问题实际上是一个相当复杂的问题,不在这里讨论的范围。夏天 了,室内温度设在28度,实际温度高于28度了,空调机启动致冷,把房间的温度降下来;实际温度低于28度了,空调机关闭,让房间温度受环境气温自然升上 去。通过这样简单的开关控制,室内温度应该就控制在28度。不过这里有一个问题,如果温度高于28度一点点,空调机就启动;低于28度一点点,空调机就关 闭;那如果温度传感器和空调机的开关足够灵敏的话,空调机的开关频率可以无穷高,空调机不断地开开关关,要发神经病了,这对机器不好,在实际上也没有必 要。解决的办法是设立一个“死区” (dead band),温度高于29度时开机,低于27度时关机。注意不要搞反了,否则控制单元要发神经了。
有了一个死区后,室内温度不再可能严格控制在28度,而是在27到29度之间“晃荡”。如果环境温度一定,空调机的制冷量一定,室内的升温/降温动态模型已知,可以计算温度“晃荡”的周期。不过既然是讲故事,我们就不去费那个事了。
这种开关控制看起来“土”,其实好处不少。对于大部分过程来说,开关控制的精度不高但可以保证稳定,或者说系统输出是“有界”的,也就是说实际测量值一 定会被限制在一定的范围,而不可能无限制地发散出去。这种稳定性和一般控制理论里强调的所谓渐进稳定性不同,而是所谓BIBO稳定性,前者要求输出最终趋 向设定值,后者只要求在有界的输入作用下输出是有界的,BIBO指bounded input bounded output。
对于简单的精 度要求不高的过程,这种开关控制(或者称继电器控制,relay control,因为最早这种控制方式是用继电器或电磁开关来实现的) 就足够了。但是很多时候,这种“毛估估”的控制满足不了要求。汽车在高速公路上行驶,速度设在定速巡航控制,速度飘下去几公里,心里觉得吃亏了,但要是飘 上去几公里,被警察抓下来吃一个罚单,这算谁的?
开关控制是不连续控制,控制作用一加就是“全剂量”的,一减也 是“全剂量”的,没有中间的过渡。如果空调机的制冷量有三个设定,:小、中、大,根据室温和设定的差别来决定到底是用小还是中还是大,那室温的控制精度就 可以大大提高,换句话说,温度的“晃荡”幅度将大幅度减小。那么,如果空调机有更多的设定,从小小到小中到……到大大,那控制精度是不是更高呢?是的。既 然如此,何不用无级可调的空调机呢?那岂不可以更精确地控制室温了吗?是的。