Model/Simulate

使用法

simulate (type="DYNAMICS", start=0.0, end=None, duration=None, 
dtout=None, steps=None, dsa="", start=None, print_increment=None, constraint_tol=None, 
implicit_diff_tol=None, onOutputStep =None, returnResults=False, output="on", active_contact_iteration="False")

属性

type
文字列
実行する解析のタイプを定義します。以下のいずれかを選択する必要があります:
  • "Static"
  • "Dynamics"
  • "Linear"
  • "Assembly"
typeは省略可能です。指定しない場合、typeは"DYNAMICS"になります。
start
倍精度
シミュレーションの開始時刻の値を定義します。
この属性は省略可能です。指定しない場合、startはデフォルトで0.0になります。
end
シミュレーションの終了時刻を定義します。
durationendは相互排他的です。必ず一方のみを指定する必要があります。
0 ≤ start < end
duration
倍精度
解析の期間を指定します。つまり、次のようになります: end = start + duration
durationendは相互排他的です。必ず一方のみを指定する必要があります。
duration > 0
dtout
倍精度
プロットとアニメーション出力のための連続する出力ステップの時間間隔を定義します。
dtoutは省略可能です。指定しない場合、デフォルトで0.01になります。
指定する場合は、dtout > 0です。
dtoutHMAXより小さい場合は、最大の積分器ステップサイズ(HMAX)がdtoutに設定されることに注意してください。
steps
整数
startendの間の出力ステップの数を定義します。
stepsdtoutは相互排他的です。必ず一方のみを指定する必要があります。
指定する場合は、steps > 0です。
dtoutは(end-start)/stepsとして求められます。
dtoutHMAXより小さい場合は、最大の積分器ステップサイズ(HMAX)がdtoutに設定されることに注意してください。
dsa
文字列
解析と組み合わせて実行する設計感度解析のタイプを定義します。指定する場合は、次のいずれかを選択する必要があります:
  • "Auto":MotionSolveは、設計感度を計算するために使用する最適なアルゴリズムを決定します。
  • "Adjoint":MotionSolveは、設計感度を計算するために随伴手法を使用します。この手法は、設計変数が多く、応答が少ない場合にお勧めします。
  • "Direct":MotionSolveは、設計感度を計算するために直接微分法を使用します。この手法は、設計変数が少なく、応答が多い場合にお勧めします。
dsaは省略可能です。指定しない場合、設計感度解析は実行されません。設計感度解析は計算コストがかかる可能性があります。そのため、dsaは必要な場合にのみ指定する必要があります。
start
倍精度
現時点ではサポートされていません。
print_increment
倍精度
積分器が実行しているステップについての出力の頻度を指定します。関数が以下の場合に出力されます:
mod (integration_step_number, print_increment) = 0.
print_incrementは省略可能です。
  • 指定する場合は、print_increment > 0です。
  • print_increment = 1の場合は、積分ステップごとに出力が生成されます
  • print_increment = nの場合は、n番目の積分ステップごとに出力が生成されます
constraint_tol
倍精度
シミュレーションがモデル内の拘束(Joint、Jprim、Motionなど)を満たすために必要な精度を指定します。
constraint_tolは省略可能です。
  • 指定する場合は、constraint_tol > 0です。
  • 指定しない場合は、constraint_tol = 1.0e-4になります。

    constraint_tolを使用する場合は、注意が必要です。

  • 値が小さすぎると、シミュレーション時間が大幅に長くなる可能性があります。シミュレーションが、指定された値を満たすことができずに失敗する可能性もあります。
  • 値が大きすぎると、結果はノイズが多く不正確になります。
  • デフォルト値を変更するのは、デフォルト値では結果にノイズが多くなることがわかっている場合のみにしてください。2~5の間で連続的に係数を減らし、変更の影響を確認しながら、最終的な値を決定します。100のような大きな単位で係数を減らさないでください。
implicit_diff_tol
倍精度
モデル内の陰的微分方程式に必要な精度を指定します。これらは、implicit = Trueに設定されたモデル内のDIFFです。
引数implicit_diff_tolは省略可能です。指定しない場合は、implicit_diff_tol = 1.0E-5になります。
onOutputstep
Python関数
これは、ソルバーが出力ステップに達したときに呼び出されるコールバック関数です。アニメーションやライブプロットなどに使用できます。
returnResults
ブーリアン
returnResultsは、Trueの場合に、simulateコマンドが結果で満たされたデータ構造を返すブール値です。
active_contact_iteration
ブーリアン
接触残差が陰解法ソルバーの修正子ステップ中に更新されるかどうかと解析的ヤコビアんが入力されるかどうかを指定します。Trueの値は、残差が更新されることを意味します。
属性active_contact_iterationは省略可能です。デフォルト値はFalseです。

# Create a model
m = CreateStewartPlatform (output="Stewart-Platform")

# Do a static analysis first
m.simulate (type="Statics", returnResults=True)

# Then do a dynamic analysis
run=m.simulate (type="DYNAMICS", end=1.77, dtout=0.01, returnResults=True)

returnResultsをTrueに定義すると、実行オブジェクトにシミュレーションからの出力データが入力されます。デフォルトでは、ボディ変換、要求および応答変数が、実行オブジェクトに入力される出力を生成します。