ANALYS

Utility/Data Access SubroutineANALYSは、特定のタイプの解析を実行可能なユーティリティサブルーチンです。

定義

解析タイプは引数として指定します。ANALYSを呼び出すことができるのは、CONSUBのみです。他のユーザー作成サブルーチンから呼び出すとエラーになります。

フォーマット

Fortranの呼出し構文
ALL ANALYS (ANALYSIS, NAME, TBEGIN, TEND, IFLAG, ISTAT)
C/C++の呼出し構文
c_analys (char* analysis, char* name, double* tbegin, double* tend, int* iflag, int* istat);
Pythonの呼出し構文
istat = py_analys (analysis, name, tbegin, tend, iflag)
MATLABの呼出し構文
istat = m_analys (analysis, name, tbegin, tend, iflag)

引数

analysis
文字配列
実行される解析のタイプを指定します。有効なオプション:
  • DYNAMICS - 動的シミュレーションを実行します。
  • STATICS - 静的または擬似静的シミュレーションを実行します。
  • KINEMATICS - 運動学シミュレーションを実行します。
  • TRANSIENT - システム内の自由度の数に基づいてDYNAMICまたはKINEMATICのいずれかのシミュレーションを実行します。
  • ASSEMBLY - アセンブリ解析を実行します。
analysisの他の値はエラーになります。
name
文字配列
解析の簡単な説明。この文字列は、特定の出力ファイルが生成される、要求された解析に関連付けられます。
tbegin
倍精度
シミュレーションの開始時刻を指定します。CONSUBで複数の解析が実行されている場合は、ANALYSが呼び出されたときに、tbeginをシミュレーション時間に設定する必要があります。
tend
倍精度
シミュレーションの終了時刻を指定します。
tend > tbegin。そうでない場合、MotionSolveはエラーを発行します。
init
整数
この属性は、MotionSolveでは無視されます。互換性のためだけに関数シグネチャに存在します。

出力

istat
整数
ANALYSの呼び出しのステータスを返すフラグ。istatは次の値を取ります:
0
成功
-1
失敗:analysisに無効な値が入力されました。
-9
失敗:tbeginが現在のシミュレーション時間と同じではありません。
-10
失敗: tbegin > tend

def consub (par, npar):

    #Purpose of the CONSUB
    #This CONSUB performs 2 simulations:
    #   1. gravity = 1g     (surface of Earth)
    #   2. gravity = 0.38g  (surface of Mars)


    # Behavior on Earth
    istat = py_datout()
    status = py_analys ("TRANSIENT", "Simulation on Earth", 0.0, 1.0, 1)


    # Behavior on Mars
    command = "ACCGRAV/IGRAV=0, JGRAV=0, KGRAV=-3.72742"
    istat = py_modify (command)
    istat = py_datout()
    status = py_analys ("TRANSIENT", "Simulation on Mars", 1.0, 2.0, 1)


    return status

コメント

  1. ANALYSは、CONSUBからシミュレーションを呼び出せるようにします。モデルを変更し、システム応答を確認できる他の関数と組み合わせると、この関数は高度な解析関数を作成できる極めて強力な機能になります。
  2. 解析を実行するために、MotionSolveは、まず、方程式を定式化し、運動方程式の求解に必要なマトリクスやその他のデータを生成する必要があります。そのため、CONSUB内のANALYSの最初の呼び出しでは、必ず、IFLAG=1にする必要があります。
  3. シミュレーション時間を0に戻したい場合は、MODIFYまたはMODSETを呼び出して行う必要があります。そうすれば、TBEGIN=0を指定してANALYSを再度呼び出すことができます。
  4. ANALYSが呼び出された場合、MotionSolveは自動的に出力を生成しません。ANALYSを呼び出す前にDATOUTを呼び出すことにより、出力を要求する必要があります。