チュートリアル:MotionSolveを使用した連成シミュレーション
倒立振り子のマルチボディシステム(MBS)モデルを構築し、制御システムモデルと組み合わせて、この二つのモデルの連成シミュレーションを実行する方法を学習します。
このチュートリアルのファイル
Inverted_Pendulum_Tutorial.scm、Inverted_Pendulum_Tutorial.mdl
連成シミュレーションと前提条件の概要
連成シミュレーションにより、シミュレーション中にMotionSolveマルチボディダイナミクス(MBS)モデルとActivateモデルの間でのコミュニケーションを可能にします。
連成シミュレーションの最適な適用例は、MBSモデル用制御システムの開発です。本チュートリアルでは、倒立振り子向けにそのような制御システムを開発する方法を説明します。
倒立振り子とは、動いている線路上のカートに取り付けたピボットポイントの周りを水平に動く振り子など、ピボットポイントの上方に重心がある振り子のことです。通常の振り子は吊り下げると安定するのに対して倒立振り子は本質的に不安定であるため、真っすぐに保つにはピボットポイントにトルクを与えるか、またはフィードバックシステムの一部としてピボットポイントを水平に動かして能動的にバランスをとる必要があります。
本チュートリアルでは、子供が手の上で棒のバランスをとるのと同じように、カート上で水平に作用する制御力を設計して振り子を直すぐに保つ方法を説明します。倒立振り子は力学と制御理論における代表的な問題であるため、制御方式をテストするためのベンチマークとして使用されます。現実世界での倒立振り子問題の例には、発射時のロケットの姿勢制御やセグウェイ電動車のバランス維持と動きなどがあります。
前提条件
連成シミュレーションを実行するには、HyperWorks MotionSolveソフトウェアをインストールする必要があります。MotionSolveは、複数の分野にわたるシミュレーションにモデリング、解析、可視化、最適化のための強力な機能を提供します。このようなシミュレーションとして、運動学 / 動力学上のシミュレーション、静的 / 準静的シミュレーション、線形シミュレーションと振動のシミュレーション、応力 / 耐久性のシミュレーション、荷重抽出、連成シミュレーション、工数推定、パッケージングのシミュレーションなどがあります。
ソフトウェアパス設定の定義
ローカルおよびリモートの連成シミュレーション方法に必要なMotionSolveおよびその他のソフトウェアへのパスを定義します。
倒立振り子の構築
カート上の倒立振り子のマルチボディシステム(MBS)モデルを構築します。
MBSモデルのエンティティ
- 振り子
- カート
- 振り子をカートに結び付けるためのロッド
- カートの動きを水平方向に制限するためのレール
- カート上に配置された、振り子とカートの間のピボット
形状を構築する
MotionViewソフトウェアを使用して、倒立振り子の形状を作成します。
ボディを追加する
振り子とカートをモデルに追加します。
ジョイントを追加する
回転ジョイントと並進ジョイントをモデルに追加します。
グラフィックスを追加する
グラフィックスは、アニメーションでのモデルの挙動を理解するために不可欠です。
荷重を追加する
並進荷重をカートに適用します。
MBSモデルの連成シミュレーション向け変更
ソルバー配列やソルバー変数などのMotionViewエンティティを追加することで、基本的なMBSモデルを連成シミュレーション用に変更します。
ソルバー変数を追加する
倒立振り子モデルの検証
MotionSolveでMBSモデルをシミュレートして、このモデルが要求どおりに実行されることを検証します。
制御システムモデルの構築
Activateを使用して制御システムモデルを構築します。
制御システムモデルには、以下のブロックが必要です:
ブロック | 説明 |
---|---|
MotionSolve | MotionSolveモデルをActivateモデルに組み込むことを可能にします。 |
Mux | 複数の信号を1つの信号として読み込みます。 |
Demux | 複数の成分を含む信号を読み込んで個々の成分に分解します。 |
OMLCustomBlock | |
Scope | データを指定に沿ってプロットします。 |
Constant | コマンド信号を生成します。 |
PID | モデルの頭脳であるコントローラーブロックとして機能します。 |
Sum | 基準信号とフィードバックから誤差を計算します。 |