Output: Results

Command ElementResOutputコマンドは、MotionSolveによって生成される出力ファイル用のオプションを定義します。

フォーマット

<ResOutput
   {     mrf_file               = { "TRUE" | "FALSE" }         
         abf_file               = { "TRUE" | "FALSE" }         
         plt_file               = { "TRUE" | "FALSE" }         
         abf_unique_time        = { "FIRST" | "LAST"  | "ALL" }         
         plt_unique_time        = { "FIRST" | "LAST"  | "ALL" }         
         angle_type             = { "YPR" | "EULER_ANGLES" }
         flex_vel_acc_output    = { "TRUE" | "FALSE" }         
         contact_gra_output     = { "TRUE" | "FALSE" }         
         cof_file               = { "TRUE" | "FALSE" }         
         capture_max_pd         = { "TRUE" | "FALSE" }         
         req_comment_only       = { "TRUE" | "FALSE" }         
         dzero                  = { "TRUE" | "FALSE" }         
         vzero                  = "real"
         azero                  = "real"
         fzero                  = "real"    
   }
/>

属性

mrf_file
"TRUE"の場合、MRFファイルが作成され、"FALSE"の場合は作成されません。指定しない場合、デフォルトはTRUEです。
abf_file
"TRUE"の場合、ABFファイルが作成され、"FALSE"の場合は作成されません。指定しない場合、デフォルトは"TRUE"です。
abf_unique_time
単一の時間ステップにおいて複数の結果データが存在する場合にどの結果をABFファイルに書き込むかを制御します。 8
"FIRST""LAST""ALL"から選択します。デフォルトは"ALL"です。
"FIRST"
2つの結果のうちの1つ目の結果がABFファイルに書き込まれます。
"LAST"
2つの結果のうちの2つ目の結果がABFファイルに書き込まれます。これがデフォルト値です。
"ALL"
両方の結果がABFファイルに書き込まれます。
plt_file
"TRUE"の場合、PLTファイルが作成され、"FALSE"の場合は作成されません。指定しない場合、デフォルトは"FALSE"です。
plt_unique_time
単一の時間ステップにおいて複数の結果データが存在する場合にどの結果をPLTファイルに書き込むかを制御します。 8
"FIRST""LAST""ALL"から選択します。デフォルトはLASTです。
"FIRST"
2つの結果のうちの1つ目の結果がPLTファイルに書き込まれます。
"LAST"
2つの結果のうちの2つ目の結果がPLTファイルに書き込まれます。これがデフォルト値です。
"ALL"
両方の結果がPLTファイルに書き込まれます。
angle_type
"EULER_ANGLES"または"YPR"(ヨー、ピッチ、およびロール角)を選択します。指定しない場合、デフォルトはボディ固定3-1-3 "EULER_ANGLES"です。
flex_vel_acc_output
MotionSolveの実行時に弾性体の速度および加速度出力を有効または無効にするには、"TRUE"または"FALSE"を選択します。指定しない場合、デフォルトは"FALSE"です。
dzero
出力される変位は、指定された値より小さい場合、ゼロに設定されます。指定する値はゼロより大きくする必要があります。指定しない場合、dzeroはデフォルトで1.0E-12になります。
vzero
出力される速度は、指定された値より小さい場合、ゼロに設定されます。指定する値はゼロより大きくする必要があります。指定しない場合、vzeroはデフォルトで1.0E-12になります。
azero
出力される加速度は、指定された値より小さい場合、ゼロに設定されます。指定する値はゼロより大きくする必要があります。指定しない場合、azeroはデフォルトで1.0E-12になります。
fzero
出力される力は、指定された値より小さい場合、ゼロに設定されます。指定する値はゼロより大きくする必要があります。指定しない場合、fzeroはデフォルトで1.0E-12になります。
contact_gra_output
.h3dファイル内の接触力ベクトルのアニメーションを有効または無効にするには、"TRUE"または"FALSE"を選択します。指定しない場合、デフォルトは"TRUE"です。
cof_file
このパラメータは、接触概要の表の情報をログファイルとディスク上の*.cof ASCIIファイルに書き込むかどうかを決定します。これを"FALSE"に設定すると、接触概要の表の出力が無効になります。 9
デフォルトは"TRUE"です。
capture_max_pd
capture_max_pd"TRUE"に設定されている場合、MotionSolveは、print_intervalによって定義されている2つの出力ステップ間で衝突するボディの最大貫入を監視して報告します。 10
capture_max_pdのデフォルトは"FALSE"です。
req_comment_only
このフラグは、出力要求名をMRFファイルとABFファイルにどのように書き込むかを制御します。 11

<ResOutput
    mrf_file            = "TRUE"
    abf_file            = "FALSE"
    plt_file            = "FALSE"
    angle type          = "YAW_PITCH_ROLL"
    flex_vel_acc_output = "TRUE"
    contact_gra_output  = "TRUE"
/>

コメント

  1. MRFはMotionView結果ファイルを意味します。これはバイナリファイルです。PLTファイルやH3D出力ファイルなどのさまざまなファイルを作成するソルバーのポスト処理モジュールは、MRFファイルを入力として使用します。
  2. ABFはAltairバイナリフォーマットを意味します。このファイルフォーマットは、非常に大きいデータセットを高速でプロットするように最適化されています。このファイルは、ソルバーのポスト処理モジュールが、シミュレーションの完了後に生成します。
  3. PLTはプロットを意味します。これはASCIIファイルです。この内容はAdams REQファイルと非常に似ています。このASCIIファイルの主な目的は、荷重をMotionSolveからLoad Summaryユーティリティに転送することです。その後、荷重は、このユーティリティによって疲労解析のためにFEAソフトウェアにエクスポートされます。このファイルは、ソルバーのポスト処理モジュールが、シミュレーションの完了後に生成します。

    PLTファイルの内容はHyperGraphでプロットすることもできますが、プロットにはABFを使用することをお勧めします。

  4. どの接触定義でも、オプションで、それぞれの接触位置の垂直抗力と接線力がMotionSolve H3D出力ファイルに保存されます。これらの力は、後で、HyperView内のシミュレーションで時間フレームごとに表示できます。この機能は、contact_gra_output属性で有効にします。
  5. ANGLE_TYPE内の"EULER_ANGLES"は、オイラー角のB 3 1 3バリエーションを意味します。
  6. ANGLE_TYPE内の"YPR"は、オイラー角のB 3 2 1バリエーションを意味します。
  7. オイラー角の詳細については、以下をご参照ください:
    • Classical Mechanics、Herbert Goldstein、Addison-Wesley Pub.Co.、1980年、ISBN 0201029189、978020102918。
    • Spacecraft Dynamics、Thomas R. Kane、Stanford University、Peter W. Likins、Lehigh University、David A. Levinson、Lockheed Palo Alto Research Laboratory。Copyright 2005 by the authors。
  8. 特定のケースでは、単一のデータポイントで複数の結果が得られる場合があります。例えば、次のシミュレーションシナリオを考えます:
    <Simulate
         analysis_type            = "Static"
         end_time                 = "0.2"
         num_step                 = "2"
    />
    <Simulate
         analysis_type            = "Static"
         end_time                 = "0.4"
         num_step                 = "2"
    />

    このケースでは、t=0.2秒の時点で、t=0.2秒に終わる1つ目の擬似静的シミュレーションの最後の時間ステップの結果と、t=0.2秒に始まる2つ目の擬似静的シミュレーションの最初の時間ステップの結果の、2つの結果が存在します。属性plt_unique_timeおよびabf_unique_timeでは、それぞれ、PLTファイルとABFファイルに、どのデータを書き込むかを制御できます。

    注: デフォルトで、MRFファイルには常にすべての出力データが格納されます。例えば、上記ケースでは、t=0.2秒における両方のシミュレーションの出力が格納されます。
  9. cof_file属性が"FALSE"に設定されていない場合、MotionSolveは、接触概要の表をログファイルだけでなく、ディスクにも*.cofファイルの形式で書き出します。
    接触概要の表では、接触力要素ごとに、以下がリストされます:
    • IおよびJのグラフィックID
    • 最大貫入深さと最大貫入の時刻
    • 最大接触力の大きさと最大接触力が計算された時刻

      サンプルの接触概要の表を以下に示します。

      Contact Graphics 
       ---------------- 
       90000
       
      "Model-Box 1"
       90001
       
      "Model-Sphere 1"
       90021
       
      "Model-Box 0"
       Contact Overview (sorted by MAX_PD / MAX_FORCE)
       -------------------------------------------------------------------------------
       CONTACT    I_GRAPHIC  J_GRAPHIC  MAX_PD    (TIME)       MAX_FORCE (TIME) 
       -------------------------------------------------------------------------------
       301001     90000      90021      9.994E-01 (1.798E-01)  7.429E+02 (1.798E-01)
       301001     90000      90021      9.994E-01 (1.798E-01)  7.429E+02 (1.798E-01)
       301001     90001      90021      6.844E-01 (4.192E-02)  4.289E+02 (4.192E-02)
       301001     90001      90021      6.844E-01 (4.192E-02)  4.289E+02 (4.192E-02)

      *.cofは、上記に加えて、以下の情報を含むASCIIファイルです:

    • 接触力要素ラベルと完全なラベル
    • IおよびJのグラフィックIDのラベルと完全なラベル
    • 長さの単位
    • 力の単位
    • ソルバーが各接触の計算に費やした時間。
  10. MotionSolveは、print_intervalprint_increment、またはその他の属性で指定された事前定義の出力ステップで、MRF、PLT、またはABFファイルに結果情報を書き込みます。これは、接触力や速度などが一定の時間間隔で報告されることを意味します。この一定の時間間隔で接触動態を捕捉する際には、次の2つの選択肢があります:
    • まず、MotionSolveがシミュレーションの結果を報告する頻度を上げることができます。ただし、現在、ソルバーは出力ステップサイズと等しい最大ステップサイズで動作しているため、出力ステップサイズがソルバーステップサイズ(hmax)より小さい場合、シミュレーションが遅くなります。加えて、ステップサイズが小さくなるほど、出力データが増え、出力ファイルサイズの増大につながる可能性があります。
    • または、capture_max_pd"TRUE"に設定することもできます。この場合、MotionSolveは以下を実行します:
      • 2つの連続する出力ステップt1とt2の間の収束したすべてのステップで、衝突するボディのすべてのペア間の貫入を監視します。この情報を使用して、t1とt2の間の衝突するボディのペアごとの最大貫入を計算できます。
      • この最大貫入が、t1とt2の両方で計算された貫入より大きい場合は、t1とt2の間にt1 < t' < t2となる出力ステップt'を追加します。このt'における出力フレームには、t1とt2の間で最大貫入が発生したときのシステムの状態に関する情報が含まれます。この貫入がt1かt2のどちらかで計算された貫入より小さければ、結果ファイルにそれ以上の出力ステップは書き込まれません。
        注: この追加出力時間で、接触関連以外の情報(MRF内のボディ情報やABFおよびPLT内のポスト要求など)が存在すれば、これらもすべて結果ファイルに書き込まれます。
      • このように、capture_max_pd = "TRUE"に設定することにより、出力ステップサイズを縮小することなく、モデル内の接触イベントに関する追加情報を取得できます。これは、モデル内でいつ接触イベントが発生するかが事前にわからない場合に便利です。

        下の図に示すように、重力に従って地面に落ちるボールの単純な例を考えます。


        図 1. 重力に従って地面に落ちる球体の単純なモデル

        出力ステップが0.01秒、最大ソルバーステップサイズが0.001秒で、モデルが1秒間シミュレートされます。接触力の定義にはデフォルトパラメータが使用されます。両方の形状にメッシュ化された表現が使用されます。ボールは、地面に接触して、何回か弾んだ後に、地面の上で停止することが予測されます。

        2つのボディ間の最大貫入深さが出力信号として監視されます。 図 2 は、capture_max_pdがそれぞれ"TRUE""FALSE"に設定された場合の、時間に対してプロットされた最大貫入深さを示しています。



        図 2. capture_max_pdがTRUEとFALSEに設定された貫入深さの比較


        図 3. capture_max_pd = TRUEの場合、追加の出力ステップが書き込まれる

        0.2秒までの1つ目の接触を拡大する(図 3)と、t=0.198秒に追加の出力ステップが存在することがわかります(青色の曲線)。t=0.198秒における最大貫入深さ(PD)は、出力ステップであるt=0.19秒またはt=0.20秒における値を上回っています。同じシナリオがt=0.38秒までの2つ目の接触ポイントでも見られます。

        capture_max_pd"FALSE"に設定する(赤色の曲線)と、上のプロットで確認できるように、最大貫入が発生したときのこれらのイベントが結果から除外されます。

  11. デフォルトで、MotionSolveは、モデル内の出力要求のすべての名前の先頭に3文字のキーワードと要求IDを付加します。要求IDはMotionViewモデルが変更された場合に変更される可能性があるため、これが設計サイクルのポスト処理部分の非効率性につながる可能性があります。req_comment_onlyTRUEに設定すると、MotionSolveは、要求の接頭辞をMRFおよびABFファイルに書き込みません。こうすることにより、要求IDを変更するような変更がMotionViewモデルに対して行われた場合でも、プロット中にHyperGraphで要求名が変化することはありません。例については、以下をご参照ください。
    <Post_Request
         id                  = "70000005"
         comment             = "rg1(Output Body1)"
         type                = "MARKER_FORCE"
         i_marker_id         = "30102080"
         j_marker_id         = "30101080"
         ref_marker_id       = "30101010"
      />


    図 4. HyperGraphでの“Y要求”に対する変更 - req_comment_only = "TRUE"


    図 5. HyperGraphでの“Y要求”に対する変更 - req_comment_only = "FALSE"