Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

荷物配送用クワッドコプター

この例では、荷物配送用クワッドコプターをモデル化します。このクワッドコプターは離着陸ポートから離陸し、目的の軌跡を追従しながら荷物を回収場所に配送します。

モデル

Package Delivery Quadcopter サブシステム

クワッドコプターはシャーシと、それぞれが交互に時計方向と反時計方向に回転するモーターとプロペラの 4 つのペアで構成されます。クワッドコプターのシャーシには同一のアームが 4 本付いており、Rigid Transform ブロックを使用して上部と下部のプレートに剛性的に付加されています。モーターは、モーター ベース、回転ジョイントとモーター キャップを介してモーター ベースに接続されるモーター シャフトで構成されます。プロペラはモーター シャフトに剛性的に付加されています。モーター ベースは、Rigid Transform ブロックを使用してアームに剛性的に付加されています。プロペラの回転速度に基づき、推力係数、および各プロペラで発生する推力が計算されます。荷物は、溶接ジョイントを介してクワッドコプターに取り付けられています。荷物を搭載しているクワッドコプターが回収場所の近くに到達すると、ただちに MATLAB Function ブロック Package Delivery Quadcopter/Package Release Trigger が溶接ジョイントを解放して荷物を引き渡します。Spatial Contact Forces ブロックを使用して、荷物と地面との接触力をモデル化します。

Trajectory Generation and Control サブシステム

クワッドコプターの目的とする軌跡は、MATLAB Function ブロック Trajectory Generation and Control/Trajectory Generator を使用して計算されます。離着陸ポートと回収場所の間にあるウェイポイントが指定されます。現在の時間が与えられると、ブロックは 5 次多項式によるクワッドコプターの軌跡 (目的とする位置と速度) を返します。2 つの連続するウェイポイント間の軌跡は、ウェイポイントにおける初期速度と初期加速度、および最終速度と最終加速度がすべてゼロになる区分的 5 次多項式として計算されます。クワッドコプターがウェイポイントの近くに到達すると常に、現在のウェイポイントと次のウェイポイントの間の目的とする軌跡が計算されます。クワッドコプターが回収場所に到着すると、ホバリングして荷物を引き渡します。Trajectory Generation and Control/Position and Attitude Controller サブシステムと Trajectory Generation and Control/Altitude Controller サブシステムは、クワッドコプターの実際の姿勢と高度を目的の値に駆動する制御信号を生成します。Trajectory Generation and Control/Motor Mixer サブシステムは姿勢と高度の制御信号を使用して、クワッドコプターのモーターの目的とする回転速度を計算します。

Position and Attitude Control サブシステム

クワッドコプターの位置を目的の状態に駆動するには、カスケード制御が使用されます。内側のループには、クワッドコプターの姿勢ダイナミクスを制御する PID コントローラーがあります。MATLAB Function ブロック Position and Attitude Controller/Position Controller 内のバックステッピング コントローラーは、制御目的を達成するために必要な、目的のロール角度とピッチ角度を計算します。

Simscape ログからのシミュレーション結果

以下のプロットは、クワッドコプターの実際の位置と目的の位置を示しています。

References : [1] Das, A., Lewis, F. and Subbarao, K., 2009. Backstepping approach for controlling a quadrotor using lagrange form dynamics. Journal of Intelligent and Robotic Systems, 56(1), pp.127-151.

参考