Model ElementMinValは、シミュレーション中にMotionSolve式またはユーザーサブルーチンのおおよその最小値を計算します。
説明
最小値は、解析感度を計算できるようにalpha-soft関数によって近似されます。
(1)
ここで、
は負の定数で、
を満たします。
のデフォルトは10で、ほとんどのユースケースに使用できます。
属性の概要
名前 |
プロパティ |
コマンドで変更可能か |
設計可能か |
label |
Str () |
|
|
function |
Function () |
|
○ |
routine |
Routine () |
|
|
plot |
Bool () |
|
|
wlen |
Int () |
|
|
k |
Int () |
|
|
使用法
#1: MinVal specified as an expression
MinVal (function=expressionString)
#2: Defined in a compiled user-subroutine
MinVal (function=userString, routine=string, optional_attributes)
#3: Defined in a Python function
MinVal (function=userString, routine=functionPointer, optional_attributes)
属性
式の最小値として定義
- function
- 文字列
- MinValを必要とする関数を定義するMotionSolveの式。
- function属性は必須です。
コンパイルされたDLL内のユーザーサブルーチンとして定義
- function
- 有効なユーザー関数MotionSolve式を定義する文字列。
- データファイルから、MinValが定義されるユーザー定義のサブルーチンに渡されるパラメータのリスト。
- function属性は必須です。
- routine
- ユーザーサブルーチンの代替名を指定します。この名前は、“∷”で区切られた情報の2つの部分で構成されます。1つ目は、ユーザー定義のVariableの応答を計算する関数を含む共有ライブラリへのパス名です。2つ目は、計算を実行する共有ライブラリ内の関数の名前です。
- 例: routine="/staff/Altair/engine.dll∷myMinVal"
- "/staff/Altair/engine.dllはDLLです。
- "myMinVal"は、計算を実行するこのDLL内の関数です。
- 属性routineは省略可能です。
- 指定しない場合、routineはデフォルトでVARSUBになります。
Pythonスクリプト内のユーザーサブルーチンとして定義
- function
- 有効なユーザー関数MotionSolve式を定義する文字列
- データファイルから、Variableが定義されるユーザー定義のサブルーチンに渡されるパラメータのリスト。
- function属性は必須です。
- routine
- Python内の呼び出し可能な関数へのポインタ。
- 例:routine = myMinVal
- myMinValは、モデルが存在する場所ならどこからでも呼び出すことが可能なPython関数またはメソッドです。
- 属性routineは省略可能です。
指定しない場合、routineはデフォルトでVARSUBになります。
オプション属性
- label
- 文字列
- MinValオブジェクトの名前を指定します。
- この属性は省略可能です。指定しない場合は、MotionSolveが代わりにラベルを作成します。
- coef
- 倍精度
- soft-alpha関数内の係数を指定します。デフォルト値は1.0で、ほとんどのユースケースに使用できます。
- wlen
- 整数
- 平滑化関数の窓長。この値を増やすことにより、応答に高周波雑音が含まれている場合の最小値を平滑化できます。
- k
- 整数
- 平滑化関数の次数。デフォルト値は1です。平滑化により真の最小値が失われる場合は、この値を増やすことができます。
例
# Compute the minimum of the absolute value of the z-acceleration of a Marker
zacc = "ABS(ACCZ({},{}))".format(self.block.cm.id,self.ref.id)
zmax = MinVal (function=zacc)
コメント
- プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
- 応答値はHyperGraph内の曲線と比較することで検証できます。高周波数信号では、MotionSolveから返される値がHyperGraphと一致しない場合があります。これは、MotionSolve内の最小値は各積分ステップで計算されますが、HyperGraphは出力ステップでのみ計算するためです。通常、出力ステップは積分ステップより大きいため、一致しません。この差は、MotionSolve内の出力ステップを減らすことで排除できます。