模型參考自適應控制方法中的參考模型是怎麼定出來的?

RT,這個Reference Model的狀態方程是怎麼選取的?憑感覺任取?還是有直接的計算方法?還是憑經驗?

我記得相關文獻和書籍中只提到,Reference Model就是我們想要讓實際控制對象產生的期望行為的那一個模型。可是具體怎麼選這個參考模型才能讓這個參考模型達到我想要的期望行為呢?


MRAC的研究持續半個世紀了,系統化的結果主要用於處理參數未知的LTI系統調節問題,它和自校正調節(STR)是處理線性系統自適應控制的兩大主要方法,對於實際應用而言也是自適應控制方法中可靠而有效的兩種方法。在MRAC中,通過對控制器參數化,使閉環系統等價於給定的(輸入驅動下的)參考模型,藉助輸出誤差來「估計」參數化中的參數,以保證系統輸出漸近收斂到參考模型的期望輸出。當然,這裡的「估計」是加引號的,因為自調節性質,參數估計值一般並不會收斂於參數化的真實值。

前面提到的「閉環系統等價於給定的(輸入驅動下的)參考模型」就已經說明參考模型如何選取了。主要兩方面,以最基本的連續SISO為例:

  1. 理論上穩定要求:
  • 參考模型和系統模型階數的階數和相對階要「一致」,當系統模型的階數無法準確獲取時,可以過參數化「增加」系統模型階數(這就是和過參數化後的系統模型階數一致了)。
  • 參考模型的高頻增益(high-frequency gain)方向要與原系統模型的一致。(所以MRAC要求系統模型的高頻增益方向已知,文獻中放鬆這一假設的Nussbaum gains 方法,在實際應用中是不切合實際的!)
  • 參考模型的輸入是分段連續且有界的。
  • 參考模型是穩定的、最小相位的。

以上這些都是MRAC理論分析中的標準假設,設計的參考模型很容易滿足。

2. 應用角度的要求:

  • 參考模型在參考輸入激勵下的輸出響應,應當為系統期望軌跡。
  • 根據高頻增益估算實際系統輸入的範圍,保證在執行器飽和內。(特別是對Output Error-MRAC,執行器飽和對估計演算法的regressor formulation影響非常大,系統易發散。)
  • 魯棒性的考慮。自適應控制中一般很難形成strict Lyapunov function,對系統魯棒性影響很大,故參考模型輸入最好可以提供足夠激勵(輸入的頻譜大於等於參數化中未知的個數),保證參數估計值收斂真實值,此種情形下,已被證明系統具有「很強」的魯棒性(如何刻畫見S. Sastry論文)。
  • 若實際系統為機電系統或機械系統,對控制輸入變化率有要求,可能需要根據參考輸入特點,估算參考模型的頻率特性,保證控制輸入不對系統造成機械磨損等。

暫時能想到這些,歡迎補充。年輕人普遍都對MRAC不怎麼感興趣,多讀一讀MRAC的經典教材,裡面都有答案的。

  • K. J. Astrom, B. Wittenmark, Adaptive Control, 2nd, 2008. (入門)
  • S. Sastry, M. Bodson, Adaptive control: stability, convergence and robustness, 1989. (連續時間)
  • G. C. Goodwin, K. S. Sin, Adaptie filtering, prediction and control, 1984. (離散時間)


憑感覺回答一下吧。

假設我們為系統 dot x = f_1(x,u)設計控制器遇到困難,但可以容易地為系統 dot x=f_2(x,u) 設計控制器 u=g(x,t) 。顯而易見,如果方程 f_1(x,u)=f_2(x,g(x,t)) 幾乎總是存在解,那麼後者可以作為前者的參考模型,並且前者對應的控制器的形式是 u=f_1^{-1}(f_2(x,g(x,t)))

舉個例子。

假設我們要控制一輛兩輪差動小車,其運動方程如下:

left{ egin{array}{ccc} dot{x}  =  u_{1}cos	heta\ dot{y}  =  u_{1}sin	heta\ dot{	heta}  =  u_{2} end{array}
ight.

其中 x,y,	heta 分別表示小車的坐標與偏航角, u_1,u_2 分別表示輸入。我們希望設計控制器將小車從坐標中的任意位置控制到原點。如果要我們腦補控制器的話,大概是計算小車與坐標原點的距離和角度偏差,然後分別用Pid控制器使得誤差都為零就好了。但實踐中會發現這種控制器很容易使得小車圍繞原點做圓周運動。下面我們用參考模型的思路來設計控制器。

首先對小車的模型進行變換,我們都知道小車也是服從牛頓力學的一坨物質,如果令

q=left[egin{array}{c} x\ y end{array}
ight]p=left[egin{array}{c} u_{1}cos	heta\ u_{1}sin	heta end{array}
ight] ,那麼小車的運動方程可以寫為

left{ egin{array}{ccc} dot{q}  =  p\ dot{p}  =  left[egin{array}{cc} cos	heta  -u_{1}sin	heta\ sin	heta  u_{1}cos	heta end{array}
ight]left[egin{array}{c} dot{u_{1}}\ u_{2} end{array}
ight] end{array}
ight.

這樣的話,可以考慮使用如下系統作為參考模型:

left{ egin{array}{ccc} dot{q}  =  p\ dot{p}  =  u end{array}
ight.

並且它的一個最簡潔的控制器應當是 u=-c_1 q-c_2p ,其中 ,c_1>0,c_2>0 是參數。那麼下一步解方程可得:

left[egin{array}{c} dot{u_{1}}\ u_{2} end{array}
ight]=left[egin{array}{cc} cos	heta  -u_{1}sin	heta\ sin	heta  u_{1}cos	heta end{array}
ight]^{-1}left[egin{array}{c} -c_{1}x-c_{2}u_{1}cos	heta\ -c_{1}y-c_{2}u_{1}sin	heta end{array}
ight]

其中 u_2 可以直接獲取, u_1 還需要這種操作: u_1=int _{t=0}^{t}dot u_1(t) dt

不過參考模型與目標模型終究不同,設計出來的控制器的效果差別可能會不小。上面這個小車的控制器,可以發現當小車的速度很小或者非常大的時候,那麼需要求逆的矩陣是近似奇異的,這就導致小車在起步的時候,如果參數沒有設好,會轉好多圈才走;而且如果不給小車初速度,那個矩陣奇異,參考模型失效,當然可以設置合適的初速來解決這個問題。


這個參考模型不是控制教材能告訴你怎麼確定的,這和你的控制對象具體特點緊密相關,要具體對象具體分析。比如飛機控制的參考模型可能是來源於飛行品質要求。


大神在哪裡!!!


推薦閱讀:

最難識別的操縱:以愛之名|你有沒有經歷過以下4種類型的高壓型控制?
機械手握力感測器怎麼選取?
如何学习 4 轴无人机的飞控?
無人機飛控系統主要會使用哪些控制方法?
什麼是可變阻抗驅動器(VIA)?應用前景怎麼樣?

TAG:自動控制 | 控制 | 控制理論 |