Verwenden Sie temporale Funktionen in Formelausdrücken - AWS IoT SiteWise

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie temporale Funktionen in Formelausdrücken

Verwenden Sie temporale Funktionen, um Werte zurückzugeben, die auf Zeitstempeln von Datenpunkten basieren.

Verwenden Sie temporale Funktionen in Metriken

Nur in Metriken können Sie die folgenden Funktionen verwenden, die Werte auf der Grundlage von Zeitstempeln von Datenpunkten zurückgeben.

Bei den Argumenten für temporale Funktionen muss es sich um Eigenschaften aus dem lokalen Objektmodell oder um verschachtelte Ausdrücke handeln. Das bedeutet, dass Sie keine Eigenschaften aus untergeordneten Vermögensmodellen in temporalen Funktionen verwenden können.

Sie können verschachtelte Ausdrücke in zeitlichen Funktionen verwenden. Wenn Sie verschachtelte Ausdrücke verwenden, gelten die folgenden Regeln:

  • Jedes Argument kann nur eine Variable haben.

    latest( t*9/5 + 32 )Wird beispielsweise unterstützt.

  • Argumente können keine Aggregationsfunktionen sein.

    Wird beispielsweise first( sum(x) ) nicht unterstützt.

Funktion Beschreibung

first(x)

Gibt den Wert der angegebenen Variablen mit dem frühesten Zeitstempel über das aktuelle Zeitintervall hinweg zurück.

last(x)

Gibt den Wert der angegebenen Variablen mit dem spätesten Zeitstempel über das aktuelle Zeitintervall hinweg zurück.

earliest(x)

Gibt den letzten Wert der angegebenen Variablen vor dem Beginn des aktuellen Zeitintervalls zurück.

Diese Funktion berechnet einen Datenpunkt für jedes Zeitintervall, wenn die Eingabeeigenschaft mindestens einen Datenpunkt im Verlauf hat. Details dazu finden Sie unter time-range-defintion.

latest(x)

Gibt den letzten Wert der angegebenen Variablen mit dem letzten Zeitstempel vor dem Ende des aktuellen Zeitintervalls zurück.

Diese Funktion berechnet einen Datenpunkt für jedes Zeitintervall, wenn die Eingabeeigenschaft mindestens einen Datenpunkt im Verlauf hat. Details dazu finden Sie unter time-range-defintion.

statetime(x)

Gibt die Zeitspanne in Sekunden zurück, in der die angegebenen Variablen im aktuellen Zeitintervall positiv sind. Sie können die Vergleichsfunktionen verwenden, um eine Transformationseigenschaft zu erstellen, die von der statetime Funktion verwendet werden soll.

Wenn Sie beispielsweise eine Idle-Eigenschaft haben, für die 0 oder 1 gilt, können Sie die Leerlaufzeit pro Zeitintervall mit diesem Ausdruck berechnen: IdleTime = statetime(Idle). Weitere Informationen finden Sie im Beispielzustandszeitszenario.

Diese Funktion unterstützt keine Metrikeigenschaften als Eingabevariablen.

Diese Funktion berechnet einen Datenpunkt für jedes Zeitintervall, wenn die Eingabeeigenschaft mindestens einen Datenpunkt im Verlauf hat.

TimeWeightedAvg(x, [interpolation])

Gibt den Durchschnitt der Eingabedaten zurück, gewichtet mit Zeitintervallen zwischen Punkten.

Einzelheiten zur Berechnung und zu den Intervallen finden Sie unter Parameter für zeitgewichtete Funktionen.

Das optionale Argument interpolaton muss eine Zeichenkettenkonstante sein:

  • locf— Dies ist die Standardeinstellung. Bei der Berechnung wird der Berechnungsalgorithmus Last Observed Carry Forward für Intervalle zwischen Datenpunkten verwendet. Bei diesem Ansatz wird der Datenpunkt als letzter beobachteter Wert bis zum Zeitstempel des nächsten Eingabedatenpunkts berechnet.

    Der Wert nach einem guten Datenpunkt wird als Wert bis zum nächsten Datenpunkt-Zeitstempel extrapoliert.

  • linear— Die Berechnung verwendet den Berechnungsalgorithmus der linearen Interpolation für Intervalle zwischen Datenpunkten.

    Der Wert zwischen zwei guten Datenpunkten wird als lineare Interpolation zwischen den Werten dieser Datenpunkte extrapoliert.

    Der Wert zwischen guten und schlechten Datenpunkten oder der Wert nach dem letzten guten Datenpunkt wird als guter Datenpunkt extrapoliert.

TimeWeightedStDev(x, [algo])

Gibt die Standardabweichung der Eingabedaten zurück, gewichtet mit Zeitintervallen zwischen Punkten.

Einzelheiten zur Berechnung und zu den Intervallen finden Sie unter Parameter für zeitgewichtete Funktionen.

Bei der Berechnung wird der Berechnungsalgorithmus Last Observed Carry Forward für Intervalle zwischen Datenpunkten verwendet. Bei diesem Ansatz wird der Datenpunkt als letzter beobachteter Wert bis zum Zeitstempel des nächsten Eingabedatenpunkts berechnet. Die Gewichtung wird als Zeitintervall in Sekunden zwischen Datenpunkten oder Fenstergrenzen berechnet.

Das optionale Argument algo muss eine Zeichenkettenkonstante sein:

  • f— Dies ist die Standardeinstellung. Sie gibt eine unvoreingenommene gewichtete Stichprobenvarianz mit Frequenzgewichten zurück, die in Sekunden berechnet TimeWeight wird. Dieser Algorithmus wird in der Regel unter Berücksichtigung der Standardabweichung angenommen und wird bei gewichteten Stichproben als Bessel-Korrektur der Standardabweichung bezeichnet.

  • p— Gibt die verzerrte gewichtete Stichprobenvarianz zurück, die auch als Populationsvarianz bezeichnet wird.

Die folgenden Formeln werden für Berechnungen verwendet, wobei:

  • S p = Standardabweichung der Population

  • S f = Frequenzstandardabweichung

  • X i = eingehende Daten

  • ω i = Gewicht, das dem Zeitintervall in Sekunden entspricht

  • μ* = ein gewichteter Mittelwert der eingehenden Daten

Gleichung für die Standardabweichung der Grundgesamtheit:

Gleichung für die Standardabweichung der Population.

Gleichung für die Frequenzstandardabweichung:

Gleichung für die Frequenzstandardabweichung.

Das folgende Diagramm zeigt, wie die zeitlichen Funktionenfirst,, und last earliestlatest, relativ zum aktuellen Zeitintervall AWS IoT SiteWise berechnet werden.

AWS IoT SiteWise Temporale Funktionen geben Datenpunkte auf der Grundlage ihres Zeitstempels zurück.
Anmerkung
  • Der Zeitraum fürfirst(x), last(x) ist (aktueller Fensterstart, aktuelles Fensterende].

  • Der Zeitraum für latest(x) ist [Beginn der Zeit, Ende des aktuellen Fensters].

  • Der Zeitraum für earliest(x) ist [Beginn der Zeit, Ende des vorherigen Fensters].

Parameter für zeitgewichtete Funktionen

Bei den für das Aggregatfenster berechneten zeitgewichteten Funktionen wird Folgendes berücksichtigt:

  • Datenpunkte innerhalb des Fensters

  • Zeitintervalle zwischen Datenpunkten

  • Letzter Datenpunkt vor dem Fenster

  • Erster Datenpunkt nach dem Fenster (für einige Algorithmen)

Bedingungen:

  • Schlechter Datenpunkt — Jeder Datenpunkt mit nicht guter Qualität oder schlechtem Zahlenwert. Dies wird bei der Berechnung der Fensterergebnisse nicht berücksichtigt.

  • Fehlerhaftes Intervall — Das Intervall nach einem fehlerhaften Datenpunkt. Das Intervall vor dem ersten bekannten Datenpunkt wird ebenfalls als fehlerhaftes Intervall angesehen.

  • Guter Datenpunkt — Jeder Datenpunkt mit guter Qualität und numerischem Wert.

Anmerkung
  • AWS IoT SiteWise verbraucht nur GOOD hochwertige Daten, wenn es Transformationen und Metriken berechnet. Es ignoriert alle Datenpunkte. UNCERTAIN BAD

  • Das Intervall vor dem ersten bekannten Datenpunkt wird als schlechtes Intervall angesehen. Weitere Informationen finden Sie unter Tutorials zu Formelausdrücken.

Das Intervall nach dem letzten bekannten Datenpunkt dauert unbegrenzt und wirkt sich auf alle folgenden Fenster aus. Wenn ein neuer Datenpunkt eintrifft, berechnet die Funktion das Intervall neu.

Gemäß den obigen Regeln wird das aggregierte Fensterergebnis berechnet und auf Fenstergrenzen beschränkt. Standardmäßig sendet die Funktion das Fensterergebnis nur, wenn das gesamte Fenster ein gutes Intervall aufweist.

Wenn das Intervall für den Fensterwert kleiner als die Fensterlänge ist, sendet die Funktion das Fenster nicht.

Wenn sich die Datenpunkte, die das Fensterergebnis beeinflussen, ändern, berechnet die Funktion das Fenster neu, auch wenn sich die Datenpunkte außerhalb des Fensters befinden.

Wenn die Eingabeeigenschaft mindestens einen Datenpunkt in ihrer Historie hat und eine Berechnung eingeleitet wurde, berechnet die Funktion die zeitgewichteten Aggregatfunktionen für jedes Zeitintervall.

Beispielzustandszeitszenario

Betrachten Sie ein Beispiel mit einer Komponente mit den folgenden Eigenschaften:

  • Idle— Eine Messung, die oder ist. 0 1 Wenn der Wert „1“ ist, befindet sich die Maschine im Leerlauf.

  • Idle Time— Eine Metrik, die anhand der Formel statetime(Idle) die Zeit in Sekunden berechnet, in der sich die Maschine im Leerlauf befindet, pro 1-Minuten-Intervall.

Die Idle-Eigenschaft verfügt über die folgenden Datenpunkte.

Zeitstempel 14:00:00 Uhr 14:00:30 Uhr 14:01:15 Uhr 14:02:45 Uhr 14:04:00 Uhr
Idle 0 1 1 0 0

AWS IoT SiteWise berechnet die Idle Time Eigenschaft jede Minute aus den Werten vonIdle. Nach Abschluss dieser Berechnung verfügt die Idle Time-Eigenschaft über die folgenden Datenpunkte.

Zeitstempel 14:00:00 Uhr 14:01:00 Uhr 14:02:00 Uhr 14:03:00 Uhr 14:04:00 Uhr
Idle Time N/A 30 60 45 0

AWS IoT SiteWise führt am Ende jeder Minute die folgenden Berechnungen durch. Idle Time

  • Um 14:00 Uhr (für 13:59 Uhr bis 14:00 Uhr)

    • Vor 14:00 Uhr liegen keine Daten für Idle vor, daher wird kein Datenpunkt berechnet.

  • Um 14:01 Uhr (für 14:00 Uhr bis 14:01 Uhr)

    • Um 14:00:00 Uhr ist die Maschine aktiv (Idle ist 0).

    • Um 14:00:30 Uhr befindet sich die Maschine im Leerlauf (Idle ist 1).

    • Idle ändert sich vor dem Ende des Intervalls um 14:01:00 Uhr nicht mehr, Idle Time ist also 30 Sekunden.

  • Um 14:02 Uhr (für 14:01 bis 14:02 Uhr)

    • Um 14:01:00 Uhr befindet sich die Maschine im Leerlauf (entsprechend des letzten Datenpunkts um 14:00:30 Uhr).

    • Um 14:01:15 Uhr befindet sich die Maschine noch im Leerlauf.

    • Idle ändert sich vor dem Ende des Intervalls um 14:02:00 Uhr nicht mehr, Idle Time ist also 60 Sekunden.

  • Um 14:03 Uhr (für 14:02 Uhr bis 14:03 Uhr)

    • Um 14:02:00 Uhr befindet sich die Maschine im Leerlauf (entsprechend des letzten Datenpunkts um 14:01:15 Uhr).

    • Um 14:02:45 Uhr ist die Maschine aktiv.

    • Idle ändert sich vor dem Ende des Intervalls um 14:03:00 Uhr nicht mehr, Idle Time ist also 45 Sekunden.

  • Um 14:04 Uhr (für 14:03 Uhr bis 14:04 Uhr)

    • Um 14:03:00 Uhr ist die Maschine aktiv (entsprechend des letzten Datenpunkts um 14:02:45 Uhr).

    • Idle ändert sich vor dem Ende des Intervalls um 14:04:00 Uhr nicht mehr, Idle Time ist also 0 Sekunden.

Beispiel TimeWeightedAvg und TimeWeightedStDev Szenario

Die folgenden Tabellen enthalten Beispieleingaben und -ausgaben für diese einminütigen Fenstermetriken:Avg(x), TimeWeightedAvg(x), TimeWeightedAvg(x, "linear"), stDev(x), timeWeightedStDev(x), timeWeightedStDev(x, 'p').

Beispieleingabe für ein einminütiges Aggregatfenster:

Anmerkung

Diese Datenpunkte sind alle GOOD qualitativ hochwertig.

03:00:00 4,0
03:01:00 2.0
03:01:10 8.0
03:01:50 20.0
03:02:00 14,0
03:02:05 10.0
03:02:10 3.0
03:02:30 20.0
03:03:30 0.0

Ausgabe aggregierter Ergebnisse:

Anmerkung

Keine — Für dieses Fenster wurde kein Ergebnis erzeugt.

Zeit Avg(x) TimeWeightedAvg(x) TimeWeightedAvg(X, "linear") stDev(X) timeWeightedStDev(x) timeWeightedStDev(x, 'p')
3:00:00 4 Keine None 0 Keine None
3:01:00 2 4 3 0 0 0
3:02:00 14 9 13 6 5,430610041581775 5,385164807134504
3:03:00 11 13 12,875 8,54400374531753 7,724054437220943 7,659416862050705
3:04:00 0 10 2.5 0 10,084389681792215 10
3:05:00 None 0 0 None 0 0

Verwenden Sie temporale Funktionen in Transformationen

Nur bei Transformationen können Sie die pretrigger() Funktion verwenden, um den GOOD Qualitätswert für eine Variable vor der Eigenschaftenaktualisierung abzurufen, die die aktuelle Transformationsberechnung ausgelöst hat.

Stellen Sie sich ein Beispiel vor AWS IoT SiteWise , bei dem ein Hersteller den Status einer Maschine überwacht. Der Hersteller verwendet die folgenden Messungen und Transformationen, um den Prozess darzustellen:

  • Eine Messungcurrent_state, die 0 oder 1 sein kann.

    • Wenn sich die Maschine im Reinigungszustand befindet, current_state entspricht dies 1.

    • Wenn sich die Maschine im Fertigungszustand befindet, current_state entspricht 0.

  • Eine Transformationcleaning_state_duration, das entsprichtif(pretrigger(current_state) == 1, timestamp(current_state) - timestamp(pretrigger(current_state)), none). Diese Transformation gibt im Unix-Epochenformat in Sekunden zurück, wie lange sich die Maschine im Reinigungszustand befunden hat. Weitere Informationen finden Sie unter Verwenden Sie bedingte Funktionen in Formelausdrücken und zur Funktion timestamp ().

Bleibt das Gerät länger als erwartet im Reinigungszustand, überprüft der Hersteller das Gerät möglicherweise.

Sie können die pretrigger() Funktion auch in multivariaten Transformationen verwenden. Sie haben beispielsweise zwei Messungen mit dem Namen x und und y eine Transformationz, die entspricht. x + y + pretrigger(y) Die folgende Tabelle zeigt die Werte für xy, und z von 9:00 Uhr bis 9:15 Uhr.

Anmerkung
  • In diesem Beispiel wird davon ausgegangen, dass die Werte für die Messungen chronologisch eintreffen. Beispielsweise kommt der Wert x für 09:00 Uhr vor dem Wert x für 09:05 Uhr an.

  • Wenn die Datenpunkte für 9:05 Uhr vor den Datenpunkten für 9:00 Uhr ankommen, wird um 9:05 Uhr z nicht berechnet.

  • Wenn der Wert x für 9:05 Uhr vor dem Wert für 09:00 Uhr eintrifft und die Werte x für chronologisch y eintreffen, z entspricht 22 = 20 + 1 + 1 dies um 9:05 Uhr.

09:00 UHR 09:05 UHR 09:10 UHR 09:15 UHR

x

10

20

30

y

1

2

3

z = x + y + pretrigger(y)

yempfängt vor 09:00 Uhr keinen Datenpunkt. Wird daher z nicht um 09:00 Uhr berechnet.

23 = 20 + 2 + 1

pretrigger(y)entspricht 1.

25 = 20 + 3 + 2

xempfängt keinen neuen Datenpunkt. pretrigger(y)entspricht 2.

36 = 30 + 3 + 3

yempfängt keinen neuen Datenpunkt. Entspricht pretrigger(y) also 3 um 09:15 Uhr.