Parameters: Static Solver

Model ElementParam_Staticは、静解析および擬似静解析の解析制御パラメータを定義します。このような解析で、これらのパラメータは解析の精度および解析に使用される方法を制御します。

説明

MotionSolveは、静解析の次の2つの方法をサポートします:
  • Maximum Kinetic Energy Attrition Method。
  • Force Imbalance Method。

Maximum Kinetic Energy Attrition Method:

  1. モデルは、すべての減衰が除外された動的問題として定式化されます。その結果は、運動エネルギーと位置エネルギーの和として定義される全エネルギーが時間について不変である保存性のシステムです。
  2. 数値積分が開始されます。積分中に、システムの運動エネルギーが監視されます。ピーク(最大値)が検出されると、積分は停止し、ピーク時間をある程度の精度で求めるために必要な後退補間を行います。システム保存則から、この瞬間は位置エネルギーの谷間(最小値)にも一致します。
  3. この時点で、モデル内のすべての速度と加速度がゼロに設定され、運動エネルギーはゼロとされます。ここで、積分が再開されます。
  4. 1.から3.までが1つの繰り返し計算を構成します。完璧にピーク点が位置している場合、モデルは既に釣り合い位置にあることになります。ただし、積分器の離散性のために、これは通常ありえません。したがって、下記の3つの収束パラメータの定義に基づいてプロセスが収束するまで、1.から3.までの手順を繰り返す必要があります:
    • 最大運動エネルギートレランス(max_ke_tol):これは、静的平衡点におけるシステムの最大残留運動エネルギーです。これは小さい値にする必要があります。
    • 最大状態トレランス(max_dq_tol):これは、静的平衡点におけるシステム状態の変化量の上限を指定します。
    • 反復計算の最大数(max_num_iter):これは、許容される最大の反復計算回数です。この回数に達するとシミュレーションは停止します。

      Maximum Kinetic Energy Attrition Methodには次のような利点があります:

    • 安定した釣り合いのみを求めます。
    • モデルの状態から釣り合い位置が離れているような問題に適しています。そのような状況は、Force Imbalance Methodでは解決が困難です。
    • 接触が支配的なモデルでもうまく機能します。

      Maximum Kinetic Energy Attrition Methodには次のような欠点があります:

    • この方法は速度が遅い場合があります。
    • 現在のバージョンでは擬似静解析に対応していません。

Force Imbalance Method:

  1. この方法は、運動方程式のすべての速度および加速度の項をゼロにして、力の釣り合いの非線形代数方程式[ F(q, l) = 0 ]のシステムを得ます。
  2. 一般化座標(q)と拘束力(λ)が未知数です。
  3. 非線形方程式は、ニュートン-ラプソン法で解かれ、釣り合い位置が求められます。
  4. 反復計算は、次の場合に停止します:
  • 運動方程式での不均衡が、ユーザー指定のトレランス未満に低減された場合。
  • 方程式F(q, λ) = 0が、ユーザー指定のトレランスを満たしている場合。
  • 最大の反復計算回数に達した場合。

    Force Imbalance Methodには次のような利点があります:

  • 極めて信頼できる方法で、大規模クラスの問題に対して良好に機能します。
  • 比較的迅速に解を見つけます。
  • 静的な方法と擬似静的な方法の両方に機能します。

    Force Imbalance Methodには次のような欠点があります:

  • 安定、不安定、中立の各釣り合い位置を区別しません。これらの求解が同じように可能です。初期コンフィギュレーションに最も近い静的解に収束します。
  • モデルのコンフィギュレーションから釣り合い位置が離れているような場合は、解を得るのが困難です。
  • 接触が支配的なモデルの場合、解を得るのが困難です。

    Maximum Kinetic Energy Attrition MethodとForce Imbalance Methodの2つの方法は補完的に使用できます。

フォーマット

<Param_Static
   {
    [ method = "MKEAM"   ]         
    [ max_ke_tol       = "real" ]         
    [ max_dq_tol       = "real" ]         
    [ max_num_iter     = "integer" ] >
   |[ method = { "FIM_S" | "FIM_D" } ]         
    [ max_imbalance    = "real" ]
    [ max_error        = "real" ]         
    [ stability        = "real" ]          
    [ max_num_iter     = "integer" ]         
    [ compliance_delta = "real" ]    
   }
/>

属性

method
静的または擬似静的シミュレーションに使用されるアルゴリズムの選択肢を指定します。静的平衡の場合、次のいずれかを選択します:
MKEAM
MKEAMは、最大運動エネルギーの最小化に基づく手法です。
FIM_S
FIM_Sは、Force_Contactを除くすべてのMotionSolve要素をサポートする修正されたインプリメンテーションです。
FIM_D
擬似静的シミュレーションの場合、MKEAMの手法は適用できません。ただし、FIM_Dという追加の選択肢があります。FIM_Dは、擬似静解析への時間積分ベースのアプローチです。この手法は、純粋な静解析には適用できません。Param_Static要素で指定されたパラメータに加え、FIM_Dは、Param_Transient要素で指定されたパラメータも使用してDAE積分を制御します(特に、dae_constr_tolは誤差トレランスを制御します)。純粋な静解析が必要な場合、FIM_DのデフォルトはFIM_Sです。

要約すると、静解析と擬似静解析の両方について、ソルバーの選択肢は3つあります。これらの利点と欠点については、コメントをご参照ください。

デフォルトはFIM_Dです。

max_ke_tol
MKEAMが選択された場合に適用できます。静的平衡点におけるシステムの最大許容残留運動エネルギーを指定します。これは小さい値にする必要があります。max_ke_tolのデフォルト値は1e-5エネルギー単位です。
max_dq_tol
MKEAMが選択された場合にのみ適用できます。
これは、静的平衡点におけるシステム状態の変化量の上限を指定します。状態の最大相対変化量がこの値より小さい場合、反復計算は収束したと見なされます。max_dq_tolのデフォルト値は1e-3です。
max_num_iter
許容される最大の反復計算回数を指定します。この回数に達するとシミュレーションは停止します。この時点でmax_ke_tolmax_dq_tolが満たされていない場合、平衡の反復計算は失敗したと見なす必要があります。max_num_iterのデフォルト値は100です。
max_imbalance
force_imbalanceが選択された場合に適用できます。解析ポイントで許容される運動方程式における最大の力の不均衡量を指定します。これは小さい値にする必要があります。max_imbalanceのデフォルト値は1e-4力単位です。
max_error
force_imbalanceが選択された場合に適用できます。これは、静的平衡点におけるシステム方程式の残差の変化量の上限を指定します。運動方程式における最大残差がこの値より小さい場合、反復計算は収束したと見なされます。max_errorのデフォルト値は1e-4です。
stability

ヤコビアンが正則となるように、ヤコビアン(コメントセクションのニュートン-ラプソン法に関する説明をご参照ください)に追加する質量マトリクスの比率を指定します。ヤコビアンマトリクスが非正則になる可能性があるのは、システムに中立平衡解があり、初期推測がこの解に近い場合です。これを回避するには、ヤコビアンを正則にするため、質量マトリクス(正則であることがわかってる)の一部をヤコビアンに追加します。stabilityの値は解析の精度に影響を与えませんが、ニュートン-ラプソン反復計算の収束速度を低下させる可能性があります。stabilityは小さい値にする必要があります。stabilityのデフォルト値は1e-10です。

注: stabilityで指定された値の平方根が質量マトリクスに乗算されてから、ヤコビアンに追加されることで、ヤコビアンが正則になります。
compliance_delta
コンプライアンスマトリクスの計算時に使用されるデルタ(デフォルト = 0.001)。

この例は、MKEM手法を使用するParam_Static要素のデフォルト設定を示しています。

<Param_Static
     method              = "MKEAM"
     max_ke_tol          = "1.000E-05"
     max_dq_tol          = "0.001"
     max_num_iter        = "100"
/>

この例は、FIM_S解法を使用するParam_Static要素のデフォルト設定を示しています。

<Param_Static
     method              = "FIM_S"
     max_residual        = "1.000E-04"
     max_imbalance       = "1.000E-04"
     max_num_iter        = "50"
/>

コメント

  1. 擬似静的シミュレーションの場合、MKEAMはサポートされません。
  2. MKEAMFIM_D、およびFIM_Sの手法は、次の要素をすべてサポートしています:
    • Body_Point
    • CVCV
    • PTSF
    • CVSF
    • SFSF
    • Constraint_Gear
    • Constraint_Usrconstr
    • Force_Contact
    • Force_Field
    • Control_Diff

    詳細については、MotionSolveユーザーズガイドの次の表をご参照ください。

    ADAMSとMotionSolveのモデリング要素の対応関係.

    ADAMSとMotionSolveのコマンド要素の対応関係.

    ADAMSとMotionSolveの関数の対応関係.

    ADAMSとMotionSolveのユーザーサブルーチンの対応関係.

    MotionSolveの擬似静解析は、Force Imbalance Methodを参照します。

  3. ニュートン-ラプソンアルゴリズムは、非線形代数方程式の求解に使用される反復手法です。

    一連の方程式F(Q) = 0を解くとします。また、初期推測値Q*が使用可能であるとします。

    Qを2つの座標セットQt、Qrに分割します。Qtは並進座標、Qrは回転座標です。

    QT = [QtT, QrT ]

    NORM(x)を、任意の配列xの無限ノルムを返す関数とします。言い換えると、xの成分の絶対値の最大値です。

    NORM(F(Q*)) < max_imbalanceの場合、Q = Q*が解となります。ただし、常にこのようになるとは限りません。NORM(F(Q*)) >> max_imbalanceであることのほうが、はるかに一般的です。

    ニュートン-ラプソン法は、方程式F(Q) = 0が満たされるよう、初期推測値Q*を改善する反復計算プロセスです。このアルゴリズムは次のように進められます:
    1. 反復カウンターj = 0. Set Qj = Q*を設定します。
    2. F(Qj)を評価します。
    3. NORM (F(Qj)) < max_imbalanceの場合、ステップ10にスキップします。
    4. ヤコビアンJ = [ MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfKttLearuWrVvhz5bYu09wD0bWexLMBbX gBcf2CPn2qVrwzqf2zLnharyavP1wzZbItLDhis9wBH5garyWqV52C VXwyZbqedmvETj2BSbqee0evGueE0jxyaibaieYlf9irVeeu0dXdh9 vqqj=hEeeu0xXdHaf9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea 0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqabiqadeabdqqaeeGabi qadeGabuqaaOqaaiabgkGi2caa@3D8B@ Fi/ MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfKttLearuWrVvhz5bYu09wD0bWexLMBbX gBcf2CPn2qVrwzqf2zLnharyavP1wzZbItLDhis9wBH5garyWqV52C VXwyZbqedmvETj2BSbqee0evGueE0jxyaibaieYlf9irVeeu0dXdh9 vqqj=hEeeu0xXdHaf9frFj0=OqFfea0dXdd9vqaq=JfrVkFHe9pgea 0dXdar=Jb9hs0dXdbPYxe9vr0=vr0=vqpWqabiqadeabdqqaeeGabi qadeGabuqaaOqaaiabgkGi2caa@3D8B@ Qj]を評価します。
    5. 線形方程式J*ΔQj = -F(Qj)を解くことにより、Δ Qj を計算します。
    6. Qj+1 = Qj + ΔQjを設定します。
    7. j = j + 1を設定します。
    8. j ≤ max_num_iterの場合、ステップ2に進みます。
    9. それ以外の場合、反復計算は1つの解に収束せず、終了となります。
    10. 反復計算が収束し、終了となります。
  4. 滑らかではない非線形システムの静的釣り合い位置を求めることは困難です。すべてのモデルに対してデフォルトのパラメータがうまく機能するわけではないことがわかるかもしれません。ここでは、“Force Imbalance Method”を使用した適切な静的解の求め方についてのヒントを示します。
    • システムが静的釣り合い位置に近いコンフィギュレーションで開始されるようにします。
    • 静的平衡反復計算のアニメーションを参照すると、アルゴリズムが何をしようとしているのかがわかります。アルゴリズムの挙動についての洞察を得るには、視覚的な調査が極めて重要です。
    • 最終解を得るためには、いくつかの静的反復計算を行うことが有益な場合もあります。以下に、どのようにすれば外部反復が機能するかを示します:


      図 1.
  5. できれば滑らかではない力を避けてください。ニュートン-ラプソンでは、方程式は滑らかな偏導関数を持つものと想定します。システムに作用する力が滑らかではない場合、ニュートン-ラプソンで解を得るのは困難になります。
  6. 多くのシステムには、中立平衡解があります。中立平衡の例としては、(a)テーブル上の球状のボール、(b)平坦な道路上に停止している自動車などがあります。stabilityの大きな値(stability = 0.01など)を使用して、このような問題を処理します。stabilityによって静的平衡解が変わることはないことに留意してください。
  7. 擬似静解析に使用される場合、FIM_Sは、静的シミュレーションのシーケンスを含みます。一方、FIM_Dの手法は、DAE積分器DASPKを使用して、擬似静的シミュレーションを実行します。したがって、FIM_Dは、Param_Static要素で指定されたパラメータに加え、Param_Transient要素で指定されたDSTIFFパラメータを使用して、積分プロセス(特に、誤差トレランスを設定するdae_constr_tol)を制御します。FIM_Dは常にI3 DAE定式化を使用します。
  8. FIM_Dは、擬似静解析の最初と最後でFIM_Sを使用します。FIM_Sは、積分器で障害が発生した場合にも使用されます。このため、FIM_Dの誤差トレランス設定は、最初と最後のステップを除き、Param_transient::dae_constr_tolとなり、最初と最後については、FIM_SParam_Staticの誤差トレランスを使用します。
  9. 擬似静的シミュレーションでは、通常FIM_DFIM_Sよりずっと高速です。