如何能夠較好掌握飛控系統設計?有沒有比較好的書籍推薦?

本題已收錄至知乎圓桌 ? 玩轉無人機,更多無人機(Drone)操控、應用、研發方面的話題歡迎關注討論。


首先須明確飛控系統設計是一項艱巨的任務,圖1給出了目前飛行控制系統設計與驗證的詳細流程。另外,在自主控制的框架內,飛控系統擔負的任務也越來越多,如圖2。已經從單純的控制擴展到感知,規劃,決策,控制等諸多領域,已成為無人機絕對的核心。

(1) 飛行控制系統控制律設計人員需要掌握許多領域的知識,例如控制理論,控制系統結構,空氣動力學、飛行動力學、航空和氣動伺服彈性、飛機載荷、質量和平衡、模擬和建模方法。面對現代複雜的飛行控制系統,控制律設計的真正問題之一就是更快更早地掌握所需的知識。對於控制律設計人員而言,沒有可以借鑒的設計手冊,也缺乏合適的設計原則。技能的獲取主要來自於實踐,在有限的幾個新項目和時間的流逝之間,的確存在著組合,經驗的獲取問題。所以,經驗的總結是重要的,但有時也容易被忽略掉的。~劉林《最佳實踐知識庫》

入門圖書推薦
。。。。。。。。。。。。。。。。。。
1.固定翼無人機推薦《Small Unmanned Aircraft Theory and Practice》Beard, R.W. and McLain, T.W.: Small Unmanned Aircraft: Theory and Practice. (eBook and Hardcover)
涵蓋了從底層的增穩控制、狀態估計,到上層的航路規劃、視覺控制。最贊的是每一章都配有相應的matlab模擬程序,一步步做下來,最終將會實現一個功能強大的無人機程序。ps:中文版已經有人在翻譯了。

2.多旋翼設計推薦北航全權教授的課程《多旋翼無人機設計與控制》課件下載地址:Reliable Flight Control Group
全老師也寫了一本書,《多旋翼無人機設計與控制》,不過應該是英文版的,近期會出版,我個人非常期待。

3.論文、公開課等
另外,我收集整理了一些多旋翼方面的資料,可以看這裡Drone - ExbotWiki

4. 開源代碼
開源項目也有很多了,結構好一點的推薦px4
功能多一些的推薦arduipilot

5. 實踐
搞理論是一方面,既然是「設計」,那就是要針對具體的工程實踐。我見過太多只會「設計」的博士甚至教授,搞理論是沒的說,但他的設計離開電腦後能否run起來?自己也不確定。所以 學習-&>設計-&>實踐-&>總結問題-&>再設計 這樣的一個閉環還是要有的。
說到最後,即便是玩最便宜的多旋翼,還是需要一點小錢的。
繼續補充一段《最佳實踐知識庫》
==???==
(2) 由於歷史的原因,通常設計不是從零開始,而是在已有的設計基礎上進行的。這就意味著某些設計可能會繼承已有設計的缺陷,會在已有基礎上增加新的內容和功能,也會繼承一些重大問題的解決方法,這些系統可能會變得非常複雜,以至於幾乎無人能夠全面了解系統的全部功能。
(3) 在某些情況下,無法將設計需求轉換為較好的量化指標,那麼FCS 設計成敗主要取決於控制律設計者個人的經驗和枝巧,以及對於控制律設計作為飛行控制系統的一個完整部分所固有的軟體和硬體方面的限制條件的洞察能力。因此,真正的設計需求或許只可能存在於經驗豐富的設計者的頭腦中,這些設計者能夠正確地理解可用的信息,並能對可能失去的東西做出合理的判斷。
(4) 設計周期往往非常漫長,任何一個設計者在其設計生涯中可能只能接觸到個別設計案例,因此有一部分經驗是來自其他人。


下面這個回答出自我專欄文章《機器人工程師學習計劃 - Phantom Y - 知乎專欄》
===================================================
我覺得學工程技術,很重要的是先從大的整體概念入手,然後再鑽進細節。

我假定題主說的是想自己調一個小的四軸飛行器,然後比較清楚地掌握這個過程中的各項技術。希望我這篇回答能夠幫到你。不巧的是,目前我沒有發現什麼比較好的書籍推薦,已有的一些關於四旋翼系統的書要麼太淺(上來就教你焊電路),要麼太深(上來就教你state estimation),聽說 @Liu Top的exbot小組在寫一個教材,我是非常期待的。

第一步:自己調一個小四軸飛起來
現在開源社區的人言必pixhawk,其實我覺得從學習的角度來說,pixhawk太貴,而且不適合學習,我比較推薦的是 https://chiplab7.taobao.com/ 這家淘寶店賣的STM32F405飛控,買回來以後自己再隨便買個機架(比如DJI F450)、接收機和遙控,就能按照飛控板附帶的學習資料、調試軟體飛起來。這家店目前好似不公開出售這款飛控了,但是萬能的淘寶滿滿都是業界良心,LIGHT 開源 飛控 四軸 飛行器 diy 四旋翼 多旋翼 無人機 開發板,這家店看起來也非常棒

第二步:看硬體圖、讀代碼
chiplab7的飛控板附帶一大堆學習資料,對加速度計、陀螺和磁感計都有很仔細的解釋,硬體鏈路圖也很詳細。看完就可以學會怎麼給stm32單片機開發程序,當然如果題主自己去另外單獨花時間學學stm32單片機開發也是很好的。chiplab7淘寶掌柜的又很認真負責,我學用的時候,發現代碼有bug和看不懂的地方,都可以直接找掌柜的問……

看完代碼以後,對一個飛控系統的基本模塊:姿態解算、控制解算、混控輸出、遙控器處理、嵌入式處理就很明白了。然而這裡面有很多技術是需要另外學習的。除了基本的嵌入式編程以外,最重要的是要理解姿態解算和控制解算這兩塊知識。這個代碼採用的是最簡單的互補濾波演算法做為姿態解算模塊,然後控制解算是對歐拉角的三個角度做閉環PID控制,基本都是基礎的基礎了。

第三步:理解核心的數學和控制知識
姿態解算和控制解算涉及的知識有:
1. 剛體姿態的表示、運動學方程和動力學方程。主要是對牛頓-歐拉方程的認識和理解、剛體姿態的歐拉角表示法、姿態與角速度的關係等等。
這部分說複雜不複雜,說簡單也不簡單,我同樣是沒有找到一本完整的書全都介紹過的,是學了好幾個不同的書和論文以後搞明白的。現在看起來是從維基百科入手比較靠譜。
2. 自動控制原理。講PID的書和文章就多了去了,沒有太多複雜的書。
3. 線性估計基本原理。其實就是互補濾波:Reading a IMU Without Kalman: The Complementary Filter 。拿這個關鍵詞百度各種搜就會了。

第四步:小修小改加深理解
chiplab7的飛控是靠氣壓計定高的,飛行效果非常奔放。這時候可以淘寶買個20塊錢的超聲波模塊,然後自己寫個高度環去穩定飛控的定高表現。

我覺得這個過程至關重要,因為高度控制相對來說是個比較直觀理解PID控制的方式,而且chiplab7的飛控加高度控制非常好加。工作量不大,因為改善效果很顯著,所以可以讓人很有成就感,加深繼續學習的樂趣。

第五步:重頭開始造輪子
知乎著名網友vczh曾經說過,學習要抱著勇於造輪子的心態才能進步。所以在熟悉了別人飛控基礎上,可以自己重頭造一個飛控的輪子。

首先可以自己從晶元開始重新畫一個飛控板,讀讀stm32的晶元手冊、讀讀各種感測器的晶元手冊,自己手畫一個飛控的原理圖、做PCB layout、制板自己焊元件,全套花不了1000塊錢,能夠加深很多對硬體的理解。

其次可以重新寫一個飛控系統。這個時候基本也到了職業分化的階段,可能你和你的基友想一起創業造四軸飛行器,在知乎上搜到了YY碩的文章,買了chiplab7的飛控板走完了一二三四步覺得兩個人學得挺好,都不含糊,可以開公司造飛機了。這此後兩個人就需要做出誰搞觀測(IMU、GPS等感測器)誰搞控制(更好的控制器設計)的選擇,因為任何一個都是大坑,需要付出相當深入的努力才能做好做穩定。甚至要付出一個博士時間的努力。

另外很可能你和你的基友各自努力搞了搞發現飛機還是有很多異常情況下會炸雞的問題,而為了解決這些異常情況需要使用非常昂貴的實驗設備、花非常大量的時間去做實驗才能搞定。這個時候我建議大家還是加入大疆吧……


首先你要確定你是不是想學「飛控系統設計」,因為你心裡的「飛控系統設計」和實際的「飛控系統設計」有可能不是一回事。
飛控系統(FCS):

是這樣一個大傢伙哦,裡面甚至涵蓋了飛行器設計的知識(不只是工程的內容,還有物理,數學,軟體,硬體,系統設計等等)。所以還要明確你的需求,你的意思是「針對飛行器」的控制器設計(演算法)?還是更偏向演算法程序實現(寫一套飛行器控制固件),還是更偏向于飛行控制器(不是系統)實現呢?
因為前者只包含下圖的左邊和右邊的內容(我只截出來了一小部分圖):

如果你是要學關於飛行器的控制器演算法設計,我可以推薦你幾本書,如果是控制器演算法實現,我可以推薦你一些項目,如果是飛行控制器製作,我可以推薦你一些資料。
所以先明確自己的需求,不然你可能不知道從哪裡下手,或者看到什麼都想學,結果就是蜻蜓點水,半途而廢。
如果你的需求是上文中的第一類:Aircraft Control 3rd edition 2015- Stevens Lewis Johnson:

之前Lewis給我上課的時候就推薦過這本書,他本人更偏重固定翼飛行器,但是這本書中包含固定翼,直升機,多旋翼的模型和控制演算法。看完這本書可以根據自己的需要(工作、項目)與興趣選擇進一步的書籍。
第二類,項目的話直接上Github,但是我還是建議去MIT,丹佛大學這些地方搜集以項目為主題的課程報告,比如丹佛大學Kimon(這幾天正在上他的課所以舉出下面的例子,但類似例子在MIT,Lewis的大學都有)的NACA0015,這些資料里不但含有理論,工程項目細節,關鍵能讓你體會整個研發的過程和設計的步驟與層次,比如:

其實這樣的內容把第三類需要的資料也包含了。從中你可以知道整個無人機設計的流程,步驟,需要考慮的要素,設計方法,工具(硬體、軟體、演算法、模擬軟體、設備、理論)
當然如果不想這麼麻煩的,那就DIY吧,留郵箱。

總結:
1.明確自己的需求
2.選擇理論與實踐結合起來的書籍或者項目或者資料。然後實踐開來。
3.再通過實踐來再次問自己需要哪些理論,要學習哪些工具。

實踐項目去Github,關鍵詞輸入,代碼,硬體圖文件,修改過程。選擇自己感興趣,用得到的晶元,演算法架構等進行嘗試。

再次強調不斷對自己提問題的重要性,這本身就是探索與尋求的過程,書、工具、項目,這些不是太少,而是太多了,如果不知道自己的需求,沒有辦法找到合適的匹配項目,很難有好效果。


飛行控制系統(第二版),吳森堂,北航出版社


首先要了解飛行器原理,無人機是怎樣飛上天的,都有哪些組成部分,一些姿態描述、坐標系基礎知識。這些東西很容易從網路獲得。

然後想快速上手就看開源代碼,邊看邊學邊組裝一台飛機試驗。

想補基礎的話再看書,做到一定程度上,你一定想補。
英文的:
《Probabilistic Robotics》Sebastian Thrun
中文的:
控制:《控制理論及其應用》,盧澤生
組合導航:《慣性技術》,鄧正隆;《卡爾曼濾波及其組合導航》,秦永元

再拔高就是關注一些最新的Paper。


淘寶搜搜就知道咯


自動控制原理,C語言,高等數學,線性代數。


基礎不牢地動山搖,你要知道現在搞飛控的都是自動化出身,不是飛行器設計出身


既然想要英文書,推薦你一本《Aircraft Control and Simlation》。。
作者:Brian L.stevens
Frank L.Lewis


先學動力學,自己推導公式,六自由度方程,建模;
學習自動控制原理,如何線性化模型,設計控制演算法,並應用在自己建立的動力學模型上;
學習導航原理,現代控制理論,卡爾曼濾波,理解飛機的姿態位置速度是如何測量的;
學習一些匯流排知識,理解數據是如何上傳下傳的。。。
慢慢來吧


1剛體動力學與運動學
2運動方程,動力學方程
3方程線化解耦

記得當時的教材是《飛行控制系統》,我覺得真是一本不好的書。


如果說的是飛控系統的軟體設計,可以去github上找找apm/pix,mwc/cleanflight/betaflight,這些都是實現四軸/固定翼的開源項目


方振平的書很薄,內容比較晦澀難懂,整本書面向的是有一定飛行動力學基礎的讀者,而且整本書採用的都是俄式坐標系,不過這本書內容很精簡,不啰嗦,問題直切要點,很好的一本書,但不建議初學者去學. 本人建議初學者可以選擇南航的教材 好像是飛行動力學,貌似也是俄式坐標系,這本書從氣動參數開始講,很基礎. 北航吳森堂的飛行控制很啰嗦,美式坐標,用了很大一章節講感測器原理,然後意義不大,錯誤比較多. 魯道夫的飛行控制很經典,工程上很有借鑒意義,國內軍用飛機很多沿用了其思想,這個應該是必讀的一本書. 個人建議 南航—北航老吳—方振平—魯道夫.


光看書沒用,還是要多動手做


i謝邀。但其實我熟悉的領域並不是開發,而是應用。但參加過一個與無人機有關的項目,略知皮毛,希望可以幫到問主。既然做開發,必備的知識當然是編程,學習方嚮應該是嵌入式開發(但是因特爾好像把這方面開發劃入物聯網了,具體區別還希望編程方面專家解答),建議鑽研stm32(雖然我個人更傾向驍龍802飛行平台),相對主流一些。其次建議把航模基本的一些控制原理搞懂,主要是幾種協議,pwm控制有兩個版本(futaba和jr,futaba是主流。)sbus匯流排協議(及其他匯流排協議),ppw控制,dsm衛星接收協議,知識有限,暫時只能想到這些。建議先買一套apm或者pix4d,開源飛控,把源碼看透,本身這些飛控就包含很多很多的功能,除了正常的自穩,氣壓定高,gps定位,一件返航以外,雲台控制,聲納定高,光流定位,這些都可以琢磨的。還有感測器,這是個大坑,慢慢填吧,,,最後,github絕對是個好東西,裡面的源碼能不能看懂就不知道了qaq書,,,我自己也沒有鑽研過,,,也無法回答咯,抱歉。


如果搞固定翼飛機的控制,推薦魯道夫的飛行控制


推薦閱讀:

自動控制理論中的開環傳遞函數是什麼意思?為什麼是G(s)H(s)而非G(s)?
有哪些介紹自動控制(反饋控制理論、狀態估計、卡爾曼濾波等)歷史的書?
自動化專業的優勢在哪裡?
你見過哪些奇葩的控制演算法?
控制研究中的 『帶寬』 怎樣理解?

TAG:航空 | 自動控制 | 控制科學與工程 |