BodyResult

Results ElementBodyResultは、シミュレーションからの単一のボディに関連付けられたすべての結果を含むオブジェクトです。

クラス名

BodyResult

説明

出力時間ごとに、次の結果が格納されます:
エンティティ 成分名
剛体 (0~6):X、Y、Z、E0、E1、E2、E3
Point Mass (0~2):X, Y, Z
Flex_Body (0~6):X、Y、Z、E0、E1、E2、E3

(7~12):X_dot、Y_dot、Z_dot、ωx、ωy、ωz

(13~18):X_dotdot、Y_dotdot、Z_dotdot、ωx_dot、ωy_dot、ωz_dot

(19~18+Nmodes):モード寄与係数

(19+Nmodes):ひずみエネルギー

returnResults=Trueを指定してmodel.simulate()メソッドを呼び出すと、以下の事象が自動的に発生します。
  • T=0で、モデル内のボディ(Rigid、PointMass、およびFlex_Body)ごとに
    • BodyResultsオブジェクトが作成される
    • オブジェクトがSimulationResultsコンテナーオブジェクトに格納される
  • 出力時間(T=0を含む)ごとに:
    • モデル内のボディ(Rigid、PointMass、およびFlex_Body)ごとに
      • ボディの結果がBodyResultsオブジェクトに付加される
  • その結果、シミュレーションの最後に、SimulationResultsオブジェクトが完全に“生成される”

使用法

SimulationResultをご参照ください。

BodyResultを使用して、MotionSolveの結果からプロットを作成する方法を示します。

モデルMが与えられているとします。
  • 0~2秒の間に200出力ステップの動的シミュレーションを実行します。
  • Body1の変位の並進X成分の時刻歴を抽出します。
  • matplotlib内のX時刻歴をプロットします。
# Perform a simulation
run = M.simulate(type="DYNAMICS", end=2, steps=200, returnResults=True)

# Get the force request data from the run object
req = run.getObject (model.body1)

# Extract the time and X signals
times = req.getComponent ("times")
FZ = req.getComponent ("X")

# Plot the signal
import matplotlib.pyplot as plt
plt.plot (times, FZ)
plt.title ("Body1-X vs. Time")
plt.xlabel("Time")
plt.ylabel ("Displacement [m]")
plt.grid (True)
plt.show()

コメント

  1. プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
  2. SimulationResultsを問い合わせて、そのさまざまな成分の時刻歴にアクセスすることができます。上記例をご参照ください。