四旋翼演算法
① 增量非線性動態逆(INDI)應用在四旋翼無人機中
增量型非線性控制方法在先進飛行控制領域中嶄露頭角,特別是增量型動態逆(INDI)與增量型反步法(IBKS)這類方法的流行。這些演算法在多個領域,如直升機、四旋翼無人機、固定翼無人駕駛飛機、Cessna獎狀機型、傾轉旋翼機及電動垂直起降(eVTOL)真機上得到應用與驗證。
INDI方法的核心在於對一階系統進行增量形式的表達,簡化為 ,其中x0代表上一采樣時刻的x值,delta_u為上一采樣時刻與當前采樣時刻輸入量的差值,delta_f為模型簡化誤差,采樣頻率越高,delta_f越小,因此在INDI中可忽略。跟蹤誤差定義為 。求導後得到 ,若要使誤差系統指數收斂,指令delta_u應為 。若追求更快的收斂速度,可調整為 。最終,真實控制量u通過 計算得出。
在四旋翼無人機中應用INDI,主要針對角速度環動力學。四旋翼無人機的角速度環動力學方程為 ,其中。通過進一步推導,可得到 ,進而寫成增量形式 。當采樣時間足夠小,delta_f可以忽略。角速度控制指令跟蹤誤差定義為 ,其動態方程為 。電機引起的力矩增量計算為 ,從而得到力矩指令 ,最終通過控制分配輸出給各個電機。
② 為什麼大多數的無人機有四個螺旋槳
大多數的無人機有四個螺旋槳主要是因為四旋翼設計在輕便性和性能之間取得了良好的平衡。具體原因如下:
- 穩定性與控制性:四旋翼無人機能輕松實現四個自由度的控制,使飛行器能在空中保持穩定飛行姿態或懸停。成對的螺旋槳相互角力可以完成前進、後退、俯仰旋轉等動作。
- 結構簡單:四旋翼無人機無需復雜的機械結構,相較於雙旋翼設計,它不會增加額外的機械結構,從而保持了低成本和輕便性。
- 安全性:四旋翼設計在一定程度上能在某一個馬達失靈時提供安全著陸的可能性。當飛行時無人機發生故障時,重心可能仍然落在剩下的三個螺旋槳形成的三角形中,有助於實現安全降落。
- 演算法與冗餘度:相較於三旋翼設計,四旋翼無人機在演算法上更為簡單,且具有一定的冗餘度,提高了飛行的可靠性。
③ 四旋翼飛控里 為什麼一定要用四元數用歐拉角不一樣嗎 就算用四元數也是將四元數轉化為歐拉角進
四元數多是用在中間環節,在最終的PID輸出的時還是用的歐拉角。
我認為造成這個現象的根本原因是抄襲!!對,就是抄襲。
通過6軸或者9軸融合姿態角的演算法有兩種,這兩種我記得沒錯的話是英國人開發的(國籍可能記錯了),並開源了,國內的那些沒有研發能力的團體和個人就是用的這個演算法,而那個演算法的中間環節均為四元數,輸出是歐拉角。
我也是沒有研發能力的個人,所以也不能透徹理解這個轉換的意義,猜測可能是像拉式變換或者傅立葉一樣,通過一種域的變換使計算過程簡便,也就是三維的'復數域',再可能是通過四元數防止計算過程中出現超過歐拉角表示範圍的問題。四元數在旋轉合成方面會方便一些,計算量也少於歐拉角,但是!姿態演算法里根本沒有四元數的旋轉合成。
國內的開源的四軸代碼都是這樣,還有以前看的一個開源代碼開始還是開源的,後來還有限制了,就那破代碼,也就開發者自己還覺得不錯了。
這些代碼沒有核心的姿態演算法的開發能力,就在感測器的數據上'下功夫',就是被玩壞的濾波器,MWC用的滑動均值濾波、互補濾波簡單明了,可靠有效,但是我們的開發者不這么認為,不用上橢圓濾波器,多階低通濾波器,卡爾曼濾波這些復雜的演算法就是低端的體現,浮點運算隨心情寫,也不管用不用的上,能用浮點絕不定點,這都還好,反正他們用的晶元完成他們的代碼就是用大炮打蚊子,有的是資源沒用,雙精度都算的過來。
其中我最受不了的就是他們的卡爾曼濾波了,那個叫卡爾曼?天啟者 卡爾瑪吧。那都什麼演算法啊,有什麼用,定義個QR就開始計算了,幾個矩陣就高大上了,完全的低通性能,就是抑制dv/dt,確實給信號的波動減少了同時也把感測器的中高頻信號給過濾掉了,這個可以,問題是中高頻都濾掉了,控制頻率給提到400+hz是什麼意思,信號帶寬給限制到了100hz,再把控制頻率給升高,有什麼用?有什麼用?
說的這些都是我能看到源碼的演算法,當然有很多沒有公開源碼的好的演算法,國內的牛人很多很多,只是他們專注於賣套件,誰都想把自己的勞動有回報,也不會公開,就是這個情況。
開源的國內代碼就是這個質量,別想有什麼突破,心態就是這樣,別想短時間內有突破。
廢話說了一堆也沒解決你疑惑,實在抱歉。
