Signalverarbeitung mit Traceschritten

Traceschritte übernehmen die wesentlichen Aufgaben der Signalverarbeitung. Über die reinen Signalbewertungen hinaus können Traceschritte aber auch Signalberechnungen vornehmen. Auf diese Weise können anderen Traceschritten, die in der selben Traceanalyse zum Einsatz kommen, zusätzliche Signale zur Verfügung gestellt werden. Dadurch gelingt es, Traceanalysen modular zu gestalten und in Teilen wiederzuverwenden. So kann beispielsweise ausgehend von einem vorhandenen Signal zunächst ein Traceschritt eine geglättete Variante dieses Signals berechnen und ein zweiter Traceschritt kann dann eine Testbewertung dieses geglätteten Signals vornehmen.

Als Beispiel wird gezeigt, wie aus zwei generischen Eingangssignalen „EngSpeed“ (1) und „Gear“ (3) von einem Traceschritt „Calculate_CarSpeed“ (5) ein Geschwindigkeitssignal „CarSpeed_calculated“ (4) berechnet wird und ein zweiter Traceschritt „PyPlotSignals“ (6) dieses zusammen mit der gemessenen Geschwindigkeit „CarSpeed“ (2) plottet:

../../../_images/TestDrivesExample.png

Um aus ereignisbasierten Python-Traceschritten heraus berechnete Signalwerte auszugeben, existiert die Methode dataContainer.EmitSignal. Details hierzu sind im Abschnitt Ereignisbasierte Python-Traceschrittvorlagen erstellen sowie in der Referenz zu finden.

On-the-fly-Signalberechnung

Wichtig zu wissen ist, dass berechnete Signale zunächst nicht gespeichert werden und auch nicht gespeichert werden müssen. Wird ein Signal durch einen Traceschritt in einer Episode berechnet, steht es automatisch allen Traceschritten derselben Episode als mögliches Eingangssignal zur Verfügung. Diese Art der Signalberechnung ist sehr effizient, da sie weder auf der Festplatte noch im Arbeitsspeicher Speicherplatz benötigt.

Info

Soll ein berechnetes Signal für spätere Weiterverwendung dauerhaft gespeichert werden, so kann dies durch so genannte Signalaufnahmen konfiguriert werden (vgl. Abschnitt Signalexport (Signalaufnahme)).

Die Zeitstempel verschiedener Signale werden als zueinander passend angenommen. Dass bedeutet nicht, dass die Zeitstempel identisch sein müssen, sondern nur, dass die Zeitstempel auf einer gemeinsamen Zeitachse abgetragen werden können. Gegebenenfalls muss der Traceanalyse eine Synchronisation (siehe Abschnitt Synchronisation von Traces) vorgeschaltet werden, damit dies gewährleistet ist.

Für die Traceanalyse existiert somit eine eindeutige Zeitachse, entlang derer die Analyse durchgeführt wird. Pro Episode wird diese Zeitachse genau einmal durchlaufen. Die betrachteten Punkte auf dieser Zeitachse ergeben sich aus den Zeitstempeln aller Signale, wobei zu jedem Zeitpunkt unterschieden werden kann, welche Signale zu diesem Zeitpunkt tatsächlich einen Messwert liefern.

Für die berechneten Signale gilt genau wie für die originalen Signale einer Traceanalyse, dass sie jeweils eine Folge zeitstempelbehafteter Messwerte darstellen.

Traceschritte, die eine Signalberechnung durchführen, haben nicht nur Einfluss auf die berechneten Signalwerte, sondern auch auf die dazugehörigen Zeitstempel. Der berechnende Traceschritt ist also dafür verantwortlich, die berechneten Messwerte auf der gemeinsamen Zeitachse aller Signale einzuordnen. Damit das Prinzip der On-the-fly-Signalberechnung funktioniert, ist dabei auf Folgendes zu achten:

Da pro Episode die Zeitachse genau einmal durchlaufen wird, kann zu jedem Zeitpunkt t eine Berechnung eines Signals durchgeführt werden. Wichtig dabei ist, dass zum Zeitpunkt t berechnete Signalwerte selbst eigenständige (möglicherweise von t verschiedene) Zeitstempel haben können. Es ergibt sich damit die Möglichkeit, Signalwerte für den Zeitpunkt t selbst, für die Zukunft (relativ zu t) und auch für die Vergangenheit (relativ zu t) zu berechnen. Wichtig für das On-the-fly-Signalberechnungsprinzip ist, dass berechnete Signale, die innerhalb derselben Episode von anderen Traceschritten weiterverwendet werden, ausschließlich zum Jetzt-Zeitpunkt oder für die Zukunft relativ zu t berechnet werden. Signale, die für die Vergangenheit berechnet werden, können erst in der nächsten Episode weiterverarbeitet werden.