Parameters: Transient Solver
Command ElementParam_Transientは、時間領域に基づいた非線形動解析のシミュレーション制御パラメータを定義します。
説明
- 積分器の選択。
- 積分誤差トレランス(または解の精度)。
- シミュレーション時の積分器のパフォーマンス。
動的シミュレーションは、自由度が1以上のシステムに対して実行されます。動的シミュレーションでは、すべての慣性の影響、すべての適用される力、および内部拘束が考慮されます。これによって、複雑な機構システムの正確なシステムレベルのシミュレーションが実行可能となります。
- 常微分方程式(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
- integr_tol
- 積分器が変位、速度、微分方程式の状態を計算する際に許容されるステップあたりの最大絶対誤差を表します。微分方程式の状態には、<Control_Diff>、<Control_SISO>、<Control_StateEqn>のモデリングエンティティ内のものが含まれます。
- h_max
- 積分器で許容される最大ステップサイズを定義します。このパラメータを使用して、結果の精度を制御することもできます。一般に、時間ステップが小さいほど、結果の精度が高まります。非連続性があるモデルの場合(接触など)、h_maxに小さい値を指定する必要があります。
- h_min
- 積分器で許容される最小ステップサイズを定義します。
- h0_max
- 最大初期ステップサイズ。h0_maxのデフォルト値は1.0E-8です。
- vel_tol_factor
- 速度状態の誤差トレランスを得るため、integr_tolと掛け合わせる係数。
- rel_abs_tol_ratio
- 積分器の相対誤差トレランスを得るため、integr_tolと掛け合わせる係数。
- max_order
- 積分器で使用される最高次数を指定します。各積分器には、独自の最高次数が組み込まれています。次数が高いほど精度が高まりますが、数値的手法での安定性は低下します。ODE形式の方程式を扱うMotionSolve内の各種積分器の最高次数を以下に示します。
- 積分器
- 最高次数
- ABAM
- 12
- VSTIFF
- 05
- MSTIFF
- 09
属性(DAE)
- integrator_type
- DAE形式の運動方程式で使用される積分器を定義します。現在は、DSTIFFという1つのDAE積分器のみがサポートされています。
- integr_tol
- 積分器が変位、速度、微分方程式の状態を計算する際に許容されるステップあたりの最大絶対誤差を表します。微分方程式の状態には、<Control_Diff>、<Control_SISO>、および<Control_StateEqn>のモデリングエンティティ内のものが含まれます。
- h_max
- 積分器で許容される最大ステップサイズを定義します。このパラメータを使用して、結果の精度を制御することもできます。一般に、時間ステップが小さいほど、結果の精度が高まります。非連続性があるモデルの場合(接触など)、h_maxに小さい値を指定する必要があります。
- h_min
- 積分器で許容される最小ステップサイズを定義します。
- h0_max
- 最大初期ステップサイズ。
- vel_tol_factor
- 速度状態の誤差トレランスを得るため、integr_tolと掛け合わせる係数。vel_tol_factorのデフォルト値は1000です。vel_tol_factorに適した値は、追跡するシステム内の最高周波数です。
- max_order
- 積分器で使用される最高次数を指定します。次数が高いほど精度が高まりますが、数値的手法での安定性は低下します。DSTIFFのデフォルトの最高次数は5です。
- dae_alg_tol_factor
- Lagrange乗数のような代数状態の誤差トレランスを得るため、integr_tolと掛け合わせる係数。
- dae_index
- DAE定式化のインデックス。
- dae_constr_tol
- 収束時に修正子が満たす必要のあるすべての代数拘束方程式のトレランス。
- dae_corrector_maxit
- 収束を達成するために修正子が実行できる反復計算の最大回数。
- dae_corrector_minit
- 修正子が実行する反復計算の最少回数。この回数に達すると、修正子の発散が生じていないかチェックされます。
- 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_CTRLがTRUEの場合でも、速度誤差は追跡されません。
- 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