? ? ? ?工業實踐中,一般希望所設計的控制算法盡可能地簡單,直觀,需要調節整定的參數盡可能的少。這一方面縮短了控制算法設計、調試時間,另一方面也保證了控制算法的可靠性(復雜往往帶來可靠性的下降),降低了應用和維護門檻。因此,長期以來,PID控制器在工業自動化中得到了廣泛應用。然而,無論在學術研究還是工業中高端應用場合,控制算法復雜化是一個十分明顯的趨勢。控制算法的這種復雜化趨勢,使得工程師在面臨此類情境時,通常會在心里暗自發問:控制算法,有必要這么復雜嚒,會不會把簡單問題復雜化?
? ? ? ?控制算法的復雜化趨勢是對控制系統性能要求逐漸提高的必然結果。一方面,隨著對控制系統性能要求的不斷提高,在控制算法設計過程中,需要考慮的能夠影響控制系統性能的因素不斷增多(性能要求較低時,這些因素對最終性能的影響可以忽略不計),勢必要求對控制算法的結構做出合理安排以容納、處理這些因素;另一方面,影響控制系統性能提高的因素大多來自被控系統的物理/硬件層面(具體工藝/工作過程、執行器的工作特性等),如果無法在物理/硬件層面避免一些非理想因素(如精密運動平臺中壓電晶體、磁滯伸縮材料的滯回特性,傳動系統中的柔性和摩檫力矩,液壓閥口壓降-流量非線性、溫度控制系統中的死區時間等),那么提高控制系統性能的要求勢必全部由控制算法來實現;
? ? ? ?事實上,控制系統的設計和控制性能的提升應該放在整個系統或者產品設計的框架下進行,控制算法工程師應該和機械工程師、電氣/儀表工程師、工藝工程師等人員進行有效協同,首先在系統的層面規避問題/非理想因素。如果能夠通過改進結構設計/工藝流程,來規避掉影響控制系統性能的主要因素/改進控制系統性能,控制算法需要處理的因素變少,那么即使是相對簡單的控制算法,也能實現高性能的控制指標。反之,如果物理/硬件層面的設計不合理,那么在控制算法設計上花費再多的精力,可能也無法滿足性能要求(被控系統特性決定了被控系統性能的上限);
? ? ? ?因此,應理性對待控制算法的復雜化趨勢:在能夠解決問題的基礎上,不刻意追求控制算法的復雜化(如果能用PID控制器/改進設計實現性能目標,沒必要用其他控制算法);在需要精巧、復雜的控制算法時,也能夠認真分析被控系統(參見控制算法手記—認識你的被控系統),總結影響控制系統性能的主導因素,并建立合乎需要的數學模型(參見控制算法手記—建模重要嚒),選擇合適的控制算法結構,有針對性地去處理各個層面上的非理想因素,使得問題的結構和控制算法結構相匹配。
? ? ? ?控制算法的復雜化體現在控制算法的結構、(穩定性)分析及設計、調試維護三個方面:為匹配現實問題的結構,控制算法本身需要在結構上進行一定調整;控制算法在結構上的復雜性,不僅使得設計參數變多,而且也使得包含控制算法的整個控制系統動力學行為豐富/復雜起來,控制系統穩定性分析及控制算法設計也變得復雜起來;控制算法結構和設計的復雜性,大大提高了控制算法的應用門檻,系統調試時間變長、維護成本也相應增加。
控制算法的結構復雜化
如圖1所示,為應對被控系統中存在的諸多非理想因素,控制算法的設計可以從工業中最常用最簡單的PID控制器逐步演化到(前饋+反饋+狀態觀測/濾波+系數/參數辨識)的復雜結構。實際應用中,控制算法的結構并不一定需要同時具備這些模塊,而是根據所面臨的問題結構有針對性的選用或組合這些模塊。
圖1. 控制算法的結構復雜化
? ? ? ?結合圖1中所示的非理想因素,對控制算法結構的選擇說明如下:
? ? ? ?觀測/濾波器模塊一般用于處理感知系統中存在的非理想因素,同時還可以通過構建合適的干擾感測器(參見控制算法手記-二自由度控制器)對無法測量的外界干擾(如負載力矩,如協作機器人中的無力矩傳感器的負載感知功能)或者參數變化進行補償。取決于非理想因素的形式,觀測/濾波器模塊可以表現為不同算法:如Kalman濾波器通常在運動控制系統中實現用于實現從位置信號生成速度/加速度信號,實現無相位延遲的濾波;Luenberger/Kalman觀測器則對工業中大量存在的部分狀態不可測量/無法安裝傳感器的場合特別適用(如果系統機理明確,能夠建立相對準確的系統模型,那么通過觀測器則相當于構建了一個虛擬傳感器,實現對不可測量的準確估計),使得全狀態反饋成為可能;同時,其他類型的觀測器,如滑膜觀測器/高增益觀測器則可對非線性動態系統進行狀態觀測/干擾補償;
? ? ? ?與觀測/濾波模塊類似的是參數辨識模塊,該模塊接受被控對象輸入/輸出數據,并基于機理模型對系統參數變化/外部干擾參數進行辨識,并將辨識出來的信息送入反饋控制器,使得控制輸入能夠適應參數變化。另外,參數辨識模塊辨識出來的信息還可以送入前饋控制器中,用于實現對未知干擾(如非線性摩檫力)的理想補償;
? ? ? ?軌跡規劃+前饋控制通常實現對已知或者能夠辨識的外部干擾(包含輸入指令)進行提前因應,改善系統的動態跟蹤性能。對于一些欠驅動場合(即控制輸入的自由度小于輸出的自由度)或者臨界阻尼的動態系統,還可以通過有效的軌跡規劃(或者輸入整形),抑制系統振蕩,保證系統控制性能;
? ? ? ?自動控制的核心機制在于反饋,反饋控制器本身能夠有效處理絕大多數非理想因素。如果系統機理不明/無法準確建模/模型過于復雜(如化工過程控制/渦流場控制),可以采集足夠的數據,則采用數據驅動控制方法;如果系統能夠相對準確建模,但存在模型不確定性/參數變化/未知外界干擾,則可以采用魯棒(H無窮/滑膜控制等);其余控制算法,如自適應控制、模型預測控制、反饋線性化等算法以及之間不同的組合則針對不同的非理想因素進行針對性地設計。
? ?控制系統穩定性分析及控制算法設計復雜化
? ? ? ?自動化控制系統的核心特征在于在機器/設備運行過程中不需要人工手動干預,依靠自身采集到的實時信號和相應控制算法,給出動態控制指令,讓機器/設備自動運行并滿足預期性能要求。放心讓機器自動運行的前提是由被控對象-控制算法組成的被控系統必須穩定(系統不會跑飛),如果無法保證控制系統穩定性,機器/設備就無法正常運行,嚴重時甚至會導致機器/設備損壞,人員傷亡等后果。控制算法在結構上的復雜性,使得包含控制算法的整個控制系統動力學行為豐富/復雜起來(取決于具體情況,整個被控系統可能會從線性系統轉變為非線性時變系統,出現多個平衡點/吸引區域/有限逃逸時間等非線性動力學行為,系統失穩風險增加),穩定性分析以及以穩定性分析依托的控制算法設計變得尤為重要。
? ? ? ?被控系統之所以存在穩定性的問題,在于被控系統本身是一個動態變化的系統,表征系統動態的所有變量都在實時發生變化,并最終使系統到達預期工作點/工作區間。如果給出的控制輸入不合適(控制算法設計不合適)和被控對象本身的動態特性結合后,很有可能會出現某些變量的動態變化遠遠超出預期/合理范圍,并進入到不可逆的過程(系統失去穩定性,無法恢復到平衡狀態或者預期狀態)。以新冠疫情在人群中的傳播為例,如果不做及時檢測追蹤(測量反饋)并采取相應的強制、治療措施(控制輸入),感染人數就會呈現指數極增長,醫療系統崩潰,疫情發展就會失控(系統失穩);相反地,如果及時采集檢測追蹤,并配合相應的強制措施,就可以使得疫情傳播在相當小的范圍內(系統保持穩定),并最終控制住疫情。
? ? ? ? 事實上,取決于研究對象(線性/非線性)和場景(系統受到外部干擾/初始狀態變化/參數變化/不確定性等),穩定性的意涵以及相應的判斷依據是多種多樣的。這些穩定性的定義在于描述了隨著時間的變化,在不同初始狀態和時刻下,表征系統運行狀態的變量是否能夠收斂、以什么樣的速度收斂,能在多大范圍內收斂于在一個什么樣的區間內。穩定性的各種定義并不是只為了理論分析而提出的虛幻概念,是和系統實際能達到的控制性能是緊密相關的:如果能夠保證某一被控系統是全局指數穩定的(Globally exponentially stable),那么不論系統初始狀態如何,系統控制誤差(或者其他變量)能在相當短時間內減小為零,并能夠長期保持在零;如果只能保證某一被控系統是局部漸近穩定(Locally asymptotically stable),那么在一個較窄的工作范圍內,系統的控制誤差隨著時間增長慢慢減小到零;如果無法保證系統指數/漸近穩定性,只能保證輸入輸出有界(Bounded Input Bounded Output),那么只能預期,系統控制誤差會在收斂在某一范圍內;從這個意義上來說,從穩定性展開的分析,能夠清楚定義控制系統所能達到的性能上限,并以此為基礎能夠合理地設計控制器。
? ? ? ?因此,翻開各種先進控制算法(如非線性控制、基于模型的自適應控制、滑膜控制或一些數據驅動控制方法)的教科書,往往前面會涉及大量的穩定性概念/繁瑣的穩定性分析章節,后面才涉及到控制算法的具體設計。這一方面說明控制算法結構的復雜化,大大增加了控制系統的穩定性分析和設計,另一方面也成為想學習先進控制算法的同學或者工程師的一個主要障礙。這些穩定性分析過于強調各種數學概念,而缺少對這些概念和現實物理世界的關聯等方面的論述;同時初學者往往都是從經典控制理論(以傳遞函數為基礎,單輸入、單輸出的線性定常系統,只有單個平衡點,而且系統穩定性一般直接對應著全局漸近穩定性)過渡到來先進控制算法的學習中,對穩定性分析在先進控制算法設計中所起到的基礎性作用缺少認知。實際上,即使被控對象是單輸入、單輸出的線性定常系統,由于自適應、參數辨識等環節的運用,使得整體的閉環系統仍然表現出時變非線性特性,系統的穩定性也會發生變化(即使原有的控制系統能夠保證穩定性)。了解這些穩定性分析和設計方法,對于先進控制算法的成功落地是十分必要的。
總結
? ? ? ? 控制算法的復雜化是為因應控制系統性能指標不斷提高的趨勢而出現的,是為了能夠有針對性地處理(處理方式包含識別/辨識、適應、消除、補償、抑制影響等方法)各種影響控制系統性能提高的非理想因素。
? ? ? ?應該客觀理性對待控制算法的復雜化趨勢,不應刻意追求算法復雜性(在能夠保證控制系統性能的前提下,控制算法越簡單越好),也不應回避實際問題對控制算法復雜化的需求,認真分析被控系統(參見控制算法手記—認識你的被控系統),總結影響控制系統性能的主導因素,并建立合乎需要的數學模型(控制算法手記—建模重要嚒),選擇合適的控制算法結構,有針對性地去處理各個層面上的非理想因素,使得問題的結構和控制算法結構相匹配。
? ? ? ?應該從整個系統/產品的層面,去處理控制系統和控制算法的設計,注重各個子系統工程師之間的協同,能在系統/設計層面解決的問題,可以優先考慮在系統層面解決。這也要求主管/系統工程師應該具備各個專業領域的基本概念和學習、溝通能力,在系統層面上協調優化整體被控系統性能。