隨著系統(tǒng)功能的日益復雜,以自適應控制為代表的先進控制理論與算法越來越多地被投入到工程應用當中。而隨著大家對被控物理系統(tǒng)特性本身和控制理論更加深入的研究,像魯棒控制、模型預測控制、模糊邏輯控制,甚至是強化學習,都逐漸成為了控制工程師口袋中的武器。
然而對于傳統(tǒng)的嵌入式應用而言,成本上的考量使得硬件算力的進一步提升成為一種奢望,也從一定程度上限制了更加“智能”的控制算法的應用。例如在自動駕駛或者自主系統(tǒng)控制領域頗為流行的非線性模型預測控制,很難直接應用于算力更加緊張,但也更廣泛的傳統(tǒng)嵌入式場景當中,工程師們也只能去選擇更加“簡化”的控制算法來實現(xiàn)部署,這也是為什么在傳統(tǒng)的嵌入式控制場景中,基于經(jīng)典線性控制理論的PID 控制器依然很流行。
但隨著被控對象系統(tǒng)的動態(tài)越來越復雜,其非線性程度、外部擾動和不確定性越來越高,PID 明顯力不從心。相比于直接使用類似非線性模型預測控制這類運算復雜、對硬件算力要求極高的控制算法,工程師們開始越來越多地探索如何在傳統(tǒng) PID 控制中添加一些“自適應”因素,讓其能夠在有限的硬件資源限制下,盡可能地響應和處理真實物理系統(tǒng)中的未知干擾與不確定性,從而也能達到更好的控制效果。
MathWorks 作為工具廠商也在積極響應用戶類似的需求,在過去的幾個版本中,陸續(xù)添加了諸如模型參考自適應控制、自抗擾控制和模型預測控制等功能(詳見之前的文章《讓閉環(huán)控制器的參數(shù)調節(jié)事半功倍-SimulinkControl Design更新探討》)。在今天的文章中,我們將重點討論在24b 版本中新添加的滑??刂疲⊿liding Mode Control, SMC)模塊支持以及相關案例。
滑??刂疲⊿MC)是一種以其魯棒性和高效性著稱的非線性控制策略。自 20 世紀 50 年代首次提出以來,滑??刂埔蚱湓谔幚聿淮_定性系統(tǒng)和外部擾動方面的卓越性能,逐漸成為自動控制領域的重要研究方向?;?刂频淖畲髢?yōu)勢在于其對系統(tǒng)參數(shù)變化和外部干擾的強魯棒性,這使得它在實際應用中能夠有效應對各種不確定性(包括不限于系統(tǒng)的非線性特性、外部擾動等等)。此外,滑??刂平Y構簡單,易于實現(xiàn),且能夠提供快速的動態(tài)響應,在傳統(tǒng)嵌入式應用硬件算力受限的情況下依然適用。在現(xiàn)代控制系統(tǒng)中,滑??刂票粡V泛應用于電機控制、機器人系統(tǒng)、車輛動態(tài)控制以及航空航天等領域。
滑??刂圃砀攀?/p>
聽起來滑??刂茻o所不能是不是?它是如何保證上述這些優(yōu)勢的?這就需要簡單介紹一下它的原理。
滑??刂剖且环N特殊的變結構控制,它與常規(guī)控制的區(qū)別在于控制的不連續(xù)性,其核心思想是根據(jù)系統(tǒng)所期望的動態(tài)特性來設計一個滑模面(Sliding Surface),通過控制器使系統(tǒng)狀態(tài)從滑模面之外向其快速收斂并保持在該面上。系統(tǒng)一旦到達滑模面,控制器通過反饋控制將保證系統(tǒng)沿該面到達系統(tǒng)原點(目標穩(wěn)態(tài)工況)。由于系統(tǒng)的特性和參數(shù)只取決于設計的滑模面而與外界干擾沒有關系,所以滑??刂凭哂泻軓姷聂敯粜?。
文字看起來比較繞?我們用下面的公式來幫助理解。
考慮用如下公式表征的一般非線性系統(tǒng),
其中,代表系統(tǒng)固有的動態(tài)特性,代表控制輸入對系統(tǒng)的影響,則反應了隨時間影響系統(tǒng)行為的外部干擾。
該公式反映了系統(tǒng)本身的動態(tài)特性,控制輸入和外部未知干擾的耦合。如前面我們提到的,SMC 是一種變結構的控制,其在兩種不同的結構之間切換,從數(shù)學上描述為:
在這里,我們分別定義了兩組不同的控制輸入和,分別用于系統(tǒng)處于滑模面的不同側。假設系統(tǒng)有 nu?個控制輸入,則 nu?個 Sk?便可以組成滑模面函數(shù)?S(x)。
為了保證狀態(tài)變量能夠收斂于滑模面,并保持其軌跡始終沿著滑模面,合理設計控制輸入u和滑模面S(x)至關重要。當系統(tǒng)狀態(tài)到達滑模面后,滑模面函數(shù)能夠滿足S(x)=0,要使得如前述公式所示的一般非線性系統(tǒng)能夠達到并穩(wěn)定在滑模面中,我們必須要求滑模面與其導數(shù)滿足如下關系:
我們可以用如下的平面圖來解釋這樣的關系,假設圖中的直線表示滑模面S(x),其導數(shù)必須與S(x)呈相反的符號,才能保證系統(tǒng)狀態(tài)穩(wěn)定在S(x)上。
圖1 滑模面的二維等效解釋
那么如何來快速定義控制輸入和滑模面呢?顯然如果沒有工具加持,大多數(shù)情況下我們依然無從下手。在最新的 MATLAB R2024b 版本中,用戶可以使用 SlidingMode Controller (Reaching Law)[1]模塊,使用一種動態(tài)調整控制動作(趨近率,ReachingLaw)以有效地將系統(tǒng)狀態(tài)引導到滑模面,從而實現(xiàn)滑??刂?。在該模塊中,我們支持兩類滑動模態(tài)模式,以幫助用戶快速定義滑模面函數(shù)和控制輸入。
第一類:調節(jié)模式,當我們希望將系統(tǒng)穩(wěn)定在一個固定工況點時使用此模式,此時系統(tǒng)的所有狀態(tài)變量 x為零,
第二類,跟蹤模式,通常情況下,閉環(huán)控制希望的是讓系統(tǒng)的狀態(tài)跟隨一個參考的軌跡指令 xref。
易見,第一類問題是第二類問題的一種特殊情況。在上述公式中,滑動系數(shù)矩陣 C決定了滑模面S(x)的形狀,我們可以用它來定義滑模面 S(x)。h(s(x)) 則被叫做趨近率(Reaching Law),它表征了系統(tǒng)以什么樣的動態(tài)特性收斂并保持在滑模面上,我們用它來定義控制輸入 u,Reaching Law 有幾種不同的方式,在現(xiàn)有模塊中提供了三種方式:
恒定速率(Constant rate):系統(tǒng)以恒定速率達到滑模面,較大的恒定速率可以使得系統(tǒng)更快地收束到滑模面,但可能會引發(fā)執(zhí)行器控制飽和或者控制不穩(wěn)定。
指數(shù)速率(Exponential):通過給恒定速率添加比例增益項以避免恒定速率引發(fā)的問題,比例增益項使得系統(tǒng)狀態(tài)偏離滑模面較大時提供更快的收斂速率,而在偏差變小時作用減弱。
功率比(Power Rate):不同于固定常數(shù)的比例增益,通過增加一個0到1之間的系數(shù) 來平滑調節(jié)系統(tǒng)狀態(tài)與滑模面偏差不同時的收斂速度,以兼顧收斂速度和平穩(wěn)性。
典型案例分析之一彈簧阻尼系統(tǒng)
公式介紹完了,相信大家能夠了解滑??刂频幕驹?,知道在滑??刂浦?,最重要的是定義滑模面S(x)和控制輸入 u,也知道 MATLAB/Simulink 現(xiàn)在有“即插即用”的模塊來幫助我們定義。但如果要向其它人解釋什么滑模面S(x),以及如何通過調節(jié)它來提升滑模控制的性能,作者在寫到這里的時候也跟大家一樣都是一頭霧水。因為相比于那些傳統(tǒng)的控制理論,這個不是平面,卻又叫做“面” S(x)的實在是太過抽象,干憑冥想理解它著實不容易。我們需要一個簡單的物理場景來具像化它,幫助我們理解。在 MATLAB R2024b的幫助文檔中就給出這樣一個例子,SlidingMode Control Design for Mass-Spring-Damper System[2],下面就讓我們一起來探討一下。
我們考慮如下一個簡單的質量-彈簧-阻尼系統(tǒng),視為質點的質量為 M 的質量塊,在彈性系數(shù)為 K,阻尼系數(shù)為 D 的約束下,被大小為 F 的力驅動(視為控制輸入)。
圖2 質量-彈簧-阻尼系統(tǒng)示例
我們可以很輕易地得到反映其動態(tài)的系統(tǒng)方程,
其中,x 代表質量塊的橫向位移,即圖中的y,那么 x ?和 x自然代表它的速度和加速度。
等一下,這個系統(tǒng)動態(tài)的方程跟我們一開始定義的一般非線性系統(tǒng)表征不太一樣,為了保持一致,我們需要先做一些修改,
我們在系統(tǒng)中定義兩個變量,橫向位移為 x?,速度為 x?,則系統(tǒng)動態(tài)可以表示為
其中,,。 為何選了這樣一個系統(tǒng)?因為如果我們將系統(tǒng)中的兩個狀態(tài)分別置于平面坐標系的橫軸和豎軸上,它就會形成一個“平面”。
圖3 質量-彈簧-阻尼系統(tǒng)相平面
由圖上我們可以知道,系統(tǒng)的“軌跡”(兩個狀態(tài)變量的變化),永遠是跟隨著圖中藍色的箭頭來行進,即位移絕對值達到最大值時,速度都是零。那么在圖中,我們可以找到這樣一條分割線,x?+x?= 0,無論當系統(tǒng)的工作狀態(tài)處于分割線左邊或者右邊時,都會向這條線“收斂?!?/p>
圖4 質量-彈簧-阻尼系統(tǒng)滑模面
顯然,圖中這條線就滿足之前我們對滑模面S(x)的討論,在這個例子中,我們便可以定義S(x)=x?+x?,此時滑模系數(shù)矩陣 C=[11]?。
在定義好滑模面S(x)之后,我們只需要確定滑模控制器的滑動模態(tài)方式以及趨近率方式,即可確定控制輸入 u。我們希望系統(tǒng)能夠在任何的外部干擾作用下,質量滑塊都能沿著滑模面穩(wěn)定在原點附近,所以我們選擇“調節(jié)模式”作為滑動模態(tài)方式,并選擇指數(shù)速率作為趨近率。
當然這些設置在 MATLAB 中都非常容易實現(xiàn),只需要在 Sliding ModeController (Reaching Law) 模塊的對應位置給定參數(shù)即可。
圖5Simulink SMC 模塊設置
我們希望控制器能在系統(tǒng)存在外部輸入干擾的情況下,讓質量滑塊穩(wěn)定在原點,建立如下 Simulink 模型來查看仿真結果。
圖6Simulink SMC閉環(huán)模型
在圖5 的 SMC 模塊設置中,除了我們已經(jīng)介紹過的參數(shù),還出現(xiàn)了一個參數(shù)叫做“Boundary Layer”,這就涉及到滑??刂频囊淮笕秉c-“顫振”。還是考慮圖4所示的滑模面,滑??刂频睦硐肭闆r是當系統(tǒng)狀態(tài)到達滑模面時,不再離開滑模面,沿著其移動。但在實際物理系統(tǒng)中,“誤差”不可避免地存在,所以實際上系統(tǒng)狀態(tài)在到達滑模面時,并不“嚴格”沿著其移動,而會在其附近“來回晃動”(如圖中藍色折現(xiàn)所示)。
圖7 滑模面實際工況示例
我們在一開始概述的時候講到,滑模控制與常規(guī)控制的區(qū)別在于控制的不連續(xù)性,其在滑模面兩邊的控制輸入完全不同,在滑模面附近晃動會使得系統(tǒng)的控制輸入呈現(xiàn)“高頻開關”的狀態(tài),從而導致“顫振”現(xiàn)象的發(fā)生。
圖8SMC控制輸入“顫振”現(xiàn)象
為了防止這種現(xiàn)象的發(fā)生,我們需要設定一個合理的“邊界”,當系統(tǒng)的狀態(tài)沒有偏離滑模面到邊界值時,視為其仍然在滑模面上,不做控制輸入的切換,實現(xiàn)一定程度上的“滯回”作用(如圖中虛線所示)。
圖9SMC 模塊中Boundary Layer的設定意義
圖10 不同Boundary Layer 參數(shù)下的輸入顫振對比
典型案例分析之二變參數(shù)機械臂控制
現(xiàn)實世界中的真實物理系統(tǒng)當然遠比上述的質量-彈簧-阻尼系統(tǒng)復雜得多,外部干擾對系統(tǒng)本身的影響也大得多。簡單的被控對象可以幫我們充分理解滑??刂频脑硪约皟?yōu)缺點,并幫助我們應用在更加貼近物理實際的場景當中。在 24b 的幫助文檔中,還內置了另外一個更加復雜的 SMC 機械臂應用案例,SlidingMode Control Design for a Robotic Manipulator [3]。
示例中,我們考慮帶有兩個關節(jié)的機械臂,并且其本身的動態(tài)特性(狀態(tài)方程中的矩陣參數(shù))與標稱值是有偏移的,當下圖中機械臂狀態(tài)矩陣的估計器(Estimator)無法準確估計真實的機械臂系統(tǒng)時,SMC暫展示出了良好的控制性能,能夠應對系統(tǒng)中的未知干擾與不確定性。
圖11 機械臂滑模控制示例
因為篇幅的關系,此案例就不作詳細介紹了,各位可以參閱幫助文檔鏈接,在軟件中打開模型進一步研究。
寫在最后
MathWorks 在近些年來的版本中持續(xù)關注著廣大用戶對于非線性控制的需求,陸續(xù)添加了許多“即插即用”的控制算法模塊(如前文提到的自控擾控制、模型參數(shù)自適應控制、極值搜索控制、模型預測控制等等),使得控制工程師們不必糾結于如何用代碼實現(xiàn)相對成熟的控制理論本身,而是把精力更多地放在充分了解自身的被控物理對象特性,有理有據(jù)地調節(jié)控制算法中的參數(shù),從而快速實現(xiàn)并基于自動代碼生成無縫部署到嵌入式硬件中。
除了本文提到的滑??刂疲谛掳姹局?,MATLAB/Simulink 還發(fā)布了迭代學習控制(Iterative LearningControl, ILC)模塊,幫助有需要的用戶快速實現(xiàn)并部署該算法。 我們也樂于聽到大家的心聲,如果您有更多關于先進控制算法的使用需求和場景,不妨通過留言告訴我們,幫助 MATLAB/Simulink 持續(xù)提升!
-
matlab
+關注
關注
185文章
2974瀏覽量
230378 -
機器人
+關注
關注
211文章
28379瀏覽量
206908 -
Simulink
+關注
關注
22文章
533瀏覽量
62377 -
航空航天
+關注
關注
1文章
387瀏覽量
24271
原文標題:高效應對“外部干擾與非線性” - Simulink 滑模控制(SMC)更新探討
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論