理論:如何調整四軸4個電機的轉速,使飛行器朝不同方向運動

今天我們來討論一下如何調整四軸的4個電機的轉速,來使四軸朝4個方向運動起來的。
多旋翼可能有很多軸,或者對稱或者不對稱。我們以四軸,X 形狀爲例。

xx.png 

爲方便說明,我們把電機進行編號, 右下爲9號,右上爲10號,左下爲11,左上爲3號電機。

1.飛行器保持懸停, 4個電機的轉速保持一致,來使飛行器保持水平。
四個電機的轉速=懸停油門

2.當我們希望飛行器向右飛的時候,我們設定在第一種情況的基礎上,增加左邊兩個電機(3,11)的轉速,減小右邊兩個電機(9,10)的轉速。
9號電機=懸停油門 -  右傾的量
10號電機= 懸停油門 -  右傾的量
11號電機 = 懸停油門 + 右傾的量 
3號電機= 懸停油門 + 右傾的量

3.當我們希望飛行器向左飛的時候,上面的公式依然成立,只不過右傾的量是負數了。

4.當我們希望飛行器向前飛的時候,那麼我們要增加後面一組電機(11,9)的轉速,減小前面一組電機(3,10)的轉速

9號電機=懸停油門  +  前飛的量
10號電機= 懸停油門 -  前飛的量
11號電機 = 懸停油門+  前飛的量 
3號電機= 懸停油門 - 前飛的量

5.飛行器向後飛的情況,上面公式依然成立,前飛的量爲負數。

6.當我們希望飛行器順時針旋轉, 我們增加10號,11號 對角線兩個電機的轉速,減小3號,9號這條對角線電機的轉速。

9號電機=懸停油門  -  旋轉的量
10號電機= 懸停油門 +  旋轉的量
11號電機 = 懸停油門 + 旋轉的量 
3號電機= 懸停油門 - 旋轉的量


7.當我們希望飛行器逆時針旋轉, 我們減小10號,11號對角線兩個電機的轉速,增加3號,9號這條對角線電機的轉速。繼續使用上面的公式。

8. 最後,針對一個電機,它同時要負責前後左右和旋轉的情況, 那它就疊加了4種情況下的值:

9號電機   = 懸停油門-  右傾的量  +  前飛的量  -  旋轉的量
10號電機 = 懸停油門-  右傾的量  -  前飛的量  +  旋轉的量
11號電機 = 懸停油門 +右傾的量  +  前飛的量  +  旋轉的量 
3號電機   = 懸停油門 +右傾的量  -  前飛的量  -  旋轉的量


所以實現代碼如下:

#define PIDMIX(X,Y,Z) rcCommand[THROTTLE] + axisPID[ROLL]*X +axisPID[PITCH]*Y + YAW_DIRECTION * axisPID[YAW]*Z

#ifdef QUADX
  motor[0] = PIDMIX(-1,+1,-1);//REAR_R
  motor[1] = PIDMIX(-1,-1,+1);//FRONT_R
  motor[2] = PIDMIX(+1,+1,+1);//REAR_L
  motor[3] = PIDMIX(+1,-1,-1);//FRONT_L
#endif



一切對稱,不對稱的多旋翼佈局都基於此理論,如果有愛的童鞋,可以補充解釋 Y3,Y6 ,V尾的公式。甚至可以創造自己發明的佈局,有創意的話就曬出來吧。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章