SimulationResults

Results ElementSimulationResultsは、シミュレーションの結果を含むコンテナーオブジェクトです。1つのシミュレーションに多数の出力時間ステップを含めることができます。

クラス名

SimulationResults

説明

出力時間ごとに、次の情報が格納されます:
  • すべてのボディの結果
  • すべての要求の結果
  • すべてのRVの結果
SimulationResultsの構造を以下に示します。


図 1.

結果データの生成は、returnResults=Trueを指定してmodel.simulate()メソッドが呼び出されたときに、このメソッドにより自動的に行われます。

使用法

#
# Generate a SimulationResults object
#

run = model.simulate (type="DYNAMICS", end=None, dtout=None, duration=None, steps=None, dsa="", start=None, onOutputStep=None, returnResults=True)
#
# Query simulationResults object for element specific data
#

BodyResult = run.getObject (a_specific_body)
ReqResult  = run.getObject (a_specific_request)
RVResult   = run.getObject (a_specific_rv)

#
# Extract time history of desired signal from element specific data
#

signal     = BodyResult.getComponent ("body_attribute")
signal     = ReqResult.getObject     ("request_attribute")
signal     = RVResult.getObject      ("rv_attribute")

#
# Extract desired signal information for a specific step
#
data       = BodyResult.getStep     (step=timeStep)
data       = ReqResult.getStep      (step=timeStep)
data       = RVResult.getStep       (step=timeStep)

属性

run
SimulationResultsオブジェクト。
simulateメソッドによって生成されます。
run=model.simulate (type="DYNAMICS", end=None, dtout=None, duration=None, steps=None, dsa="", start=None, onOutputStep=None, returnResults=False)

シミュレーションが完了すると、simulateメソッドがSimulationResultsオブジェクトでシミュレーションの全時刻歴を返します。このオブジェクトは、BodyResultsRequestResults、およびRVResultsのすべてを保持するコンテナーです。これらの結果は、returnResults=Trueの場合にのみ生成されます。

getObject
SimulationResultsオブジェクト上のメソッド。
BodyResult = run.getObject (a_specific_body)
ReqResult  = run.getObject (a_specific_request)
RVResult   = run.getObject (a_specific_rv)
このメソッドは、SimulationResultsオブジェクトに問い合わせ、特定のBody(BodyResult)、特定のRequest(RequestResult)、または特定のRV(RVResult)の結果を返します。

getObjectは、シミュレーションで、returnResults=Trueの場合にのみ呼び出す必要があります。

getComponent
BodyResultReqResult、およびRVResultオブジェクト上のメソッド。
signal = BodyResult.getComponent ("body_attribute")
signal = ReqResult.getObject     ("request_attribute")
signal = RVResult.getObject      ("rv_attribute")
このメソッドは、BodyResultReqResult、またはRVResultオブジェクトに問い合わせ、そのオブジェクトの特定の属性の時刻歴を返します。結果のタイプごとの属性の完全なリストについては、BodyResultRequestResult、およびRVResultをご参照ください。
getComponentは、シミュレーションで、returnResults=Trueの場合にのみ呼び出す必要があります。
getStep
BodyResultReqResult、またはRVResultオブジェクト上のメソッド。
data = BodyResult.getStep (step=timeStep)
data = ReqResult.getStep  (step=timeStep)
data = RVResult.getStep   (step=timeStep)
このメソッドは、BodyResultReqResult、またはRVResultオブジェクトに問い合わせ、特定の時間ステップにおけるそのすべてのデータを返します。結果のタイプごとの属性の完全なリストについては、BodyResultReqResult、またはRVResultをご参照ください。

getStepは、シミュレーションで、returnResults=Trueの場合にのみ呼び出す必要があります。

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

モデルMを作成してから、以下を実行します:
  • 0~2秒の間に200出力ステップの動的シミュレーションを実行します。
  • 力要求オブジェクトforceRequest1のFZ成分の時刻歴を抽出します。
  • MatplotlibでFZ時刻歴をプロットします。
# 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.forceRequest1)

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

# Plot the signal
import matplotlib.pyplot as plt
plotTitle = forceRequest1.label + " vs. Time"
plt.plot (times, FZ)
plt.title (plotTitle)
plt.xlabel("Time")
plt.ylabel ("force [N]")
plt.grid (True)
plt.show()

コメント

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