科普了这么多,都是扫盲班式的文章,仿佛看到了和养生堂放在一起的那一天,(滑稽),总觉得还有什么东西没说,然后看到了手头的自动控制原理,那么今天就来说说控制的大体思路吧。如果用哲学来说,前几篇是世界观,这篇主要是方法论。
如果前几篇日志说的是什么是控制科学和人工智能这些概念上的东西,这篇就要说一下人们是怎么实现控制的,毕竟常见的就是提到控制这个概念感觉好理解,一说到啥开环了,反馈啊,传函啊,根轨迹啦,拉普拉斯变换呢,就觉得这些听不懂的洋玩意和控制有啥关系,还有最难理解的卡尔曼现控,李雅普诺夫,当然了如果赶潮流的话,人工智能,平行控制与知识自动化也跑不了。
这些方法究竟是怎么来的,为什么会用它来实现控制,这篇日志采用最最通俗的语言和实例来说一下,想看数学公式推导的可以退了,有些数学结论会直接给出。不显示推导过程。
按惯例,先从最简单的开始,相较于现在工厂的复杂要求,在最初阶段,人们对于自动控制的要求是很低的。
比如,人们觉得自己搬太费劲,想象如果通过按一个按钮,然后机器把重物从A点搬到B点,那该有多好,随后开始了创造,经过努力,人们制造出了这个系统,而且还发明了它的高级形式:每次搬完机械臂还可以回来原先位置继续搬。这种通过人的操作让机器自动完成操作的,在后世被称为开环系统,也称为开环控制。其实要严格来说,按下按钮打开灯都属于开环控制。
开环控制的发明使得人们的劳动强度大大降低,然而世间的需要并仅仅是简单的搬运。
当人们沿用开环控制思路用来往自己水杯里加水时,烫手的问题来了,开环控制是有东西就搬,加水时也是有水就加,然而大家都知道,人在倒水时并不是闭上眼倒啥都不管,人是会看水位的,要看水位到没到合适的点,然后再决定是继续开着,还是关闭开关。
人们从生活中发现了这个道理后,尤其是被开环控制烫了不少次手后,经过努力,尤其是人们发明水位传感器后,开发出了能够随时识别水位的加水控制器,这种机制,后来被称为反馈,因为把过程画成图后,可以画出一个圆圈,又被形象的称为闭环控制。
这样,我们获得了一个可以控制水位的系统,别的不说,去饮水机接水时就很舒服,按钮一按,等一会,然后拿走水杯,不用担心其他问题。这段时间就可以在旁边喊,自动化万岁!好吧,打住,不扯了。
之后人们有了新需求,我不仅要喝水,我还要喝到温水,而且限定温度。
刚拿到这个需求时,控制师想了想,嗯,温水,好办啊,我设计两个管子,一边加冷水,一边加热水,检测温度,然后温度高了加冷水,温度低了加热水。然后保持总量一定就行了。这种简单闭环的设计思路被称为开关控制,设计师很快按照水位控制器的模板搞了出来,然后投入使用。
很快,一个大问题来了,人们在应用过程中发现,这种设计理论上很好,实际中,尤其是到温度线那里时,温度差一点,开热水,温度上升很快,加冷水,温度又迅速下降,就是个振荡过程。等到温度差不多了。估计出来的水都能装满一个池塘了。
有人在这时提出,哎,我听说数学家处理这种精细问题很好,要不让他们来一下?工程师们暂时没了办法,只能说,行吧,那个谁,给山大数学系主任打个电话,让他老人家抽空过来一下(毕竟在山东地界提到数学专业哪家强,一般都会说山大,玩个老梗)
数学家到了,按照职业习惯,看了看现场,没找到公式,表示很难受,然后心里开始说,这群外行,没有公式也敢提设计,真是胆大。不过,没有公式?不怕,我们自己建,数学家对其他设计者说,三个月后,我会再来的。回到办公室拿出草稿纸开始演算。
数学家首先画了整体的图,然后找了几组变量,列出了他们再熟悉不过的微分方程,然后就开始解,解完又求了各种参数,还探讨了几种新解答。
三个月后,从草稿纸里走出来的系主任大体有了思路。控制水的温度,很简单。冷水热水同时开,然后控制冷水热水的比例,比例怎么控制呢,看了看工程师反映的情况,“温度变化速度影响较大”,那就考虑变化速度,不过变化速度?主任此时一笑,变化速度我擅长啊,先求个导,不行积个分,然后用这个结果来反馈给控制器,不就解决了这个问题吗?
这是个大成果,按惯例先起个名,常用的是比例P,然后求导是微分D,积分是I,行了,以后就叫你PID大法了。
数学家带着PID大法回到了现场,一顿操作秀的工程师头皮发麻,也养成了控制理论多找数学家的传统习惯和对PID的高度崇拜。
先不说工程师们如何着迷于PID大法,控制理论这一需要传回数学界,数学界一些一直想搞应用的大佬们仿佛看到了春天,他们一拥而上,纷纷搞起了控制系统分析。
首先呢,处理控制系统有个简单思路,把系统看成一个黑箱,因此只要求出输出与输入的关系,就能基本把握这个控制系统的作用。
不过微分方程向来不好解,此时有人提出,哎,我记得拉普拉斯他老人家好像有个变换,然后变换了一通,得出了一个输出与输入的比值函数,这是一个只关于S的函数,它呢,反映了这个系统的基本性质,至于叫法不同,有的叫传递函数,有的叫系统函数。
拿到这个函数,要分析它什么性质,称为一个问题,数学家们看了看现场需要,发现现场总是需要经过控制达到一个输出稳定的状态,比如输出恒温的水,输出稳定的电流,保持一定的水位,而这种状态,转化成数学,就是当时间趋于无穷时函数是否有一个固定值,如果有,就可以规定这个函数是稳定的。
以下的具体证明略过,数学家们发现,对于传递函数来说,当它的极点位于S轴左边时,它是稳定的。又通过数学的证明,尤其是借鉴了克拉莫法则后,得出了著名的劳斯稳定判据,和一些系统指标的计算公式。
在获得稳定判据后,数学家们把成果交给工程师,留下一部分数学家继续研究控制方法。其他的觉得理论差不多了,该溜了,毕竟指标有了,公式有个,稳定判据有了。让他们实践去吧。
剩下的那部分数学家很快发现,有些系统它是稳定的,但是它和理想状态总存在一个误差,比如设定值是五,等了几个星期输出还是4.5,这里面一定有秘密,通过分析,他们发现,这是一个系统性质。被称为稳态误差,他们总结了一个误差表,剩下的则给出了计算稳态误差的公式,被称为终值定理。
到这里,似乎理论已经齐备,没啥可以搞的了,除了一些工程师出身的数学家,其他的都陆陆续续走了。
但是,数学上没问题不一定其他地方没有不足,最主要的是,工程师不喜欢看公式是真的传统,不是说怎么歧视工程师,每个人在现场待久了,都喜欢看图,看仪表的数字,或者直接看状态,摆一堆公式给工程师,工程师当然不怎么接受。所以一个很自然的想法就有了,能不能把公式变成图呢。
伊文斯大佬知道了这个情况,行,我就来推推怎么用公式画图,因此,根轨迹法诞生。
根轨迹比公式是要直观的,只要得出了根轨迹图,就可以直观的看出系统的极点什么时候会出左半平面,而前面提到过,出不出左半平面又与系统稳定息息相关。
因此,有了根轨迹,工程师们只需要看图,嗯,轨迹没出左半平面,很好。稳定的!这速度比用劳斯判据判断,快了半顿盒饭的时间。就是记画图规则有些麻烦,有时还要考虑这是常规的,参数的,还是零度的。
时代是会发展的,在一般直流系统中,用以上方法很好,但是对于交流电系统,输入是正弦函数的那类系统,怎么控制是个问题,并且人们发现加入正弦输入后,不仅输出的幅值会变化,有时输出曲线的相角也会变化。于是乎,山大数学系的电话又一次响起,啥?又有问题?正弦输入不会搞了?好的,马上到。系主任放下了电话,又一次来到了现场。
到了现场以后,系主任首先注意的不是系统,而是伊文斯的根轨迹图,一边看一边赞叹,还是你们工程师会玩。一会我学学,看看推导公式后能不能化成图。
拿到熟悉的传递函数和熟悉的正弦函数输入,系主任陷入了沉思,怎么才能联系起来呢,一般的正弦函数是Asinwt,传递函数又是拉氏变换的结果,看着拉普拉斯变换,系主任有了一个大胆的想法,手一挥。令S=jw,代入传递函数,然后得到了一个复数,幅值,角度都得出。后世称为幅频特性与相频特性。
不就是画图吗,我也会,系主任看了一眼伊文斯的成果,这样,w为零时为起点,无穷与重点,画了一条曲线,后世称为幅相特性曲线。
然后老惯例,稳定性判断。系主任看着自己画的幅相特性曲线,不知道怎么下手,此时外国友人来访团中一位年轻人看着图,抄起一本复变函数分析开始推导,推了半天,最终走到系主任面前说,朋友你好,这是稳定判据,我给你大体说一下。
首先这个幅相特性曲线不怎么完整,如果系统含有积分环节或者等幅振荡时要补圆,补完之后呢,经过我的严格论证,我发现呢,以下结论是成立的:
设系统的开环右极点数为P,当ω从-∞变化到+∞时,系统开环频率特性曲线GK(jω)及其镜像所组成的封闭曲线,顺时针包围(-1,j0)点的次数为N圈(N>0),若逆时针包围则N<0,封闭曲线绕(-1,j0)点旋转360°即包围一次,则系统的闭环右极点的个数Z为:Z=N+P。当Z=0时,系统稳定;Z>0时,系统不稳定。
系主任:这么厉害?请问?
年轻人:我叫奈奎斯特
系主任:名字不一般啊
这一切都被工程师伯德看在眼里,等到他们走后,伯德走到其他工程师面前,说,这图不怎么直观,大家是喜欢看直线还是曲线啊,大家异口同声说道,直线。
好,来来来,大家看一下,我提出的伯德图,还有对数稳定判据,伯德将幅频与相频分开画,并取对数渐进线,解释了许多东西。因为伯德图能够直观反映幅值裕度与相角裕度这两个重要指标,也成为后来系统校正的有力武器。
奈奎斯特:嗯?取个对数这么好用吗?没想到。
到了这里,现场安静了一些?时域频域都有了分析方法,工程师们也按部就班的处理日常事务。遇到困难时域pid频域用校正,一切都挺好。
不过没有持续多长时间,一场改变控制界的大变革即将到来
计算机控制,顾名思义是计算机产生和发展产生的一种控制方式,其核心思想与上篇叙述没有区别,就是引入了离散化,其他的大差不差,通俗来讲就是工程师们在计算机发明后使用它来代替传统控制器的理论。
因为计算机处理的是数字信号,而传统的控制器一般用的是模拟信号,显然不能直接用,此时我们的一位重要大佬出现,离散数学。因为有了前面的控制基础,工程师们在计算机控制把前边的理论拿过来画了画直接用了。
计算机控制有几个概念是需要注意的。包括Z变换与反变换,它的稳态误差表示,传递函数与脉冲传递函数之间的转换,引入零阶保持器时的脉冲传函,采样器的作用,离散系统定义,离散化劳斯判据,离散系统型别,以及最常用的综合除法。虽然各种形式很多,但从原理上与上篇基本一致
人们总想用最简单的函数表示系统,而系统呢,绝大部分都不是线性的,这些系统被称为非线性系统,而对于它,人们至今还在研究。
非线性控制系统是一类比较常见的控制系统,人们一直在说非线性的重要。
可以说绝大部分生活中应用的系统都是非线性系统,只不过有时为了简化,使用了泰勒公式来将它们线性化。
对于非线性系统,工程师们很头疼,想起来老传统,跑去问数学家,敲了半天门,没人答应,工程师们强行破门而入,发现数学家们被草稿纸埋没,从纸堆里传出相轨迹,描述函数等等声音。
工程师:啥?啥?啥?算了,我一会再来吧。
工程师回到现场,自己开始探索,这时有人提出,嗯?咱们既然不知道这个系统的具体函数,那就试试吧,先规定一个函数,根据输出再慢慢调,一段时间后,经过部分数学基础好的化工专家努力,自适应控制诞生。这是后话。
说回数学家们,终于有一天,系主任敲开了工厂的门,对着工程师说,好了,非线性系统的一些基础方法出来了,可以给你们讲讲了。
首先呢,先建模型,还是老熟人微分方程,但是呢,它是非线性,列出来公式老长了,为了直观,咱们画图。
让x为横坐标,它的一阶导数为纵坐标,画出曲线来,这个呢,叫做相轨迹,如果要复杂的话,就先求斜率然后通过等倾线画,说了一堆规则,工程师们用笔记下来,然后问。这个图像简单画了画,有弯有拐,怎么看?
数学家呢,摆了三个词,奇点,鞍点,焦点。找这三个点,怎么找?从方程下手,先求奇点,再判断是否是焦点或者鞍点。
没等说完,工程师们坐不住了,这么麻烦,有没有简单点的,有啊,此时达尼尔站了出来,描述函数了解一下,常用典型环节的描述函数可以化非线性为线性,然后用频率分析法,接着提出了非线性的一个稳定判据,因此,对比于相轨迹的复杂与难度,工程师们选择了描述函数法。简单的非线性系统也解决了。
针对广泛的非线性系统,人们不断探索,有一天,一个人在整理以前的论文时发现,几十年前俄国力学家李雅普诺夫曾经提出的一种方法,处理非线性似乎更方便。
相比于直接解方程或者求根来分析是否稳定,李雅普诺夫提出了一个新的概念,平衡状态,这是对传统稳定性的定义突破,之前的稳定定义认为只有保持在某一个具体的数才算是稳定,李雅普诺夫通过力学发现,系统往往有多个平衡状态,这种平衡状态,后来被称为李雅普诺夫意义下的稳定。
面对着怎么判断稳定这个问题,李雅普诺夫当时并没有什么后辈的工具可用,经典控制理论出现在他之后三四十年。不过力学上的观念启示了他,振动过程中能量散尽不就稳定了?只要证明这个能量迟早药丸,不就可以间接说明系统早晚会进入稳定状态吗。
能量函数很难找,李雅普诺夫又提出虚构一个,然后证明了只要这个函数正定,它的导数负定,且x趋于无穷是能量函数趋于无穷,就可以说明它在原点是大范围渐进稳定的。一般线性系统中常用二次型函数来充当能量函数。不过李雅普诺夫本人或许没有想到,至今在研究控制理论的论文中,他一般都会出现,而且一般在最后,验证理论时出现。如果提到这种方法算引用的话,李雅普诺夫或许是世界上被引用最多的学者了。
关于计算机与非线性到这里,接下来就是被称为他改变了控制界的卡尔曼大佬了。
上篇提到,人们一直把控制系统看做黑箱,只关注进去什么出来什么,至于里面具体发生了什么,没怎么关心,但是,正如人工智能早晚也会搞出数学解释一样,要想进一步研究,脱离不了内部结构,卡尔曼运用状态空间方程解决了这一问题,提出了许多重要理论。至今他的方法在控制和金融分析中都有广泛应用。
所谓状态空间方程,就是把一堆方程放在一起,把系数用矩阵表示出来,方便分析内部结构,不像传递函数,一顿操作,只保留了输入输出。当然他们之间可以互相转化。
内部结构出来了,就有了第一个问题,有哪些输出量可以控制,有哪些输入量可以由输出量唯一确定。后来被称为能观能控性,提出了一些判据,最常用的是秩判据。
下一个问题,怎么控制,从基本的反馈开始,设计状态反馈,配置极点。
第三个问题,有些变量不能测得怎么办,设计状态观测器,根据情况又有全维观测器,与降维观测器。
最后怎么判断稳定性,用李雅普诺夫法。
卡尔曼的思路及处理方式,结合其他大佬的极大值原理等,确立了最优控制理论,然后综合以上方法形成了一种新的控制理论,后来被称为现代控制理论。