小時(shí)候喜歡看雜書(shū),沒(méi)什么東西看,不正在*****嘛?不過(guò)看進(jìn)去了兩個(gè)“化”:機械化和自動(dòng)化。打小就沒(méi)有弄明白,這機械化和自動(dòng)化到底有什么差別,機器不是自己就會(huì )動(dòng)的嗎?長(cháng)大了,總算稍微明白了一點(diǎn),這機械化是力氣活,用機器代替人的體力勞動(dòng),但還是要人管著(zhù)的,不然機器是不知道該干什么不該干什么的;這自動(dòng)化嘛,就是代替人的重復腦力勞動(dòng),是用來(lái)管機器的。也就是說(shuō),自動(dòng)化是管著(zhù)機械化的,或者說(shuō)學(xué)自動(dòng)化的是管著(zhù)學(xué)機械的……啊,不對,不對,哪是哪! 有人考證古代就有自動(dòng)化的實(shí)例,但現代意義上的自動(dòng)控制開(kāi)始于瓦特的蒸汽機。據說(shuō)紐考門(mén)比瓦特先發(fā)明蒸汽機,但是蒸汽機的轉速控制問(wèn)題沒(méi)有解決,弄不好轉速飛升,機器損壞不說(shuō),還可能說(shuō)大事故。瓦特在蒸汽機的轉軸上安了一個(gè)小棍,棍的一端和放汽閥連著(zhù),放氣閥松開(kāi)來(lái)就關(guān)閉,轉速增加;按下去閥就打開(kāi),轉速降低;棍的另一端是一個(gè)小重錘,棍中間某個(gè)地方通過(guò)支點(diǎn)和轉軸連接。轉軸轉起來(lái)的時(shí)候,小棍由于離心力的緣故揮起來(lái)。轉速太高了,小棍揮會(huì )揮得很高,放汽閥就被按下去打開(kāi),轉速下降;轉速太低了,小棍揮不起來(lái),放汽閥就被松開(kāi)來(lái)關(guān)閉,轉速回升。這樣,蒸汽機可以自動(dòng)保持穩定的轉速,即保證安全,又方便使用。也就是因為這個(gè)小小的轉速調節器,瓦特的名字和工業(yè)革命連在一起,而紐考門(mén)的名字就要到歷史書(shū)里去找了。 類(lèi)似的例子在機械系統里很多,家居必備的抽水馬桶是另一個(gè)例子。放水沖刷后,水箱里水位降低,浮子隨水面下降,進(jìn)水閥打開(kāi)。隨著(zhù)水位的升高,進(jìn)水閥逐漸關(guān)閉,直到水位達到規定高度,進(jìn)水閥完全關(guān)閉,水箱的水正好準備下一次使用。這是一個(gè)非常簡(jiǎn)單但非常巧妙的水位控制系統,是一個(gè)經(jīng)典的設計,但不容易用經(jīng)典的控制理論來(lái)分析,不過(guò)這是題外話(huà)了。 這些機械系統設計巧妙,工作可靠,實(shí)在是巧奪天工。但是在實(shí)用中,如果每次都需要這樣的創(chuàng )造性思維,那太累,最好有一個(gè)系統的方法,可以解決“所有”的自動(dòng)控制問(wèn)題,這就是控制理論的由來(lái)。 從小大人就教我們,走路要看路。為什么呢?要是不看著(zhù)路,走路走歪了也不知道,結果就是東撞西撞的。要是看著(zhù)路呢?走歪了,馬上就看到,趕緊調整腳步,走回到正道上來(lái)。這里有自動(dòng)控制里的第一個(gè)重要概念:反饋(feedback)。 反饋是一個(gè)過(guò)程: 1、設定目標,對小朋友走路的例子來(lái)說(shuō),就是前進(jìn)的路線(xiàn)。 2、測量狀態(tài),小朋友的眼睛看著(zhù)路,就是在測量自己的前進(jìn)方向。 3、將測量到的狀態(tài)和設定的目標比較,把眼睛看到的前進(jìn)方向和心里想的前進(jìn)方向作比較,判斷前進(jìn)方向是否正確;如果不正確,相差有多少。 4、調整行動(dòng),在心里根據實(shí)際前進(jìn)方向和設定目標的偏差,決定調整的量。 5、實(shí)際執行,也就是實(shí)際挪動(dòng)腳步,重回正確的前進(jìn)方向。 在整個(gè)走路的過(guò)程中,這個(gè)反饋過(guò)程周而復始,不斷進(jìn)行,這樣,小朋友就不會(huì )走得東倒西歪了。但是,這里有一個(gè)問(wèn)題:如果所有的事情都是在瞬時(shí)里同時(shí)發(fā)生的,那這個(gè)反饋過(guò)程就無(wú)法工作。要使反饋工作,一定要有一定的反應時(shí)間。還好,世上之事,都有一個(gè)過(guò)程,這就為反饋贏(yíng)得了所需要的時(shí)間。 小時(shí)候,媽媽在鍋里蒸東西,蒸好了,從鍋里拿出來(lái)總是一個(gè)麻煩,需要抹布什么的墊著(zhù),免得燙手。 但是碗和鍋的間隙不大,連手帶抹布伸進(jìn)去頗麻煩,我常常不知天高地厚,自告奮勇地徒手把熱的碗拿出來(lái)。只要動(dòng)作快,手起碗落,可以不燙手。當然嘍,要是捧著(zhù)熱碗再東晃晃,西蕩蕩,那手上感覺(jué)的溫度最終會(huì )和熱碗一樣,肯定要把手心、手指燙熟不可的。在從接觸碗到皮膚溫度和碗表面一樣,這里面有一個(gè)逐漸升溫的過(guò)程,這就是動(dòng)態(tài)過(guò)程(dynamic process)。這里面有兩個(gè)東西要注意:一個(gè)是升溫的過(guò)程有多快,另一個(gè)是最終的溫度可以升到多少。要是知道了這兩個(gè)參數,同時(shí)知道自己的手可以耐受多少溫度,理論上可以計算出熱的碗在手里可以停留多少時(shí)間而不至于燙手。 反饋過(guò)程也叫閉環(huán)(closed loop)過(guò)程。既然有閉環(huán),那就有開(kāi)環(huán)(open loop)。開(kāi)環(huán)就是沒(méi)有反饋的控制過(guò)程,設定一個(gè)控制作用,然后就執行,不根據實(shí)際測量值進(jìn)行校正。開(kāi)環(huán)控制只有對簡(jiǎn)單的過(guò)程有效,比如洗衣機和烘干機按定時(shí)控制,到底衣服洗得怎么樣,烘得干不干,完全取決于開(kāi)始時(shí)的設定。對于洗衣機、烘干機這樣的問(wèn)題,多設一點(diǎn)時(shí)間就是了,稍微浪費一點(diǎn),但可以保證效果。對于空調機,就不能不顧房間溫度,簡(jiǎn)單地設一個(gè)開(kāi)10分鐘、關(guān)5分鐘的循環(huán),而應該根據實(shí)際溫度作閉環(huán)控制,否則房間里的溫度天知道到底會(huì )達到多少。記得80年代時(shí),報告文學(xué)很流行。徐遲寫(xiě)了一個(gè)《哥德巴赫猜想》,于是全國人民都爭當科學(xué)家。小說(shuō)家也爭著(zhù)寫(xiě)科學(xué)家,成就太小不行,所以來(lái)一個(gè)語(yǔ)不驚人死不休,某大家寫(xiě)了一個(gè)《無(wú)反饋快速跟蹤》。那時(shí)正在大學(xué)啃磚頭,對這個(gè)科學(xué)新發(fā)現大感興趣,從頭看到尾,也沒(méi)有看明白到底是怎么無(wú)反饋快速跟蹤的,F在想想,小說(shuō)就是小說(shuō),不過(guò)這無(wú)良作家也太扯,無(wú)反饋還要跟蹤,不看著(zhù)目標,不看著(zhù)自己跑哪了,這跟的什么蹤啊,這和永動(dòng)機差不多了,怎么不挑一個(gè)好一點(diǎn)的題目,冷聚變什么的,至少在理論上還是可能的。題外話(huà)了。 在數學(xué)上,動(dòng)態(tài)過(guò)程用微分方程描述,反饋過(guò)程就是在描述動(dòng)態(tài)過(guò)程的微分方程的輸入項和輸出項之間建立一個(gè)關(guān)聯(lián),這樣改變了微分方程本來(lái)的性質(zhì)。自動(dòng)控制就是在這個(gè)反饋和動(dòng)態(tài)過(guò)程里做文章的。 房間內的空調是一個(gè)簡(jiǎn)單的控制問(wèn)題。不過(guò)這只是指單一房間,整個(gè)高層大樓所有房間的中央空調問(wèn)題實(shí)際上是一個(gè)相當復雜的問(wèn)題,不在這里討論的范圍。夏天了,室內溫度設在28度,實(shí)際溫度高于28度了,空調機啟動(dòng)致冷,把房間的溫度降下來(lái);實(shí)際溫度低于28度了,空調機關(guān)閉,讓房間溫度受環(huán)境氣溫自然升上去。通過(guò)這樣簡(jiǎn)單的開(kāi)關(guān)控制,室內溫度應該就控制在28度。不過(guò)這里有一個(gè)問(wèn)題,如果溫度高于28度一點(diǎn)點(diǎn),空調機就啟動(dòng);低于28度一點(diǎn)點(diǎn),空調機就關(guān)閉;那如果溫度傳感器和空調機的開(kāi)關(guān)足夠靈敏的話(huà),空調機的開(kāi)關(guān)頻率可以無(wú)窮高,空調機不斷地開(kāi)開(kāi)關(guān)關(guān),要發(fā)神經(jīng)病了,這對機器不好,在實(shí)際上也沒(méi)有必要。解決的辦法是設立一個(gè)“死區”(dead band),溫度高于29度時(shí)開(kāi)機,低于27度時(shí)關(guān)機。注意不要搞反了,否則控制單元要發(fā)神經(jīng)了。有了一個(gè)死區后,室內溫度不再可能?chē)栏窨刂圃?8度,而是在27到29度之間“晃蕩”。如果環(huán)境溫度一定,空調機的制冷量一定,室內的升溫/降溫動(dòng)態(tài)模型已知,可以計算溫度“晃蕩”的周期。不過(guò)既然是講故事,我們就不去費那個(gè)事了。 這種開(kāi)關(guān)控制看起來(lái)“土”,其實(shí)好處不少。對于大部分過(guò)程來(lái)說(shuō),開(kāi)關(guān)控制的精度不高但可以保證穩定,或者說(shuō)系統輸出是“有界”的,也就是說(shuō)實(shí)際測量值一定會(huì )被限制在一定的范圍,而不可能無(wú)限制地發(fā)散出去。這種穩定性和一般控制理論里強調的所謂漸進(jìn)穩定性不同,而是所謂BIBO穩定性,前者要求輸出最終趨向設定值,后者只要求在有界的輸入作用下輸出是有界的,BIBO指bounded input bounded output。 對于簡(jiǎn)單的精度要求不高的過(guò)程,這種開(kāi)關(guān)控制(或者稱(chēng)繼電器控制,relay control,因為最早這種控制方式是用繼電器或電磁開(kāi)關(guān)來(lái)實(shí)現的)就足夠了。但是很多時(shí)候,這種“毛估估”的控制滿(mǎn)足不了要求。汽車(chē)在高速公路上行駛,速度設在定速巡航控制,速度飄下去幾公里,心里覺(jué)得吃虧了,但要是飄上去幾公里,被警察抓下來(lái)吃一個(gè)罰單,這算誰(shuí)的? 開(kāi)關(guān)控制是不連續控制,控制作用一加就是“全劑量”的,一減也是“全劑量”的,沒(méi)有中間的過(guò)渡。如果空調機的制冷量有三個(gè)設定,:小、中、大,根據室溫和設定的差別來(lái)決定到底是用小還是中還是大,那室溫的控制精度就可以大大提高,換句話(huà)說(shuō),溫度的“晃蕩”幅度將大幅度減小。那么,如果空調機有更多的設定,從小小到小中到……到大大,那控制精度是不是更高呢?是的。既然如此,何不用無(wú)級可調的空調機呢?那豈不可以更精確地控制室溫了嗎?是的。無(wú)級可調或連續可調的空調機可以精確控制溫度,但開(kāi)關(guān)控制不能再用了。家用空調機中,連續可調的不占多數,但沖熱水淋浴是一個(gè)典型的連續控制問(wèn)題,因為水龍頭可以連續調節水的流量。沖淋浴時(shí),假定冷水龍頭不變,只調節熱水。那溫度高了,熱水關(guān)小一點(diǎn);溫度低了,熱水開(kāi)打一點(diǎn)。換句話(huà)說(shuō),控制作用應該向減少控制偏差的方向變化,也就是所謂負負反饋?刂品较驅α,還有一個(gè)控制量的問(wèn)題。溫度高了1度,熱水該關(guān)小多少呢? 經(jīng)驗告訴我們,根據具體的龍頭和水壓,溫度高1度,熱水需要關(guān)小一定的量,比如說(shuō),關(guān)小一格。換句話(huà)說(shuō),控制量和控制偏差成比例關(guān)系,這就是經(jīng)典的比例控制規律:控制量=比例控制增益*控制偏差,偏差越大,控制量越大?刂破罹褪菍(shí)際測量值和設定值或目標值之差。在比例控制規律下,偏差反向,控制量也反向。也就是說(shuō),如果淋浴水溫要求為40度,實(shí)際水溫高于40度時(shí),熱水龍頭向關(guān)閉的方向變化;實(shí)際水溫低于40度時(shí),熱水龍頭向開(kāi)啟的方向變化。但是比例控制規律并不能保證水溫能夠精確達到40度。在實(shí)際生活中,人們這時(shí)對熱水龍頭作微調,只要水溫還不合適,就一點(diǎn)一點(diǎn)地調節,直到水溫合適為止。這種只要控制偏差不消失就漸進(jìn)微調的控制規律,在控制里叫積分控制規律,因為控制量和控制偏差在時(shí)間上的累積成正比,其比例因子就稱(chēng)為積分控制增益。工業(yè)上常用積分控制增益的倒數,稱(chēng)其為積分時(shí)間常數,其物理意義是偏差恒定時(shí),控制量加倍所需的時(shí)間。這里要注意的是,控制偏差有正有負,全看實(shí)際測量值是大于還是小于設定值,所以只要控制系統是穩定的,也就是實(shí)際測量值最終會(huì )穩定在設定值上,控制偏差的累積不會(huì )是無(wú)窮大的。這里再啰嗦一遍,積分控制的基本作用是消除控制偏差的余差(也叫殘差)。 比例和積分控制規律可以應付很大一類(lèi)控制問(wèn)題,但不是沒(méi)有改進(jìn)余地的。如果水管水溫快速變化,人們會(huì )根據水溫的變化調節熱水龍頭:水溫升高,熱水龍頭向關(guān)閉方向變化,升溫越快,開(kāi)啟越多;水溫降低,熱水龍頭向開(kāi)啟方向變化,降溫越快,關(guān)閉越多。這就是所謂的微分控制規律,因為控制量和實(shí)際測量值的變化率成正比,其比例因子就稱(chēng)為比例控制增益,工業(yè)上也稱(chēng)微分時(shí)間常數。微分時(shí)間常數沒(méi)有太特定的物理意義,只是積分叫時(shí)間常數,微分也跟著(zhù)叫了。微分控制的重點(diǎn)不在實(shí)際測量值的具體數值,而在其變化方向和變化速度。微分控制在理論上和實(shí)用中有很多優(yōu)越性,但局限也是明顯的。 如果測量信號不是很“干凈”,時(shí)不時(shí)有那么一點(diǎn)不大不小的“毛刺”或擾動(dòng),微分控制就會(huì )被這些風(fēng)吹草動(dòng)搞得方寸大亂,產(chǎn)生很多不必要甚至錯誤的控制信號。所以工業(yè)上對微分控制的使用是很謹慎的。 比例-積分-微分控制規律是工業(yè)上最常用的控制規律。人們一般根據比例-積分-微分的英文縮寫(xiě),將其簡(jiǎn)稱(chēng)為PID控制。即使在更為先進(jìn)的控制規律廣泛應用的今天,各種形式的PID控制仍然在所有控制回路中占85%以上。 在PID控制中,積分控制的特點(diǎn)是:只要還有余差(即殘余的控制偏差)存在,積分控制就按部就班地逐漸增加控制作用,直到余差消失。所以積分的效果比較緩慢,除特殊情況外,作為基本控制作用,緩不救急。微分控制的特點(diǎn)是:盡管實(shí)際測量值還比設定值低,但其快速上揚的沖勢需要及早加以抑制,否則,等到實(shí)際值超過(guò)設定值再作反應就晚了,這就是微分控制施展身手的地方了。作為基本控制使用,微分控制只看趨勢,不看具體數值所在,所以最理想的情況也就是把實(shí)際值穩定下來(lái),但穩定在什么地方就要看你的運氣了,所以微分控制也不能作為基本控制作用。比例控制沒(méi)有這些問(wèn)題,比例控制的反應快,穩定性好,是最基本的控制作用,是“皮”,積分、微分控制是對比例控制起增強作用的,極少單獨使用,所以是“毛”。在實(shí)際使用中比例和積分一般一起使用,比例承擔主要的控制作用,積分幫助消除余差。微分只有在被控對象反應遲緩,需要在開(kāi)始有所反應時(shí),及早補償,才予以采用。只用比例和微分的情況很少見(jiàn)。 連續控制的精度是開(kāi)關(guān)控制所不可比擬的,但連續控制的高精度也是有代價(jià)的,這就是穩定性問(wèn)題?刂圃鲆鏇Q定了控制作用對偏差的靈敏度。既然增益決定了控制的靈敏度,那么越靈敏豈不越好?非也。 還是用汽車(chē)的定速巡航控制做例子。速度低一點(diǎn),油門(mén)加一點(diǎn),速度低更多,油門(mén)加更多,速度高上去當然就反過(guò)來(lái)。但是如果速度低一點(diǎn),油門(mén)就加很多,速度更低,油門(mén)狂加,這樣速度不但不能穩定在要求的設定值上,還可能失控。這就是不穩定。所以控制增益的設定是有講究的。在生活中也有類(lèi)似的例子。國民經(jīng)濟過(guò)熱,需要經(jīng)濟調整,但調整過(guò)火,就要造成“硬著(zhù)陸”,引起衰退;衰退時(shí)需要刺激,同樣,刺激過(guò)火,會(huì )造成“虛假繁榮”。要達成“軟著(zhù)陸”,經(jīng)濟調整的措施需要恰到好處。這也是一個(gè)經(jīng)濟動(dòng)態(tài)系統的穩定性問(wèn)題。 實(shí)際中到底多少增益才是最合適的,理論上有很多計算方法,但實(shí)用中一般是靠經(jīng)驗和調試來(lái)摸索最佳增益,業(yè)內行話(huà)叫參數整定。如果系統響應在控制作用后面拖拖沓沓,大幅度振蕩的話(huà),那一般是積分太過(guò);如果系統響應非常神經(jīng)質(zhì),動(dòng)不動(dòng)就打擺子,呈現高頻小幅度振蕩的話(huà),那一般是微分有點(diǎn)過(guò)分。中頻振蕩當然就是比例的問(wèn)題了。不過(guò)各個(gè)系統的頻率都是不一樣的,到底什么算高頻,什么算低頻,這個(gè)幾句話(huà)說(shuō)不清楚,應了毛主席那句話(huà):“具體情況具體分析”,所以就打一個(gè)哈哈了。 再具體說(shuō)起來(lái),參數整定有兩個(gè)路子。一是首先調試比例增益以保證基本的穩定性,然后加必要的積分以消除余差,只有在最必要的情況下,比如反映遲緩的溫度過(guò)程或容量極大的液位過(guò)程,測量噪聲很低,才加一點(diǎn)微分。這是“學(xué)院派”的路子,在大部分情況下很有效。但是工業(yè)界有一個(gè)“歪路子”:用非常小的比例作用,但大大強化積分作用。這個(gè)方法是完全違背控制理論的分析的,但在實(shí)際中卻是行之有效,原因在于測量噪聲嚴重,或系統反應過(guò)敏時(shí),積分為主的控制規律動(dòng)作比較緩和,不易激勵出不穩定的因素,尤其是不確定性比較高的高頻部分,這也是***“穩定壓倒一切”的初衷吧。 在很多情況下,在初始PID參數整定之后,只要系統沒(méi)有出現不穩定或性能顯著(zhù)退化,一般不會(huì )去重新整定。但是要是系統不穩定了怎么辦呢?由于大部分實(shí)際系統都是開(kāi)環(huán)穩定的,也就是說(shuō),只要控制作用恒定不變,系統響應最終應該穩定在一個(gè)數值,盡管可能不是設定值,所以對付不穩定的第一個(gè)動(dòng)作都是把比例增益減小,根據實(shí)際情況,減小1/3、1/2甚至更多,同時(shí)加大積分時(shí)間常數,常常成倍地加,再就是減小甚至取消微分控制作用。如果有前饋控制,適當減小前饋增益也是有用的。在實(shí)際中,系統性能不會(huì )莫名其妙地突然變壞,上述“救火”式重新整定常常是臨時(shí)性的,等生產(chǎn)過(guò)程中的機械或原料問(wèn)題消除后,參數還是要設回原來(lái)的數值,否則系統性能會(huì )太過(guò)“懶散”。 對于新工廠(chǎng),系統還沒(méi)有投運,沒(méi)法根據實(shí)際響應來(lái)整定,一般先估計一個(gè)初始參數,在系統投運的過(guò)程中,對控制回路逐個(gè)整定。我自己的經(jīng)驗是,對于一般的流量回路,比例定在0.5左右,積分大約1分鐘,微分為0,這個(gè)組合一般不致于一上來(lái)就出大問(wèn)題。溫度回路可以從2、5、0.05開(kāi)始,液位回路從5、10、0開(kāi)始,氣相壓力回路從10、20、0開(kāi)始。既然這些都是憑經(jīng)驗的估計,那當然要具體情況具體分析,不可能“放之四海而皆準”。 微分一般用于反應遲緩的系統,但是事情總有一些例外。我就遇到過(guò)一個(gè)小小的冷凝液罐,直徑才兩英尺,長(cháng)不過(guò)5英尺,但是流量倒要8-12噸/小時(shí),一有風(fēng)吹草動(dòng),液位變化非常迅速,不管比例、積分怎么調,液位很難穩定下來(lái),常常是控制閥剛開(kāi)始反應,液位已經(jīng)到頂或到底了。最后加了0.05的微分,液位一開(kāi)始變化,控制閥就開(kāi)始抑制,反而穩定下來(lái)了。這和常規的參數整定的路子背道而馳,但在這個(gè)情況下,反而是“唯一”的選擇,因為測量值和控制閥的飽和變成穩定性主要的問(wèn)題了。 對工業(yè)界以積分為主導控制作用的做法再啰嗦幾句。學(xué)術(shù)上,控制的穩定性基本就是漸近穩定性,BIBO穩定性是沒(méi)有辦法證明漸近穩定性時(shí)的“退而求其次”的東西,不怎么上臺面的。但是工業(yè)界里的穩定性有兩個(gè)看起來(lái)相似、實(shí)質(zhì)上不盡相同的方面:一個(gè)當然是漸近穩定性,另一個(gè)則是穩定性,但不一定向設定值收斂,或者說(shuō)穩定性比收斂性?xún)?yōu)先這樣一個(gè)情況。具體來(lái)說(shuō),就是需要系統穩定在一個(gè)值上,不要動(dòng)來(lái)動(dòng)去,但是不是在設定值并不是太重要,只要不是太離譜就行。例子有很多,比如反應器的壓力是一個(gè)重要參數,反應器不穩定,原料進(jìn)料比例就亂套,催化劑進(jìn)料也不穩定,反應就不穩定,但是反應器的壓力到底是10個(gè)大氣壓還是12個(gè)大氣壓,并沒(méi)有太大的關(guān)系,只要慢慢地但是穩定地向設定值移動(dòng)就足夠了。這是控制理論里比較少涉及的一個(gè)情況,這也是工業(yè)上時(shí)常采用積分主導的控制的一個(gè)重要原因。 前面說(shuō)到系統的頻率,本來(lái)也就是系統響應持續振蕩時(shí)的頻率,但是控制領(lǐng)域里有三撥人在搗騰:一撥是以機電類(lèi)動(dòng)力學(xué)系統為特色的電工出身,包括航空、機器人等,一撥是以連續過(guò)程為特色的化工出身的,包冶金、造紙等,還有一撥是以微分方程穩定性為特色的應用數學(xué)出身的。在瓦特和抽水馬桶的年代里,各打各的山頭,井水不犯河水,倒也太平。但控制從藝術(shù)上升為理論后,總有人喜歡“統一”,電工幫搶了先,好端端的控制理論里被塞進(jìn)了電工里的頻率。童子們哪,那哪是頻率啊,那是……復頻率。既然那些**的電工幫(啊耶,這下鹿踹真的要來(lái)了)能折騰出虛功率,那他們也能折騰出復頻率來(lái),他們自虐倒也算了,只是苦了我等無(wú)辜之眾,被迫受此精神折磨。 事情的緣由是系統的穩定性。前面提到,PID的參數如果設得不好,系統可能不穩定。除了摸索,有沒(méi)有辦法從理論上計算出合適的PID參數呢?前面也提到,動(dòng)態(tài)過(guò)程可以用微分方程描述,其實(shí)在PID的階段,這只是微分方程中很狹窄的一支:?jiǎn)巫兞烤(xiàn)性常微分方程。要是還記得大一高數,一定還記得線(xiàn)形常微的解,除了分離變量法什么的,如果自變量時(shí)間用t表示的話(huà),最常用的求解還是把exp(λt)代入微分方程,然后解已經(jīng)變成λ的代數方程的特征方程,解出來(lái)的解可以是實(shí)數,也可以是復數,是復數的話(huà),就要用三角函數展開(kāi)了(怎么樣,大一噩夢(mèng)的感覺(jué)找回來(lái)一點(diǎn)沒(méi)有?)。只要實(shí)根為負,那微分方程就是穩定的,因為負的指數項最終向零收斂,復根到底多少就無(wú)所謂了,對穩定性沒(méi)有影響。但是,這么求解分析起來(lái)還是不容易,還是超不出“具體情況具體分析”,難以得出一般的結論。 法國人以好色、好吃出名,但是他們食色性也之后,還不老實(shí),其中一個(gè)叫拉普拉斯的家伙,搗鼓出什么拉普拉斯變換,把常微分方程變成s的多項式。然后那幫電工的家伙們,喜歡自虐,往s里塞jω,就是那個(gè)復頻率,整出一個(gè)**的頻率分析,用來(lái)分析系統的穩定性。不過(guò)說(shuō)**,也不完全公平,在沒(méi)有計算機的年代,各種圖表是最有效的分析方法,還美其名曰“幾何分析”。頻率分析也不例外。 美國佬Evans搞出一個(gè)根軌跡(root locus),思路倒是滿(mǎn)有意思的。他用增益作自變量,將系統的根(不管實(shí)的虛的)在復平面上畫(huà)出軌跡來(lái),要是軌跡在左半平面打轉轉,那就是實(shí)根為負,就是穩定的。再深究下去,系統響應的臨界頻率之類(lèi)也可以計算出來(lái)。最大的好處是,對于常見(jiàn)的系統,可以給出一套作圖規則來(lái),熟練的大牛、小牛、公牛、母牛們,眼睛一瞄,隨手就可以畫(huà)出根軌跡來(lái),然后就可以告訴你,增益變化多多少,系統開(kāi)始振蕩,再增加多少,系統會(huì )不穩定,云云。 根軌跡還是比較客氣的,還有更**的奈奎斯特、伯德和尼科爾斯法,想想腦子都大。都是叫那幫電工分子害的。時(shí)至今日,計算機分析已經(jīng)很普及了,但是古典的圖示分析還是有經(jīng)久不衰的魅力,就是因為圖示分析不光告訴你系統是穩定還是不穩定,以及其他一些動(dòng)態(tài)響應的參數,圖示分析還可以定性地告訴你增益變化甚至系統參數變化引起的閉環(huán)性能變化。咦,剛才還不是在說(shuō)人家**嗎?呃,**也有**的魅力不是?哈哈。 以頻率分析(也稱(chēng)頻域分析)為特色的控制理論稱(chēng)為經(jīng)典控制理論。經(jīng)典控制理論可以把系統的穩定性分析得天花亂墜,但有兩個(gè)前提:一、要已知被控對象的數學(xué)模型,這在實(shí)際中不容易得到;二、被控對象的數學(xué)模型不會(huì )改變或漂移,這在實(shí)際中更難做到。對簡(jiǎn)單過(guò)程建立微分方程是可能的,但簡(jiǎn)單過(guò)程的控制不麻煩,經(jīng)驗法參數整定就搞定了,不需要費那個(gè)麻煩,而真正需要理論計算幫忙的回路,建立模型太困難,或者模型本身的不確定性很高,使得理論分析失去意義。經(jīng)典控制理論在機械、航空、電機中還是有成功的應用,畢竟從F=ma出發(fā),可以建立“所有”的機械系統的動(dòng)力學(xué)模型,鐵疙瘩的重量又不會(huì )莫名其妙地改變,主要環(huán)境參數都可以測量,但是經(jīng)典控制理論至少在化工控制中實(shí)用成功的例子實(shí)在是鳳毛麟角,給你一個(gè)50塊塔板的精餾塔,一個(gè)氣相進(jìn)料,一個(gè)液相進(jìn)料,塔頂、塔底出料加一個(gè)側線(xiàn)出料,塔頂風(fēng)冷冷凝器,塔底再沸器加一個(gè)中間再沸器,你就慢慢建模去吧,等九牛二虎把模型建立起來(lái)了,風(fēng)冷冷凝器受風(fēng)霜雨雪的影響,再沸器的高壓蒸汽的壓力受友鄰裝置的影響,氣相進(jìn)料的溫度和飽和度受上游裝置的影響而改變,液相進(jìn)料的混合組分受上游裝置的影響而改變,但組分無(wú)法及時(shí)測量(在線(xiàn)氣相色譜分析結果要45分鐘才能出來(lái)),動(dòng)態(tài)特性全變了。 老家伙歌德兩百年前就說(shuō)了,理論是灰色的,生命之樹(shù)常青。我們知道馬鹿喜歡金光的或者銀光的,至少也要紅的,不過(guò)只好將就啦,青綠地干活。在實(shí)用中,PID有很多表兄弟,幫著(zhù)大表哥一塊打天下。 比例控制的特點(diǎn)是:偏差大,控制作用就大。但在實(shí)際中有時(shí)還嫌不夠,最好偏差大的時(shí)候,比例增益也大,進(jìn)一步加強對大偏差的矯正作用,及早把系統拉回到設定值附近;偏差小的時(shí)候,當然就不用那么急吼吼,慢慢來(lái)就行,所以增益小一點(diǎn),加強穩定性。這就是雙增益PID(也叫雙模式PID)的起源。 想想也對,高射炮瞄準敵機是一個(gè)控制問(wèn)題。如果炮管還指向離目標很遠的角度,那應該先盡快地把炮管轉到目標角度附近,動(dòng)作猛一點(diǎn)才好;但炮管指向已經(jīng)目標很近了,就要再慢慢地精細瞄準。工業(yè)上也有很多類(lèi)似的問(wèn)題。雙增益PID的一個(gè)特例是死區PID(PID with dead band),小偏差時(shí)的增益為零,也就是說(shuō),測量值和設定值相差不大的時(shí)候,就隨他去,不用控制。這在大型緩沖容器的液位控制里用得很多。本來(lái)緩沖容器就是緩沖流量變化的,液位到底控制在什么地方并不緊要,只要不是太高或太低就行。但是,從緩沖容器流向下游裝置的流量要盡可能穩定,否則下游裝置會(huì )受到不必要的擾動(dòng)。死區PID對這樣的控制問(wèn)題是最合適的。但是天下沒(méi)有免費的午餐。死區PID的前提是液位在一般情況下會(huì )“自動(dòng)”穩定在死區內,如果死區設置不當,或系統經(jīng)常受到大幅度的擾動(dòng),死區內的“無(wú)控”狀態(tài)會(huì )導致液位不受限制地向死區邊界“挺進(jìn)”,最后進(jìn)入“受控”區時(shí),控制作用過(guò)火,液位向相反方向不受限制地“挺進(jìn)”,最后的結果是液位永遠在死區的兩端振蕩,而永遠不會(huì )穩定下來(lái),業(yè)內叫hunting(打獵?打什么?打鹿?)。雙增益PID也有同樣的問(wèn)題,只是比死區PID好一些,畢竟只有“強控制”和“弱控制”的差別,而沒(méi)有“無(wú)控區”。在實(shí)用中,雙增益的內外增益差別小于2:1沒(méi)有多大意義,大于5:1就要注意上述的持續振蕩或hunting的問(wèn)題。 雙增益或死區PID的問(wèn)題在于增益的變化是不連續的,控制作用在死區邊界上有一個(gè)突然的變化,容易誘發(fā)系統的不利響應,平方誤差PID就沒(méi)有這個(gè)問(wèn)題。誤差一經(jīng)平方,控制量對誤差的曲線(xiàn)就成了拋物線(xiàn),同樣達到“小偏差小增益、大偏差大增益”的效果,還沒(méi)有和突然的不連續的增益變化。但是誤差平方有兩個(gè)問(wèn)題:一是誤差接近于零的時(shí)候,增益也接近于零,回到上面死區PID的問(wèn)題;二是很難控制拋物線(xiàn)的具體形狀,或者說(shuō),很難制定增益在什么地方拐彎。對于第一個(gè)問(wèn)題,可以在誤差平方PID上加一個(gè)基本的線(xiàn)性PID,是零誤差是增益不為零;對于后一個(gè)問(wèn)題,就要用另外的模塊計算一個(gè)連續變化的增益了。具體細節比較瑣碎,將偏差送入一個(gè)分段線(xiàn)性化(也就是折線(xiàn)啦)的計算單元,然后將計算結果作為比例增益輸出到PID控制器,折線(xiàn)的水平段就對應予不同的增益,而連接不同的水平段的斜線(xiàn)就對應于增益的連續變化。通過(guò)設置水平段和斜線(xiàn)段的折點(diǎn),可以任意調整變增益的曲線(xiàn)。要是“野心”大一點(diǎn),再加幾個(gè)計算單元,可以做出不對稱(chēng)的增益,也就是升溫時(shí)增益低一點(diǎn),降溫時(shí)增益高一點(diǎn),以處理加熱過(guò)程中常見(jiàn)的升溫快、降溫慢的問(wèn)題。 雙增益或誤差平方都是在比例增益上作文章,同樣的勾當也可以用在積分和微分上。更極端的一種PID規律叫積分分離PID,其思路是這樣的:比例控制的穩定性好,響應快,所以偏差大的時(shí)候,把PID中的積分關(guān)閉掉;偏差小的時(shí)候,精細調整、消除余差是主要問(wèn)題,所以減弱甚至關(guān)閉比例作用,而積分作用切入控制。概念是好的,但具體實(shí)施的時(shí)候,有很多無(wú)擾動(dòng)切換的問(wèn)題。 這些**的PID在理論上很難分析系統的穩定性,但在實(shí)用中解決了很多困難的問(wèn)題。大言不慚一句,這些PID本人在實(shí)際中都用過(guò)。打仗時(shí),如果敵人太頑固,要么換更大的炮,把敵人轟倒;要么采用更巧妙的戰術(shù),把敵人暈倒?刂埔彩且粯,單回路PID難以解決的問(wèn)題,常?梢酝ㄟ^(guò)更巧妙的回路結構來(lái)解決。 單一的PID回路當然可以實(shí)現擾動(dòng)抑制,但要是主要擾動(dòng)在回路中,而且是明確的,加一個(gè)內回路作幫手是一個(gè)很不錯的主意。還記得洗熱水澡的例子嗎?要是熱水壓力不穩定,老是要為這個(gè)而調整熱水龍頭,那很麻煩。要是有一個(gè)人專(zhuān)門(mén)負責根據熱水壓力調節熱水流量,把熱水壓力穩定下來(lái),而且穩定在標定值,那洗澡的時(shí)候,水溫就容易控制多了,只要告訴那個(gè)人現在需要多少熱水流量,而不必煩心熱水壓力對熱水流量的影響。這個(gè)負責熱水流量的控制回路就是內回路,也叫副回路,而洗澡的溫度就是外回路,也叫主回路,當然是主回路指揮副回路,就像自動(dòng)化指揮機械化、學(xué)自控的人指揮學(xué)機電的人……打住打住,再扯遠了要挨鹿踹了,或者馬踹、牛踹、驢踹……。這種主回路套副回路的結構叫串級控制(cascade control),曾經(jīng)是單回路PID后工業(yè)上第一種“先進(jìn)過(guò)程控制”,現在串級已經(jīng)用得很多了,也不再有人叫它“先進(jìn)過(guò)程控制”了。串級控制最主要的功用是抑制回路內的擾動(dòng),增強總體控制性能。不過(guò)串級也不能亂用。如果主回路和副回路的相應速度差不多,或者主回路的相應速度甚至慢于副回路(通過(guò)**的調試是可以做到的),這樣的串級要出問(wèn)題。理論上可以用共振頻率什么的分析,但是不用費那個(gè)事,用膝蓋想想就知道,一個(gè)急性子的頭兒把一個(gè)溫吞水的下屬指揮得團團轉,結果只能是大家都精疲力竭,事情還辦砸了。相反,一個(gè)鎮定自若的頭兒指揮一個(gè)手腳麻利的下屬,那事情肯定辦得好。 如果主要擾動(dòng)在回路以外,但是可以預知,那就要用另一個(gè)辦法,就是馬鹿前面說(shuō)到的前饋了。還是用洗熱水澡的例子。如果冷水管和同一個(gè)水房的抽水馬桶功用,你在洗澡,別人一抽水,那你就變煮熟的龍蝦了(本想說(shuō)猴子PP的,但是那個(gè)不雅,我們要五講四美不是?)。這個(gè)時(shí)候,要使那個(gè)人在抽水的同時(shí)告訴你一聲 ,你算好時(shí)間,算好量,猛減熱水,那溫度還是可以大體不變的。這就是所謂前饋控制(feedforward control)。前饋控制有兩個(gè)要緊的東西:一是定量的擾動(dòng)對被控變量的影響,也就是所謂前饋增益;二是擾動(dòng)的動(dòng)態(tài),別人抽水到洗澡龍頭的水溫變熱,這里面有一個(gè)過(guò)程,不是立時(shí)三刻的。如果可以精確知道這兩樣東西,那前饋補償可以把可測擾動(dòng)完全補償掉。但實(shí)際上沒(méi)有精確知道的事情,要是指望前饋來(lái)完全補償,弄巧成拙是肯定的。所以前饋通常和反饋一起用,也就是在PID回路上再加一個(gè)前饋。一般也只用靜態(tài)前饋,也就是只補償擾動(dòng)對被控變量的靜態(tài)影響,而忽略擾動(dòng)的動(dòng)態(tài)因素,主要是為了靜態(tài)前饋已經(jīng)把前饋80%的好處發(fā)掘出來(lái)了,動(dòng)態(tài)前饋既復雜又不可靠,在PID回路里很少有人用。理論上的前饋都是在PID的控制作用上再加一個(gè)前饋作用,實(shí)際上也可以乘一個(gè)控制作用。乘法前饋的作用太猛,我從來(lái)沒(méi)有用過(guò),一般都是用加法。在實(shí)施中,前饋是和擾動(dòng)的變化(也就是增量)成比例的,所以擾動(dòng)變量不變了,前饋作用就消失,否則,整定前饋控制增益會(huì )對PID主回路造成擾動(dòng)。前饋增益可以根據粗略計算得到,比如說(shuō),抽水的量會(huì )造成溫度下降多少、需要調整多少熱水流量才能維持溫度,這不難從熱量平衡算出來(lái)。不想費這個(gè)事的話(huà),也可以從歷史數據中推算。一般算出來(lái)一個(gè)前饋增益后,打上7折甚至5折再用,保險一點(diǎn),不要矯枉過(guò)正。 前饋作用一般是用作輔助控制作用的,但是在特殊情況下,前饋也可以作為“預加載”(pre-loading)作為基準控制作用。比如說(shuō),在一個(gè)高壓系統的啟動(dòng)過(guò)程中,壓力可以從靜止狀態(tài)的常壓很快地什到很高的壓力。高壓系統不容許閥門(mén)大幅度運動(dòng),所以控制增益都比較低,但是這樣一來(lái),啟動(dòng)升壓過(guò)程中,壓力控制的反應就十分遲緩,容易造成壓力過(guò)高。這時(shí)用壓縮機的轉速或高壓進(jìn)料的流量作前饋,將壓力控制閥“預先”放到大概的位置,然后再用反饋慢慢調節,就可以解決這個(gè)問(wèn)題。 有點(diǎn)搞笑兄在前面提到用單個(gè)閥門(mén)有時(shí)難以控制大范圍變化的流量,這是一個(gè)很實(shí)際的問(wèn)題。工業(yè)閥門(mén)一般turn down只有10:1,也就是說(shuō),如果這個(gè)閥門(mén)的最大流量是100噸/小時(shí)的話(huà),低于10噸/小時(shí)就難以控制了,當然,高于90噸/小時(shí)也幾近失去控制。所以,要真的保證0-100的精確控制,需要將一個(gè)大閥和一個(gè)小閥并列,小閥負責小流量時(shí)的精確控制,大閥負責大流量時(shí)的精確控制,這就是所謂的分程控制(split range control)。分程控制時(shí),小閥首先打開(kāi),超過(guò)小閥最大流量是小閥就固定在全開(kāi)位置,大閥開(kāi)始打開(kāi),接過(guò)控制。這是開(kāi)-開(kāi)型分程控制。也有關(guān)-開(kāi)型分程控制,比如反應器夾套溫度控制,隨溫度逐漸上升,冷卻水逐漸關(guān)閉,直到冷卻水全關(guān),加熱蒸氣開(kāi)始打開(kāi)。分程控制當然不一定只有兩截,三截甚至更多都是可以的,道理都一樣。分程控制的問(wèn)題在于不同閥門(mén)的交接點(diǎn)。閥門(mén)在特別小的開(kāi)度時(shí),控制非常不靈敏,前面說(shuō)到的10:1也是這個(gè)道理。所以實(shí)用中,開(kāi)-開(kāi)型分程控制常常在交接點(diǎn)附近有一段重疊,也就是小閥快要全開(kāi)但還沒(méi)有全開(kāi)時(shí),大閥已經(jīng)開(kāi)始動(dòng)作,這樣,到小閥全開(kāi)、不能再動(dòng)彈時(shí),大閥已經(jīng)進(jìn)入有效控制范圍。關(guān)-開(kāi)型分程控制常常在交接點(diǎn)設置一個(gè)死區,避免出現兩個(gè)閥都有一點(diǎn)點(diǎn)開(kāi)度的情況。分程控制的交接點(diǎn)的設置有一點(diǎn)講究,應該根據閥的大小。比如A閥比B閥大一倍,那分程點(diǎn)應該設在1/3先開(kāi)B閥,而不是懶漢做法的1/2。 很多過(guò)程參數都是可以測量的,但也有很多參數是沒(méi)法直接測量的,這時(shí),如果能夠通過(guò)別的可以測量的過(guò)程參數來(lái)間接計算真正需要控制的參數,這就是所謂的推斷控制(inferential control)。比如精餾塔頂的產(chǎn)品純度可以用氣相色譜(gas chromatograph,GC)來(lái)測量,但結果要等40分鐘才能出來(lái),用來(lái)做實(shí)時(shí)控制,黃花菜都涼了。推斷控制是和“軟傳感器”(soft sensor)的概念緊密相連的。 對精餾塔塔頂純度這個(gè)例子來(lái)說(shuō),可以用純度和塔頂溫度、壓力作一個(gè)數學(xué)模型,用可以測量的溫度和壓力,間接計算出純度。在計算機控制普及的今天,這是很容易實(shí)現的,但是在很多地方,推斷控制仍然被看成很神秘的東西,悲哀。 |