カスタム演算

演算

MDA V7

MDA V8への変換結果

説明

Average

Average (signal)

Accumulate_Prefix_Average (signal)

測定開始からの平均値を求めます。

AND

BinaryAND (signal, mask)

測定シグナルの場合:Raw(signal) & mask

値の場合:notsignal & mask

測定シグナルはすべてRaw関数でラップされます。

時間範囲:測定開始から

OR

BinaryOR (signal, mask)

測定シグナルの場合:Raw(signal) | mask

値の場合:notsignal | mask

測定シグナルはすべてRaw関数でラップされます。

時間範囲:測定開始から

XOR

BinaryXOR (signal, mask)

測定シグナルの場合:Raw(signal) ^ mask

値の場合:notsignal ^ mask

測定シグナルはすべてRaw関数でラップされます。

時間範囲:測定開始から

Const

Const (value)

value

定数値を指定します。MDA V7では、固定時間ラスタしか選択できません。

時間範囲:測定開始から

CountTimeLevel

CountTimeLevel (time, signal, value)

Accumulate_Prefix_Integral ((input = level) ? 1 : 0)

時間範囲:測定開始から

シグナル値が所定のレベルに到達した回数をカウントします。

CountTimeLevelToTolerance

CountTimeLevel ToTolerance (time, signal, min, max)

Accumulate_Prefix_Integral ((min <= signal) && (signal <= max) ? 1 : 0)

時間範囲:測定開始から

シグナル値がmin, maxで指定された範囲内であった時間を合計します。

Debounce

Debounce (time, signal, risingDelay, fallingDelay)

Debounce (signal, risingDelay, fallingDelay)

シグナル値のデバウンスを計算してノイズ除去を行います。

時間範囲:入力シグナルのエッジから

測定開始からの入力シグナル値が0以外である場合、MDA V8のデバウンス処理はエッジを生成しないため、演算結果が異なる場合があります。これは、MDA V8が測定開始前の未定義のサンプルの値を、最初に得られたサンプル値と同じであると判断するためです。MDA V8では測定開始時のエッジはカウントされず、前回値は NoValue として初期化されます。

Delta

Delta (signal, count)

signal - State_Delay (signal, NoValue(0), count)

以下の式で、現在のサンプルと過去のサンプルとの値の差を求めます。signal(k) - signal(k - count)

時間範囲:countで指定された過去のサンプルから現在のサンプルまで

列挙型シグナル(VTABシグナル)はサポートされていません。

DeltaT

DeltaT (time, signal)

Delta (master()) + 0*Raw (signal)

0*signal は、入力シグナルのラスタを適用するために使用されます。

以下の式で、現在のサンプルとその直前のサンプルとの時刻の差を求めます。

time(k) - time(k-1)

V8.8は、最初の値は NoValueであると判断します。

Gradient

Gradient (time, signal, count)

(signal - State_Delay (signal, NoValue(0), count)) / (Master() - State_Delay (Master(), 0, count))

現在までの count個のサンプルの一次導関数です。

時間範囲:countで指定された過去のサンプルから現在のサンプルまで

列挙型シグナル(VTABシグナル)はサポートされていません。

Integral

Integral (time, signal)

Accumulate_Prefix_Integral (signal)

測定開始からのシグナル値の積分を求めます。

LevelReachedCount

LevelReachedCount (signal,level)

Accumulate_Prefix_Sum ((State_Register (signal != level, !0) && (signal = level)) ? 1 : 0)

シグナル値が所定のレベルに到達した回数をカウントします。

時間範囲:測定開始から

LowPassFilter_ASCET_lib

LowPassFilter (time, signal, filterTime, startInput)

Filter_LowPass1 (signal, 1 / (2*PI*filterTime))

時間範囲:測定開始から

Maximum

Maximum (signal)

Accumulate_Prefix_Maximum (signal)

測定開始からのシグナルの最大値を求めます。

MaximumOf2Inputs

MaximumOf2Inputs (signal1, signal2)

Relation_Maximum (signal1, signal2)

測定開始からの2つのシグナルの最大値を求めます。

時間範囲:測定開始から

MaxReset

MaxReset (input_signal, reset_signal)

Accumulate_Reset_Maximum (signal, reset > State_Register (reset, 0))

input_signalの最大値を求めます。最大値はreset_signalの正エッジごとにリセットされます。

時間範囲:測定開始から、またはreset_signalの最後の正エッジから

Minimum

Minimum (signal)

Accumulate_Prefix_Minimum (signal)

測定開始からのシグナルの最小値を求めます。

MinimumOf2signals

MinimumOf2Signals (signal1,signal2)

Relation_Minimum (signal1, signal2)

測定開始からの2つのシグナルの最小値を求めます。

MinReset

MinReset(input_signal, reset_signal)

Accumulate_Reset_Minimum (signal, reset > State_Register(reset, 0))

input_signalの最小値を求めます。最小値はreset_signalの正エッジごとにリセットされます。

時間範囲:測定開始から、またはreset_signalの最後の正エッジから

PhaseShift

PhaseShift (signal, 0, count)

Delay (signal, 0, count)

以下の式で、現在より指定のカウントだけ前(過去)のシグナル値を求めます。signal(k-count)

時間範囲:countで指定された過去のサンプルから現在のサンプルまで

定義されていない値があると、MDA V8は n/a を返します。

Pulse11

Pulse11 (time, signal, duration)

Debounce (time, signal, 0, duration)

時間範囲:durationで指定

指定された長さ(duration)のパルスを検出します。

MDA V8は、開始前の未定義サンプルの値を、最初に得られたサンプル値と同じであると判断します。

RollingAverage

RollingAverage (signal, count)

Accumulate_Samples_Average (signal, count)

指定数(count)のシグナル値の平均値を求めます。

時間範囲:countで指定された過去のサンプルから現在のサンプルまで

RSFlipFlop

RSFlipFlop (set_input, reset_input)

State_RSFlipFlop (set_input, reset_input)

時間範囲:測定開始から

正論理のRSフリップフロップです。

2つの引数は同じ測定レートである必要があります。

SampleCounter

SampleCounter (signal)

Count (signal)

時間範囲:測定開始から

サンプル数をカウントします。

SumTotal

SumTotal (signal)

Accumulate_Prefix_Sum (signal)

測定開始からの値を合計します。

Threshold1

Threshold1 (l, u, s, a, b)

((l <= s) && (s <= u)) ? a : b

しきい値比較を行います。

時間範囲:測定開始から

Threshold2

Threshold2 (l, u, s, x)

(s < l) ? l : (s > u) ? u : x

しきい値比較を行います。

時間範囲:測定開始から

Threshold3

Threshold3 (l, u, s, a, b)

((l <= s) && (s <= u)) ? a : b

しきい値比較を行います。

時間範囲:測定開始から

Threshold4

Threshold4 (l, u, s, x)

Latch (x, (l <= s) && (s <= u))

しきい値比較を行います。

時間範囲:測定開始から

TriggerTrue1

TriggerTrue1 (signal)

signal && State_Register (!signal, !1)

シグナル値が false から true に変化したかを調べます。

以下の式で、現在のサンプルとその直前のサンプルとの時刻の差を求めます。

WeightedCounter

WeightedCounter (signal, low, high, factor)

factor * Accumulate_Prefix_Sum ((low <= signal) && (signal <= high) && (signal = signal))

シグナル値がlowからhighまでの範囲内にあった回数をカウントし、係数factorで重み付けをします。

時間範囲:測定開始から