ドローンの制御事例:Twin ActivateとMotionSolveの連携

ドローンの制御事例:Twin ActivateとMotionSolveの連携

はじめに

本事例記事では、Altair社の事例記事(英語)を基に、Twin ActivateとMotionSolveを連携して実施するドローン制御事例をご紹介します。

解析の概要

本事例では、ドローンにより積載物をビルの屋上に運ぶことを考えます。ドローンはあらかじめ定めた経路に沿って飛行しますが、経路上には障害物として別の大型ドローンがあり、これを避けるように経路の修正をする必要があります。Twin Activate上でプロペラの回転数を制御し、ドローンに働く力をMotionSolve上の解析にフィードバックすることで、ドローンの飛行をシミュレーションします。結果として、シミュレーションで得られたドローンの移動経路や、バッテリーの消費量などを確認します。

解析モデル

本解析は、Twin ActivateとMotionSolveで実施され、Twin Activate側が主体となって行われます。
Twin Activateのモデルは、下記に示す通りブロック線図の形で表現されます。

図中に記載の通り、機体モデルへ入力する設定経路などのデータが左側、機体モデルから出力される飛行経路やバッテリー消費量などの結果データが右側へ配置されており、結果データを基に計算した衝突回避経路が入力データにフィードバックされる仕組みになっています。モデルは入れ子状になっており、機体モデルには下記のような内部モデルが存在します。

機体モデルは制御盤、機体本体、バッテリーと4つのモーターから構成されています。機体本体の中にはMotionSolveモデルが埋め込まれており、MotionSolveモデルと変数の受け渡しが行われています。対応するMotionSolveのモデルは下記の通りです。

Twin Activate側で設定されていた入力変数がMotionSolveのモデルへ受け渡され、MotionSolve上での解析に使用されます。その結果は出力用変数に代入され、Twin Activateのモデルへとフィードバックされます。今回のモデルでは、制御対象ドローンと障害物のそれぞれに対して、位置や回転角、作用する力などの変数が設定されています。

また、ドローンの運動制御は制御盤の中で実施されています。制御盤の内部モデルは下記の通りです。

図中に示す通り、あらかじめ設定した機体位置や機体回転角に沿うようにPID制御を行い、最終的に4つのモーターに与える電圧を算定します。これら電圧を4つのモーターに入力しプロペラを駆動させることで、ドローンの飛行を制御しています。

解析結果

解析結果として、ドローンの目標飛行経路と、実際の飛行経路との比較を下記に示します。

目標の飛行経路と実際の飛行経路を比較すると、ほぼ目標の経路に沿って飛行できていることがわかります。ただし、Z方向の経路について、障害物の回避時や積載物の投下後は目標の飛行経路からのずれが確認できます。特に、積載物の投下後は機体の重量が変わることもあり、経路が大きく変わります。

また、同シミュレーションで機体の回転角(ヨー角)やバッテリー残量も算出することができます。

まとめ

  • Twin ActivateとMotionSolveを連携し、ドローンの飛行を制御しました。
  • あらかじめ設定した目標経路に沿って飛行するように制御を行いました。
  • 障害物を回避する経路を計算し、飛行経路を自動的に修正してフィードバックすることができました。
  • 実際の飛行経路や、バッテリーの消費量をシミュレーションできました。

1D CAEカテゴリの最新記事