MotionView入門 - パート2

このチュートリアルでは、重力の設定、ブッシュの定義、モーションの適用方法を学びます。

本チュートリアルには以下に関する演習が含まれています:
  • ジョイントとブッシュ
  • 重力
  • モーション
  • 冗長な拘束の除去
  • 出力
  • 解析とポスト処理
注: チュートリアルの作業用に作業ディレクトリを作成することをお勧めします。
このチュートリアルでは、前回のチュートリアルのモデルを引き続き使用します。
開始する前に、このチュートリアルで使用するファイルを作業ディレクトリにコピーします。

ソルバーログファイルの確認

  1. MotionViewを起動し、Home(ホーム)グループのOpen Model を使用して、前のチュートリアルで保存したMV_intro1.mdlファイルを開きます。

    または、

    File > Open > Modelを選択してモデルを開きます。

    重要: 前のチュートリアルのモデルと結果がない場合は、上記のリンクを使用して結果を生成するrunファイルをダウンロードし、実行してください。
  2. リボンバーでAnalyze(解析)を選択し、Solution(ソリューション)グループのRun(実行)アイコンの横にあるRun History(実行履歴)サテライトをクリックします。
    1. Run History(実行履歴)サテライトアイコン


    注: ‘Run History’には、モデルごとのすべての実行履歴が維持されています。このツールを通じて、以前の実行のモデルと結果にアクセスできます。
    現在のモデルのエントリを展開し、実行名MV_intro1_Runを右クリックしてView Logをクリックします。
    2. ソルバーログの表示


    ソルバーログがテキストエディターに読み込まれます。モデル内で2つの冗長な拘束が特定されているのがわかります。
    3. 2つの冗長な拘束を示すソルバーログ


    各ジョイントは、そのタイプに基づいて、一連の拘束を課すか、1つ以上のボディの自由度を削除します。各ジョイントタイプによって削除される自由度の数の詳細は、Jointsのトピックを参照してください。現在結合されているジョイントの構成では、モデル内の自由度の合計数より多くの拘束があります。MotionSolveは、冗長な拘束を検出して自動的に削除し、一意のソリューションを見つけてシミュレーションを進めることができるように設計されています。ただし、そのようなシミュレーションには次のような可能性があります:
    1. 望ましくない、または予期しない結果をもたらす。
    2. メカニズムのロックアップまたはシミュレーションの失敗。

    自分自身でモデルを確認し、冗長な拘束を削除することが推奨されるベストプラクティスです。次のステップでは、ジョイント構成を変更し、冗長な拘束が存在しないことを確認します。

  3. Run Historyダイアログを閉じます。
  4. File > Save As > Modelを使用してモデルを保存します。
    1. 表示されるSave As Modelダイアログで、作業ディレクトリに移動して、このファイルにMV_intro2.mdlという名前を付けます。
    2. Saveをクリックします。

冗長な拘束の除去

  1. モデルブラウザからジョイントJoint 1を選択します。エンティティエディターで、以下のプロパティを変更します:
    1. LabelCrank-Conrodに変更
    2. Varnamej_crank_conrodに変更
    注: エンティティエディターがデフォルトで表示されない場合は、モデルブラウザでジョイントを右クリックし、コンテキストメニューからShow Propertiesオプションを選択するか、メニューバーのView > Entity Editorを使用して、これをオンにします。
    同様に、次のジョイントを1つずつ選択し、次のテーブルに従ってラベルの名前と変数名を変更します:
    現在のラベル名 現在の変数名 変更後のラベル名 変更後の変数名
    Joint 0 j_0 Crank j_crank
    Joint 2 j_2 Piston Pin j_pistonpin
    Joint 3 j_3 Piston-Cylinder j_piston_cyl
    注: Varnameは変数名の略で、エンティティに固有の識別子です。変数名を使用して、あるエンティティのプロパティを別のエンティティのプロパティに関連付けることができます。
    同様に、次のポイントを1つずつ選択し、次のテーブルに従って名前を変更します:
    現在のラベル名 現在の変数名 変更後のラベル名 変更後の変数名
    Point 0 p_0 Crank Center p_crank_cent
    Point 1 p_1 Crank-Conrod p_crank_conrod
    Point 2 p_2 Piston Pin p_pistonpin
    Point 3 p_3 Piston Pin Axis p_pistonpin_axis
    Point 4 p_4 Piston Center p_piston_cent
  2. エンティティエディターを使用してジョイントPiston Pinを変更します。
    1. モデルブラウザでジョイントを選択します。
    2. TypeUniversalに変更します。
    3. Orientationで、Alignment Type 1Shaftに変更します。
    4. Method 1Pointに変更します。
    5. Point 1コレクター(Method 1の下)をアクティブにして、モデリングウィンドウからCrank-Conrodポイントを選択します。
    4. Piston Pinのユニバーサルジョイントへの変更


    変更後のエンティティエディターは、次の図のようになります。
    5. 変更後のPiston Pinのエンティティエディター


  3. Crank-Conrodのジョイントタイプを変更します。エンティティエディターから:
    1. モデルブラウザでジョイントを選択します。
    2. TypeCylindricalに変更します。
  4. モデルを実行します。
    1. Run(実行)リボンアイコンの近くにあるAnalysis settingsサテライトアイコンをクリックします。
    2. 表示されるダイアログで、Run nameMV_intro2に変更しします。
    3. Runをクリックします。
    4. 実行が完了したら、Run Statusダイアログで実行名を選択し、View Logをクリックすることで、ログを確認します。
      6. Run Statusダイアログからのログへのアクセス


    注: 実行アニメーションからわかるように、モデルの動作は以前と同じままです。それに加え、ソルバーログに冗長な拘束がレポートされなくなります。Crank-CrankrodジョイントとPiston Pinジョイントからそれぞれ1つの拘束を削除することによって、以前レポートされていた冗長な拘束が効果的に解決されました。

    選択したジョイント構成で冗長な拘束が削除されたとしても、それはパートが持つジョイント相互作用の種類を表していない可能性があります。

    冗長な拘束条件を解決するには、他に次のような方法があります:
    • ジョイントをコンプライアントに変更します(ジョイントを剛性および減衰プロパティを持つブッシュと呼ばれる力要素に変換します)。
    • いずれかのボディを弾性体として表します。

    弾性体の作成と使用法については、別のチュートリアルで説明します。次のステップでは、ブッシュとコンプライアントジョイントについて説明します。

ジョイントのブッシュへの置換

  1. ジョイントPiston Pinを非アクティブにします。
    1. モデルブラウザからジョイントを選択します。
    2. 右クリックしてDeactivate > Selected onlyをクリックします。
    注: エンティティは、エンティティエディターActiveチェックボックスをクリアすることで非アクティブにできます。
  2. ブッシュを追加します。
    1. Model(モデル)リボンから、Entities(エンティティ)グループのBushings(ブッシュ)アイコンをクリックします。または、MotionViewウィンドウの右上にある検索を使用して、ブッシュ作成コンテキストをアクティブにします。
      7. 検索を使用して機能を見つける


    2. 表示されるガイドバーで:
      • Body 1としてPiston RodBody 2としてPistonPinを選択します。
      • OriginとしてPistonPinのポイントを選択します。
      • Create and Editをクリックします。
    3. マイクロダイアログで、OrientMarkerツールをクリックします。
      • 方向としてZ軸がアクティブになっています。1-Axis方式に変更します。
      • マイクロダイアログPoint方式を選択します。
      • 既存のポイントPiston Pin Axisを選択します。
        8. 既存のポイントを使用したブッシュの軸の方向付け


      • 空白領域を右クリックし、Exit をクリックします。
    4. ガイドバーCancelをクリックし、Exit をクリックします。
  3. エンティティエディターを使用してブッシュプロパティを変更します。
    1. LabelVarnamePiston Pinbsh_piston_pinに変更します。
    2. Propertiesセクションで、Trans Stiffnessを変更します。
      • Value(kx、ky、kz)を1e5 N/mmに設定します。
    3. Rot Stifnessの値(ktxおよびkty)を1e8に変更します。Value(ktz)0.0 N-mm/radに設定します。
      9. ブッシュの剛性プロパティ


      注: ブッシュのZ軸は、ピストンピンの軸に沿って方向付けられています。このブッシュをヒンジジョイントのように動作させたいため、ブッシュのZ軸周りの回転剛性は0.0に設定されています。
  4. Trans DampingおよびRot Dampingプロパティを設定します。
    1. Trans DampingのValue(cx、cy、cz)を10 N-sec/mmに設定します。
    2. Rot DampingのValue(ctx、cty)を1000 N-mm-sec/radに設定します。
    10. ブッシュの減衰プロパティ


  5. Crank-Conrod円筒ジョイントをコンプライアントジョイントに変更します。
    注: ジョイントのコンプライアンスは、剛性ジョイントをブッシュに、またはその逆に切り替えることができる機能です。これは、ジョイントに問題があるモデルやブッシュ表現の潜在的な問題のデバッグに非常に有用な機能です。
    1. ブラウザからジョイントCrank-Conrodを選択します。
    2. エンティティエディターで、Generalの下のCompliantチェックボックスを選択します。
      コンプライアントジョイントのブッシュの方向パートは剛性ジョイントとは異なる可能性があるため、ジョイントの方向はリセットされます。
    3. 前のステップで作成したブッシュと同じ剛性および減衰プロパティを指定します。
    4. Orientationセクションで、1st Axisに対して:
      • Align MethodVectorに変更します。
      • Vectorコレクターがアクティブになります。PistonRodの穴のサーフェスにカーソルを合わせてその軸のベクトルをハイライト表示し、クリックして作成します。
      11. 穴のサーフェスを使用した、参照用ベクトルの生成


      注: ベクトルエンティティVector 0が作成され、コンプライアントジョイントのエンティティエディター内のVectorコレクターに解決されます。現在のビューでベクトルが表示されない場合は、モデルの方向を回転して変更する必要がある可能性があります。
    5. 2nd Axisに対して、Align MethodDxDyDzのままにして、DxDy0.0に、Dz1.0に変更します。
      12. コンプライアントジョイントの方向


      注: DxDyDzは、方向余弦(全体座標系の方向で表された単位ベクトル)を表します。

重力の設定

このステップでは、重力が適切な方向を向いていることを確認します。
注: 新しいモデルでは、デフォルトで負のZ方向に沿って重力がオンになっています。
  1. Geometry(ジオメトリ)リボンのSetup(セットアップ)グループで、Gravity(重力)アイコンをクリックします。
  2. 表示されるマイクロダイアログで:
    13. デフォルトの重力のマイクロダイアログ


    1. Enabledチェックボックスが選択されていることを確認します。
    2. Z方向ボタンをクリックして、値を9810.0(正のZ方向)に切り替えます。
    3. モデリングウィンドウで右クリックし、緑色のチェックマークを選択してGravityコンテキストを終了します。
    4. Analyze(解析)リボンでQuick Start/Stop Motion Analysis(モーション解析の開始/終了) をクリックして、モデルの動作が変更されたことを確認します。
      これでピストンとコンロッドはクランク側に落ちるはずです。

クランク運動の適用

次に、クランクに所定の回転運動を与えます。マルチボディモデルでは、運動は、時間に応じて所定の方法で強制的にボディを動かす制約です。
運動は:
  • ジョイント、またはボディに属する参照フレーム(すなわち、マーカー)に適用できます。
  • 時間に応じて変化できます。
  • 自由度を奪います。

このモデルでは、Crankジョイントに運動を適用して、特定の速度でクランクを回転させます。

  1. Model(モデル)リボンのEntitie(エンティティ)sグループで、Motions(モーション)アイコンをクリックしてMotionsコンテキストに入ります。
  2. 表示されるガイドバーで、Jointコレクターをアクティブにして、モデリングウィンドウCrankジョイントを選択します。
  3. ジョイントの選択時に表示されるCreateボタンをクリックします。
  4. ガイドバーCancel をクリックして、Jointコンテキストを終了します。
    または

    モデリングウィンドウの空白領域を右クリックし、をクリックします。

  5. 作成した運動のEntity Editorで:
    1. LabelVarnameの名前をそれぞれCrank Motionmot_crankに変更します。
    2. PropertyVelocityに変更します。
    3. Propertiesセクションで、TypeExpressionに、Expression Value60dに変更します。
    注: 値が1.0472rad/sに評価されていることがわかります。“d”は、度をラジアンに変換する演算子です。
  6. Save をクリックしてモデルを保存します。
  7. モデルブラウザDefault Analysisを選択し、End Time6に変更します。
  8. モデルの動作を確認します。
    1. Run(実行)アイコンの近くにあるAnalysis settingsサテライトアイコンをクリックします。
    2. Run Motion Analysisダイアログで、Run nameMV_intro2_Motionに変更します。
    3. Runをクリックします。
    ヒント: モデルを構築する際は、複雑さをすべて一度に加えて最後にそれを解析するのではなく、徐々に複雑さを加え、頻繁にモデルを解析して検証する(Crawl-Walk-Runアプローチ)ことをお勧めします。

出力の追加

ジョイントの変位や力などの結果をプロットするには、出力を追加する必要があります。まず、クランクの回転を測定するための変位出力を追加します。
  1. Analyze(解析)リボンから、Solution(ソリューション)グループのOutputs(出力)アイコンをクリックします。
  2. 表示されるガイドバーで:
    1. ドロップダウンメニューからDisplacementEntityJointを選択します。
    2. Jointコレクターで、モデリングウィンドウからCrankジョイントを選択します。
    3. 参照フレームはGlobal Frameのままとします。
      14. Outputガイドバー


    4. Create をクリックしてから、をクリックして終了します。
  3. モデルブラウザから出力を選択し、LabelVarnameをそれぞれCrank Displacemento_crank_dispに変更します。
    同様に、ガイドバーの次の選択肢を使用して、ピストンの変位を測定するための出力を追加します:
    • TypeDisplacementEntityBody
    • Body CollectorPiston
    • Reference MarkerGlobal Frame
    • LabelPiston Displacement
    • Varnameo_piston_disp

モデルの実行と出力の確認

  1. Run(実行)アイコンを使用してモデルを実行します。
  2. 実行が完了したらRun StatusダイアログのPlotボタンをクリックします。
  3. HyperGraphページ、Create Curve by Files dialog (Y Source Tab)で、以下を選択します:
    1. Types: Marker Displacement
    2. Requests: Crank on Bearing (Crank Displacement)
    3. Components: YAW
    15. クランク変位出力


    注: YAWはZ軸中心の回転変位を保持するコンポーネントです。グラフは、クランクの変位が6秒間に0度から360度まで変化する様子を示しています。
  4. 同様に、以下の選択肢を使ってピストンの変位をプロットします
    1. Types: Marker Displacement
    2. Requests: Piston (Piston Displacement)
    3. Components: DZ
    16. ピストン変位出力