FB_ALY_DynamicTimeWarpingInterval

Der Algorithmus Dynamic Time Warping Interval vergleicht mehrere Eingangsdaten miteinander. Das Besondere an dem Algorithmus ist, dass auch Signale mit unterschiedlicher Geschwindigkeit oder aber auch verschobene Signale verglichen werden können. Für den Vergleich wird nur das Signalintervall eines konfigurierten Fensters berücksichtigt. Neue Ergebnisse werden nach dem Ablauf des Fensters ausgegeben. Als Ergebnis wird die Distanz zwischen dem Referenzsignal und dem jeweiligen Eingangssignal ausgegeben. Je geringer die Distanz, desto gleicher sind die verglichenen Signale. Ist die Distanz 0, so sind beide Signale identisch. Die Höhe der Distanz ist abhängig von der Gleichheit aber auch von der Länge der Signale.

Syntax

Definition:

FUNCTION_BLOCK FB_ALY_DynamicTimeWarpingInterval
VAR_OUTPUT
    ipResultMessage: Tc3_EventLogger.I_TcMessage;
    bError: BOOL;
    bNewResult: BOOL;
    bConfigured: BOOL;
    nBestMatchIdx: UDINT;
END_VAR

FB_ALY_DynamicTimeWarpingInterval 1: Ausgänge

Name

Typ

Beschreibung

ipResultMessage

I_TcMessage

Beinhaltet nähere Informationen zum aktuellen Rückgabewert. Für diesen speziellen Schnittstellenzeiger ist intern sichergestellt, dass er immer gültig/zugewiesen ist.

bError

BOOL

Der Ausgang ist TRUE, wenn ein Fehler auftritt.

bNewResult

BOOL

Wenn ein neues Ergebnis berechnet wurde, ist der Ausgang TRUE.

bConfigured

BOOL

Zeigt TRUE an, wenn der Baustein erfolgreich konfiguriert ist.

nBestMatchIdx

UDINT

Gibt den Index des Eingangskanals mit der geringsten Distanz zum Referenzkanal aus.

FB_ALY_DynamicTimeWarpingInterval 2: Methoden

Name

Definitionsort

Beschreibung

Call()

Local

Methode zur Berechnung der Ausgänge für eine bestimmte Konfiguration.

Configure()

Local

Konfiguration des Algorithmus.

FB_init()

Local

Initialisieren der Anzahl der Eingangskanäle.

GetChannelOutputVaue()

Local

Methode für das Abholen von einzelnen Ausgangswerten aus dem Ausgangs-Array

GetChannelOutputArray()

Local

Methode für das Abholen des gesamten Ausgangs-Arrays.

Reset()

Local

Setzt alle internen Zustände oder die bisher durchgeführten Berechnungen zurück.

SetChannelValue()

Local

Methode zur Übergabe von Werten an den Algorithmus.

Beispiel

VAR
    fbDynamicTimeWarpingInterval : FB_ALY_DynamicTimeWarpingInterval(nNumChannels := 3);

    nWindowSize : UDINT := 100;
    bConfigure : BOOL := TRUE;
    
    fReference : LREAL;
    fInput1 : LREAL;
    fInput2 : LREAL;
    fInput3 : LREAL;

    aDistances : ARRAY[1..3] OF LREAL;
END_VAR
// Configure algorithm
IF bConfigure THEN
    bConfigure := FALSE;
    fbDynamicTimeWarpingInterval.Configure(nWindowSize);
END_IF

// Call algorithm
fbDynamicTimeWarpingInterval.SetChannelValue(0, fReference);
fbDynamicTimeWarpingInterval.SetChannelValue(1, fInput1);
fbDynamicTimeWarpingInterval.SetChannelValue(2, fInput2);
fbDynamicTimeWarpingInterval.SetChannelValue(3, fInput3);
fbDynamicTimeWarpingInterval.Call();

// Get results
fbDynamicTimeWarpingInterval.GetOutputArray(pArrayOut:=ADR(aDistances), nArrayOutSize:=SIZEOF(aDistances));

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.0

PC oder CX (x64, x86)

Tc3_Analytics