Integrator

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

クラス名

Integrator

説明

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

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

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

属性の概要

名前 プロパティ コマンドで変更可能か
type Enum ("GSTIFF DSTIFF HSTIFF MSTIFF VSTIFF ABAM", default="DSTIFF")
error Double (default=None)
hinit Double (default=None)
hmax Double (default=None)
hmin Double (default=None)
kmax Int (default=None)
interpolate Bool (False)
maxit Int (default=None)
pattern Pattern (default=None)
alpha Double ()  
beta Double ()  
gamma Double ()  
vel_tol_factor Double ()
minit    
dae_index  
dae_eval_expiry  
dae_constr_tol Double ()
dae_vc_error_ctrl Bool ()
dae_vc_tol_factor Double ()

使用法

# Integrator using "DSTIFF"
Integrator (type="DSTIFF", optional_attributes)

# Integrator using "VSTIFF", "MSTIFF" or "ABAM"
Integrator (type="VSTIFF", optional_attributes)
Integrator (type="MSTIFF", optional_attributes)
Integrator (type="ABAM",   optional_attributes)

属性

"DSTIFF"または"GSTIFF"を使用する積分器
type
文字列
使用する積分器を定義します。
"DSTIFF"を選択します。
hmin
倍精度
積分器が使用できる最小ステップサイズを定義します。
hmin属性は省略可能です。
指定しない場合、hminのデフォルト値は1.0E-6です。
interpolate
ブール
出力ステップでの結果に対して積分器が補間を使用するかどうかを指定します。
  • Trueは、ユーザーが要求した出力ポイントで、MotionSolveが(必要に応じて)結果を取得するために補間することを意味します。
  • Falseは、DASPK積分器が、ちょうどユーザーが要求した出力ポイントに進むように、MotionSolveによって強制されることを意味します。
interpolate属性は省略可能です。
指定しない場合は、interpolate = Trueになります。
maxit
整数
収束を達成するために修正子が実行できる反復計算の最大回数。
maxitのデフォルト値は4です。いかなる場合も、この値を8より大きい値にしないでください。特定の時間ステップで結果が収束しない場合は、積分器を失敗させて、より小さい時間ステップで解析を試行することをお勧めします。
vel_tol_factor
倍精度
速度状態の誤差トレランスを得るため、integr_tolと掛け合わせる係数。
vel_tol_factorのデフォルト値は1000です。vel_tol_factorに適した値は、追跡するシステム内の最高周波数です。
minit
整数
修正子が実行する反復計算の最少回数。この回数に達すると、修正子の発散が生じていないかチェックされます。
minitのデフォルト値は1です。いかなる場合も、この値を3より大きい値にしないでください。
dae_index
整数
DAE定式化のインデックス。
インデックス3は、位置の拘束が運動方程式に追加されることを示します。
インデックス1は、位置、速度、および加速度の拘束が追加されることを示します(安定化されたインデックス1)。
indexのデフォルト値は3です。
dae_eval_expiry
整数
この属性は省略可能です。積分ステップの数を指定します。この数の積分ステップの後は、dae_jacob_evalで定義された評価パターンが無視され、デフォルトの評価パターンが使用されます。修正子の収束速度を調べることで、新しいヤコビアンが必要になると、デフォルトの評価パターンが自動的に特定されます。
dae_constr_tol
倍精度
収束時に修正子が満たす必要のあるすべての代数拘束方程式のトレランス。
dae_constr_tolのデフォルト値は1.0E-5です。ジョイントまたはモーションの反力で多くの“ノイズ”が見られる場合にのみ、この値を小さくします。この属性の値が小さいほど、解析速度が低下します。
pattern
文字列
この属性は、修正子の反復計算時にヤコビアンマトリクスの評価の頻度を制御します。文字列の“K番目”のエントリは、“K番目”の反復計算に対してヤコビアンを評価するかどうかをMotionSolveに指示します。
  • "T"の値は、“K番目”の反復計算で新しいヤコビアンが計算されることを意味します。
  • "F"の値は、“K番目”の反復で新しいヤコビアンが計算されないことを意味します。
デフォルト設定がうまく機能しない場合にのみ、patternを指定してください。ヤコビアン反復計算の頻度が高いと、シミュレーション速度が大幅に低下する可能性があります。
指定しない場合、積分器は修正子の収束率を調べ、新しいヤコビアンが必要かどうかを自動的に判断します。
"VSTIFF"、"ABAM"、または"MSTIFF"を使用する積分器:
type
文字列
使用する積分器を定義します。
"VSTIFF"、"ABAM"、または"MSTIFF"を選択します。
オプション属性 - すべてのバリアントに使用できます。
error
倍精度
積分器が変位、速度、微分方程式の状態を計算する際に許容されるステップあたりの最大絶対誤差を表します。微分方程式の状態には、DIFFTFSISO、およびGSEのモデリングエンティティ内のものが含まれます。変位と速度の単位は異なるため、これらには異なる誤差トレランスが適用されます。
error属性は省略可能です。
指定しない場合、errorのデフォルト値は1.0E-3です。
hmax
倍精度
積分器で許容される最大ステップサイズを定義します。このパラメータを使用して、結果の精度を制御することもできます。一般に、時間ステップが小さいほど、結果の精度が高まります。非連続性があるモデルの場合(接触など)、hmaxに小さい値を指定する必要があります。
hmax属性は省略可能です。
指定しない場合、hmaxのデフォルト値は0.01です。
hinit
倍精度
最大初期ステップサイズを指定します。
hinit属性は省略可能です。
指定しない場合、hinitのデフォルト値は1.0E-8です。
kmax
整数
積分器で使用される最高次数を指定します。次数が高いほど精度が高まりますが、数値的手法での安定性は低下します。
接触などの非連続イベントを含むモデルの場合、kmax = 2と設定することをお勧めします。このように設定すると、通常は成功しない高い次数を積分器が試そうとすることが防止されます。
kmax属性は省略可能です。
下の表は、各積分器の最大次数を示しています。
積分器
KMAX
DSTIFF
5
VSTIFF
5
ABAM
12
MSTIFF
9
指定しない場合は、kmaxに積分器が取り得る最大値が設定されます。
注: kmax ≥ 1

この例は、DSTIFF手法を使用するIntegrator要素のデフォルト設定を示しています。
DSTIFF = Integrator (type="DSTIFF", error=0.001, hinit=
1e-008, hmax=0.01, hmin=1e-006, kmax=5)

コメント

  1. プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
  2. Integratorの詳細については、Param: Transientをご参照ください。