5

環境

私の仕事は、屋内で飛ぶよりもマイクロ クワッドコプター用の速度 PID コントローラーを設計および構築することです。クワッドコプターが飛行している部屋には、クワッドコプターの速度と位置の両方のデータを提供できるカメラベースの高精度屋内追跡システムが装備されています。結果として得られるシステムは、各軸 (x、y、z) のターゲット速度を受け入れ、その速度でクワッドコプターを駆動できる必要があります。

クアッドコプターの制御入力は、ロール/ピッチ/ヨー角度と高度の推力パーセンテージです。

私の考えは、SPがその方向の望ましい速度である各軸にPIDコントローラーを実装することです。測定値は追跡システムによって提供される速度であり、出力値はロール/ピッチ/ヨー角とそれぞれの推力パーセントです。

残念ながら、これが制御理論との最初の接触であるため、正しい方向に向かっているかどうかはわかりません。

質問

  • 基本的な PID コントローラーの原理は理解していますが、速度 (m/s) をロール/ピッチ/ヨー (ラジアン) に変換する方法は、誤差を合計して定数を掛けるだけでわかりません。はい、ベロシティとロール/ピッチは正比例するので、正しい定数を掛けると正しい結果が得られるということですか?

  • 垂直速度コントローラーの場合、速度が 0 に設定されている場合、クアッドコプターは実際には上昇も下降もせずに高度を維持する必要があります。エラーが実際に 0 のときに推力値が 0 にならないように (ホバリングし続け、落下しないようにする)、これを PID コントローラーとどのように統合できますか? 出力に定数項を追加する必要がありますか?

  • システムが実装されたら、PID ゲイン パラメータを調整するための適切なアプローチは何でしょうか? 手作業で試行錯誤?

  • システム開発の次のステップは、設定点として目的の位置 (x、y、z) を取得する位置 PID コントローラーの追加レイヤーです。測定された位置は屋内追跡システムによって提供され、出力は x/y です。 /z 速度。これは良いアプローチですか?これらの PID 制御レイヤーを分離する理由は、プロジェクトが再利用性を促進するより大きなフレームワークの一部であるためです。位置座標をセットポイントとして直接取得し、ロール/ピッチ/ヨー/スラスト値を出力する PID コントローラーの単一レイヤーを使用する方がよいでしょうか?

4

3 に答える 3

1

私のブログに興味があるかもしれません: http://oskit.se/quadcopter-control-and-how-to-really-implement-it/

基本原理は理解しやすい。チューニングははるかに難しいです。pid コントローラーに何を入力するか、変数の + や - 記号などの小さなものを実際に把握するのに最も時間がかかりました。しかし、最終的にこれらの問題を解決しました。

PID コントローラーをテストする最善の方法は、毎回ファームウェアを再コンパイルする必要がないように、値を動的に設定する方法を用意することです。私が取り組んでいるクアッドコプターのファームウェアで mavlink を使用しています。mavlink を使用すると、mavlink プロトコルをサポートする任意の地上管制ソフトウェアを使用してコプターを簡単に構成できます。

小さく始めて、既製のコントローラーを使用して動作するヘリコプターを構築し、独自のコントローラーを作成します。次に、それをテストして調整し、実験します。自分でコプターを組み立ててみない限り、PID コントローラーを真に理解することはできません。私のベア メタル ソフトウェア開発ライブラリは、ハードウェア ドライバーの実装について心配することなく、ソフトウェアの作成を容易にするのに役立ちます。リンク: https://github.com/mkschreder/martink

于 2015-01-12T08:53:31.497 に答える