Diff
Model ElementDiffは、MotionSolveで単一のユーザー定義の1次微分方程式を定義します。
クラス名
Diff
説明
- MotionSolve式で定義されたシステムの状態と時間の陽関数または陰関数
- コンパイルされたDLLで定義されたシステムの状態と時間の陽関数または陰関数
- ユーザー定義のスクリプトで定義されたシステムの状態と時間の陽関数または陰関数
属性の概要
名前 | プロパティ | コマンドで変更可能か | 設計可能か |
---|---|---|---|
id | Int () | ||
label | String () | ○ | |
ic | Double ([], count=0) | ○ | FDのみ |
static_hold | Bool () | ||
implicit | Bool () | ||
function | Function () | ○ | |
routine | Routine () | ||
active | Bool () | ○ | |
script | Script () |
使用法
# Defined in a MotionSolve expression
Diff (function=expressionString, optional_attributes)
# Defined in a compiled user-subroutine
Diff (function=userString, routine=string optional_attributes)
# Defined in a Python function
Diff (function=userString, routine=functionPointer optional_attributes)
属性
- function
- 文字列
- function
- 有効なユーザー関数MotionSolve式を定義する文字列
- routine
- 文字列
- function
- 有効なユーザー関数MotionSolve式を定義する文字列
- routine
- Python内の呼び出し可能な関数へのポインタ
- id
- 整数
- label
- 文字列
- ic
- 倍精度値または2つの倍精度値のリスト
- static hold
- ブール
- implicit
- ブール
- active
- ブール
例
- 式を使用した陽的な微分方程式としてのスプリング質量システムの記述。
d1 = Diff (id=1, label="vdot=(Cv–Kx)/m", function="-200*DIF(1)-2E4*DIF(2)", ic=0.0) d2 = Diff (id=2, label="xdot=v", function="DIF(1)", ic=0.2)
- 前述のスプリング質量システムの、ユーザーサブルーチンでの記述。
def springMassDamper (id, time, par, npar, dflag, iflag) v = DIF(1) x = DIF(2) if iflag: return0.0 if id == 1: M = par[0] C = par[1] K = par[2] return (-C*v-K*x)/M else: returnv ################################################################################ # Model definition # ################################################################################ # Force balance equation d1 = Diff (id=1,function="user(0.5, 1E2, 1E4)", ic=0,label="vdot=(-Cv–Kx)/m", routine = springMassDamper) # Differential equation for displacement equation d2 = Diff (id=2,function="user(0)", ic=0.2, label="xdot=v", routine= springMassDamper)
コメント
- プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
- Diffの詳細については、Control: Diffをご参照ください。