當前位置: 華文問答 > 科學

想學習自適應控制、滑模控制、模糊控制、魯棒控制,如何打下基石,該看些什麽書?

2014-09-29科學

可以先去把MIT的applied nonlinear control給看了。(樓上答案貼了課程連結,有點英語能力同學可以同時看看影片)。這本書讀的差不多了,再去參考其他的書。如果這本都讀不下來,該回頭好好看看更基礎的經典控制理論和現代控制理論了。這些基礎一點的知識,我推薦你看Gene F. Franklin的Feedback Control of Dynamic System 7th (目前最新是8th)。學習控制,最最重要的是概念的理解,從而加速閱讀和學習其他理論,否則困難重重。

讀完任何教材,或許該想想它寫了這麽多究竟解決了控制的什麽問題。為什麽要提出這種控制方法,他的控制方法套用是不是有什麽限制條件?

如果這些問題你一個都答不上來,那麽顯然你仍然屬於需要打基礎的階段,是打 控制概念的基礎 。國內的教材可以幫你過一過基礎,但卻會留下了很多坑給你,你在閱讀時沒有旁人相助,一定會越讀問號越多。

扯點題外話,說到打基礎,看教材確實很費事費力。如果有課上,好好聽課,但願你有個好老師,留意他說的話,看書時可能會有啟發。

教材吧,不是說國外的教材一定講的那麽細,只是很多時候我覺得國內的教材太啰嗦了,什麽是重點,什麽是次要的,讓初學者學習摸不著頭腦。往往學完了,你知道做題,陷入了太多不必要的細節。 時間好貴,做那麽多題,學生還是沒搞懂在幹嘛。

比如吧,把一個傳遞函數乘上一個輸入的拉普拉斯,做反變換求時域解。 這樣的題目做的可6了,但在電腦裏用matlab輕松就可以搞定了。我不覺得做大量這種練習是 學習 經典控制的重點所在。零初始條件的 LTI系統的響應由摺積積分可以計算,是因為任意輸入的響應可被分解為無數個脈沖函數的響應進行疊加。摺積積分經Laplace變換在頻域中成為了某個函數H(s)與輸入拉普拉斯變換U(s)的乘積,在零初始條件下,這個H(s)就被定義為了傳遞函數,也就是h(t)的laplace變換。 這才是你該真正理解的東西,這解釋了傳遞函數的由來。 做了100道題,這些沒搞懂懂,也是白做。 至於為什麽只研究LTI的零初始條件響應,不知道很多人是否想過,這裏面也值得思考。答案不難,但可能沒有人引導你想過。

還有畫根軌跡,畫Bode Plot,畫的再好,徒手畫的規律記得再牢,你也沒有matlab畫的快畫的準,但matlab只知道畫圖,畫圖了之後分析仍然在人。然而學生學完了課往往就記得畫圖做題。現在教材上還好厚好厚,把一些很細節的畫圖規則東西通通放入了正文部份。這實在不適合初學者。 教材急需化繁從簡,從中抽絲剝繭拿出真正重要的東西放在正文裏。

諸如此類基礎問題還有很多,比如控制問題基本可以分為regulation,tracking和程式控制,我們期望的控制效果如何衡量?做那麽多題,裏面的模型從何而來的?引入反饋的主要目的是什麽?開環沒好處嗎?生活中哪些是開環控制的? 等等,太多類似這樣的問題,這都應該是學完基礎透過思考要能答的上來的。 這都些還不懂的話,看了其他控制方法你也不能理解他們方法的精髓, 更指不出他們的缺點,要想創新和突破就更加困難。個人認為國外的很多教材,尤其是本科生教材特別重註邏輯。很多國內教材直接給你的結論,但他們並不是順理成章就能得出來的,思考為什麽了嗎? 教材的邏輯編排對一個不懂的初學者非常重要。

題主如果學了這些控制之後,能夠想明白他們提出方法的原由和優缺點,那就是真的學明白了。 就比如模型的問題吧,模型建立不容易,建了也不知道有多準,人家就想控制能不能彌補這些缺點。控制是控制了,但花了好大的代價,我想輕輕松松的就搞定,人家就想我要在控制成本上下文章。 這些都來源於人們認為比較理想的控制器:

一個能夠以最短時間,最少花費,完全以期望的路徑把系統控制到期望的狀態的控制器。

你說這臣妾做不到啊。那科研不做了咯?那不行,想方設法給自己創造條件咯。至於這個「創造的條件」符不符合工程實際,額,看看現在很多的paper,你懂的。這裏不繼續討論這個了,先把有的學明白了。

最後提句為啥pid在工業界這麽受歡迎,因為確實簡單而且解決主要矛盾。有些次要矛盾綜合考慮了一下,就可以忽略了,讓我們開開心心地用起PID吧。這個時候基礎的問題就來了,PID解決了啥問題,分析一下優缺點唄? 分析完了,大概能想明白人家為什麽要用了。

感覺扯得有點遠,不過對於學習者而言,我如今覺得 盡量在初學的路上別被太多細節給拖累。 很多東西還需要你不斷積累反過來再仔細想想的。尤其是看書,看的太慢容易陷入細節之中而拖垮了學習興趣。

總結一下: 如果說題主提到的是高級控制方法,那麽學習順利的關鍵之一是對基礎控制概念有深入理解,從而不難發現基礎和這些「高級方法」之間的聯系,學習就會事半功倍。教材要多方參考,國內外都需要一起看,以一本為主,邊看邊思考他們與過去控制知識的聯系與區別。之後多本教材互相參考閱讀,驗證自己的學習成果。

至於教材我開頭提過兩本了。你可能覺得不是專門講那些的,然而那些專門講的書都太厚了太全了。不是所有的東西都值得讀。有很多東西你暫時不必知道,也有很多東西,你永遠也沒必要知道。一是因為時間寶貴,人的精力有限。二是因為時代在進步,值得學習的東西也在改變。還有三,理論與實踐脫節,許多書裏漂亮的數學建立在了不切實際或者簡而又簡的假設之下。作為發paper出書當然沒什麽影響。作為工程,還是需要腳踏實地。

祝題主學習順利,理論學習依然很重要。關於nonlinear control理論的教材還有msu的那個Hassan Khalil的Nonlinear System,也是不錯的。 至於整本專門講魯棒,自適應的應該非常多,仔細看一本學了基礎。再比較其他教材查漏補缺吧。不要怕讀英文,就那麽幾個的詞翻來覆去幾下就熟了,堅持堅持就好了。這些比什麽報紙小說讀起來簡單太多了。

最後的最後,導師之前跟我說: 別搞Fuzzy。好吧,武功夠用就行,你要會九陽神功和乾坤大挪移,還要什麽其他武林秘籍。 野球拳練到家了,都是隨便通關的。(WTH,暴露了)

==============================

(補充) 調程式調到半夜。看到大家給了幾個贊,謝謝,剛才白天在麥當勞吃東西時看到,沒想到一下子有感而發寫了很多。 我看其他答案才發現題主是半路出家,為了科研要學這個。可能也有很多同學有一樣的困惑,我多說一丟丟吧。

開頭所提的書和Khalil的書應該是nonlinear control必讀的經典了。我最開始是學Khalil的書(UCSD MAE281),他們那課這麽選書的。但是後來我覺得applied nonlinear control更適合入門一些。兩本書內容相互補充非常不錯。 讀的時候,記住選讀,開始的基礎可以讀的慢些,註意比較nonlinear system 與過去的linear system差別,nonlinear dynamics是個很大的學科,也不要糾結過久。不要試圖一下子全部按目錄順序讀下來,因為中間有很多章節你可能一下子吃不透,也暫時用不到,但好在有些章節比較獨立不影響你繼續讀後續內容。不要跳過preface和introduction,都是精華。後面關於講nonlinear system design是重點部份,feedback linearization,backstepping等等這些是paper裏特別常用的方法和工具。

單獨講一下穩定性。Lyapunov所定義的穩定性和穩定性定理基本就做了一件事: 判斷/保證系統某個平衡態在Lyapunov意義下的穩定性。這個平衡態就是你希望系統正常工作時進入的穩定時狀態,定理裏面一般都寫origin。具體細節,不展開。需要指出的是,穩定性定理是理論上的證明,理論能夠證明的,按此設計的控制器,實際中不出意外大概率也是穩定的。但Lyapunov定理不是萬能的,學界已經玩壞了這個東西,學完了這個之後再回過頭來批判他吧。工程角度來講,實際大型系統沒有人用Lyapunov函數來判斷穩定性的,大型系統幾維是個問題,方程式也沒有的,你有的 只有數據input /ouput。數據驅動 判斷穩定性,而且是從全域的角度的,我知道有人已經模擬出結果了,他們paper還沒發就不透露更多的了,套用也沒有那麽快。

書上那些都是上世紀的研究成果,有的都過了100多年了(Lyapunov的博士論文),繼承並批判才有進步。當然首先先要繼承了,沒創新至少也可以做一個好老師。

提一提ADRC,我也算比較熟了,不過題主沒有提到。我覺得值得去看一下韓京清老先生的書,看看他是怎麽解決控制問題的,同樣的,優點缺點,不要忘記了。當然閉環穩定性不好證明不要說是缺點(審稿人一定會認為是大大的缺點,你搞個Lyapunov函數不行嗎,然後assumption 1, assumption 2.....額)