OS-T: 1940 MBD剛体接触

本チュートリアルでは、HyperMeshを使ってモデルの接触を作成します。

接触は、機構 / 汎用機械領域でかなり一般的なものです。MotionSolveは、接触および摩擦力の大きさと方向の計算に、ペナルティベースのポワソン接触力モデルを使用します。

曲線の五角形確動カムシステムが、接触の定義に用いられます。このシステムでは、湾曲した五角形が円内で回転し、スライダーを並進させます。

rd4040_rigid_body_model
図 1. 剛体モデル

HyperMeshの起動とOptiStructユーザープロファイルの設定

  1. HyperMeshを起動します。
    User Profilesダイアログが現れます。
  2. OptiStructを選択し、OKをクリックします。
    これで、ユーザープロファイルが読み込まれます。ユーザープロファイルには、適切なテンプレート、マクロメニュー、インポートリーダーが含まれており、OptiStructモデルの生成に関連したもののみにHyperMeshの機能を絞っています。

モデルのオープン

  1. File > Open > Modelをクリックします。
  2. optistruct.zipファイルから自身の作業ディレクトリに保存したfor_contact_tutorial.hmファイルを開きます。モデルファイルへのアクセスをご参照ください。
  3. Openをクリックします。
    for_contact_tutorial.hmデータベースが現在のHyperMeshセッションに読み込まれます。

モデルのセットアップ

剛体(PRBODY)の生成

PRBODYは、マルチボディシミュレーションのための剛体定義です。PRBODYは剛体を、有限要素のプロパティ、要素、節点のリストとは別に定義します。

モデルには、ground bodyとは別に、スタンド、スライダー、ドライバー、ペンタゴン、サークルの5つのボディがあります。事前定義された自由節点が、これらのボディとジョイントの定義に用いられます。

  1. Analysisページからパネルbodiesをクリックします。
  2. createサブパネルを選択します。
  3. body=欄にstandと入力します。
  4. type=をクリックしPRBODYを選択します。
  5. プロパティセレクターを使って、Stand1を選択します。
  6. nodesをダブルクリックし、by idを選択して2, 19391, and 19402と入力します。
  7. createをクリックします。
  8. 残りのコンポーネントについて、PRBODYを定義します。
    body = type = props free nodes
    Slider PRBODY Slider2 4, 19399
    Driver PRBODY Driver3 19392, 19395
    Pentagon PRBODY Pentagon4 4246, 19396
    Circle PRBODY Circle5 414, 19400
    Ground GROUND 必要なし 19401
  9. returnをクリックします。

ジョイントの作成

ここでは、このモデルに必要な全てのジョイントを作成します。

最初のジョイントはスタンドとグラウンドの間の固定ジョイントです。2番目に必要なジョイントはスタンドとドライバーの間の回転ジョイントで、3番目のジョイントはスライダーをスタンドに結合する並進ジョイント、4番目のジョイントはドライバーとペンタゴンの間の回転ジョイント、5番目のジョイントがスライダーとサークルの間の固定ジョイントです。
DOF = 5*6 - (5+5+6+6+5+1) = 2
ジョイントタイプ 並進自由度の除去 回転自由度の除去 自由度の除去総数
回転(Revolute) 3 2 5
固定(Fixed) 3 3 6
並進(Translational) 2 3 5
Motion (rev) 3 2 1

rd4040_joint_locations
図 2. モデル中のジョイント位置
  1. コンポーネントjointsを作成します。
    1. Modelブラウザで右クリックしコンテキストメニューからCreate > Componentを選択します。
      デフォルトのコンポーネントテンプレートがエンティティエディターに表示されます。
    2. Nameにjointsと入力します。
  2. メニューバーMesh > Create > 1D Elements > Jointsをクリックします。
    Jointsパネルが開きます。
  3. スタンドとグラウンドとの間に固定ジョイントを作成します。
    1. joint typeをfixedに設定します。
    2. first terminalとしてnode ID 19401を、second terminalとしてnode ID 19402を選択します。
      ヒント: first terminalとsecond terminalは、ジョイントに結合されるボディに対応します。節点19401と19402は一致しています。optionsパネル> graphicsサブパネルで重複節点をピックすることで、それら重複節点をモデリングウィンドウで選択します。
    3. createをクリックします。
  4. スライダーとサークルとの間に固定ジョイントを作成します。
    1. joint typeをfixedに設定します。
    2. first terminalとしてnode ID 19399を、second terminalとしてnode ID 19400を選択します。
    3. createをクリックします。
  5. スタンドとドライバーとの間に回転固定ジョイントを作成します。
    1. joint typeをrevoluteに設定します。
    2. first terminalとしてnode ID 19391を、second terminalとしてnode ID 19392を選択します。
    3. first orientationセレクターをvectorに設定し、y-axisを選択します。
    4. createをクリックします。
  6. ドライバーとペンタゴンボディとの間に回転固定ジョイントを作成します。
    1. joint typeをrevoluteに設定します。
    2. first terminalとしてnode ID 19395を、second terminalとしてnode ID 19396を選択します。
    3. first orientationセレクターをvectorに設定し、y-axisを選択します。
    4. createをクリックします。
  7. スライダーとスタンドとの間に並進ジョイントを作成します。
    1. joint typeをtranslationalに設定します。
    2. first terminalとしてnode ID 2を、second terminalとしてnode ID 4を選択します。
    3. first orientationセレクターをvectorに設定し、x-axisを選択します。
    4. createをクリックします。
  8. return をクリックしてパネルを終了します。

接触の定義

ここでは、事前定義された要素セットを使って、接触をモデルに付加します。要素セットは、Analysisページのentity setsで要素のセットを選択することにより定義されます。ペンタゴンボディの表面の要素セットの名前はmain、サークルボディの表面の要素セットの名前はsecondaryです。
  1. 接触を作成します。
    1. Analysisページからパネルinterfacesをクリックします。
    2. createサブパネルを選択します。
    3. name =欄にContactと入力します。
    4. type=をクリックしMBCNTRを選択します。
    5. createをクリックします。

    rd4040_interfaces
    図 3.
  2. 事前定義された要素セットを接触に付加します。
    1. addサブパネルを選択します。
    2. mainをsetsに設定し、セットセレクターを使ってmasを選択します。
    3. secondaryをsetsに設定し、セットセレクターを使ってSlaを選択します。
    4. updateをクリックします。

    rd4040_interfaces2
    図 4. Interfaces パネル – 接触
  3. 接触のカードイメージを編集します。
    1. card imageサブパネルを選択します。
    2. editをクリックします。
    3. Card Imageダイアログで、CNFTYPEをPOISSONに設定します。
    4. 下の図に示す値を入力します。

      rd4040_mbcntr_v11
      図 5.
    5. returnをクリックします。
  4. returnをクリックし、interfacesパネルを終了します。

モーションの拘束の定義

ここでは、機構を駆動するモーションを作成します。
  1. メニューバーからBCs > Create > Constraintsをクリックし、Constraintsパネルを開きます。
  2. nodesをダブルクリックし、by idを選択して、節点ID19392を入力します。
  3. dof5を除くすべての自由度からチェックマークを外します。dof=欄に1と入力します。

    rd4040_constraints
    図 6. Constraints パネル - Motion
  4. load types =をクリックしMOTNG(V)を選択します。
  5. createをクリックし、拘束を生成します。
  6. returnをクリックし、Analysisページに戻ります。
新しい荷重コレクター(auto1)がモデルに追加されました。モーションはこの荷重コレクターに割り当てられ、 OptiStructサブケースで参照されて用いられます。

荷重コレクターの作成

モデルに与える重力荷重とマルチボディシミュレーション用パラメータを指定するためのMBSIMバルクデータカードをこの演習で作成します。

  1. Modelブラウザで右クリックしコンテキストメニューからCreate > Load Collectorを選択します。
    デフォルトの荷重コレクターがエンティティエディターに表示されます。
  2. Nameにgravityと入力します。
  3. Colorをクリックし、カラーパレットから色を選択します。
  4. Card ImageをGRAVに設定します。
  5. 以下に示す値を入力します。


    図 7.
  6. もう1つの荷重コレクターを作成します。
    1. NameにSIMと入力します。
    2. Card Imageに、MBSIMを選択します。
    3. 以下に示す値を入力します。


      図 8.

荷重ステップの作成

  1. Modelブラウザで右クリックしコンテキストメニューからCreate > Load Stepを選択します。
    デフォルトの荷重ステップがエンティティエディターに表示されます。
  2. NameにDynamicと入力します。
  3. 解析のタイプをMulti-body dynamicsに設定します。
  4. MLOADを定義します。
    1. MLOADに、Unspecified > Loadcolをクリックします。
    2. Select Loadcolダイアログでgravityを選択し、OKをクリックします。
  5. MBSIMを定義します。
    1. MBSIMに、Unspecified > Loadcolをクリックします。
    2. Select LoadcolダイアログでSIMを選択し、OKをクリックします。
  6. MOTIONを定義します。
    1. MOTIONに、Unspecified > Loadcolをクリックします。
    2. Select Loadcolダイアログでauto1を選択し、OKをクリックします。

ジョブのサブミット

  1. AnalysisページからOptiStructパネルをクリックします。

    OS_1000_13_17
    図 9. OptiStructパネルへのアクセス
  2. save asをクリックします。
  3. Save Asダイアログで、OptiStructモデルファイルを書き出す場所を指定し、ファイル名としてfor_contact_tutorialと入力します。
    OptiStruct入力ファイルには、拡張子 .femが推奨されます。
  4. Saveをクリックします。
    入力ファイル欄には、Save Asダイアログで指定されたファイル名と場所が表示されます。
  5. export optionsのトグルをallにセットします。
  6. run optionsのトグルをanalysisにセットします。
  7. memory optionsのトグルはmemory defaultにセットします。
  8. OptiStructをクリックし、OptiStructジョブを開始します。
ジョブが成功した場合、for_contact_tutorial.femが書き出されたディレクトリに新しい結果ファイルがあるはずです。何らかのエラーがある場合、for_contact_tutorial.outファイルはデバッグを手助けするエラーメッセージを探すのに良い場所です。
そのディレクトリに書かれるデフォルトのファイルは:
for_contact_tutorial.html
問題の定式と解析結果のサマリーに関する解析のHTMLレポート。
for_contact_tutorial.out
ファイルの設定、最適化問題の設定、実行に必要なRAMおよびディスクスペースの推定量、各最適化反復計算の情報、解析時間等、特定の情報を含むOptiStructの出力ファイル。ワーニングおよびエラーに関しては、このファイルを確認すること。
for_contact_tutorial.h3d
HyperViewバイナリ結果ファイル。
for_contact_tutorial.res
HyperMeshバイナリ結果ファイル。
for_contact_tutorial.stat
解析のプロセスの間のそれぞれのステップでのCPU情報を提供する、解析のプロセスの要約。

ディレクトリには、for_contact_tutorial_mbdという名の付いたさらにいくつかのファイルが書き出されます。

結果の表示

このステップでは、HyperMeshOptiStructパネルで起動するHyperView内で結果を可視化します。

HyperViewは有限要素解析(FEA)、マルチボディシステムシミュレーション、ビデオと工学データのための完全なポストプロセッシングと表示の環境です。

  1. AnalysisページのOptiStructパネルから、をクリックします。

    Load modelとLoad resultsの右側入力欄にfor_contact_tutorial.h3dのパスとファイル名が表示されます。これは、.h3dフォーマットにはモデルと結果データの両方が含まれているためです。

    モデルと結果は現在のHyperViewウィンドウに読み込まれます。

  2. Contour panelツールバーアイコンresultsContour-16をクリックします。
  3. Results type:の下で、Displacement(v)を選択します。
  4. Applyをクリックします。
  5. playback controlsの横のパネル内にあるAnimation Controlsを使ってアニメーションを開始 / 停止します。

    animation_toolbar
    図 10.
    1. Animate ModeがanimationTransient-24(Transient)にセットされていることを確認します。
    2. Start/Pause Animationアイコンをクリックし、アニメーションを開始します。
    3. アニメーションの再生中に、一番下のスライダを使って、アニメーションのスピードをコントロールします。
    4. Start/Pause Animationアイコンを再度クリックし、アニメーションを停止します。