入力パラメータ
名前 | 型 | 意味 |
RUN | ブール | モード。TRUEなら通常動作、FALSEならリセット。 |
XIN | 実数 | 入力。微分する実数値。 |
CYCLE | タイマ | サンプリング周期。 |
XOUT | 実数 | 微分出力。 |
詳細
実数値を微分します。
アルゴリズム
IF (NOT DER_INIT_DONE) THEN /* 初期化時のみ */
DER_X2 = XIN; DER_X3 = XIN; DER_INIT_DONE = 1; IF (RUN) THEN
IF ((delay) AND (delay > CYCLE)) THEN XOUT = (3.0 * (XIN - DER_X3) + DER_X1 - DER_X2) / (TIME_TO_REAL)delay; DER_X3 = DER_X2; DER_X2 = DER_X1; DER_X1 = XIN; END_IF; |
下記はこのファンクションブロックのローカル変数です。
名前 | 型 |
DER_INIT_DONE | ブール |
DER_X1 | 実数 |
DER_X2 | 実数 |
DER_X3 | 実数 |
注意
XOUTの値は下図のように変化します。
これは、下記のように解釈することができます。出力パラメータの演算式は、
XOUT = (3.0 * (XIN - DER_X3) + DER_X1 - DER_X2) / (TIME_TO_REAL)delay; |
この式を次のように置き換えます。
3*(3*DeltaX) + DeltaX / cycleTime さらに → 10* DeltaX / cycleTime |
つまり、出力 XOUT の値は実際の変化率の10倍の値になります(単位は1ms/10)。