2017-03-09 78 views
-1

我正在做自動平衡quadcopter與自主控制項目。我正在使用Arduino Mega 2560和MPU6050。在沒有DMP的幫助下,我已經從MPU6050獲得了滾動角和俯仰角,並且應用了複雜的濾波器來省略振動引起的噪音。還配置並能夠在Arduino中斷的幫助下使用Flysky發射機和接收機運行BLDC電機。現在爲了平衡,我只關注一個軸(即roll)。我還爲電動機自由運動輥軸構建了一個平衡支架。使用arduino平衡quadcopter

對於控制部分,我正在實現PID算法。我試着只使用kp值,這樣我就可以平衡然後繼續前進ki和kd期。但不幸的是,對於Kp本身,四軸飛行器正在發生激進的振盪,並沒有完全解決。

我的一些疑問的是,

  • 一個PID迴路是否足夠,或者我們得再添
  • 什麼類型的調整方法,我可以實現,找KP,KI, KD除了試驗和錯誤
  • 我編程我的ESC爲1000到2000微秒。我的PID輸入角度將在+/- 180範圍內。是否可以直接設置範圍爲-1000至1000或-180至180或任何其他值的pid輸出限制

代碼可以從網址https://github.com/antonkewin/quadcopter/blob/master/quadpid.ino

+2

考慮到這是一個控制理論相關的問題,而不是一個編程的問題,我想你的問題可以在http://electronics.stackexchange.com/或http://arduino.stackexchange.com/得到更多的關注。 。 – UnbescholtenerBuerger

+0

謝謝您的回覆.. @ UnbescholtenerBuerger –

回答

0

自公司沒有提供,我假設:

  • 的循環時間爲4ms的ATLEAST。 (越少越好)
  • 傳感器噪音已降至可接受的水平。
  • MPU-6050需要結合陀螺儀+加速度數據才能獲得角度度數。

如果上述要點沒有得到照顧,它將不會自我平衡。

最初,您可以在不調整kI的情況下離開。所以讓我們專注於KP和KD:

  • 繼續增加Kp直到開始快速振盪。保持Kp值的一半。
  • 用kP設置,開始嘗試kD值,因爲它會試圖抑制kP的超調。
  • 擺弄這兩個值,調整它的完美。

請注意,您的陀螺儀數據越精確,您可以將您的kP設置得越高。