每一個控制系統的用戶/設計人員,都經常會被問到同一個問題:哪種控制方法最好。現在,比幾十年前有了更多的選擇,控制方法的問題尤為重要。很久以前,“黃金”解決方案(實際上是唯一的)是比例-積分-微分(PID)控制器。雖然PID控制本身沒有什么問題,但實際存在的限制使其它控制方法在許多應用中更受歡迎。現在,還有哪些控制方法可供選擇?
除了經典的PID控制外,本文還研究了最優控制、模糊控制和人工神經網絡(或基于神經網絡的控制)。在工廠應用的受控系統分析中,可以看到經典PID控制器的局限性。雖然可以有很多應用領域,但本文分析聚焦于位置伺服機構,此類裝置廣泛應用于工業機器人、自動駕駛車輛和許多其它(不僅是在工業領域)應用。
1、位置伺服系統識別
如果受控系統是基于恒定勵磁(例如永磁體)的直流電機的伺服機構,則可以通過簡化的傳遞函數來描述,在s域中電壓的角位移為:

其中:K代表電機扭矩常數;T代表電機的機械參數:J/B,其中J是包括負載在內的總慣性,s表示電機阻尼;Ti代表積分常數(由電機轉速和傳動比確定)。
上面的傳遞函數代表與積分器組合的一階系統。理論上,還有另一個一階、低通濾波器,其時間常數等于電機繞組電感和電阻的比值;這個時間常數明顯小于主時間常數T,因此不必考慮它。
如果您是電機用戶,而不是電機設計師,那么通過實驗測量其在開環中的響應來找到(主)時間常數可能會更簡單。為此,向伺服系統施加一定的驅動變量(電壓,VIN),例如,相當于最大伺服速度的50%。伺服系統負載必須是正常工作條件下的滿載。掃描伺服機構的位置響應,并在其到達最大位置之前將其關閉。可能產生的測量值如圖1所示。

圖1:控制系統設計圖展示了開環伺服系統的響應特性
根據上述特性,并通過輸入值(例如,對應于最大伺服速度50%的階躍函數VIN),確定典型伺服系統的一階非靜態(積分器與一階滯后相結合)傳遞函數的T和Ti常數。伺服電機和伺服驅動運動控制系統,可以使用下述的各種閉環控制,包括方程、案例、圖形、表格。
2、如何應用PID控制器?
PID補償是最常見的閉環控制形式之一。為什么它如此受歡迎?在大多數應用中,受控過程可以通過一階或二階傳遞函數進行建模。PID控制器可以消除或至少顯著補償傳遞函數的兩個極點。PID控制器在s域中的傳遞函數(U(s))/(E(s))可以表示如下:

現在,讓我們假設一個受控系統,它可以用一階非靜態傳遞函數來近似表示:

控制系統的開環傳遞函數(Y(s))/(E(s)),等于

為什么使用PD而不是PID?首先,請注意,在完整的PID控制器中,積分部分是缺失的。為什么?因為積分器已經存在于受控的伺服系統中。在最佳調諧的控制系統中,比率KD/KP必須與τ1時間常數相匹配,因此開環傳遞函數將減小到:(KPK)/(sτ2)。理想調諧PD控制系統的閉環傳遞函數 (Y(s))/(R(s)),等于:

這對應于具有時間常數τ的單極傳遞函數,相當于τ2/(KPK),其中τ2是積分時間常數,KP是控制器的比例常數,K是受控系統的增益。然而,如果通過使用如圖1所示的響應特性找到時間常數,則增益(即常數K)值變為1.0。則閉環傳遞函數時間常數τ等于τ2/KP。這非常好,因為通過使ΚP足夠大,可以從閉環控制系統獲得更快的時間響應。實際上,“足夠大”可以提供5到10倍的響應速度。KP值越高,反應越不穩定。記住,在近似的系統參數中,實際值肯定會不同。
然而,這種最佳調諧的P(I)D控制器有其缺點。觀察P(I)D控制器的輸出(驅動)變量:一開始它幾乎達到極限值,然后迅速下降,但在相當長的一段時間內,仍遠遠高于這種受控系統(伺服機構)所能承受的水平。想象一下,伺服電機的運行電壓為24V,最初獲得的電壓會高達數千伏,隨后穩定在數百伏。沒有控制器能夠驅動如此高的電壓,即使能驅動,電機也無法承受如此高的壓力。因此,在控制器中添加限制器,可確保驅動變量不會超過受控系統(在這種情況下為直流電機)可接受的最大值。伺服機構的最終PID控制配置如圖2所示。

圖2:控制系統設計圖展示了位置伺服系統的PID控制
在本文的最后,會比較PID控制器與其它控制器的性能。具有無限驅動變量的最佳調諧PD控制器(即理想控制器),其輸出特性如圖8中黃色線所示;實際輸出(驅動變量限于最大可接受值)則以紅色線表示。
3、應用時間最優控制
幾十年來,最優控制一直是廣泛研究的主題。關于最優控制的一些基本觀點值得回顧,我們可以用一個例子來更好地理解時間最優控制。
假設一個帶有直流電機的常用電動伺服機構。手頭的任務是控制伺服,使其在最短的時間內到達新的參考點。如果必須應用實際驅動變量,優化的PID控制器將無法實現這一目標。直覺反應是向直流電機施加最大可接受電壓,并讓電機全速前進。
然后,在某一時間點改變電壓極性,使電機開始以最大可能的速度減速。稍后,當電機速度為零時,關閉電壓。如果電壓極性在合適的時點改變,那么,在電機停止運行的瞬間,伺服將準確地停在所需的位置。這被稱為最優控制。在這種情況下,因為時間是該最優控制的標準,所以這種控制被稱為時間最優控制。
4、查找開關曲線的形狀
圖3展示了在狀態空間中的時間最優控制過程,在這種情況下,狀態空間是二維空間(區域);一個維度是輸出變量,另一個維度則是其(時間的)導數。在應用新參考值時,輸出變量沿水平軸移動,因此它代表調節誤差(err),即參考值與實際輸出值之間的差值。同時在t0時刻,向直流電機施加最大電壓。伺服離開其初始位置P0,并開始加速。在時間點t1,控制器改變電壓極性,電機速度很快開始下降。在時間點t2,電機速度變為零并且達到期望位置P2,驅動變量電壓被關閉。雖然這看起來很簡單,但獲得開關曲線的形狀并不是那么簡單。

圖3:控制系統設計圖展示了狀態空間中的時間最優控制
如果受控系統是具有簡化傳遞函數的伺服機構,則s域中電壓的角位移為:

那么一個完整的、時間最優的控制系統可以用圖4所示的框圖表示。

圖4:控制系統設計圖展示了伺服機構的時間最優控制系統
該控制方案與PID控制完全不同。這是一種非線性控制,因為第二個非線性部分N2代表的是繼電器:提供驅動變量±U值,所以這種控制被稱為開關控制。N1是開關曲線的第一個非線性部分,調節誤差E的“sqrt”平方根函數,提供了相當合理的結果。在實踐中,總是很難找到精確的開關曲線,因此,控制器可能一直在其最大值和最小值之間切換驅動電壓。為了避免這種情況的發生,需要為繼電器增加死區。
在本文的最后,讓我們看看與其它類型的控制器相比,這種時間最優控制器的性能如何。其輸出變量函數以圖8中亮藍色線表示。
5、如何應用模糊控制?
模糊控制是另一種非線性控制方法,對于難以分析的受控系統,或在設計時動態行為未知的受控系統,它是非常好的解決方案。模糊控制可以與“次優”時間最優控制相比較(它可以提供比最優結果較差的結果),盡管它們仍然可以是非常好的。在這種具有位置伺服機構控制的特殊情況下,可以采用圖5中的控制方案(圖5)進行模糊控制。

圖5:控制系統設計圖展示了伺服機構的模糊控制系統。
模糊控制可以看作是模糊邏輯的擴展或修改。第一階段,模糊邏輯(在一個被稱為模糊化的過程中)將“清晰”的輸入變量轉換為“模糊”的集合。第二階段,它處理這些模糊集。最后,在一個被稱為去模糊化的過程中,將處理后的模糊集轉換為清晰的輸出變量。
對于輸入變量的模糊化,例如,選擇一組lambda形狀_/_的5個成員函數。為了使控制過程更好(更精細),在本文案例中使用了7個成員函數。它們涵蓋了調節誤差、誤差及其導數和狀態變量,這些變量值處于-1000到+1000之間。它們可以被稱為:高負(HN),中等負(MN),低負(LN),小(S),低正(LP),中等正(MP)和高正(LP)。輸出(驅動)變量模糊化,使用了7個類似的級別:全負(FN),中等負(MN),低負(LN),零(Z),低正(LP),中等正(MP)和全正(FP)。

圖6:在控制系統設計中,參考模糊控制知識庫很有幫助
處理模糊集是模糊控制最關鍵的階段。它由模糊控制知識庫“控制”。圖6展示了適用的知識庫。注意err和der輸入變量是如何量化的。它們的分布函數不是等距分布的;err成員函數被更多地“推向”中心(S),而der成員函數則被更多地推向最高值。為什么這種安排更好?檢查知識庫中的輸出變量分布提供了答案。考察零(Z)級。它們的配置為:緊密地跟隨誤差的平方根函數err的輸出,這是可能是對時間最優控制中使用的開關曲線的最佳仿真。接下來,看看與其它控制器相比,模糊控制器的性能如何,其輸出變量的形狀以圖8中橙色線表示。
6、應用基于神經網絡的控制
在控制系統中使用人工神經網絡(ANN)有無數種可能性。其中,很多使用基于神經網絡的受控系統(工廠)模型,或對其逆動態進行建模,與經典PID控制器相結合,有助于創建自適應和其它更復雜的控制系統。
通過訓練這種神經網絡,模擬位置伺服系統的開關曲線可以嘗試一種不同的方法。正如之前所了解的,通過使用時間最優控制可以實現最快速的伺服機構運動。開關曲線最關鍵的一個方面,是使用調節誤差的平方根函數。甚至是模糊控制器,也被“調諧”以模擬該平方根函數。
然而,由于實際開關曲線仍然可以與sqrt()函數的近似值不同。有沒有辦法找到位置伺服機構的實際開關曲線?答案是肯定的。可以找到位置伺服機構的實際開關曲線,“訓練”ANN記住它并按需生成它。更進一步,可以訓練ANN來接管整個開關控制器。
開關曲線是關于[err,der]對值的序列,伺服電機驅動器對可施加到電機的額定(最大)電壓進行極性轉換。通過在開環中運行伺服機構(即無反饋),測量并記錄其位置(err)和速度(der)來查找相應的值。
首先,準備一系列預期的伺服機構速度(der)值,從最低值到最高值。現在,將正的最大驅動變量(電壓+U)施加到電機上,并讓其運行,直到伺服機構達到該系列中的第一個預期der值。重要提示:記錄與P1相同時刻的伺服位置,同時將執行變量轉換為-U值。當der降至零時,關閉電壓并將當前位置記錄為P2。該過程提供了第一個開關曲線點的第一對[err,der]坐標(其中err=P2–P1)。當然,伺服機構必須完全按照預期使用的方式滿載運行。
[err,der]坐標序列表示開關曲線點。為了獲得最佳結果,沿der軸均勻分布大約50個坐標(對)。然后訓練一個合適的神經網絡,使用這些開關點將執行變量傳送到伺服機構。即使是最簡單的具有一個隱藏層和大約12個節點的ANN也可以實現這種功能。
圖7展示了一個輸出值表,可用于訓練ANN控制器。在捕獲開關曲線點之后,需要離線訓練ANN控制器,即不直接在物理控制系統實體上進行訓練。從捕獲的坐標序列的底部(或頂部)開始,對于每個單獨的der輸入,您需要生成多個err值(從-max到+max),并向[err,der]坐標的每個組合提供(到ANN輸出)特定的輸出值。開關曲線的所有輸出值對應負的最大驅動值;開關曲線右側的所有輸出值對應為正的最大值。誤差坐標離開關曲線越遠,需要提供的±U值就越少,因為輸出曲線保持平坦。

圖7:這個簡單的人工神經網絡訓練數據表,有助于 ANN 控制系統的設計。
此訓練數據表與模糊系統的知識庫非常相似。起初,只使用狀態空間的上半部分來訓練ANN控制器。當伺服必須沿相反方向移動時,ANN控制器將僅交換輸出值。然而,如果伺服系統在兩個運動方向上的行為不相同,則必須在整個狀態空間內,對ANN控制器進行行為訓練。基于神經網絡的控制系統如何與其它系統競爭?可查看其輸出變量的形狀,如圖8中白色線展示。
7、四種控制方法的比較
使用Python的屏幕截圖(圖8)展示了模擬伺服機構及其控制器的結果。伺服機構的傳遞函數近似為1/((1+s100)s200),其中時間常數以樣本數表示。階躍函數(期望的伺服系統位置)是從0到800(其中1000是期望位置和驅動變量的最大值)生成的,在1000個樣本之后,它從800下降到400。輸入階躍函數在圖8中以綠色線表示。
圖8還展示了各個控制系統的運行情況。第一個是最佳調諧的PD控制器,它對階躍函數做出即時反應。它的KP參數設置為5。但這實際上只是一個理想的PD控制。這些實際最佳調諧PD控制器具有有限驅動變量,其行為如紅色曲線所示。與其它控制器相比,它實際上是表現最差(最慢)的。然而,如果調整得當,它不會超調,這在某些應用中可能非常重要。

圖8:此圖比較了不同的控制方法,以幫助確定應用的最佳狀態。包括最優控制(藍色線)、模糊控制(橙色線)、人工神經網絡(白色線)和 PID 控制(黃色和紅色線)。
表現最好(最快)的控制器是基于ANN的控制器(如白色曲線所示)。這并不奇怪;神經網絡經過訓練,可以模擬精確的開關曲線,因此它表現為一個完美的、時間最優的控制系統。
通過sqrt(e)函數來模擬開關曲線的經典時間最優控制器(藍色線)表現稍差(較慢)。不過,考慮到其實施非常簡單,因此不應對其性能有太多抱怨。
在這種特殊情況下,模糊控制器(橙色線)表現不佳。不過,它沒有調整到最佳性能(僅進行了初始調整以大致模擬開關曲線),因此其性能有進一步提高的空間。理論上,模糊控制器的性能不應比經典的時間最優控制器差。
這個特定案例驗證了神經網絡在工業控制中的應用。然而,如果系統“在運行中”改變行為/參數,則需要一個更能容忍這種變化的控制器。容差是模糊控制器的亮點。最令人驚訝的發現之一是:50多年前在大學里學習的經典時間最優控制器(基于sqrt()函數),仍然可以很好地運行。