四旋翼無人機飛行控制演算法H∞控制?

最近要寫關於四旋翼無人機的東西,但是由於對H∞控制比較陌生,而且無人機之前也沒接觸過,所以顯得有些無從下手。現在有些疑問,比如說,我做PID控制器,這不直接就利用經典公式,然後把參數代入就可以了嗎,那我要做的工作是什麼呢,模擬的結果是讓我決定選擇比例積分微分如何組合效果更好嗎?再來說說我想做的H無窮,應該也和前面的PID差不多吧,比如我選擇標準H∞控制的話,那不也是直接利用公式反解嗎,那我利用H無窮設計魯棒控制器的主要工作是什麼呢,是根據具體的參數利用現成 的公式設計一個控制器,我可以這麼理解嗎?

本人比較渣,還望各位不吝指導,說的不對的地方還請各位包容,希望大家給我一點啟示。


既然是要寫論文,你需要好好系統的學一下魯棒控制理論,至少是其中的H無窮控制的部分。如果是非控制專業或本科基礎不好,建議先補一些經典控制理論和線性系統理論等基礎理論。不需要全部細讀,主要從這些基礎理論里弄清控制是怎麼一回事,要解決的問題是什麼。

PID控制之所以被廣泛應用,就是因為它是一個無模型控制器。也就是說,不管控制對象是什麼,PID控制器的公式都是現成的,然後你去修改三個參數試湊就行了。這對理論基礎較差的工程技術人員來說用起來是很方便的。

而現在大部分相對先進的控制演算法都是內模控制。也就是說,這些演算法針對不同的控制對象模型得到的公式都是不同的,需要你自己去推導。根據數學模型來推導控制器公式的過程就被稱為「控制器設計」。

簡單來說,你需要做的是針對你的控制對象應用H無窮理論來推導出控制器的表達式。

PS,如果你想寫論文的話,這麼做的創新性不夠,很難寫出好的論文。


控制有三個重要環節,一是感測器環節,一是系統與信號建模與辨識,一是控制演算法。

不基於模型的PID只涉及感測器跟控制演算法。基於模型的PID三個環節都要涉及,但人們往往忽略了第二個環節。其實說白了,前兩個環節確定了,第三個環節直接就可以反解公式。但事實中卻效果不好,為啥呢?

最基礎的卡爾曼濾波也是三個環節,感測器,確定系統與信號模型,最優估計演算法。也是前兩個環節確定了,第三個環節直接就可以反解公式,「不直接就利用經典公式,然後把參數代入就可以了嗎」,為什麼事實中就效果好呢?或者說,為什麼有人調得好,有人則不行呢,差別在哪裡?

關鍵在於第二個環節,確定系統的模型,就是x(k+1)=Ax(k)+Bu(k),包括x(0),以及信號的模型,Q,R,對吧。這幾個值在現實中要調來調去的,其實調的就是系統與信號模型參數啊。反而估計演算法中,頂多就調調目標函數的加權。當然,用UKF,PF就是另外的story了,這裡不表。

所以基於模型的PID現實中效果不好,關鍵在於第二個環節常常被忽略,系統與信號模型不準,控制演算法再好,就是知己不知彼啊。當然PID參數本身在選擇時,優化的目標函數也是非常非常重要的。這是另一個問題了,以後再涉及。

H無窮也是如此。

希望回答了你的問題。

再補充幾句:

物理建模往往忽略一些因素,給個輸入看輸出的辨識則更完整保留了系統信息。而現實中在用的系統辨識方面的結果,不論是過控還是飛行器方面的,基本都是頻域結果,會的人越來越少了,也越來越不受重視了。總有一天,當感測器環節的問題解決的差不多時,大家就認識到頻域系統辨識的重要性了。解決了系統與信號模型和辨識的問題,基於模型的控制演算法,或至少是調參方法,才有更多的實用。

---

做應用的話,一般就是在既有的框架下,調參數,一般試湊比模擬有效,因為模擬的假設一般現實滿足不了,很多時候倒還不如直接在現實中調。PID,H無窮,最優控制,都是控制框架。原則上說,PID的參數空間是被包含在H無窮、最優控制的參數空間之中的,但也因為參數空間小,PID參數比後兩者好調。

PID可以無模型,也可以基於模型或輸入輸出數據;H無窮要基於模型,或至少輸入輸出數據。難點在於獲得一個好的模型(通過系統辨識等),而且模型的誤差區間、干擾啥的也要考慮。其實調參數也不容易。而且現實中最起碼要有個飽和環節吧,所以一下子就是非線性了。

在模擬中調就容易多了,模型給定了,也沒誤差區間,也沒幹擾,甚至有時候沒有飽和,像你說的,直接套公式不就完了。但一般不可直接用。在實際中試下你就知道了。而且很多時候,H無窮甚至調不到PID的效果。話說回來,PID調好也不容易。

當然,如果做研究,往往會提出新的控制框架。但這些新提出的框架,絕大部分(甚至說幾乎全部)在實際中的效果不如PID與H無。當然,模擬中除外,因為往往會選擇一個很特殊的系統來比較。PID與H無窮可以說是最『魯棒、萬金油、街頭』的演算法,應用的也比較廣泛,因為現實太複雜了,『脆弱、矜貴、象牙塔』的演算法往往只停留在理論與模擬里。當然也不能一棒子打死,如果模型精確,不確定小,干擾小,很多演算法還是效果要比PID與H無窮好的。

一個新的控制演算法框架,在實際中又好用的,屈指可數。

---

補充幾點跑題的。

控制演算法本質是輸入輸出映射。對於PID,H無窮,乃至一部分最優控制等,這映射是個線性時不變的(控制器框架),所以很可能這些方法最後都得出了同樣的控制器參數。當然概率比較小,但相近還是常見的。

對於自適應,模糊,預測控制等,這個映射關係可能是非線性時變的,參數空間就打了很多。當然理論上還是有可能得到相近的參數的。

說這些什麼意思呢?人的開車、乃至開直升機,其實本質上,人腦是充當了這個輸入輸出映射,即感測器什麼情況下做出什麼樣的指令給執行機構。這個映射可以完全數學化么?可以歸結到現有的框架下么?可以分析這個映射的性能、穩定性什麼的么?不知道。人的走路的演算法是什麼?開直升飛機避障演算法是社么?開車時定位演算法是什麼?雞頭穩定演算法是什麼?不知道。但即便如此,人走路、開車、直升機等,現在還是比現有的計算機+機器人的感知定位+模式識別+控制演算法的效果好。未來如何,不知道。但我相信,感知定位+模式識別+控制演算法不斷發展,一定有超過人類的一天,因為前面說過了,人類也不過是個輸入輸出映射而已。只是現在的框架與調參方法,尚未摸索到乃至趕上而已。

其實就現狀而言,現實很多時候,不論是感知定位+模式識別+控制演算法,其中有很多環節,小trick,都是拍腦袋加上去的,現在根本無法分析。其實話說回來,所謂的分析,不過是分析的模型,而不是實際系統了,一般都是假設實際系統約等於模型。但之間差距有多大,不知道,因為知道的話,就可以把這差距加入到模型當中了。只有慢慢接近。對每個環節了解的更清楚,能建模、辨識最好,實在不行就用個lookup table,把所有能知道的都了解到,然後把剩下的不確定性交給控制演算法來處理。這樣比不論工況、工藝等,一上來就套用控制演算法,效果要好的多。估計、辨識什麼的也一樣。

有兩大類演算法,一類演算法是理論推倒出來的,如卡爾曼、UKF、Particle Filter,提出新框架,慢慢在實際中證明好用。一類是在實際中湊出來、拍腦袋試驗出來的,慢慢擴展成框架,如PID、預測控制等。啟發就是,特別留意理論中的新框架(大部分理論是不提供新框架的);實際中有某個方法效果尤其好時,看能否將其抽象成框架。最近留意到卡爾曼的一個朋友提出了無人機協調控制的一個理論新框架,他的學生又將其推廣到防止碰撞collision avoidance,看未來能否在現實中好用吧,這裡岔開一句,其它的大部分論文,無人機協調、multi-agent的,並沒有提供新框架。同時也有很多在實際中用著效果比較好的方法,現在看著像是修修補補,未來可能一被抽象化,就自成體系了。

---

關於 collision avoidance:參見 Felipe Cucker 與 Steve Smale 的 Emergent Behavior in Flocks 一文中提出的 Cucker-Smale model,以及後續的一些結果。


pid,自動控制界的AK47,H無窮又等於給他加了個好的瞄準具,入上文,減少了參數空間的範圍


如果用直接用H無窮的話關鍵在建模。因為建模完之後,直接可以得到控制器了,雖然時域解比較難算。

很多時候不是直接用H無窮,而是用全頻段loop shaping,H無窮指標是包含在其中的~


你這個問題涉及到控制領域的很多名詞概念,我不清楚你對這些概念理解是否明確清晰。但事實上,身邊好多控制圈子裡的人對自己文章中反覆提及的概念卻解釋不清。如果你真的能把你問題中的這些概念弄明白,自然可以回答自己了。

如果你覺得我說的有道理,可以按照我的提示反問自己並尋求答案。

1、PID控制的定義是什麼?

2、線性控制器和PID控制器的概念、範疇和異同點是什麼?

3、線性控制器和H無窮控制的概念分別是什麼?(提示:二者是完全不同的概念,好比手寫作業和英語作業的區別,一個是手段,一個是結果。)

4、那麼對於四軸應該怎麼設計控制器呢?應該怎麼比較呢?(提示:手段只能和手段比,結果只能和結果比,不能驢唇對馬嘴。)

順便噴一句,現在很多控制圈內的人偏偏愛驢唇對馬嘴,而且已漸習非成是之態,皆因學風浮躁,寫論文不走大腦!


我記得看過一篇15年的automatica 講h inf 在四旋翼的應用


推薦閱讀:

當初的「燈罩」已經改頭換面,變「甜甜圈」後備受寵愛
實際動力學計算中,機械臂的轉動慣量怎麼獲得?
【演講PPT乾貨】發那科一家公司的凈利潤比中國40家機器人上市公司還多
機器人與人類的和諧之道在哪裡?搞工業的朋友們怎麼看。
東京大學驚現一群3D列印仿生機器人,逼真到令人恐懼

TAG:機器人 | 航空 | 無人機Drone | 控制演算法 | 四軸飛行器 |