Parameters: Transient Solver

Command ElementParam_Transientは、時間領域に基づいた非線形動解析のシミュレーション制御パラメータを定義します。

説明

これらのパラメータは以下を制御します:
  • 積分器の選択。
  • 積分誤差トレランス(または解の精度)。
  • シミュレーション時の積分器のパフォーマンス。

動的シミュレーションは、自由度が1以上のシステムに対して実行されます。動的シミュレーションでは、すべての慣性の影響、すべての適用される力、および内部拘束が考慮されます。これによって、複雑な機構システムの正確なシステムレベルのシミュレーションが実行可能となります。

Param_Transientは、次の2つのカテゴリの方程式定式化をサポートしています:
  • 常微分方程式(ODE)形式の方程式。
  • 微分代数方程式(DAE)形式の方程式。

各定式化の設定は別々に記述されています。

フォーマット

ODE形式 DAE形式
<Param_Transient

[ integrator_type = "string" ]

[ integr_tol = "real" ]

[ h_max = "real" ]

[ h0_max = "real" ]

[ vel_tol_factor = "real" ]

[ max_order = "integer"]

[ rel_abs_tol_ratio = "real" ]

/>

<Param_Transient

[ integrator_type = "string" ]

[ integr_tol = "real" ]

[ h_max = "real" ]

[ h_min = "real" ]

[ h0_max = "real" ]

[ vel_tol_factor = "real" ]

[ max_order = "integer"]

[ dae_alg_tol_factor = "real" ]

[ dae_index = "integer"]

[ dae_constr_tol = "real" ]

[ dae_corrector_maxit = "real" ]

[ dae_corrector_minit = "real" ]

[ dae_vel_ctrl = "TRUE|FALSE"]

[ dae_jacob_eval = "integer"]

[ dae_eval_expiry = "integer"]

[ dae_jacob_init = "integer"]

[ dae_interpolation = "TRUE|FALSE"]

/>

属性(ODE)

integrator_type
ODE形式の運動方程式で使用される積分器を定義します。次のいずれかを選択します:
  • VSTIFF
  • MSTIFF
  • ABAM
integrator_typeのデフォルト値はVSTIFFです。これらの積分器の詳細については、後出のコメントをご参照ください。
integr_tol
積分器が変位、速度、微分方程式の状態を計算する際に許容されるステップあたりの最大絶対誤差を表します。微分方程式の状態には、<Control_Diff><Control_SISO><Control_StateEqn>のモデリングエンティティ内のものが含まれます。
変位と速度の単位は異なるため、これらには異なる誤差トレランスが適用されます。
  • 変位のトレランス = integr_tol
  • 速度のトレランス = vel_tol_factor*integr_tol
  • 微分方程式の状態のトレランス = integr_tol

integr_tolのデフォルト値は1.0E-3です。

vel_tol_factorは、別個に指定するスケールファクターです。

h_max
積分器で許容される最大ステップサイズを定義します。このパラメータを使用して、結果の精度を制御することもできます。一般に、時間ステップが小さいほど、結果の精度が高まります。非連続性があるモデルの場合(接触など)、h_maxに小さい値を指定する必要があります。
注: print_intervalh_maxより小さい場合、Simulateコマンドで積分器最大ステップサイズがprint_interval設定されることに注意してください。
h_maxのデフォルト値は0.01です。
h_min
積分器で許容される最小ステップサイズを定義します。
h_minのデフォルト値は1.0E-6です。
h0_max
最大初期ステップサイズ。h0_maxのデフォルト値は1.0E-8です。
vel_tol_factor
速度状態の誤差トレランスを得るため、integr_tolと掛け合わせる係数。
vel_tol_factorのデフォルト値は1000です。vel_tol_factorに適した値は、追跡するシステム内の最高周波数です。
rel_abs_tol_ratio
積分器の相対誤差トレランスを得るため、integr_tolと掛け合わせる係数。
デフォルトの値は0.01。
max_order
積分器で使用される最高次数を指定します。各積分器には、独自の最高次数が組み込まれています。次数が高いほど精度が高まりますが、数値的手法での安定性は低下します。ODE形式の方程式を扱うMotionSolve内の各種積分器の最高次数を以下に示します。
積分器
最高次数
ABAM
12
VSTIFF
05
MSTIFF
09

接触などの非連続イベントを含むモデルの場合、max_order = 2と設定することをお勧めします。

属性(DAE)

integrator_type
DAE形式の運動方程式で使用される積分器を定義します。現在は、DSTIFFという1つのDAE積分器のみがサポートされています。
この積分器の詳細については、後出のコメントセクションをご参照ください。
integr_tol
積分器が変位、速度、微分方程式の状態を計算する際に許容されるステップあたりの最大絶対誤差を表します。微分方程式の状態には、<Control_Diff><Control_SISO>、および<Control_StateEqn>のモデリングエンティティ内のものが含まれます。
変位と速度の単位は異なるため、これらには異なる誤差トレランスが適用されます。
  • 変位のトレランス = integr_tol
  • 速度のトレランス = vel_tol_factor*integr_tol
  • 微分方程式の状態のトレランス = integr_tol

integr_tolのデフォルト値は1.0E-3です。

vel_tol_factorは、別個に指定するスケールファクターです。

h_max
積分器で許容される最大ステップサイズを定義します。このパラメータを使用して、結果の精度を制御することもできます。一般に、時間ステップが小さいほど、結果の精度が高まります。非連続性があるモデルの場合(接触など)、h_maxに小さい値を指定する必要があります。
h_maxのデフォルト値は1.0です。
h_min
積分器で許容される最小ステップサイズを定義します。
h_minのデフォルト値は1.0E-6です。
h0_max
最大初期ステップサイズ。
dae_h0_maxのデフォルト値は1.0E-3です。
vel_tol_factor
速度状態の誤差トレランスを得るため、integr_tolと掛け合わせる係数。vel_tol_factorのデフォルト値は1000です。vel_tol_factorに適した値は、追跡するシステム内の最高周波数です。
max_order
積分器で使用される最高次数を指定します。次数が高いほど精度が高まりますが、数値的手法での安定性は低下します。DSTIFFのデフォルトの最高次数は5です。
接触などの非連続イベントを含むモデルの場合、max_order = 2と設定することをお勧めします。このように設定すると、通常は成功しない高い次数を積分器が試そうとすることが防止されます。
dae_alg_tol_factor
Lagrange乗数のような代数状態の誤差トレランスを得るため、integr_tolと掛け合わせる係数。
dae_alg_tol_factorのデフォルト値は1000です。
dae_index
DAE定式化のインデックス。
インデックス3は、位置の拘束が運動方程式に追加されることを示します。
インデックス1は、位置、速度、および加速度の拘束が追加されることを示します(安定化されたインデックス1)。
dae_indexのデフォルト値は3です。
dae_constr_tol
収束時に修正子が満たす必要のあるすべての代数拘束方程式のトレランス。
dae_constr_tolのデフォルト値は1.0E-5です。ジョイントまたはモーションの反力で多くの“ノイズ”が見られる場合にのみ、この値を小さくします。この属性の値が小さいほど、解析速度が低下します。
dae_corrector_maxit
収束を達成するために修正子が実行できる反復計算の最大回数。
dae_corrector_maxitのデフォルト値は4です。いかなる場合も、この値を8より大きい値にしないでください。特定の時間ステップで結果が収束しない場合は、積分器を失敗させて、より小さい時間ステップで解析を試行することをお勧めします。
dae_corrector_minit
修正子が実行する反復計算の最少回数。この回数に達すると、修正子の発散が生じていないかチェックされます。
dae_corrector_minitのデフォルト値は1です。いかなる場合も、この値を3より大きい値にしないでください。
dae_vel_ctrl
各ステップで局所積分誤差が生じていないかを確認するために速度状態をチェックするかどうかを制御する論理フラグ。これはSI1積分器のみに有効です(dae_indexをご参照ください)。
  • "TRUE"の場合、積分器は、各ステップの最後に実行される局所積分の有無のチェックに速度状態を含めます。
  • "FALSE"の場合、積分器は、各ステップの最後に実行される局所積分の有無のチェックに速度状態を含めません。
指定しない場合のデフォルト値は、SI1定式化の場合は“TRUE”、I3定式化の場合は“FALSE”です。定式化の詳細については、コメント4~6をご参照ください。
積分器
DAE_VEL_CTRL
I3定式化
"FALSE"
SI1定式化
TRUE

I3定式化は、速度誤差を追跡するように設計されていません。したがって、I3についてDAE_VEL_CTRLTRUEの場合でも、速度誤差は追跡されません。

dae_jacob_eval
この属性は、修正子の反復計算時にヤコビアンマトリクスの評価の頻度を制御します。
  • "0"を指定した場合は、積分器は収束速度を調べることで、新しいヤコビアンが必要なタイミングを自動的に特定します。
  • "1"を指定した場合は、反復計算ごとに新しいヤコビアンが計算されます。
  • "2"を指定した場合は、1つおきの反復計算で新しいヤコビアンが計算されます(例: 反復計算1-3-5など)。
  • "3"を指定した場合は、2つおきの反復計算(例: 反復計算1-4-7など)で新しいヤコビアンが計算されます。

デフォルト設定がうまく機能しない場合にのみ、dae_jacob_evalを指定してください。ヤコビアン反復計算の頻度が高いと、シミュレーション速度が大幅に低下する可能性があります。

指定しなかった場合、積分器は収束速度を調べることで、新しいヤコビアンが必要なタイミングを自動的に特定します。

dae_eval_expiry
この属性は省略可能です。積分ステップの数を指定します。この数の積分ステップの後は、dae_jacob_evalで定義された評価パターンが無視され、デフォルトの評価パターンが使用されます。修正子の収束速度を調べることで、新しいヤコビアンが必要になると、デフォルトの評価パターンが自動的に特定されます。

例えば、dae_eval_expiry = "10"と設定した場合、10個の積分ステップが正常に実行された後は、dae_jacob_evalで指定されたパターンが無視されます。

dae_eval_expiryのデフォルト値は0です。これは、シミュレーション全体にわたってdae_jacob_evalで指定されたパターンが使用されることを意味します。

このフラグは、システム内の初期の過渡現象に対処するためだけにdae_jacob_evalを適用したい場合に使用します。

dae_jacob_init
この属性は、修正子の反復計算時のヤコビアンマトリクスの評価を制御します。
  • "0"を指定した場合は、積分器は収束速度を調べることで、新しいヤコビアンが必要なタイミングを自動的に特定します。
  • "1"を指定した場合は、最初の反復計算で新しいヤコビアンが計算されます。
  • "2"を指定した場合は、2つ目の反復計算で新しいヤコビアンが計算されます。

デフォルト = 0

dae_interpolation
出力ステップでの結果に対して積分器が補間を使用するかどうかを指定します。
  • TRUEの場合、MotionSolveは、<Simulate>ブロックでの指定に従って、積分器がstart_timeからend_timeまでの状態を積分することを指定します。MotionSolveはその後、ユーザーによって要求された出力ポイントで結果を補間します。
  • FALSEの場合、MotionSolveは積分器に対してどのような制約も課しません。
    注: 積分器(DASPK)自体が補間を使用して、正確な出力ポイントにおける状態を必要に応じて取得できます。

デフォルト = TRUE