寫在前面 :最近整理硬盤發(fā)現(xiàn)了很久以前保存的一篇文章,出處找不到了,作者寫的很好,主要是文筆。盡管故事里吧自動化放到了具體的事情里面,容易理解,但是也可能會造成了大家對自動化包括的范圍的認識誤差,PA僅僅是自動化中的一個分支。推薦大家閱讀,尤其是非自動化專業(yè)的朋友們。
其實,生活中類似的例子有很多很多,比如我在學(xué)開車的時候,就想到,其實你開車的過程與PID的調(diào)節(jié)過程完全一樣,比如你目標(biāo)就是勻速駕駛,油門或者剎車踩大了就是超調(diào),車的極限就是死區(qū),。。。。。。。,想想是不是這樣?
老伙計, 2013年,07月,25日。
自動控制的科普綜述文章少之又少,這一篇是難得好文章。甚至高于科普了。自動化專業(yè)的學(xué)生,能夠把自己學(xué)的道理理解到這種程度的,又能占到多少比例呢?第一次看到此文的時候,簡直驚為天人,短短數(shù)十頁的文章,就把自動控制的發(fā)展過程及精髓用非常通俗的語言描述出來,其中不發(fā)精彩的比喻(如舞龍、李亞普諾夫大錘等等),對于自動控制人員來說實在是不可多得的寶貴資料。化工技術(shù)論壇 - 贈人玫瑰 手有余香
文章的作者是老三屆的大學(xué)生,具有扎實的理論基礎(chǔ)和豐富的現(xiàn)場經(jīng)驗,目前旅居加拿大,一直從事化工控制方面的工作和研究。文章雖然長一些,但非常值得靜下心來好好讀一讀。)
寫完聚乙烯的故事,就有寫自動控制的故事的念頭,但一直沒有動筆。這個題目太大了,大得都不知道從何說起。既然大家看聚乙烯的故事還有一點意思,四一在催,馬鹿要“一”什么的,那就接著寫自動控制的故事吧。反正是故事,別太當(dāng)真,看著好玩就接著看,看著枯燥就拍桌子,看著有錯就提個醒,看著糊涂的盡管問,看著不耐煩了呢,也言語一聲,我好閉上嘴不再煩人。哈哈。
(一) 小時候喜歡看雜書,沒什么東西看,不正在文化大革命嘛?不過看進去了兩個“化”:機械化和自動化。打小就沒有弄明白,這機械化和自動化到底有什么差別,機器不是自己就會動的嗎?長大了,總算稍微明白了一點,這機械化是力氣活,用機器代替人的體力勞動,但還是要人管著的,不然機器是不知道該干什么不該干什么的;這自動化嘛,就是代替人的重復(fù)腦力勞動,是用來管機器的。也就是說,自動化是管著機械化的,或者說學(xué)自動化的是管著學(xué)機械的……啊,不對,不對,哪是哪啊! 有人考證古代就有自動化的實例,但現(xiàn)代意義上的自動控制開始于瓦特的蒸汽機。據(jù)說紐考門比瓦特先發(fā)明蒸汽機,但是蒸汽機的轉(zhuǎn)速控制問題沒有解決,弄不好轉(zhuǎn)速飛升,機器損壞不說,還可能說大事故。 瓦特在蒸汽機的轉(zhuǎn)軸上安了一個小棍,棍的一端和放汽閥連著,放氣閥松開來就關(guān)閉,轉(zhuǎn)速增加;按下去閥就打開,轉(zhuǎn)速降低;棍的另一端是一個小重錘,棍中間某個地方通過支點和轉(zhuǎn)軸連接。轉(zhuǎn)軸轉(zhuǎn)起來的時候,小棍由于離心力的緣故揮起來。轉(zhuǎn)速太高了,小棍揮會揮得很高,放汽閥就被按下去打開,轉(zhuǎn)速下降;轉(zhuǎn)速太低了,小棍揮不起來,放汽閥就被松開來關(guān)閉,轉(zhuǎn)速回升。這樣,蒸汽機可以自動保持穩(wěn)定的轉(zhuǎn)速,即保證安全,又方便使用。也就是因為這個小小的轉(zhuǎn)速調(diào)節(jié)器,瓦特的名字和工業(yè)革命連在一起,而紐考門的名字就要到歷史書里去找了。
類似的例子在機械系統(tǒng)里很多,家居必備的抽水馬桶是另一個例子。放水沖刷后,水箱里水位降低,浮子隨水面下降,進水閥打開。隨著水位的升高,進水閥逐漸關(guān)閉,直到水位達到規(guī)定高度,進水閥完全關(guān)閉,水箱的水正好準(zhǔn)備下一次使用。這是一個非常簡單但非常巧妙的水位控制系統(tǒng),是一個經(jīng)典的設(shè)計,但不容易用經(jīng)典的控制理論來分析,不過這是題外話了. 這些機械系統(tǒng)設(shè)計巧妙,工作可靠,實在是巧奪天工。但是在實用中,如果每次都需要這樣的創(chuàng)造性思維,那太累,最好有一個系統(tǒng)的方法,可以解決“所有”的自動控制問題,這就是控制理論的由來。 從小大人就教我們,走路要看路。為什么呢?要是不看著路,走路走歪了也不知道,結(jié)果就是東撞西撞的。要是看著路呢?走歪了,馬上就看到,趕緊調(diào)整腳步,走回到正道上來。這里有自動控制里的第一個重要概念:反饋(feedback)。 反饋是一個過程: 1、設(shè)定目標(biāo),對小朋友走路的例子來說,就是前進的路線。 2、測量狀態(tài),小朋友的眼睛看著路,就是在測量自己的前進方向。 3、將測量到的狀態(tài)和設(shè)定的目標(biāo)比較,把眼睛看到的前進方向和心里想的前進方向作比較,判斷前進方向是否正確;如果不正確,相差有多少。 4、調(diào)整行動,在心里根據(jù)實際前進方向和設(shè)定目標(biāo)的偏差,決定調(diào)整的量。 5、實際執(zhí)行,也就是實際挪動腳步,重回正確的前進方向。 在整個走路的過程中,這個反饋過程周而復(fù)始,不斷進行,這樣,小朋友就不會走得東倒西歪了。但是,這里有一個問題:如果所有的事情都是在瞬時里同時發(fā)生的,那這個反饋過程就無法工作。要使反饋工作,一定要有一定的反應(yīng)時間。還好,世上之事,都有一個過程,這就為反饋贏得了所需要的時間。
小時候,媽媽在鍋里蒸東西, 蒸好了,從鍋里拿出來總是一個麻煩,需要抹布什么的墊著,免得燙手。但是碗和鍋的間隙不大,連手帶抹布伸進去頗麻煩,我常常不知天高地厚,自告奮勇地徒手 把熱的碗拿出來。只要動作快,手起碗落,可以不燙手。當(dāng)然嘍,要是捧著熱碗再東晃晃,西蕩蕩,那手上感覺的溫度最終會和熱碗一樣,肯定要把手心、手指燙熟不可的。在從接觸碗到皮膚溫度和碗表面一樣,這里面有一個逐漸升溫的過程,這就是動態(tài)過程(dynamicprocess)。這里面有兩個東西要注意:一個是升溫的過程有多快,另一個是最終的溫度可以升到多少。要是知道了這兩個參數(shù),同時知道自己的手可以耐受 多少溫度,理論上可以計算出熱的碗在手里可以停留多少時間而不至于燙手。
反饋過程也叫閉環(huán)(closedloop)過程。既然有閉環(huán),那就有開環(huán)(open loop)。開環(huán)就是沒有反饋的控制過程,設(shè)定一個控制作用,然后就執(zhí)行,不根據(jù)實際測量值進行校正。開環(huán)控制只有對簡單的過程有效,比如洗衣機和烘干機 按定時控制,到底衣服洗得怎么樣,烘得干不干,完全取決于開始時的設(shè)定。對于洗衣機、烘干機這樣的問題,多設(shè)一點時間就是了,稍微浪費一點,但可以保證效 果。對于空調(diào)機,就不能不顧房間溫度,簡單地設(shè)一個開10分鐘、關(guān)5分鐘的循環(huán),而應(yīng)該根據(jù)實際溫度作閉環(huán)控制,否則房間里的溫度天知道到底會達到多少。 記得80年代時,報告文學(xué)很流行。徐遲寫了一個《哥德巴赫猜想》,于是全國人民都爭當(dāng)科學(xué)家。小說家也爭著寫科學(xué)家,成就太小不行,所以來一個語不驚人死不休,某大家寫了一個《無反饋快速跟蹤》。那時正在大學(xué)啃磚頭,對這個科學(xué)新發(fā)現(xiàn)大感興趣,從頭看到尾,也沒有看明白到底是怎么無反饋快速跟蹤的。現(xiàn)在想想,小說就是小說,不過這無良作家也太扯,無反饋還要跟蹤,不看著目標(biāo),不看著自己跑哪了,這跟的什么蹤啊,這和永動機差不多了,怎么不挑一個好一點的題目,冷聚變什么的,至少在理論上還是可能的。題外話了。
在數(shù)學(xué)上,動態(tài)過程用微分方程描述,反饋過程就是在描述動態(tài)過程的微分方程的輸入項和輸出項之間建立一個關(guān)聯(lián),這樣改變了微分方程本來的性質(zhì)。自動控制就是在這個反饋和動態(tài)過程里做文章的。 房間內(nèi)的空調(diào)是一個簡單的控制問題。不過這只是指單一房間,整個高層大樓所有房間的中央空調(diào)問題實際上是一個相當(dāng)復(fù)雜的問題,不在這里討論的范圍。夏天了,室內(nèi)溫度設(shè)在28度,實際溫度高于28度了,空調(diào)機啟動致冷,把房間的溫度降下來;實際溫度低于28度了,空調(diào)機關(guān)閉,讓房間溫度受環(huán)境氣溫自然升上去。通過這樣簡單的開關(guān)控制,室內(nèi)溫度應(yīng)該就控制在28度。不過這里有一個問題,如果溫度高于28度一點點,空調(diào)機就啟動;低于28度一點點,空調(diào)機就 關(guān)閉;那如果溫度傳感器和空調(diào)機的開關(guān)足夠靈敏的話,空調(diào)機的開關(guān)頻率可以無窮高,空調(diào)機不斷地開開關(guān)關(guān),要發(fā)神經(jīng)病了,這對機器不好,在實際上也沒有必 要。解決的辦法是設(shè)立一個“死區(qū)”(dead band),溫度高于29度時開機,低于27度時關(guān)機。注意不要搞反了,否則控制單元要發(fā)神經(jīng)了。
有了一個死區(qū)后,室內(nèi)溫度不再可能嚴(yán)格控制在28度,而是在27到29度之間“晃蕩”。如果環(huán)境溫度一定,空調(diào)機的制冷量一定,室內(nèi)的升溫/降溫動態(tài)模型已知,可以計算溫度“晃蕩”的周期。不過既然是講故事,我們就不去費那個事了。 這種開關(guān)控制看起來“土”,其實好處不少。對于大部分過程來說,開關(guān)控制的精度不高但可以保證穩(wěn)定,或者說系統(tǒng)輸出是“有界”的,也就是說實際測量值 一定會被限制在一定的范圍,而不可能無限制地發(fā)散出去。這種穩(wěn)定性和一般控制理論里強調(diào)的所謂漸進穩(wěn)定性不同,而是所謂BIBO穩(wěn)定性,前者要求輸出最終 趨向設(shè)定值,后者只要求在有界的輸入作用下輸出是有界的,BIBO指boundedinput bounded output。 對于簡單的精 度要求不高的過程,這種開關(guān)控制(或者稱繼電器控制,relaycontrol,因為最早這種控制方式是用繼電器或電磁開關(guān)來實現(xiàn)的)就足夠了。但是很多時候,這種“毛估估”的控制滿足不了要求。汽車在高速公路上行 駛,速度設(shè)在定速巡航控制,速度飄下去幾公里,心里覺得吃虧了,但要是飄上去幾公里,被警察抓下來吃一個罰單,這算誰的?
開關(guān)控制是不連續(xù)控制,控制作用一加就是“全劑量”的,一減也是“全劑量”的,沒有中間的過渡。如果空調(diào)機的制冷量有三個設(shè)定,:小、中、大,根據(jù)室 溫和設(shè)定的差別來決定到底是用小還是中還是大,那室溫的控制精度就可以大大提高,換句話說,溫度的“晃蕩”幅度將大幅度減小。那么,如果空調(diào)機有更多的設(shè)定,從小小到小中到……到大大,那控制精度是不是更高呢?是的。既然如此,何不用無級可調(diào)的空調(diào)機呢?那豈不可以更精確地控制室溫了嗎?是的。 無級可調(diào)或連續(xù)可調(diào)的空調(diào)機可以精確控制溫度,但開關(guān)控制不能再用了。家用空調(diào)機中,連續(xù)可調(diào)的不占多數(shù),但沖熱水淋浴是一個典型的連續(xù)控制問題,因為水龍頭可以連續(xù)調(diào)節(jié)水的流量。沖淋浴 時,假定冷水龍頭不變,只調(diào)節(jié)熱水。那溫度高了,熱水關(guān)小一點;溫度低了,熱水開打一點。換句話說,控制作用應(yīng)該向減少控制偏差的方向變化,也就是所謂負 負反饋。控制方向?qū)α耍有一個控制量的問題。溫度高了1度,熱水該關(guān)小多少呢? 經(jīng)驗告訴我們,根據(jù)具體的龍頭和水壓,溫度高1度,熱水需要關(guān)小一定的量,比如說,關(guān)小一格。換句話說,控制量和控制偏差成比例關(guān)系,這就是經(jīng)典的比 例控制規(guī)律:控制量=比例控制增益*控制偏差,偏差越大,控制量越大。控制偏差就是實際測量值和設(shè)定值或目標(biāo)值之差。在比例控制規(guī)律下,偏差反向,控制量也反向。也就是說,如果淋浴水溫要求 為40度,實際水溫高于40度時,熱水龍頭向關(guān)閉的方向變化;實際水溫低于40度時,熱水龍頭向開啟的方向變化。 但是比例控制規(guī)律并不能 保證水溫能夠精確達到40度。在實際生活中,人們這時對熱水龍頭作微調(diào),只要水溫還不合適,就一點一點地調(diào)節(jié),直到水溫合適為止。這種只要控制偏差不消失就漸進微調(diào)的控制規(guī) 律,在控制里叫積分控制規(guī)律,因為控制量和控制偏差在時間上的累積成正比,其比例因子就稱為積分控制增益。工業(yè)上常用積分控制增益的倒數(shù),稱其為積分時間 常數(shù),其物理意義是偏差恒定時,控制量加倍所需的時間。這里要注意的是,控制偏差有正有負,全看實際測量值是大于還是小于設(shè)定值,所以只要控制系統(tǒng)是穩(wěn)定 的,也就是實際測量值最終會穩(wěn)定在設(shè)定值上,控制偏差的累積不會是無窮大的。這里再啰嗦一遍,積分控制的基本作用是消除控制偏差的余差(也叫殘差)。 比例和積分控制規(guī)律可以應(yīng)付很大一類控制問題,但不是沒有改進余地的。如果水管水溫快速變化,人們會根據(jù)水溫的變化調(diào)節(jié)熱水龍頭:水溫升高,熱水龍頭 向關(guān)閉方向變化,升溫越快,開啟越多;水溫降低,熱水龍頭向開啟方向變化,降溫越快,關(guān)閉越多。這就是所謂的微分控制規(guī)律,因為控制量和實際測量值的變化 率成正比,其比例因子就稱為比例控制增益,工業(yè)上也稱微分時間常數(shù)。微分時間常數(shù)沒有太特定的物理意義,只是積分叫時間常數(shù),微分也跟著叫了。微分控制的 重點不在實際測量值的具體數(shù)值,而在其變化方向和變化速度。微分控制在理論上和實用中有很多優(yōu)越性,但局限也是明顯的。如果測量信號不是很“干凈”,時不 時有那么一點不大不小的“毛刺”或擾動,微分控制就會被這些風(fēng)吹草動搞得方寸大亂,產(chǎn)生很多不必要甚至錯誤的控制信號。所以工業(yè)上對微分控制的使用是很謹(jǐn) 慎的。 比例-積分-微分控制規(guī)律是工業(yè)上最常用的控制規(guī)律。人們一般根據(jù)比例-積分-微分的英文縮寫,將其簡稱為PID控制。即使在更為先進的控制規(guī)律廣泛應(yīng)用的今天,各種形式的PID控制仍然在所有控制回路中占85%以上。
在PID控制中,積分控制的特點是:只要還有余差(即殘余的控制偏差)存在,積分控制就按部就班地逐漸增加控制作用,直到余差消失。所以積分的效果比較緩慢,除特 殊情況外,作為基本控制作用,緩不救急。微分控制的特點是:盡管實際測量值還比設(shè)定值低,但其快速上揚的沖勢需要及早加以抑制,否則,等到實際值超過設(shè)定 值再作反應(yīng)就晚了,這就是微分控制施展身手的地方了。作為基本控制使用,微分控制只看趨勢,不看具體數(shù)值所在,所以最理想的情況也就是把實際值穩(wěn)定下來, 但穩(wěn)定在什么地方就要看你的運氣了,所以微分控制也不能作為基本控制作用。比例控制沒有這些問題,比例控制的反應(yīng)快,穩(wěn)定性好,是最基本的控制作用,是“皮”,積分、微分控制是對比例控制起增強作用的,極少單獨使用,所以是“毛”。在實際使用中比例和積分一般一起使用,比例承擔(dān)主要的控制作用,積分幫助 消除余差。微分只有在被控對象反應(yīng)遲緩,需要在開始有所反應(yīng)時,及早補償,才予以采用。只用比例和微分的情況很少見。 連續(xù)控制的精度是開關(guān)控制所不可比擬的,但連續(xù)控制的高精度也是有代價的,這就是穩(wěn)定性問題。控制增益決定了控制作用對偏差的靈敏度。既然增益決定了控制 的靈敏度,那么越靈敏豈不越好?非也。還是用汽車的定速巡航控制做例子。速度低一點,油門加一點,速度低更多,油門加更多,速度高上去當(dāng)然就反過來。但是 如果速度低一點,油門就加很多,速度更低,油門狂加,這樣速度不但不能穩(wěn)定在要求的設(shè)定值上,還可能失控。這就是不穩(wěn)定。所以控制增益的設(shè)定是有講究的。 在生活中也有類似的例子。國民經(jīng)濟過熱,需要經(jīng)濟調(diào)整,但調(diào)整過火,就要造成“硬著陸”,引起衰退;衰退時需要刺激,同樣,刺激過火,會造成“虛假繁榮”。要達成“軟著陸”,經(jīng)濟調(diào)整的措施需要恰到好處。這也是一個經(jīng)濟動態(tài)系統(tǒng)的穩(wěn)定性問題。
實際中到底多少增益才是最合適的,理論上有很多計算方法,但實用中一般是靠經(jīng)驗和調(diào)試來摸索最佳增益,業(yè)內(nèi)行話叫參數(shù)整定。如果系統(tǒng)響應(yīng)在控制作用后 面拖拖沓沓,大幅度振蕩的話,那一般是積分太過;如果系統(tǒng)響應(yīng)非常神經(jīng)質(zhì),動不動就打擺子,呈現(xiàn)高頻小幅度振蕩的話,那一般是微分有點過分。中頻振蕩當(dāng)然 就是比例的問題了。不過各個系統(tǒng)的頻率都是不一樣的,到底什么算高頻,什么算低頻,這個幾句話說不清楚,應(yīng)了那句話:“具體情況具體分析”,所以就 打一個哈哈了。 再具體說起來,參數(shù)整定有兩個路子。一是首先調(diào)試比例增益以保證基本的穩(wěn)定性,然后加必要的積分以消除余差,只有在最必要的情況下,比如反映遲緩的溫 度過程或容量極大的液位過程,測量噪聲很低,才加一點微分。這是“學(xué)院派”的路子,在大部分情況下很有效。但是工業(yè)界有一個“歪路子”:用非常小的比例作 用,但大大強化積分作用。這個方法是完全違背控制理論的分析的,但在實際中卻是行之有效,原因在于測量噪聲嚴(yán)重,或系統(tǒng)反應(yīng)過敏時,積分為主的控制規(guī)律動 作比較緩和,不易激勵出不穩(wěn)定的因素,尤其是不確定性比較高的高頻部分。 在很多情況下,在初始PID 參數(shù)整定之后,只要系統(tǒng)沒有出現(xiàn)不穩(wěn)定或性能顯著退化,一般不會去重新整定。但是要是系統(tǒng)不穩(wěn)定了怎么辦呢?由于大部分實際系統(tǒng)都是開環(huán)穩(wěn)定的,也就是 說,只要控制作用恒定不變,系統(tǒng)響應(yīng)最終應(yīng)該穩(wěn)定在一個數(shù)值,盡管可能不是設(shè)定值,所以對付不穩(wěn)定的第一個動作都是把比例增益減小,根據(jù)實際情況,減小1/3、1/2甚至更多,同時加大積分時間常數(shù),常常成倍地加,再就是減小甚至取消微分控制作用。如果有前饋控制,適當(dāng)減小前饋增益也是有用的。在實際 中,系統(tǒng)性能不會莫名其妙地突然變壞,上述“救火”式重新整定常常是臨時性的,等生產(chǎn)過程中的機械或原料問題消除后,參數(shù)還是要設(shè)回原來的數(shù)值,否則系統(tǒng) 性能會太過“懶散”。 對于新 工廠,系統(tǒng)還沒有投運,沒法根據(jù)實際響應(yīng)來整定,一般先估計一個初始參數(shù),在系統(tǒng)投運的過程中,對控制回路逐個整定。我自己的經(jīng)驗是,對于一般的流量回 路,比例定在0.5左右,積分大約1分鐘,微分為0,這個組合一般不致于一上來就出大問題。溫度回路可以從2、5、0.05開始,液位回路從5、10、0開始,氣相壓 力回路從10、20、0開始。既然這些都是憑經(jīng)驗的估計,那當(dāng)然要具體情況具體分析,不可能“放之四海而皆準(zhǔn)”。 微分一般用于反應(yīng)遲緩的系統(tǒng),但是事情總有一些例外。我就遇到過一個小小的冷凝液罐,直徑才兩英尺,長不過5英尺,但是流量倒要8-12噸/小時,一 有風(fēng)吹草動,液位變化非常迅速,不管比例、積分怎么調(diào),液位很難穩(wěn)定下來,常常是控制閥剛開始反應(yīng),液位已經(jīng)到頂或到底了。最后加了0.05的微分,液位 一開始變化,控制閥就開始抑制,反而穩(wěn)定下來了。這和常規(guī)的參數(shù)整定的路子背道而馳,但在這個情況下,反而是“唯一”的選擇,因為測量值和控制閥的飽和變 成穩(wěn)定性主要的問題了。 對工業(yè)界以積分為主導(dǎo)控制作用的做法再啰嗦幾句。學(xué)術(shù)上,控制的穩(wěn)定性基本就是漸近穩(wěn)定性,BIBO穩(wěn)定性是沒有辦法證明漸近穩(wěn)定性時的“退而求其次”的東西,不怎么上臺面的。但是工業(yè)界里的穩(wěn)定性有兩個看起來相似、實質(zhì)上不盡相同的方面:一個當(dāng)然是漸近穩(wěn)定性,另一個則是穩(wěn)定性,但不一定向設(shè)定值收 斂,或者說穩(wěn)定性比收斂性優(yōu)先這樣一個情況。具體來說,就是需要系統(tǒng)穩(wěn)定在一個值上,不要動來動去,但是不是在設(shè)定值并不是太重要,只要不是太離譜就行。 例子有很多,比如反應(yīng)器的壓力是一個重要參數(shù),反應(yīng)器不穩(wěn)定,原料進料比例就亂套,催化劑進料也不穩(wěn)定,反應(yīng)就不穩(wěn)定,但是反應(yīng)器的壓力到底是10個大氣 壓還是12個大氣壓,并沒有太大的關(guān)系,只要慢慢地但是穩(wěn)定地向設(shè)定值移動就足夠了。這是控制理論里比較少涉及的一個情況,這也是工業(yè)上時常采用積分主導(dǎo)的控制 的一個重要原因
前面說到系統(tǒng)的頻率, 本來也就是系統(tǒng)響應(yīng)持續(xù)振蕩時的頻率,但是控制領(lǐng)域里有三撥人在搗騰:一撥是以機電類動力學(xué)系統(tǒng)為特色的電工出身,包括航空、機器人等,一撥是以連續(xù)過程 為特色的化工出身的,包冶金、造紙等,還有一撥是以微分方程穩(wěn)定性為特色的應(yīng)用數(shù)學(xué)出身的。在瓦特和抽水馬桶的年代里,各打各的山頭,井水不犯河水,倒也 太平。但控制從藝術(shù)上升為理論后,總有人喜歡“統(tǒng)一”,電工幫搶了先,好端端的控制理論里被塞進了電工里的頻率。童子們哪,那哪是頻率啊,那是……復(fù)頻 率。既然那些變態(tài)的電工幫(啊耶,這下鹿踹真的要來了)能折騰出虛功率,那他們也能折騰出復(fù)頻率來,他們自虐倒也算了,只是苦了我等無辜之眾,被迫受此精 神折磨。 事情的緣由是系統(tǒng)的穩(wěn)定性。前面提到,PID的參數(shù)如果設(shè)得不好,系統(tǒng)可能不穩(wěn)定。除了摸索,有沒有辦法從理論上計算出合適的PID參數(shù)呢?前面也提 到,動態(tài)過程可以用微分方程描述,其實在PID的階段,這只是微分方程中很狹窄的一支:單變量線性常微分方程。要是還記得大一高數(shù),一定還記得線形常微的 解,除了分離變量法什么的,如果自變量時間用t表示的話,最常用的求解還是把exp(λt)代入微分方程,然后解已經(jīng)變成λ的代數(shù)方程的特征方程,解出來的解可以是實數(shù),也可以是復(fù)數(shù),是復(fù)數(shù)的話,就要用三角函數(shù)展開了(怎么樣, 大一噩夢的感覺找回來一點沒有?)。只要實根為負,那微分方程就是穩(wěn)定的,因為負的指數(shù)項最終向零收斂,復(fù)根到底多少就無所謂了,對穩(wěn)定性沒有影響。但 是,這么求解分析起來還是不容易,還是超不出“具體情況具體分析”,難以得出一般的結(jié)論。 法國人以好色、好吃出名,但是他們食色性也之后,還不老實,其中一個叫拉普拉斯的家伙,搗鼓出什么拉普拉斯變換,把常微分方程變成s的多項式。然后那幫電 工的家伙們,喜歡自虐,往s里塞jω,就是那個復(fù)頻率,整出一個變態(tài)的頻率分析,用來分析系統(tǒng)的穩(wěn)定性。不過說變態(tài),也不完全公平,在沒有計算機的年代, 各種圖表是最有效的分析方法,還美其名曰“幾何分析”。頻率分析也不例外。美國佬Evans搞出一個根軌跡(rootlocus),思路倒是滿有意思的。他用增益作自變量,將系統(tǒng)的根(不管實的虛的)在復(fù)平面上畫出軌跡來,要是軌跡在左半平面打轉(zhuǎn)轉(zhuǎn),那就是實根為負,就 是穩(wěn)定的。再深究下去,系統(tǒng)響應(yīng)的臨界頻率之類也可以計算出來。最大的好處是,對于常見的系統(tǒng),可以給出一套作圖規(guī)則來,熟練的大牛、小牛、公牛、母牛 們,眼睛一瞄,隨手就可以畫出根軌跡來,然后就可以告訴你,增益變化多多少,系統(tǒng)開始振蕩,再增加多少,系統(tǒng)會不穩(wěn)定,云云。 根軌跡還是比較客氣的,還有更變態(tài)的奈奎 斯特、伯德和尼科爾斯法,想想腦子都大。都是叫那幫電工分子害的。時至今日,計算機分析已經(jīng)很普及了,但是古典的圖示分析還是有經(jīng)久不衰的魅力,就是因為 圖示分析不光告訴你系統(tǒng)是穩(wěn)定還是不穩(wěn)定,以及其他一些動態(tài)響應(yīng)的參數(shù),圖示分析還可以定性地告訴你增益變化甚至系統(tǒng)參數(shù)變化引起的閉環(huán)性能變化。咦,剛 才還不是在說人家變態(tài)嗎?呃,變態(tài)也有變態(tài)的魅力不是?哈哈。 以頻率分析(也稱頻 域分析)為特色的控制理論稱為經(jīng)典控制理論。經(jīng)典控制理論可以把系統(tǒng)的穩(wěn)定性分析得天花亂墜,但有兩個前提:一、要已知被控對象的數(shù)學(xué)模型,這在實際中不 容易得到;二、被控對象的數(shù)學(xué)模型不會改變或漂移,這在實際中更難做到。對簡單過程建立微分方程是可能的,但簡單過程的控制不麻煩,經(jīng)驗法參數(shù)整定就搞定 了,不需要費那個麻煩,而真正需要理論計算幫忙的回路,建立模型太困難,或者模型本身的不確定性很高,使得理論分析失去意義。經(jīng)典控制理論在機械、航空、 電機中還是有成功的應(yīng)用,畢竟從F=ma出發(fā),可以建立“所有”的機械系統(tǒng)的動力學(xué)模型,鐵疙瘩的重量又不會莫名其妙地改變,主要環(huán)境參數(shù)都可以測量,但 是經(jīng)典控制理論至少在化工控制中實用成功的例子實在是鳳毛麟角,給你一個50塊塔板的精餾塔,一個氣相進料,一個液相進料,塔頂、塔底出料加一個側(cè)線出 料,塔頂風(fēng)冷冷凝器,塔底再沸器加一個中間再沸器,你就慢慢建模去吧,等九牛二虎把模型建立起來了,風(fēng)冷冷凝器受風(fēng)霜雨雪的影響,再沸器的高壓蒸汽的壓力 受友鄰裝置的影響,氣相進料的溫度和飽和度受上游裝置的影響而改變,液相進料的混合組分受上游裝置的影響而改變,但組分無法及時測量(在線氣相色譜分析結(jié) 果要45分鐘才能出來),動態(tài)特性全變了。 老家伙歌德兩百年前就說了,理論是灰色的,生命之樹常青。我們知道馬鹿喜歡金光的或者銀光的,至少也要紅的,不過只好將就啦,青綠地干活。在實用中,PID有很多表兄弟,幫著大表哥一塊打天下。 比例控制的特點是:偏差大,控制作用就大。但在實際中有時還嫌不夠,最好偏差大的時候,比例增益也大,進一步加強對大偏差的矯正作用,及早把系統(tǒng)拉回 到設(shè)定值附近;偏差小的時候,當(dāng)然就不用那么急吼吼,慢慢來就行,所以增益小一點,加強穩(wěn)定性。這就是雙增益PID(也叫雙模式PID)的起源。想想也 對,高射炮瞄準(zhǔn)敵機是一個控制問題。如果炮管還指向離目標(biāo)很遠的角度,那應(yīng)該先盡快地把炮管轉(zhuǎn)到目標(biāo)角度附近,動作猛一點才好;但炮管指向已經(jīng)目標(biāo)很近 了,就要再慢慢地精細瞄準(zhǔn)。工業(yè)上也有很多類似的問題。雙增益PID的一個特例是死區(qū)PID(PIDwith dead band),小偏差時的增益為零,也就是說,測量值和設(shè)定值相差不大的時候,就隨他去,不用控制。這在大型緩沖容器的液位控制里用得很多。本來緩沖容器就 是緩沖流量變化的,液位到底控制在什么地方并不緊要,只要不是太高或太低就行。但是,從緩沖容器流向下游裝置的流量要盡可能穩(wěn)定,否則下游裝置會受到不必 要的擾動。死區(qū)PID對這樣的控制問題是最合適的。但是天下沒有免費的午餐。死區(qū)PID的前提是液位在一般情況下會“自動”穩(wěn)定在死區(qū)內(nèi),如果死區(qū)設(shè)置不 當(dāng),或系統(tǒng)經(jīng)常受到大幅度的擾動,死區(qū)內(nèi)的“無控”狀態(tài)會導(dǎo)致液位不受限制地向死區(qū)邊界“挺進”,最后進入“受控”區(qū)時,控制作用過火,液位向相反方向不 受限制地“挺進”,最后的結(jié)果是液位永遠在死區(qū)的兩端振蕩,而永遠不會穩(wěn)定下來,業(yè)內(nèi)叫hunting(打獵?打什么?打鹿?)。雙增益PID也有同樣的 問題,只是比死區(qū)PID好一些,畢竟只有“強控制”和“弱控制”的差別,而沒有“無控區(qū)”。在實用中,雙增益的內(nèi)外增益差別小于2:1沒有多大意義,大于5:1就要注意上述的持續(xù)振蕩或hunting的問題。 雙增益或死區(qū)PID的問題在于增益的變化是不連續(xù)的,控制作用在死區(qū)邊界上有一個突然的變化,容易誘發(fā)系統(tǒng)的不利響應(yīng),平方誤差PID就沒有這個問題。 誤差一經(jīng)平方,控制量對誤差的曲線就成了拋物線,同樣達到“小偏差小增益、大偏差大增益”的效果,還沒有和突然的不連續(xù)的增益變化。但是誤差平方有兩個問 題:一是誤差接近于零的時候,增益也接近于零,回到上面死區(qū)PID的問題;二是很難控制拋物線的具體形狀,或者說,很難制定增益在什么地方拐彎。對于第一 個問題,可以在誤差平方PID上加一個基本的線性PID,是零誤差是增益不為零;對于后一個問題,就要用另外的模塊計算一個連續(xù)變化的增益了。具體細節(jié)比 較瑣碎,將偏差送入一個分段線性化(也就是折線啦)的計算單元,然后將計算結(jié)果作為比例增益輸出到PID控制器,折線的水平段就對應(yīng)予不同的增益,而連接 不同的水平段的斜線就對應(yīng)于增益的連續(xù)變化。通過設(shè)置水平段和斜線段的折點,可以任意調(diào)整變增益的曲線。要是“野心”大一點,再加幾個計算單元,可以做出 不對稱的增益,也就是升溫時增益低一點,降溫時增益高一點,以處理加熱過程中常見的升溫快、降溫慢的問題。 雙增益或誤差平方都是在比例增益上作文章,同樣的勾當(dāng)也可以用在積分和微分上。更極端的一種PID規(guī)律叫積分分離PID,其思路是這樣的:比例控制的穩(wěn)定性好,響應(yīng)快,所以偏差大的時候,把PID中的積分關(guān)閉掉;偏差小的時候,精細調(diào)整、消除余差是主要問題,所以減 弱甚至關(guān)閉比例作用,而積分作用切入控制。概念是好的,但具體實施的時候,有很多無擾動切換的問題。 這些變態(tài)的PID在理論上很難分析系統(tǒng)的穩(wěn)定性,但在實用中解決了很多困難的問題。大言不慚一句,這些PID本人在實際中都用過。 復(fù)雜結(jié)構(gòu)PID 打仗時,如果敵人太頑固,要么換更大的炮,把敵人轟倒;要么采用更巧妙的戰(zhàn)術(shù),把敵人暈倒。控制也是一樣,單回路PID難以解決的問題,常常可以通過更巧妙的回路結(jié)構(gòu)來解決。 單一的PID回路當(dāng)然可以實現(xiàn)擾動 抑制,但要是主要擾動在回路中,而且是明確的,加一個內(nèi)回路作幫手是一個很不錯的主意。還記得洗熱水澡的例子嗎?要是熱水壓力不穩(wěn)定,老是要為這個而調(diào)整 熱水龍頭,那很麻煩。要是有一個人專門負責(zé)根據(jù)熱水壓力調(diào)節(jié)熱水流量,把熱水壓力穩(wěn)定下來,而且穩(wěn)定在標(biāo)定值,那洗澡的時候,水溫就容易控制多了,只要告 訴那個人現(xiàn)在需要多少熱水流量,而不必?zé)┬臒崴畨毫崴髁康挠绊憽_@個負責(zé)熱水流量的控制回路就是內(nèi)回路,也叫副回路,而洗澡的溫度就是外回路,也叫 主回路,當(dāng)然是主回路指揮副回路,就像自動化指揮機械化、學(xué)自控的人指揮學(xué)機電的人……打住打住,再扯遠了要挨鹿踹了,或者馬踹、牛踹、驢踹……。這種主 回路套副回路的結(jié)構(gòu)叫串級控制(cascadecontrol),曾經(jīng)是單回路PID后工業(yè)上第一種“先進過程控制”,現(xiàn)在串級已經(jīng)用得很多了,也不再有人叫它“先進過程控制”了。串級控制最主要的功 用是抑制回路內(nèi)的擾動,增強總體控制性能。不過串級也不能亂用。如果主回路和副回路的相應(yīng)速度差不多,或者主回路的相應(yīng)速度甚至慢于副回路(通過變態(tài)的調(diào) 試是可以做到的),這樣的串級要出問題。理論上可以用共振頻率什么的分析,但是不用費那個事,用膝蓋想想就知道,一個急性子的頭兒把一個溫吞水的下屬指揮 得團團轉(zhuǎn),結(jié)果只能是大家都精疲力竭,事情還辦砸了。相反,一個鎮(zhèn)定自若的頭兒指揮一個手腳麻利的下屬,那事情肯定辦得好。
如果主要 擾動在回路以外,但是可以預(yù)知,那就要用另一個辦法,就是馬鹿前面說到的前饋了。還是用洗熱水澡的例子。如果冷水管和同一個水房的抽水馬桶功用,你在洗 澡,別人一抽水,那你就變煮熟的龍蝦了(本想說猴子PP的,但是那個不雅,我們要五講四美不是?)。這個時候,要使那個人在抽水的同時告訴你一聲,你算好 時間,算好量,猛減熱水,那溫度還是可以大體不變的。這就是所謂前饋控制(feed-forwardcontrol)。前饋控制有兩個要緊的東西:一是定量的擾動對被控變量的影響,也就是所謂前饋增益;二是擾動的動態(tài),別人抽水到洗澡龍頭的水溫變熱,這 里面有一個過程,不是立時三刻的。如果可以精確知道這兩樣?xùn)|西,那前饋補償可以把可測擾動完全補償?shù)簟5珜嶋H上沒有精確知道的事情,要是指望前饋來完全補 償,弄巧成拙是肯定的。所以前饋通常和反饋一起用,也就是在PID回路上再加一個前饋。一般也只用靜態(tài)前饋,也就是只補償擾動對被控變量的靜態(tài)影響,而忽 略擾動的動態(tài)因素,主要是為了靜態(tài)前饋已經(jīng)把前饋80%的好處發(fā)掘出來了,動態(tài)前饋既復(fù)雜又不可靠,在PID回路里很少有人用。理論上的前饋都是在PID的控制作用上再加一個前饋作用,實際上也可以乘一個控制作用。乘法前饋的作用太猛,我從來沒有用過,一般都是用加法。在實施中,前饋是和擾動的變化(也就 是增量)成比例的,所以擾動變量不變了,前饋作用就消失,否則,整定前饋控制增益會對PID主回路造成擾動。前饋增益可以根據(jù)粗略計算得到,比如說,抽水 的量會造成溫度下降多少、需要調(diào)整多少熱水流量才能維持溫度,這不難從熱量平衡算出來。不想費這個事的話,也可以從歷史數(shù)據(jù)中推算。一般算出來一個前饋增 益后,打上7折甚至5折再用,保險一點,不要矯枉過正。
前饋作用一般是用作輔助控制作用的,但是在特殊情況下,前饋也可以作為“預(yù)加載”(pre-loading)作為基準(zhǔn)控制作用。比如說,在一個高壓系統(tǒng)的啟動過程中,壓力可以從靜止?fàn)顟B(tài)的常壓很快地什到很高的壓力。高壓系統(tǒng)不容許閥門 大幅度運動,所以控制增益都比較低,但是這樣一來,啟動升壓過程中,壓力控制的反應(yīng)就十分遲緩,容易造成壓力過高。這時用壓縮機的轉(zhuǎn)速或高壓進料的流量作 前饋,將壓力控制閥“預(yù)先”放到大概的位置,然后再用反饋慢慢調(diào)節(jié),就可以解決這個問題。 有點搞笑兄在前面提到用單個閥門有時難以控制大 范圍變化的流量,這是一個很實際的問題。工業(yè)閥門一般turndown只有10:1,也就是說,如果這個閥門的最大流量是100噸/小時的話,低于10噸/小時就難以控制了,當(dāng)然,高于90噸/小時也幾近失去控制。 所以,要真的保證0-100的精確控制,需要將一個大閥和一個小閥并列,小閥負責(zé)小流量時的精確控制,大閥負責(zé)大流量時的精確控制,這就是所謂的分程控制 (splitrange control)。分程控制時,小閥首先打開,超過小閥最大流量是小閥就固定在全開位置,大閥開始打開,接過控制。這是開-開型分程控制。也有關(guān)-開型分 程控制,比如反應(yīng)器夾套溫度控制,隨溫度逐漸上升,冷卻水逐漸關(guān)閉,直到冷卻水全關(guān),加熱蒸氣開始打開。分程控制當(dāng)然不一定只有兩截,三截甚至更多都是可 以的,道理都一樣。分程控制的問題在于不同閥門的交接點。閥門在特別小的開度時,控制非常不靈敏,前面說到的10:1也是這個道理。所以實用中,開-開型 分程控制常常在交接點附近有一段重疊,也就是小閥快要全開但還沒有全開時,大閥已經(jīng)開始動作,這樣,到小閥全開、不能再動彈時,大閥已經(jīng)進入有效控制范 圍。關(guān)-開型分程控制常常在交接點設(shè)置一個死區(qū),避免出現(xiàn)兩個閥都有一點點開度的情況。分程控制的交接點的設(shè)置有一點講究,應(yīng)該根據(jù)閥的大小。比如A閥比B閥大一倍,那分程點應(yīng)該設(shè)在1/3先開B閥,而不是懶漢做法的1/2。 很多過程參數(shù)都是可以測量的,但也有很多參數(shù)是沒法直接測量的,這時,如果能夠通過別的可以測量的過程參數(shù)來間接計算真正需要控制的參數(shù),這就是所謂的推 斷控制(inferentialcontrol)。比如精餾塔頂?shù)漠a(chǎn)品純度可以用氣相色譜(gaschromatograph,GC)來測量,但結(jié)果要等40分鐘才能出來,用來做實時控制,黃花菜都涼了。推斷控制是和“軟傳感器”(softsensor)的概念緊密相連的。對精餾塔塔頂純度這個例子來說,可以用純度和塔頂溫度、壓力作一個數(shù)學(xué)模型,用可以測量的溫度和壓力,間接計算出純度。 在計算機控制普及的今天,這是很容易實現(xiàn)的,但是在很多地方,推斷控制仍然被看成很神秘的東西,悲哀。 有的時候,對同一個變量有不止一個控制手段。比如說,風(fēng)冷器有風(fēng)扇的轉(zhuǎn)速可以調(diào)節(jié),也有百葉窗的開度可以調(diào)節(jié)。風(fēng)扇轉(zhuǎn)速的效果快,控制精確;百葉窗開度 的效果猛,不容易掌握,但有利于節(jié)能。所以,可以用風(fēng)扇的快速響應(yīng)來控制溫度,但是用百葉窗開度來通過溫度間接地緩慢地影響風(fēng)扇的轉(zhuǎn)速,使風(fēng)扇轉(zhuǎn)速回到最 經(jīng)濟的設(shè)定。當(dāng)然百葉窗開度的控制回路必須要比風(fēng)扇轉(zhuǎn)速的控制回路整定得慢得多,一般是緩慢的純積分控制,否則兩人要打架。由于這相當(dāng)于控制風(fēng)扇轉(zhuǎn)速的“閥位”,工業(yè)上稱其為閥位控制(valveposition control)。這個閥位控制也可以變一變,風(fēng)扇轉(zhuǎn)速高于某一數(shù)值(比如80%的最大轉(zhuǎn)速)時,把百葉窗開大一格,還是高就繼續(xù)開大;風(fēng)扇轉(zhuǎn)速低于某一 數(shù)值(比如低于20%最大轉(zhuǎn)速)時,把百葉窗關(guān)小一格。這實際上是一個單向的積分作用,不同的地方有兩點: 一、有兩個設(shè)定值,由風(fēng)扇轉(zhuǎn)速是高還是低而定二、積分作用只有在風(fēng)扇轉(zhuǎn)速在這兩個“極限”的外面起作用,在里面時,百葉窗的開度不變。 這樣,風(fēng)扇轉(zhuǎn)速不必回到一個特定值,而是可以在一個范圍內(nèi)浮動。 另 外一個兩個控制器“競爭”一個控制閥的情況是選擇性控制(overridecontrol或selective control)。舉個例子,鍋爐的溫度由燃料流量控制,溫度高了,燃料流量就減下來,但是燃料流量低到燃料管路壓力低于爐膛壓力,那要出現(xiàn)危險的回火, 所以,這時,燃料管路壓力就要接管控制,而犧牲爐膛溫度。換句話說,正常時候,爐膛溫度控制起作用,燃料管路壓力低于一定數(shù)值時,燃料管路壓力控制器作 用。在實施時,就是爐膛溫度控制器和燃料管路壓力控制器的輸出都接到一個高選器,然后搞選器的輸出接到實際的燃料閥。這個概念很清楚,但是初次接觸選擇性 控制的人,常常容易被高選還是低選搞糊涂,明明是壓力太低,怎么是高選呢?其實,只要記住高選還是低選是從閥門這一頭看的,和溫度、壓力的高度沒有關(guān)系。 如果“非常”變量超過界限了,你要閥門打開,那就是高選;你要閥門關(guān)閉,那就是低選。 PID從二、三十年到開始在工業(yè)界廣泛應(yīng)用,戲法變了幾十年,也該換換花樣了。PID說一千道一萬,還是經(jīng)典控制理論的產(chǎn)物。50-60年代時,什么 都要現(xiàn)代派,建筑從經(jīng)典的柱式、比例、細節(jié)的象征意義,變到“形式服從功能”的鋼架玻璃盒子;汽車從用機器牽引的馬車,變到流線型的鋼鐵的藝術(shù);控制理論 也要緊跟形勢,要現(xiàn)代化。這不,美國佬卡爾曼隆重推出……現(xiàn)代控制理論。 都看過舞龍吧? 一個張牙舞爪的龍頭氣咻咻地追逐著一個大繡球,龍身子扭來扭去,還時不時跳躍那么一兩下。中國春節(jié)沒有舞龍,就和洋人的圣誕節(jié)沒有圣誕老人一樣不可思議。 想象一下,如果這是一條看不見的盲龍,只能通過一個人在龍尾巴后面指揮龍尾巴,然后再通過龍身體里的人一個接一個地傳遞控制指令,最后使龍頭咬住繡球。這 顯然是一個動態(tài)系統(tǒng),龍身越長,人越多,動態(tài)響應(yīng)越遲緩。如果只看龍頭的位置,只操控龍尾巴,而忽略龍身子的動態(tài),那就是所謂的輸入-輸出系統(tǒng)。經(jīng)典控制 理論就是建立在輸入-輸出系統(tǒng)的基礎(chǔ)上的。對于很多常見的應(yīng)用,這就足夠了。 但是卡爾曼不滿足于“足夠”。龍頭 當(dāng)然要看住,龍尾巴當(dāng)然要捏住,但龍身體為什么就要忽略呢?要是能夠看住龍身體,甚至操縱龍身體,也就是說,不光要控制龍尾巴,控制指令還要直接傳到龍身 體里的那些人,那豈不更好?這就是狀態(tài)空間的概念:將一個系統(tǒng)分解為輸入、輸出和狀態(tài)。輸出本身也是一個狀態(tài),或者是狀態(tài)的一個組合。在數(shù)學(xué)上,卡爾曼的 狀態(tài)空間方法就是將一個高階微分方程分解成一個聯(lián)立的一階微分方程組,這樣可以使用很多線形代數(shù)的工具,在表述上也比較簡潔、明了。, 卡爾曼是一個數(shù)學(xué)家。數(shù)學(xué)家的想法就是和工程師不一樣。工程師腦子里轉(zhuǎn)的第一個念頭就是“我怎么控制這勞什子?增益多少?控制器結(jié)構(gòu)是什么樣的?”數(shù) 學(xué)家想的卻是什么解的存在性、唯一性之類虛頭八腦的東西。不過呢,這么說數(shù)學(xué)家也不公平。好多時候,工程師憑想象和“實干”,辛苦了半天,發(fā)現(xiàn)得出的結(jié)果 完全不合情理,這時才想起那些“性”(不要想歪了啊,嘿嘿),原來那些存在性、唯一性什么的還是有用的。 還是回過來看這條龍。現(xiàn)在,龍頭、龍尾巴、龍身體都要看,不光要看,還要直接操控龍頭到龍尾的每一個人。但是,這龍不是想看就看得的,不是想舞就舞得 的。說到“看”,直接能夠測量/觀測的狀態(tài)在實際上是不多的,所謂看,實際上是估算。要是知道龍身體有多少節(jié)(就是有多少個人在下面撐著啦),龍身體的彈性/韌性 有多少,那么捏住龍尾巴抖一抖,再看看龍頭在哪里,是可以估算出龍身體每一節(jié)的位置的,這叫狀態(tài)觀測。那么,要是這龍中間有幾位童子開小差,手不好好拉 住,那再捏住龍尾巴亂抖也沒用,這時系統(tǒng)中的部分狀態(tài)就是不可觀測的。如果你一聲令下,部分童子充耳不聞,那這些狀態(tài)就是不可控制的。卡爾曼從數(shù)學(xué)上推導(dǎo) 出不可控和不可觀的條件,在根本上解決了什么時候才不是瞎耽誤工夫的問題。這是控制理論的一個重要里程碑。 再來看這條龍。如果要看這條龍整齊不整齊,排成縱列的容易看清楚;如果要清點人數(shù),看每一個人的動作,排成橫列的容易看清楚。但是不管怎么排,這條龍還是 這條龍,只是看的角度不同。那時候中國人的春節(jié)舞龍還沒有在美國的中國城里鬧騰起來,不知道卡爾曼有沒有看到過舞龍,反正他把數(shù)學(xué)上的線性變換和線性空間 的理論搬到控制里面,從此,搞控制的人有了工具,一個系統(tǒng)橫著看不順眼的話,可以豎著看,因為不管怎么看,系統(tǒng)的本質(zhì)是一樣的。但是不同的角度有不同的用 處,有的角度設(shè)計控制器容易一點,有的角度分析系統(tǒng)的穩(wěn)定性容易一點,諸如此類,在控制理論里就叫這個那個“標(biāo)準(zhǔn)型”。這是控制理論的又一個里程碑。 觀測狀態(tài)的目的最終還是控制。只用輸出的反饋叫輸出反饋,經(jīng)典控制理論里的反饋都可以歸到輸出反饋里,但是用狀態(tài)進行反饋的就叫狀態(tài)反饋了。輸出反饋 對常見系統(tǒng)已經(jīng)很有效了,但狀態(tài)反饋要猛得多。你想想,一個系統(tǒng)的所有狀態(tài)都被牢牢地瞄住,所有狀態(tài)都乖乖地聽從調(diào)遣,那是何等的威風(fēng)?臺商的大奶們的最 高境界呀。 盡 管學(xué)控制的人都要學(xué)現(xiàn)代控制理論,但大多數(shù)人記得卡爾曼還是因為那個卡爾曼濾波器(KalmanFilter)。說它是濾波器,其實是一個狀態(tài)觀測器(state observer),用來從輸入和輸出“重構(gòu)”系統(tǒng)的狀態(tài)。這重構(gòu)聽著玄妙,其實不復(fù)雜。不是有系統(tǒng)的數(shù)學(xué)模型嗎?只要模型精確,給它和真實系統(tǒng)一樣的輸 入,它不就乖乖地把系統(tǒng)狀態(tài)給計算出來了嗎?且慢:微分方程的解不光由微分方程本身決定,還有一個初始條件,要是初始條件不對,微分方程的解的形式是正確 的,但是數(shù)值永遠差一拍。卡爾曼在系統(tǒng)模型的微分方程后再加了一個尾巴,把實際系統(tǒng)輸出和模型計算的理論輸出相比較,再乘上一個比例因子,形成一個實際上 的狀態(tài)反饋,把狀態(tài)重構(gòu)的偏差漸進地消除,解決了初始條件和其他的系統(tǒng)誤差問題。卡爾曼濾波器最精妙之處,在于卡爾曼推導(dǎo)出一個系統(tǒng)的方法,可以考慮進測 量噪聲和系統(tǒng)本身的隨機噪聲,根據(jù)信噪比來決定上述比例因子的大小。這個構(gòu)型其實不是卡爾曼的獨創(chuàng),隆伯格(Luenburg)也得出了類似的結(jié)構(gòu),但是 從系統(tǒng)穩(wěn)定性角度出發(fā),來決定比例因子。同樣的結(jié)構(gòu)大量用于各種“預(yù)測-校正”模型結(jié)構(gòu),在工業(yè)上也得到很多應(yīng)用,比如聚合反應(yīng)器的分子重量分布可以用反 應(yīng)器的溫度、進料配比、催化劑等來間接計算,但不夠精確,也無法把林林總總的無法測量的干擾因素統(tǒng)統(tǒng)包括進數(shù)學(xué)模型里,這時用實驗室測定的真實值來定期校 正,就可以結(jié)合數(shù)學(xué)模型及時的特點和實驗室結(jié)果精確的特點,滿足實時控制的要求,這或許可以算靜態(tài)的卡爾曼濾波器吧。卡爾曼濾波器最早的應(yīng)用還是在雷達 上。所謂邊掃描邊跟蹤,就是用卡爾曼濾波器估計敵機的位置,再由雷達的間隙掃描結(jié)果來實際校正。實際應(yīng)用中還有一個典型的問題:有時候,對同一個變量可以 有好幾個測量值可用,比如有的比較直接但不精確,有的是間接的估算,有很大的滯后但精確度高,這時可以用卡爾曼濾波器把不同來源的數(shù)據(jù)按不同的信噪比加權(quán)“整合”起來,也算是民用版的“傳感器融合”(sensorfusion)吧。 除了卡爾曼濾波器外,卡爾曼的理論在實際中用得不多,但是卡爾曼的理論在理論上建立了一個出色的框架,對理解和研究控制問題有極大的作用。 順便說一句,卡爾曼的理論基本局限于線形系統(tǒng),也就是說,十塊大洋買一袋米,二十塊大洋就買兩袋米,都是成比例的。實際系統(tǒng)中有很多非線性的,兩千塊 大洋還能買兩百袋米,但兩千萬大洋就要看米倉有沒有貨了,市場漲不漲價了,不是錢越多,買的米越多,有一個非線性的問題。非線性的問題研究起來要復(fù)雜得 多。實際系統(tǒng)還有其他特性,有的是所謂時變系統(tǒng),像宇宙火箭,其質(zhì)量隨時間和燃料的消耗而變,系統(tǒng)特性當(dāng)然也就變了。很多問題都是多變量的,像汽車轉(zhuǎn)彎, 不光方向盤是一個輸入,油門和剎車也是輸入變量。但是,狀態(tài)空間的理論在數(shù)學(xué)表述上為線性、非線性、單變量、多變量、時變、時不變系統(tǒng)提供了一個統(tǒng)一的框 架,這是卡爾曼最大的貢獻。 ==================================================== 前面說到,搞控制有三撥人:電工出身的,化工出身的,和應(yīng)用數(shù)學(xué)出身的。在卡爾曼之前,電工出身的占主導(dǎo)地位,數(shù)學(xué)家們好在象牙塔里打轉(zhuǎn)轉(zhuǎn),化工出身則還 對控制理論懵里懵懂,還在“實干”呢。卡爾曼之后,一大批數(shù)學(xué)出身的人,利用對數(shù)學(xué)工具的熟悉,轉(zhuǎn)攻控制理論。一時間,控制理論的數(shù)學(xué)化似乎成了“天下大 勢,順我者昌,逆我者亡”了。在狀態(tài)空間的框架下,多變量沒有太多的問題好研究,于是最優(yōu)化成為控制理論的新時尚。對于一根給定的曲線,求一階導(dǎo) 數(shù)為零的點,就是這個曲線的極點;在對這一極點球二階導(dǎo)數(shù),大于零就是最小點,小于零就是最大點。這時牛頓老爺子就整明白的東東,現(xiàn)在高中或大一人人都學(xué) 過的東西。但是動態(tài)系統(tǒng)是一個微分方程,對微分方程求一階導(dǎo)數(shù)為零,就導(dǎo)致變分法和所謂歐拉方程。但這個東西用起來不方便。實際的最優(yōu)控制不大直接使用變 分。俄羅斯是一個奇怪的地方。老毛子們要么蔫蔫的,要么瘋狂的。俄羅斯的悲劇電影看得你也郁悶得想去自殺。但是老毛子要是搭錯筋整出一個喜劇呢? 那你要么跟著瘋狂,要么被逼瘋狂。就是這么一個地方,除了無數(shù)托爾斯泰、柴可夫斯基、普希金、屠格涅夫等文藝巨璧外,俄羅斯也盛產(chǎn)數(shù)學(xué)家,其中兩個是龐特 里亞京和河里學(xué)控制的人老惦記著的李亞普諾夫。龐特里亞京的極大值原理聽起來嚇人,其實說白了很簡單。看見那山嗎?山頂就是最高點(切,這還用你 說嗎?);看見那山坡嗎?要是在山腰劃一道線,從山下往上爬,盡管山坡還在繼續(xù)往上延伸,但是到線為止,不得逾越,那山腰上那道三八線就是最高點(切,這 還用說?)。這就是龐特里亞京的極大值原理。當(dāng)然啦,龐特里亞京是用精巧、深奧的數(shù)學(xué)語言表述的,要不然他在數(shù)學(xué)界里也別混了。不過呢,意思就是這么一個 意思。龐特里亞京極大值原理的一個典型應(yīng)用就是所謂最速控制問題,或者叫時間最優(yōu)控制 (time optimal control)問題,簡單 地說,就是給定最大馬力和最大剎車功率,怎么開汽車能夠最快地從A點開到B點(什么轉(zhuǎn)彎、上下坡、紅綠燈,這種瑣碎的事情也要拿來煩人?一點品味都沒 有!)。你可以用優(yōu)美但繁瑣的數(shù)學(xué)求證,或者用膝蓋想想,最快的方法,就是一上來就加足馬力,全速前進;然后在不到終點的某一地點,全力剎車,使慢下來的 汽車在到達終點時正好停下來。這時最快的方法,不可能比這更快了。稍微發(fā)揮一點想象力,可以想象“梆”的一下,控制量的油門板一腳到底,再是“梆”的一 下,剎車板一腳到底,控制任務(wù)就完成了。所以最速控制也叫“梆-梆”控制(Bang-Bang control)。最速控制在理論上是一個很有趣 的問題,解法也是簡潔、優(yōu)美,但在實際中直接使用的例子實在是鳳毛麟角,一般都是開始時用“梆-梆”,或者勻速上升到最大控制,以緩和控制的沖擊力;到終 點附近時,改用PID作閉環(huán)微調(diào),以克服“梆-梆”的系統(tǒng)模型誤差十分敏感的缺點。電梯控制就是這樣一個例子。從一樓到四樓,電動機很快勻速上升到最高轉(zhuǎn) 速,一過三樓,電動機就勻速下降到較低的轉(zhuǎn)速,然后根據(jù)電梯實際位置和樓面之差,有控制地減速,直至停下來。要是控制參數(shù)調(diào)得好的話,一下子就穩(wěn)穩(wěn)當(dāng)當(dāng)?shù)?/strong> 停下來;要是調(diào)的不夠好,會在停下來之前上下晃蕩幾下。最速控制問題是較早的最優(yōu)控制問題,它提供了一個很有趣的思路,但這顆樹上開花結(jié)果不多。 相比之下,最優(yōu)控制的另外一支枝繁葉茂,有生氣得多了。這一支就是線型二次型最優(yōu)控制(linear quadratic control)。數(shù)學(xué)是有趣 的,但數(shù)學(xué)也是盲目的。在數(shù)學(xué)上,最優(yōu)化問題就是一個在曲面上尋找凸點的問題,只要你能把一個物理問題表述成一個曲面,數(shù)學(xué)是不理會姓無姓資的。既然如 此,控制偏差的平方在時間上的累積就是很自然的選擇,二次型就是平方在線性代數(shù)里的說法。線型系統(tǒng)的偏差平方有很好的性質(zhì),這山峰是一個饅頭山,沒有懸崖 峭壁,沒有溝坎,容易爬;一山只有一峰,不用擔(dān)心找錯地方。不過這山峰不能只包含控制偏差,還要包含控制量,原因有三個:
1、如果不包括控制量,那最優(yōu)控制的解是沒有意義的,因為無窮大的控制量可以使累計平方偏差為最小,但無窮大的控制量是不現(xiàn)實的。
2、控制量的大小通常和能量、物料的消耗連在一起,實際控制問題一般是“在最小能量、物料消耗小達到最高的控制精度”,所以在“山峰”中同時包含控制偏差和控制量是很自然的
3、系統(tǒng)模型總是有誤差的,誤差“總是”在高頻、大幅度控制作用下最突出,所以為了減低系統(tǒng)對模型誤差的敏感性,也有必要限制控制量的大小。所 以線性二次型最優(yōu)控制的“目標(biāo)函數(shù)”(也就是定義山峰形狀的數(shù)學(xué)表述)是一個控制偏差和控制量各自平方的加權(quán)和的積分。積分當(dāng)然就是“在時間上的累積” 了,加權(quán)和其實就是在控制偏差的平方項和控制量的平方相前分別乘以比例因子,然后再相加。兩個比例因子的相對大小決定了誰更重要。運用矩陣微分和線型 代數(shù)工具,不難導(dǎo)出線性二次型控制律—一個基本的狀態(tài)反饋控制律!只是反饋增益矩陣是按最優(yōu)化的要求計算出來的。線型二次型最優(yōu)控制開創(chuàng)了一整個新的控制領(lǐng)域,很快從狀態(tài)空間走出來,進入其他領(lǐng)域,子孫繁衍,人丁興旺。這一支是當(dāng)今最優(yōu)控制在應(yīng)用中的主體。線 性二次型控制具有各種各樣的優(yōu)點,但是,線性二次型沒有回答一個最基本的控制問題:這個閉環(huán)系統(tǒng)是不是穩(wěn)定。這里,我們的飽受牽記的李亞普諾夫同志出場 了。李亞普諾夫也是一個腦子搭錯筋的人,一百多年前,玩微分方程玩出了癮,整出兩個穩(wěn)定性(或者叫收斂性)的定理,前一個沒有什么太了不起的,把非線性系 統(tǒng)線性化,就是把一根曲線用很多一小段、一小段的直線近似,然后按直線來分析。后一個就有點邪門了。老李琢磨出一個定理,說是對于任意一個系統(tǒng),如果能找 到一個自我耗散的能量函數(shù)(數(shù)學(xué)說法是正定函數(shù)),也就是其數(shù)值永遠為正,但隨時間漸進地趨向零,或者說這個能量函數(shù)對時間的導(dǎo)數(shù)永遠為負,那這個系統(tǒng)就 是穩(wěn)定的。據(jù)說定理的證明是一個天才的杰作,我等凡人只有頻頻點頭的份。不過想想也對,系統(tǒng)的能量耗散沒了,系統(tǒng)不也就安分下來了嗎?當(dāng)然就穩(wěn)定嘍。李 亞普諾夫比卡爾曼還要數(shù)學(xué)家,他的定理只給出“如果存在……就……”,怎么找這個自我耗散的能量函數(shù)他沒說,這個函數(shù)一般是什么樣他也沒說。這難不倒搞自 動控制的廣大革命群眾。不是要正定函數(shù)嗎?不是沒有限制什么形式的正定函數(shù)嗎?那就用控制偏差的平方吧。說干就干,但是干著干著,好玩的事情出現(xiàn)了,對偏 差平方(或二次型)的求導(dǎo),導(dǎo)出了和線性二次型最優(yōu)控制推導(dǎo)過程中同樣出現(xiàn)的一個所謂黎卡蒂方程(Riccati equation),感情這是殊途同歸 呀。換句話說,線性二次型控制總是穩(wěn)定的。這是線性二次型控制的一個重要貢獻:把最優(yōu)性和穩(wěn)定性連到一起。再扯一句李亞普諾夫,他的第二個定理非常威猛,但是有點像一個奇形怪狀的大錘,到現(xiàn)在人們還在找合適的釘子,好用這把大錘砸?guī)紫隆>性二次型控制是已知的僅有的幾個釘子之一,另一個是變結(jié)構(gòu)控制,也可以用李亞普諾夫方法,這是題外話了。都 說瓦特的蒸汽機后,計算機是影響人類進程最大的發(fā)明,計算機當(dāng)然也對自動控制帶來深刻的影響。如前所述,控制理論基本上都是圍繞微分方程轉(zhuǎn)的,所以在“本 質(zhì)”上是連續(xù)的。但是數(shù)字計算機是離散的,也就是說,數(shù)字控制器的眼睛不是一直盯著被控對象看的,而是一眨一眨的。數(shù)字控制器的“手腳”也不是一刻不停地 連續(xù)動作的,而是一頓一頓的。這是數(shù)字計算機的天性使然。于是,傳統(tǒng)的控制理論全部“翻譯”到離散時間領(lǐng)域,微分方程變成了差分方程,所有方法、結(jié)論都有 了連續(xù)、離散兩套,不盡相同,但是大同小異。要是數(shù)字控制就是簡單的連續(xù)系統(tǒng)離散化,計算機控制也就沒有什么了不起。離散控制帶來了一些連續(xù)控制 所不可能具備的新特點,這就是:差分方程用清晰界定的時刻之間的關(guān)系來描述動態(tài)過程。回到洗熱水澡的例子,如果熱水龍頭不在跟前,而是在村外一里地的小鍋 爐房里,你只能用電話遙控,那水溫可以表示為下一分鐘水溫=0.7*現(xiàn)在水溫+0.2*上一分鐘水溫+0.1*再上一分鐘水溫+0.4*(5分鐘前鍋爐房龍頭開度-6分鐘前鍋爐房龍頭開度)顯 然,下一分鐘的水溫受現(xiàn)在水溫的影響比上一分鐘和再上一分鐘的水溫的影響要大,但鍋爐房龍頭開度要是不變,現(xiàn)在、上一分鐘、再上一分鐘水溫都一樣的話,下 一分鐘的水溫也應(yīng)該和現(xiàn)在的水溫一樣。為什么用5分鐘前鍋爐房的龍頭開度呢?那是因為熱水從村外流到洗澡房要有一定的時間,這個時間就是滯后。要是把時間 向前推,那現(xiàn)在的龍頭開度就會影響5分鐘后的水溫。這說明了離散模型的一個重要特質(zhì):預(yù)估能力。所有預(yù)報模型都是建立在離散模型的這個預(yù)估能力上,不管是 天氣預(yù)報,還是經(jīng)濟預(yù)測,還是自動控制里對有滯后的過程的控制。數(shù)字控制的另一特質(zhì)是可以實施一些不可能在連續(xù)時間實現(xiàn)的控制規(guī)律。工業(yè)上常有控 制量的變化需要和當(dāng)前的實際值有關(guān)的情況。比如對于不同的產(chǎn)品,反應(yīng)器的轉(zhuǎn)化率總是大體在88-92%之間,沒有太大的變化,但是催化劑可以在 0.5到35ppm之間變化,采用常規(guī)的PID的話,增益就非常難設(shè),對一個情況合適了,對另一個情況就不合適。所以催化劑需要按百分比變化率調(diào)整,而不是簡單地 按偏差比例調(diào)整。比如說,轉(zhuǎn)化率偏離1%時,催化劑要是在0.5ppm,應(yīng)該調(diào)整0.05ppm;但是在15ppm的時候,就應(yīng)該是 1.5ppm。這 樣,控制律就可以表示為:當(dāng)前的控制量=上一步的控制量*(設(shè)定值/當(dāng)前的測量值)也就是說,在被控變量高于設(shè)定值10%的情況下,控制量也增加10%;測量值和設(shè)定值一樣時,控制量不再變化。實際使用時,誰除以誰要根據(jù)測量值上升你是要控制量上升還是下降來決定,控制律也要稍微修改一下,成為當(dāng)前的控制量=上一步的控制量*(當(dāng)前的測量值/設(shè)定值)^k
k 次 方是用來調(diào)整控制律對“偏差”(這是已經(jīng)不是差值,而是比值了,嚴(yán)格地說,應(yīng)該叫“偏比”?)的靈敏度,相當(dāng)于比例增益。這個控制律實際上相當(dāng)于對數(shù)空間 的純積分控制,要是有興趣,對很多常見的非線性過程有相當(dāng)不錯的效果,實現(xiàn)也簡單。然而,這是一個本質(zhì)離散的控制律,在連續(xù)時間里無法實現(xiàn)。離散控制可以“看一步、走一步”的特性,是連續(xù)控制很難模仿的,也是在實際中極其有用的。形 形色色的控制理論再牛,沒有被控過程的數(shù)學(xué)模型,照樣抓瞎。前面的洗澡水溫就是一個數(shù)學(xué)模型。這個模型是杜撰的,當(dāng)然可以很容易地給它所有模型參數(shù)。但在 實際中,模型參數(shù)不會從天上掉下來。多少科學(xué)家畢生致力于建立某一特定的物理、生物、化學(xué)或別的學(xué)科的數(shù)學(xué)模型,基本機制已經(jīng)清楚的模型都不容易建立,更 不用說很多過程的基本機制或深層機制并不清楚。所以靠機理推導(dǎo)被控過程的數(shù)學(xué)模型是可能的,但對日常的控制問題來說,并不實際。這就是控制理論的另一個分 支—辨識—一顯身手的地方了。如果給定一個模型,也就是一個數(shù)學(xué)公式,給它一組輸入數(shù)據(jù),模型就可以計算出對應(yīng)的輸出數(shù)據(jù)。比如說,給定模型y=2*x+1,再給出x=1,2,3,4,那y就等于3,5,7,9,就這么很簡單。辨識的問題反過來,先給定一個模型結(jié)構(gòu),在這里就是y=a*x +b,已知輸入-輸出數(shù)據(jù)是x=1,2時y=3,5,要求計算出a和b。顯然,這是一個二元一次方程,誰都會解。在實際中,輸入-輸出的觀察 數(shù)據(jù)含有測量噪聲,這對參數(shù)估計的精度不利;但通常積累觀察的數(shù)據(jù)量遠遠超過未知參數(shù)的個數(shù),不說數(shù)學(xué),感覺上這就應(yīng)該對克服測量噪聲有利,關(guān)鍵是怎么利 用這“多余” 的數(shù)據(jù)。一個辦法是把數(shù)據(jù)組兩兩配對,借眾多的二元一次方程,然后對解出來的a和b作平均。還有一個辦法就是有名的最小二乘法了,說穿了, 就是以a和b為最優(yōu)化的“控制量”,使模型輸出和實際觀測值之間的累積平方誤差為最小。實際工業(yè)過程大多有多年的運行經(jīng)驗,大量的數(shù)據(jù)不成問題。 對于大多數(shù)常見過程,模型的基本結(jié)構(gòu)和定性性質(zhì)也可以猜一個八九不離十,有了如此有力的數(shù)學(xué)“大錘”,那么應(yīng)該可以砸開一切建模的硬核桃啦。且慢,世上沒 有真正的“神奇子彈”,一個問題解決了,另一個同等難度的問題又會出現(xiàn)。對于辨識來說,問題有好幾個。第一個問題是工業(yè)數(shù)據(jù)的閉環(huán)性。大多數(shù)重要 參數(shù)都有閉環(huán)回路控制。如果沒有閉環(huán)回路控制,那要么就是過程特性實在太復(fù)雜,簡單回路控制不了;要么就是這個參數(shù)其實不重要,飄移一點沒人在乎。然而, 一旦閉環(huán),系統(tǒng)地輸入和輸出就是相關(guān)的了。這一相關(guān)不要緊,輸入-輸出數(shù)據(jù)之間的因果性就全亂了:輸出通過被控過程本身和輸入相關(guān)(這是好的,辨識就是要 測算出這個相關(guān)關(guān)系,輸出要是和輸入不相關(guān),也沒有控制或辨識什么事了),輸入通過反饋和輸出相關(guān);輸入-輸出成為一個閉合系統(tǒng),你可以用任意多條定理或 方法證明同樣的事:由于因果不分,閉環(huán)辨識是不可能的,除非另外加入“新鮮”的激勵,比如使勁變設(shè)定值,或者在閉環(huán)回路里額外施加獨立于輸入、輸出的激勵 信號,比如“莫名其妙” 地把閥門動幾下。弄到最后,工業(yè)數(shù)據(jù)到底能用多少,就不是一個簡單的回答。有的過程常年穩(wěn)定操作,像乙烯裝置,只有小范圍的微 調(diào)。這倒不是人家懶或者不求上進,而是這些裝置早已高度優(yōu)化,常年操作的極其接近極限的位置,但原料和產(chǎn)品單一,所以工藝狀況不怎么大變。這種系統(tǒng)的閉環(huán) 數(shù)據(jù)用起來很吃力,常常必須做一定的開環(huán)試驗。有的過程經(jīng)常在不同的狀態(tài)之間轉(zhuǎn)換(transition),或者由于不同的原料,如“吃”得很雜的煉油 廠,或者由于不同的產(chǎn)品,如聚乙烯裝置,這實際上就是“使勁變設(shè)定值”,是新鮮的激勵。這種系統(tǒng)的閉環(huán)數(shù)據(jù)比較好用,但又別的問題,下面要談到。第 二個問題是動態(tài)和穩(wěn)態(tài)。動態(tài)模型的作用有兩個:一是描述需要多少時間輸出才能達到某一數(shù)值;二是輸出最終能夠達到什么數(shù)值。用股票市場舉一個例子,你需要 知道兩件事:一是這支股票最后會升到多少,二是需要多少時間才能升到那里,只知道其中一個對你并沒有太大的用處。當(dāng)然為了簡化,這里假定這支股票一路飆 升,不來忽升忽降或跌買漲賣的名堂。這就要求輸入-輸出數(shù)據(jù)必須包含充分的動態(tài)和穩(wěn)態(tài)信息,過于偏頗其中一方面對另一方面會不利。所以,長期穩(wěn)定運行的過 程中可能包含足夠的穩(wěn)態(tài)數(shù)據(jù),但動態(tài)不足;常年不怎么穩(wěn)定的過程可能包含足夠的動態(tài)數(shù)據(jù),但穩(wěn)態(tài)不足。用PID控制打比方,精確的穩(wěn)態(tài)數(shù)據(jù)有助于計算正確 的比例控制增益,精確的動態(tài)數(shù)據(jù)有助于計算正確的積分和微分增益,顯然,把比例增益整對了更為重要。為了獲得精確的穩(wěn)態(tài),在辨識中常常需要等過程開環(huán)穩(wěn)定 下來才進行下一步,但是問題是,實際過程有時時間常數(shù)很長,幾個精餾塔一串聯(lián),時間常數(shù)幾個小時是客氣的,一、兩天都是可能的。這樣一來,一個不太大的模 型,十來個變量,開環(huán)試驗一做就是一、兩個星期。要是一個裝置能夠兩個星期開環(huán),那也不需要什么控制了。第三個問題是激勵的信噪比。都說人類活動 是二氧化碳和溫室效應(yīng)的主要原因,但要是你去生一堆篝火,再去高空大氣層去測一測二氧化碳和溫室效應(yīng),肯定什么也測不出來,本來多少,現(xiàn)在還是多少。為什 么呢?不是因為這堆篝火沒有效果,而是環(huán)境中的自然的變化遠遠超過了篝火的作用,換句話說,就是噪聲遠遠超過了信號。工業(yè)測試也是一樣,信號一定要有一定 的強度,否則是白耽誤工夫。信號強度應(yīng)該使過程達到嚴(yán)重失穩(wěn)的邊緣,這樣才好獲得在大范圍內(nèi)都精確的模型,以便控制器不光在“風(fēng)平浪靜”的情況下可以正常 工作,在“驚濤駭浪”的情況下也能使系統(tǒng)恢復(fù)穩(wěn)定。然而,工廠以生產(chǎn)為主,在一切都“斤斤計較”的今天,如此大范圍的測試所帶來的產(chǎn)品損失甚至對設(shè)備的可 能的危害,都是工廠極不愿意見到的。理論家們設(shè)計了一個偽隨機信號,用一連串寬窄不等的方波信號,作為激勵過程的輸入,在理論上可以是過程參數(shù)的平均值不 致偏離設(shè)定值太多,但 ISO9000不僅要求產(chǎn)品質(zhì)量的平均值要保證,產(chǎn)品質(zhì)量的一致性也要保證。再說,偽隨機信號的脈寬不好確定,太窄了,穩(wěn)態(tài)數(shù)據(jù)不 夠;太寬了,和常規(guī)的階躍信號也沒有什么兩樣。所以偽隨機信號在實際上用得很少。第四個問題是輸入的相關(guān)性。實際工業(yè)過程到了要用辨識來確定模型 的時候,都是單回路對付不了了,所以都是多變量過程。在理論上,多個輸入變量可以同時變化,只要輸入變量的變化是相互獨立的,數(shù)學(xué)上容許多個輸入變量同時 變化,而辨識可以正確地辨別模型。然而,在使用實際過程的歷史數(shù)據(jù)時,常常遇到多個輸入變量并不相互獨立的問題。比如說,在制作巧克力的過程中,香草巧克力比較“苦”,或者說不太甜,而牛奶巧克力比較甜。問題是做牛奶巧克力時,不光加糖,還要加牛奶(廢話,不加牛奶那還是牛奶巧克力嗎?)由于兩者總是同時出現(xiàn),在甜度模型里,就難以辨別甜度是由于加糖的關(guān)系,還是由于加牛奶的關(guān)系。有的時候可以根據(jù)對具體過程的認識,人工地限制辨識的過程,來消除這種影響,有的時候,就不太容易了,只好不用歷史數(shù)據(jù),專門做試驗,用各自獨立的輸入,辨識模型。
第五個問題是模型結(jié)構(gòu)。模型結(jié)構(gòu)包括兩個方面,一是模型的階數(shù),二是剔除在物理上不可能的模型。辨識的模型歸根結(jié)底還是差分方程,這就有一個如何預(yù)設(shè)階數(shù)的問題。數(shù)學(xué)上有很多驗前和驗后的檢驗方法,在工業(yè)上,人們偷一個懶,改用費參數(shù)模型,也就是用一條響應(yīng)曲線而不是一個方程來表述一個模型,這樣就可以繞過階數(shù)的問題。但是剔出不現(xiàn)實的模型還是一個手工活,需要對每一個模型仔細研究,以確定模型所描述的動態(tài)關(guān)系是否合理。數(shù)學(xué)方法還是不夠可靠。在搞模型的人中間,常常會聽到黑箱、白箱和灰箱的說法。黑箱模型就是不理會實際過程的物理、化學(xué)等性質(zhì),純粹從數(shù)學(xué)出發(fā),假設(shè)一個模型結(jié)構(gòu),然后用種種數(shù)學(xué)方法找出一個最好的模型。白箱反其道而行之,從物理、化學(xué)等性質(zhì)出發(fā),建立機理模型。黑箱模型的好處是“放之四海而皆準(zhǔn)”,不需要對具體過程有深入的了解。黑箱模型是一種削足適履的作法,但是如果履本身就做得比較好,具有相當(dāng)?shù)撵`活性和適應(yīng)性,就并不需要削足。由于黑箱模型可以自由假設(shè)模型結(jié)構(gòu),黑箱模型的處理和使用都比較方便。黑箱模型是經(jīng)驗主義的, 數(shù)據(jù)里沒有包含的情況,黑箱模型無法預(yù)測。白箱模型則是“量身度造”的,反映了過程的物理、化學(xué)等性質(zhì),對實際過程的數(shù)據(jù)沒有太大的依賴,對數(shù)據(jù)中不包含的情況也能可靠地預(yù)測。但是白箱模型的結(jié)構(gòu)有具體問題決定,得出的模型不一定容易使用。在實際中,人們經(jīng)常在假設(shè)一個模型結(jié)構(gòu)的時候考慮進大大簡化的過程機理,所以模型結(jié)構(gòu)不是憑空拍腦袋出來,而是粗略地抓住了過程的基本特質(zhì),然后再用黑箱方法的“數(shù)據(jù)絞肉機”,將簡化模型沒有能夠捕捉的細微末節(jié)一網(wǎng)打盡。這種模型結(jié)合了黑箱和白箱的特點,所以稱為灰箱。實際建模中,純粹黑箱或白箱的成功例子很少,灰箱的成功機會就要多得多。不管什么箱,最后還是有一個如何辨識實際過程的問題。閉環(huán)辨識的好處不用多說了,問題是如何從閉環(huán)辨識中獲得有用的模型。工業(yè)上有一個辦法,沒有一個“官名”,但實際上是一個開環(huán)-反饋過程。具體做法是這樣的:先用粗略的過程知識構(gòu)造一個簡單的多變量控制器,其任務(wù)不是精確控制被控過程,而是將被控變量為此在極限之內(nèi),一旦逼近或超過極限,就采取動作將其“趕”回極限內(nèi);但只要在極限內(nèi),就按部就班地做階躍擾動,測試過程特性。測試的結(jié)果用來改進控制器的模型,然后再來一遍。幾遍(一般兩遍就夠了)之后,模型精度應(yīng)該很不錯了。這個方法比較好地解決了辨識精度和過程穩(wěn)定性的要求。西游記里最好看的打斗是孫悟空大戰(zhàn)二郎神那一段。孫悟空打不過就變,二郎神則是“敵變我變”,緊追不舍,最后把個無法無天的頑皮猴子擒拿歸案。用控制理論的觀點看,這“敵變我變”的本事就是自適應(yīng)控制控制器結(jié)構(gòu)根據(jù)被控過程的變化自動調(diào)整、自動優(yōu)化。自適應(yīng)控制有兩個基本思路,一是所謂模型跟蹤控制,二是所謂之校正控制。模型跟蹤控制也叫模型參考控制,在概念上對人們并不陌生,那陣子,經(jīng)常樹立各種榜樣,目的就是要在發(fā)出號召時,我們比照榜樣的行為,盡量調(diào)整自己的行為,使我們的行為了榜樣的行為接近。這就是模型跟蹤控制的基本思路。模型跟蹤控制在航空和機電上用得比較多,在過程控制中很少使用。自校正控制的思路更接近人們對自適應(yīng)的理解。自校正控制是一個兩步走的過程,首先對被控過程作實時辨識,然后再辨識出來的模型的基礎(chǔ),實時地重新構(gòu)造控制器。思路簡單明了,實施也不算復(fù)雜,但自校正控制在一開始的歡呼后,并沒有在工業(yè)上取得大范圍的成功,原因何在呢?原因之一是閉環(huán)辨識。雖然自校正控制不斷改變控制器的參數(shù),在一定程度上打破了固定增益反饋控制對輸入、輸出帶來的因果關(guān)系,但是因果關(guān)系還是存在,還是相當(dāng)強烈,對辨識模型的質(zhì)量帶來影響。原 因之二是所謂“協(xié)方差爆炸”。數(shù)學(xué)上當(dāng)然有嚴(yán)格的說法,但簡單地說,就是自校正控制器的目的當(dāng)然還是是系統(tǒng)穩(wěn)定下來,但是在系統(tǒng)越來越穩(wěn)定的過程中,自校正控制器對偏差和擾動的敏感度越來越高,最后到“萬籟俱靜”的時候,敏感度在理論上可以達到無窮大,然而,這時如果真的擾動來了,控制器一下子就手足無措 了。原因之三是實際過程的復(fù)雜性。在辨識實際過程時,最重要的步驟不是后面的“數(shù)學(xué)絞肉機”,而是對數(shù)據(jù)的篩選,必須把各種異常數(shù)據(jù)剔除出去,否則就是“垃圾進來,垃圾出去”。但是,要實時、自動地剔除異常數(shù)據(jù),這個要求非同小可,比設(shè)計、投運一個自校正控制器費事多了。這是自校正控制在實際中成功例子有限的最大原因。自動控制從一開始就是以機電控制為主導(dǎo)的。60年代數(shù)學(xué)派主導(dǎo)了一段時間后,70年代化工派開始“小荷才露尖尖角”。自校正控制已經(jīng)有很多化工的影子,但化工派的正式入場之作是模型預(yù)估控制(model predictive control,MPC)。這是一個總稱,其代 表作是動態(tài)矩陣控制(dynamic matrix control,DMC)。DMC是Charlie Cuttler的PhD論文,最先在殼牌石油公司獲得應(yīng)用,以后Cuttler自立門戶,創(chuàng)辦DMC公司,現(xiàn)在是Aspen Technology公司的一部分。數(shù)學(xué)控制理論非常優(yōu)美,放之四海而皆準(zhǔn),但是像老虎一樣,看起來威猛,卻是干不得活的,干活畢竟靠老牛。DMC的成功之處在于應(yīng)用偽理論,將一些本來不相干的數(shù)學(xué)工具一鍋煮,給一頭老老實實的老牛披上一張絢爛的老虎皮,在把普羅大眾唬得一愣一愣的時候,悄悄地把活干了。
DMC 基本就是把非參數(shù)模型(在這里是截斷的階躍曲線)放入線性二次型最優(yōu)控制的架構(gòu)下,成功地解決了解決了多變量、滯后補償和約束控制問題。多變量的含義不言自明,滯后放在離散動態(tài)模型下也很容易實現(xiàn)預(yù)測,這也沒有什么稀奇。稀奇的是,DMC用“土辦法”解決了約束控制問題。所有實際控制問題的控制量都有極限。 加速時,油門踩到底了,那就是極限,再要多一馬力也多不出來了。龐特里亞金的最大值原理在理論上可以處理約束控制問題,在實際上很難求出有用的解來,最速控制是一個特例。那DMC是怎么解決約束控制問題的呢?當(dāng)某個控制量達到極限時,這個控制量就固定在極限值上了,這就不再是變量,而是已知量,把已知量代進去,將控制矩陣中相關(guān)的行和列抽掉,重新排列矩陣,剩余的接著求解。這也沒有什么稀奇。令人頭疼的是如何處理輸出約束的問題。DMC把線性規(guī)劃和控制問題結(jié)合起來,用線性規(guī)劃解決輸出約束的問題,同時解決了靜態(tài)最優(yōu)的問題,一石兩鳥,在工業(yè)界取得了極大的成功。自卡爾曼始,這是第一個大規(guī)模產(chǎn)品化的 “現(xiàn)代控制技術(shù)”,Cuttler在DMC上賺了大錢了,在“高技術(shù)泡沫”破碎之前把公司賣給Aspen Technology,更是賺得缽滿盆溢。他女婿 是一個醫(yī)生,也不行醫(yī)了,改行搞過程控制,跟著Cuttler干了。
DMC的英明之初在于從實際需要入手,不拘泥于理論上的嚴(yán)格性、完整性,人參、麻黃、紅藥水、狗皮膏藥統(tǒng)統(tǒng)上,只要管用就行。在很長一段時間內(nèi),DMC的穩(wěn)定性根本沒有辦法分析,但是它管用。搞實際的人容易理解DMC的歪道理,但搞理論的人對DMC很頭疼。
DMC 打 開局面后,一時群雄蜂起,但塵埃落定之后,如今只有三家還在舞臺上。Honeywell的RMPCT(Robust Multivariable Predictive Control Technology)是一個中國同胞開創(chuàng)的,他的獨特 之處在于引入“漏斗”概念。大部分控制問題都有一個特點:如果擾動當(dāng)前,有一點控制偏差是可以容忍的;但時間一長,控制偏差應(yīng)該消除。換句話說,這就像一個時間軸上對偏差的橫放的漏斗。這個概念對復(fù)雜過程的MPC參數(shù)整定非常有用,已經(jīng)在別的公司的產(chǎn)品上也出現(xiàn)了。第三家就是方興正艾的 Pavilion Technology的Perfecter。美國公司有一個壞毛病,喜歡對好好的產(chǎn)品取一個不倫不類的名字。Perfecter的特色 是將神經(jīng)元技術(shù)(neuralnet)和MPC結(jié)合起來,所以可以有效地處理非線性過程。神經(jīng)元模型沒有什么神秘的,說穿了,就是具有某些特定復(fù)雜形式的回歸模型,但是比回歸模型更不適宜內(nèi)插和外推。DMC也號稱可以處理非線性,因為即使階躍響應(yīng)曲線拐上幾拐,DMC照樣囫圇吞棗,可以計算控制輸出來, 這就是非參數(shù)模型的好處。但是問題在于DMC的結(jié)構(gòu)框架畢竟還是線性的,階躍響應(yīng)的概念根本不適合非線性過程,因為非線性響應(yīng)和輸入的絕對數(shù)值、相對變化 甚至變化方向有關(guān),甚至可以更復(fù)雜,所以所謂DMC可以處理非線性是放空炮。如果實際過程的非線性不強,根本可以忽略它;如果實際過程有很強的非線性,DMC肯定抓瞎。那么, Perfecter用了神經(jīng)元,是不是就所向披靡了呢?也不盡然。Perfecter繼承了DMC不問理論、唯實用是問的好 傳統(tǒng),但是Perfecter 的基本骨架還是線性的MPC,只是用靜態(tài)的神經(jīng)元模型時不時地作一個線性化。Perfecter在理論上乏善可陳,在實用上還是管用的。前面說到PID在當(dāng)今過程控制中占至少85%,那MPC就要占14.5%了。計算機對自動控制的影響要是只局限在離散控制理論上,那也就不是計算機控制了。事實上,80年代以后新建的化工廠,基本都采用計算機控制。說是可以采用比 PID更先進的技術(shù),實際上,絕大多數(shù)還是在用PID,加上順序控制,按部就班地執(zhí)行一系列動作。那計算機控制的好處到底在什么地方呢?過程控制的實際裝置最初全是直接安裝在現(xiàn)場的,后來出現(xiàn)氣動單元儀表,可以把壓縮空氣的信號管線從現(xiàn)場拉到中心控制室,操作工可以在中控觀察、控制全廠了。電動單元儀表防爆問題解決后,中控的使用更加廣泛。操作工坐在儀表板前,對所轄工段的情況一目了然。但是隨著工廠的增大和過程的復(fù)雜,儀表板越來越長,一個大型化工廠隨隨便便就可以有上千個基本控制回路和上萬個各種監(jiān)控、報警點,儀表板非有幾百米長不可,這顯然是不可能的。生產(chǎn)過程的高度整合,使一兩個人控制整個工廠不光滿足削減人工的需要,也對減少 通訊環(huán)節(jié)、綜合掌控全局有利。所以,計算機顯示屏就不光是酷,而是必須的了。另外,計算機控制使現(xiàn)場儀表(閥門、測量變送器等)的自檢成為可能,大大提高了系統(tǒng)的可靠性。于是,計算機控制就是不花沒人性了。計算機控制從一開始的集中控制(用 IBM的大型機)到現(xiàn)在的分散控制(所謂Distributed Control System,DCS)走過一個螺旋形上升的過程。集中控制的要害在于風(fēng)險集中,要是大型機掛了,全廠都要失控。分散控制將全廠劃分為若干條條塊塊,用以微處理器為基礎(chǔ)的一個控制用局部網(wǎng)來分散控制,主要子系統(tǒng)都是實時冗余的,故障時在第一時間內(nèi)切換到備用系統(tǒng),主系統(tǒng)和備用系統(tǒng)在平時定期互相自檢、切換,以保證可靠。分散控制顯然大大提高由于計算機本身引起的可靠性。但是現(xiàn)場儀表和接線終端 (field terminal assembly,FTA)不是冗余的,整個可靠性鏈還是有漏洞。另外,控制局部網(wǎng)的同軸電纜長度有物理限制,FTA到DCS的長度也有物理限制,所以最后分散控制還是不怎么分散,全是集中在中控室附近或地下室里。不過DCS在地理上的集中,并不妨礙其在邏輯上的分散,只要不是一把火把 DCS的機房燒掉,部件可靠性的問題還是可以很好地隔離在小范圍。既然DCS是一個局部網(wǎng),那就有一個通信協(xié)議的問題。DCS基 本上用兩大類型的通信協(xié)議:輪詢(polling)和中斷。輪詢由中心控制單元輪流查詢所有子系統(tǒng),不管有沒有數(shù)據(jù)更新,到時候就來問一遍,所以不管什么時候,系統(tǒng)地通信流量都很高,但是恒定。中斷方式正好相反,子系統(tǒng)自己先檢查一下,如果數(shù)據(jù)沒有變化,就不上網(wǎng)更新;直到數(shù)據(jù)有變化,再上網(wǎng)“打一個招呼”。這個方式的平時通信流量較低,所以網(wǎng)路帶寬要求較低。但是生產(chǎn)過程發(fā)生異常時,大量警報數(shù)據(jù)蜂擁而來,如果帶寬不夠,就會發(fā)生通信阻塞的問題。所以, 中斷和輪詢到最后對帶寬的要求是一樣的,因為誰也不能承擔(dān)生產(chǎn)過程異常時通信阻塞的后果。二十年前,Honeywell是第一個吃DCS這個螃蟹 的公司,今天Honeywell仍然是行業(yè)里的老大,盡管其設(shè)備昂貴,被戲稱為Moneywell。當(dāng)年的DCS全是量身度造的硬件、軟件。今天在“開放 系統(tǒng)”(open architecture)的大潮里,DCS的制造廠家都紛紛將控制臺和計算、網(wǎng)絡(luò)控制單元轉(zhuǎn)向通用的WINTEL或UNIX平臺,自 己專注于工控專用裝置(如基本控制裝置,包括I/O)和系統(tǒng)的軟件整合。但是這帶來了新的問題。通用/商用硬件、軟件的可靠性常常不能滿足24小時、365天的連續(xù)運轉(zhuǎn)要求。對于大多數(shù)IT來說,機子壞了,兩小時內(nèi)換上就是很快的了。但是對于生產(chǎn)過程來說,這是不可容忍的。開放結(jié)構(gòu)容許將DCS和經(jīng)營、管理、辦公網(wǎng)絡(luò)相連接,極大地提高了信息交流速度和深度、廣度,但也帶來了網(wǎng)絡(luò)安全問題,緊接著就是DCS前面豎起一道又一道的防火墻,把數(shù)據(jù)分享和遠程操控壓縮到最低。另外就是WINTEL夜以繼日的不斷更新?lián)Q代,使硬件、軟件的穩(wěn)定性十分糟糕,沒有過多少時間,又要升級,又是頭疼。這是DCS的第二個螺旋形上升,只是現(xiàn)在還是盤旋多于上升。計算機控制的領(lǐng)地也在擴大,類似USB那樣的技術(shù)也開始用于數(shù)字化的儀表。過去的儀表都必須把信號線拉到接線板 (marshalling panel)上,然后再連到FTA上,這樣同樣遠在百把米外的10臺儀表,需要并行拉線,很浪費。用了類似USB的現(xiàn)場總線(field bus),各個儀表可以“掛”在總線上,然后一根總線連到DCS就可以了,大大節(jié)約拉線費用和時間,對系統(tǒng)(如加一個測量用的變送器或控制閥)的擴展也極為方便。
DCS的最大優(yōu)越性是可編程。這不是簡單的像 PLC(programmable logic controller,可編程序邏輯控制器,多用于機電控制)的梯形邏輯那樣編程,而是可以像C、FORTRAN那樣“正規(guī)”的編程。沒有在IT干過,只能和學(xué)校里計算機語言課程和大作業(yè)的程序相比。DCS編程和平常的編程相比,還是有一些特點的。首先,DCS的程序?qū)儆?/strong>“再入”式,也就是定時反復(fù)運行的,而不是一次從頭到底運行就完事的。所以DCS程序可以在運行完畢時在內(nèi)存里存放數(shù)據(jù),到下次運行時再調(diào)用,形成所謂“遞歸”運算。這既是優(yōu)點,也是缺點,要是別人在你兩次運算中間把那個中間數(shù)據(jù)更改了,你就慘了,找債主都不容易。
DCS程序的特色是實時,所以其執(zhí)行非常取決于一系列事件在時間上的順序。時序上要是搞岔了,老母雞也就變鴨了。問題是,分散控制要求越分散越好,不光是可靠性,在系統(tǒng)資源的調(diào)度上,分散了也容易使系統(tǒng)的計算負荷均勻。這樣一來,一個應(yīng)用程序包常常將一個巨大的程序打散成很多小程序,各自的時序和銜接就要非常小心。和學(xué)術(shù)型控制計算程序最大的不同,或許還在于對異常情況的處理。一個多變量控制問題在實際上常常會有部分變量處于手動控制,而其余變量處于自動控制的情況。 這在理論上是一個麻煩,在實際上是一個噩夢。不光要考慮所有的排列、組合,還要考慮所有情況平順的切入、切出,不同模式之間的切換。還有就是要考慮異常情況下如何安全、自動地退出自動控制,交還手動控制。有時操作規(guī)程上的一句話,程序?qū)憣懢褪且豁摗H绻僮饕?guī)程上來一句“視情處理”,那就更慘了。在所有控制程序中,控制計算通常不超過30%,20%為人機接口功能,而50%為異常情況處理。計算機控制不是因為更先進、更有效的人機界面才開始的。從一開始,人機界面 就面臨一個管中窺豹的問題。計算機的CRT顯屏只有這么大,不可能 “一言以蔽之”,在一瞥之中把所有的過程信息盡收眼底。計算機可以不斷地換屏,分段顯示其他裝置、工段的信息,但是把所有的工段、裝置分別用各自的畫幅表示,如果沒有有效的組織,找都不容易找到,就像在同一個目錄里雜亂 無章地放上百把個文件一樣。分級的菜單是傳統(tǒng)的解決辦法,但是要逐級上去再逐級下來,很費時間,情急之中,往往來不及更換。大鍵盤上short cut鍵 可以“一鍵調(diào)出”,但需要死記硬背,這可不是幾個、十幾個畫幅,而是上百個甚至更多。很長時間以來,如何有效地在畫幅之間導(dǎo)航,可以在最短時間和最少點擊內(nèi),不需要死記硬背,就可以直觀地找到所需要的畫幅,一直是一個令人頭疼的問題。人機界面設(shè)計的另一個問題是色彩。還記得DOS 2.0時代的WordStar嗎?那是黑底綠字的。那時候,CRT亮度不足,壽命也糟糕,黑底可以延長壽命,綠字可以增加反差,幫助閱讀,反正機房是暗暗的,黑底并不傷眼睛。到了WordPerfect 5.0的時候,就是藍底白字了,字和背景之間的反差大大減小,藍底也比較適宜于在明亮的房間內(nèi)使用。到了Word的 時代,沒有昏暗的機房了,基本上都用像紙上寫字一樣的白底黑字了,再用黑底綠字,太傷眼睛。中控室計算機顯示也經(jīng)歷了類似的旅程。早期DCS的顯 示都是黑底綠字的,到了用 WINTEL或UNIX的時代,很多人出于習(xí)慣,仍然采用黑底綠字,但是現(xiàn)代人機工程研究表明,淺色背景大大減低眼睛的疲勞, 在明亮室內(nèi)的燈光對屏幕的反光也小,所以控制室的顯示開始向淺灰背景進化了。人機工程研究同時發(fā)現(xiàn),色彩可以作為過程信息的一部分,天下太平的時候,應(yīng)該用最不顯眼的灰色,所有的圖形、數(shù)據(jù)都用不同深淺的灰色來表示,只有在過程參數(shù)越限或報警時,才采用彩色顯示,這樣可以一下子就把操作工的注意力吸引到需要的地方。但是,出于習(xí)慣思維,很多地方還是大量采用各種色彩表示不同的設(shè)備狀態(tài)和參數(shù),即使是正常狀態(tài)也是一樣。這樣在平日里色彩繽紛很好看,但在異常情況時,不容易在萬馬軍中找到上將的首級,實際上是舍本逐末。顯示器的布置也很有講究,少了當(dāng)然不行,也不是越多越好,一個操作工的視界的上下左右有一定的范圍,控制臺的色彩、構(gòu)造、照明都不能想當(dāng)然的。這不是助長修正主義,而是保持操作工最有效地控制生產(chǎn)過程的要求。傳統(tǒng)上,如果操作工不抱怨,控制回路的性能就是可以接受的,除非你想精益求精,一般不會去沒事找事,重新整定參數(shù)。在對經(jīng)濟效益斤斤計較的今天,生產(chǎn)過程的工藝條件被推到極端,對控制性能提出極大的挑戰(zhàn),控制回路必需時時、處處都在最優(yōu)狀態(tài)。隨著控制回路數(shù)的迅速增長,單靠人工觀察,已經(jīng)難于隨時掌握所有控制回路的性能狀況了。控制回路性能評估技術(shù)應(yīng)運而生。理論上,對一個過程可以設(shè)計一個最優(yōu)控制,其中一種就叫最小方差控制。這其實是線性二次型最優(yōu)控制的一種,控制作用比較猛,但是這是理論上的極限,控制方差不可能再小了。90年代時,理論界提出一個方法,可以用閉環(huán)辨識的方法,不辨識模型,而是直接確定理論上的最小方差,然后將實際方差和理論上的最小方差相比,判別控制回路是否需要重新整定。這個方法開創(chuàng)了控制回路性能評估的先河,但是在實用上不容易排除不利影響,應(yīng)用不多。然而,不和理論上的最優(yōu)值比較,而是和實際上的理想值比較,就可以繞過很多麻煩的理論問題。比如說,流量回路應(yīng)該在1分鐘內(nèi)安定下來,那理想值就是1分鐘。通過快速富利葉變換和頻域分析,可以將理論性能和實際性能相比較,迅速確定回路的當(dāng)前性能狀況。最要緊的是,這可以用計算機自動采集數(shù)據(jù),自動計算,每天早上(或隨便什么時候)給出報表,控制工程師可以一目了然,哪些回路需要重新整定,哪些沒有問題,可以有的放矢。實時頻域分析還可以將所有以相近頻率振蕩的回路羅列出來,接下來控制工程師就可以按圖索驥,找出害群之馬了。控制回路性能評估的下一步當(dāng)然就是自動整定。這實際上是一個簡化的、斷續(xù)運行的自校正PID控制器,在理論上已經(jīng)沒有問題,但實用上還有很多可靠性問題沒有完全解決,現(xiàn)在產(chǎn)品不少,但實用的還是不多。對控制回路性能評估的更進一步,當(dāng)然就是對生產(chǎn)過程的故障診斷了。故障就是異常情況,異常就是和正常不一樣。所以故障診斷的核心在于如何探測這“不一樣”。故 障總是有蛛絲馬跡的,問題在于工業(yè)過程的數(shù)據(jù)量太大,在大海里撈針,等撈到的時候,常常已經(jīng)時過境遷了。在數(shù)據(jù)分析中,PLS(其實是 Peojection to Latent Structure,而不是一般所認為的Partial Least Square)和主元分析 (Principal Component Analysis,PCA)是很流行的方法。PLS和PCA將眾多相關(guān)的變量歸攏到少數(shù)幾個“合成”的變量, 這樣一個有大量變量的復(fù)雜大系統(tǒng)就可以簡化為一個小系統(tǒng),就從大海撈針變?yōu)橥肜飺漆樍恕瞥鰜淼尼槻辉偈菃蝹的變量,而是變量的組合。這和實際是相符的, 故障的早期征兆常常是若干變量的組合,而不能單從一兩個變量上看出來。
PLS和PCA還可以和圖形方法結(jié)合起來使用。比如說,將那些合成變量標(biāo)稱化,就是除以正常值,那所有合成變量的標(biāo)稱值就是1。把所有變量畫成“蜘蛛圖”(spider chart),每一個蜘蛛腳代表一個合成變量,由于合成變量的標(biāo)稱值都是1,蜘蛛圖就是大體為圓的。如果哪一個腳出現(xiàn)變化,蜘蛛就不圓了,非常容易看出異常來,接下來就可以有的放矢地尋找故障的早期跡象了。圖形數(shù)據(jù)分析的另一個路子是所謂co-linear分析。這是IBM早年琢磨出來的一個東西,理論上簡直沒有東西,但要求換一個思路,正所謂退一步海闊天空。平常的數(shù)據(jù)點,三維以上就沒法畫了。但是如果把三維空間的所有數(shù)軸畫成平行線,而不是常見的直角坐標(biāo),那三維空間里的一個點,就是連接三根平行線的一根折線。如果僅此而已,那也就是一個簡單但愚蠢的數(shù)學(xué)游戲。平行坐標(biāo)系的妙處在于,平行線可以盡著畫,所以5維、20維、3千維,只要紙足夠大,都可以畫,而且可以看見,而不是只能想像。平行坐標(biāo)只有一個缺點,就是只能表述離散的點,而難以表述連續(xù)的線或面,但這對計算機采集的數(shù)據(jù)來說,不是問題,計算機采集的數(shù)據(jù)本來就是離散的點。這樣,用平行坐標(biāo)把大量的數(shù)據(jù)點畫成折線簇,可以很直觀地看出數(shù)據(jù)中的模式來。故障診斷的另一個思路是對整個過程進行辨識。辨識出來的模型表述系統(tǒng)的行為,故障當(dāng)然就是行為的改變,所以將實時辨識出來的模型和正常模型相比較,就可以判斷系統(tǒng)是否出現(xiàn)異常或故障。計算機和模型的另一個用處就是仿真。仿真(simulation)也叫模擬,但是模擬容易和模擬電路(analog circuit)搞混,所以現(xiàn)在叫仿真多了。只要對實際過程有一個足夠精確的模型,計算機是可以相當(dāng)精確地模仿實際系統(tǒng)的行為的。仿真有靜態(tài)仿真和動態(tài)仿真。靜態(tài)仿真基本上就是解一個巨大的非線性聯(lián)立方程組,描述空間分布的微分方程也被有限元方法分解了。現(xiàn)代靜態(tài)仿真已經(jīng)可以做得相當(dāng)精確,但這也是在多年結(jié)合實際過程數(shù)據(jù)“磨合”模型的基礎(chǔ)上才能做到的。靜態(tài)仿真大量用于工藝設(shè)備設(shè)計計算,但是對研究實際過程的真實行為的作用有限,因為對整個生產(chǎn)過程和工藝的仿真要考慮進各個設(shè)備動作的時間和控制回路的影響,這些靜態(tài)仿真是無法體現(xiàn)的。動態(tài)仿真要解同樣巨大的聯(lián)立微分方程組,由于要達到實時或更快,一般只能大大簡化,否則計算速度跟不上。希望有朝一日,動態(tài)仿真可以達到靜態(tài)仿真同等的精度,而不必擔(dān)心損失計算速度。仿真在工業(yè) 上十分有用。現(xiàn)代化工廠越來越穩(wěn)定,越來越安全,很多操作工一輩子也沒有遇到過真正危險的情況。但沒有遇到過不等于不會遇到,操作工必須接受足夠的訓(xùn)練, 只有這樣,才能當(dāng)遇到危險情況時,首先能及時、正確地識別故障,然后才能及時、正確地作出反應(yīng)。這就要靠仿真訓(xùn)練了。現(xiàn)代化工廠也在不斷地拓展工藝參數(shù)的極限,經(jīng)常需要做各種各樣的試驗。有了仿真,就可以預(yù)先驗證試驗的構(gòu)思,和驗證對緊急情況的處理。仿真更是控制工程師的好幫手,新的控制回路先放到仿真上試一下,得出初始整定參數(shù),驗證異常情況的處理能力,然后再放到真家伙上,可以避免很多不必要的驚訝。仿 真的一個遠親是實時最優(yōu)化(real time optimization,RTO)。對于斤斤計較的現(xiàn)代制造業(yè),實時最優(yōu)化當(dāng)然是求之不得的。實時最優(yōu)化就是把整個生產(chǎn)過程當(dāng)一個大的實時仿真來運算,實時(實際上是每小時)計算出最優(yōu)工況。想法是好的,困難是多的。首先,那么大一個方程組收斂不容易,要劃成很多條條塊塊,分別求解,然后拼起來。問題就出在“拼”上,邊界條件碰不攏怎么辦?模型總是有相當(dāng)?shù)暮喕渲杏行﹨?shù)必須和實際測量值符合,有些就沒有實際測量值對應(yīng),就是“經(jīng)驗系數(shù)” (fudge factor)了。這些經(jīng)驗系數(shù)就是承擔(dān)收拾爛賬的,邊界碰不攏,就調(diào)整經(jīng)驗系數(shù),使他們對齊。問題是,好多時候,這一招也不靈,所以實時最優(yōu)化的喇叭吹得很響,真正用起來的很少,花了大錢最后放棄的也不在少數(shù)。和打仗一樣,贏得戰(zhàn)斗的是武士,不是武器。控制工程師是控制回路成功與否的關(guān)鍵,而不是價值千金的計算機,或者“放之四海而皆準(zhǔn)”的數(shù)學(xué)控制理論。在加拿大,化工系的控制“專業(yè)”要選滿所有化工學(xué)分,然后再加選控制學(xué)分,所以要求比一般的化學(xué)工程師還要高一點。選滿化工學(xué)分是很重要的一點,如果沒有對化工的話語權(quán),那化工控制也別混了,這一點是國內(nèi)(至少是二十多年前我讀大學(xué)的時候)所欠缺的。這就像醫(yī)生一樣,只有對生理、病理有深刻的了解,對病人的具體情況有深刻的了解,才有可能可靠地判斷病情,才能可靠地開方治病。只會看單抓藥,這就不是醫(yī)生,而是藥劑師了。在實際中,控制工程師對工藝過程的動態(tài)行為的理解至少應(yīng)該和工藝工程師同等,和操作工相當(dāng)。事實上,很多時候,控制工程師的使命就是將工藝工程師和操作工的經(jīng)驗和知識具體化、自動化了,如果你不能深刻理解,那如何實現(xiàn)呢?一個優(yōu)秀的控制工程師可以在操作工不在的時候,當(dāng)班操作;可以在工藝工程師不在的時候,做出工藝決定。但是控制工程師畢竟不是工藝工程師,也不是操作工。控制工程師應(yīng)該掌握前面說到的所有領(lǐng)域,從數(shù)學(xué)控制理論,到計算機網(wǎng)絡(luò),到人機工程,到工藝和儀表知識。這個要求很高,但不是不切實際的。這些是攬這個瓷器活所必需的金剛鉆。這也是為什么現(xiàn)在工業(yè)界熱衷于招雇具有碩士學(xué)位的控制畢業(yè)生,因為本科的幾年已經(jīng)很難學(xué)習(xí)必須 的知識了。至于博士,那還是有眼高手低的嫌疑,呵呵。專業(yè)知識只是成功的一面,控制工程師必須善于與人打交道。工藝工程師比較好說,畢竟有類似的背景,但操作工是控制系統(tǒng)成敗的關(guān)鍵,如果無法取得操作工對你個人和你的控制系統(tǒng)的信任和合作,那控制系統(tǒng)很可能就是永久性地被關(guān)閉,操作工寧愿手工控 制,出了問題還是因為控制系統(tǒng)不可靠,你就等著里外不是人吧。但是取得操作工的信任和合作后,事情會向相反的方向發(fā)展。操作工會主動向你提出改進建議,或新的想法,主動找機會幫你試驗新的功能,主動拓展控制系統(tǒng)的性能極限。如果說顧客是上帝的話,操作工而不是部門主管才是控制工程師的上帝。控制工程師也要善于和頭兒打交道,畢竟搞項目、要錢的時候,還是要找頭兒的。打報告、作報告、項目控制和管理、和供應(yīng)商打交道,這些都是必備的技能。工藝工程師也是工程師,但用軍隊的比方來說,他們?nèi)硕鄤荼姡癯R?guī)部隊,習(xí)慣大兵團協(xié)同作戰(zhàn)。控制工程師則像特種部隊,人數(shù)少,行止怪癖(至少對工藝的人來說,他們永遠弄不明白控制的人到底在做什么,怎么做出來的),從規(guī)劃到實施到維修,全一手包辦。控制理論的發(fā)展歷程就是一個尋找“放之四海而皆準(zhǔn)”的“神奇子彈”的歷程,終極目標(biāo)是可以用一個統(tǒng)一的數(shù)學(xué)控制工具去“套”任何一個具體的控制問題,而不必對具體過程的物理、化學(xué)等特性有深入的理解。控制理論的每一次重大進展,都給人們帶來希望,“這一次終于找到了”。但每一次希望都帶來了新的失望,新方法、新工具解決了老問題,但帶來了新的局限,有的時候甚至轉(zhuǎn)了一圈兜回去了。新的局限往往比老問題更棘手,需要對過程的理解是更多而不是更少。矛和盾就是這么著在螺旋形上升中斗法。但是現(xiàn)實常常和人們的認識背道而馳。在商業(yè)化的大潮中,推銷先進控制算法的公司拍胸脯擔(dān)保可以如何如何用“萬能”的數(shù)學(xué)控制工具解決一切控制問題,那些絢爛的老虎皮也確實照得不明就里的人眼花繚亂,心旌飄蕩;公司的頭兒也一口吃進,畢竟“技術(shù)萬能論”不僅在美軍中盛行, 在北美的公司文化中也是大行其道。直到有一天,人們發(fā)現(xiàn)永動機依然是神話,人還是不能在水上步行,方才想起來,原來世上是沒有這等好事的。不過這是題外話了。本來就知道這個系列會又臭又長,但是既然寫了,就寫完吧,希望沒有占用太多的帶寬,希望沒有浪費大家的時間,希望給對自動控制有興趣的朋友提供一點入門的知識,希望給同好提供一些從實際中得到的經(jīng)驗,錯誤的地方肯定很多,敬請原諒,同時謝謝閱讀。
|