Synchronisation von Traces¶
Einleitung¶
Jede Aufnahmegruppe bezieht sich auf genau einen Master mit dem sie synchronisiert wird. Dabei wird das deltaT, also die zeitliche Verschiebung zwischen Aufnahmegruppe und Master ermittelt. Hat der Master bereits ein deltaT (ihm ist als Aufnahmegruppe ein anderer Master zugeordnet), so wird dieses deltaT auf die aktuelle Verschiebung aufaddiert. Die Zeitstempelquelle hat keinen Master. Ihr deltaT ist daher immer 0. Alle ermittelten deltaT beziehen sich auf sie.
Momentan gibt es folgende Synchronisationsarten:
Offset: es wird ein festes Offset auf das deltaT des Masters addiert
EqualnessMatching : die Ausrichtung der Aufnahmen erfolgt mithilfe von Signalen, welche den gleichen Wert haben müssen
Expectation: für Aufnahmegruppe und Master wird je ein Erwartungswert angegeben. Der Wechsel der Bewertung von falsch zu wahr bestimmt den Synchronisationspunkt
Fast alle Synchronisationsarten haben folgende Parameter:
MaxDeltaT: das maximale deltaT
TimeLimit: vergangene Zeit in der Mastergruppe nach der die Synchronisation abgebrochen wird
Ziel ist es, Traces verschiedener Aufnahmegruppen entlang einer gemeinsamen Zeitachse zu analysieren.
Jeder Trace trägt aber zunächst seine eigene Zeitachse in sich. Stammen die Traces aus Quellen, die über synchrone Uhren verfügen, so können die Traces als vorsynchronisiert betrachtet und die Zeitstempel der Traces unverändert für die Traceanalyse verwendet werden.
Sind aber technisch bedingte Verschiebungen zwischen den Uhren der Tracequellen vorhanden, dann sind die individuellen Zeitachsen der Traces zueinander verschoben. Die Synchronisation hat die Aufgabe, die Zeitachsen solcher Traces durch einen bekannten/zu bestimmenden Wert ΔT wieder einander anzugleichen. Dieser ΔT-Wert wird im Anschluss von ecu.test automatisch auf die Zeitstempel der betroffenen Traces aufgerechnet, um die ursprüngliche Verschiebung der Zeitachsen zu kompensieren. ΔT kann sowohl positive als auch negative Werte annehmen.
ecu.test gruppiert Traces in Aufnahmegruppen. Die Synchronisation wird zwischen Aufnahmegruppen konfiguriert und wirkt sich dann auf alle Traces in diesen Aufnahmegruppen aus.
Die Synchronisation von Aufnahmegruppen erfolgt dabei paarweise zueinander. Der Nutzer gibt für jeweils zwei Aufnahmegruppen an, wie ecu.test den ΔT-Wert für den Zeitversatz zwischen den Traces der beiden Gruppen berechnen soll.
Info
Die Synchronisations- und Tracezusammenführungseinstellungen können auch durch ein Default-
Aufnahmepackage in einer Testkonfiguration gesetzt sein (siehe
Offset).
Wenn entweder eine Synchronisation oder eine Tracezusammenführung im Default-Package der
aktuell laufenden Testkonfiguration gesetzt ist, aber nicht im aktuellen Package des Editors,
dann erscheint ein Testkonfigurations-Icon (
) als Hinweis neben den
jeweiligen Checkboxen. Des Weiteren erscheint ein Warnungs-Icon (
) für den Fall, dass
eine Synchronisation im aktuellen Package des Editors gesetzt ist, nicht aber im
Default-Package.
Vorgehensweise¶
Die Synchronisation wird durch das Optionsfeld Synchronisation aktiviert.
Durch Rechtsklick auf eine Aufnahmegruppe und Auswahl von Zeitstempelquelle im Kontextmenü wird die Aufnahmegruppe ausgewählt, deren Zeitstempel unverändert bleiben soll.
Für jede andere Aufnahmegruppe kann nun konfiguriert werden, wie und gegen welche Aufnahmegruppe sie synchronisiert werden soll. Hierzu bearbeitet man die jeweilige Aufnahmegruppe (Doppelklick oder Kontextmenü Bearbeiten), und geht in dem sich öffnenden Dialog in den Reiter Synchronisation.
Mit der Einstellung Variablenwerte zum Ende des Testfalls verwenden wird festgelegt, ob nur die Variablenwerte am Ende des Testfalls zur Parametrierung der Synchronisation verwendet werden sollen. Standardmäßig werden diese dynamisch zur Laufzeit ermittelt.
Aktiviert man die Option Synchronisierte MDF-Traces erstellen, so werden alle MDF-Tracedateien in das Reportverzeichnis kopiert und die Zeitachsen werden gemäß des in der Synchronisation bestimmten Offsets Sync-DeltaT angepasst.
Mit der Einstellung Bei Fehler fortsetzen kann festgelegt werden, ob trotz eines Fehlers während der Synchronisation die Tracezusammenführung und die Traceanalyse ausgeführt werden sollen.
Der Reiter Synchronisation im Dialog Bearbeiten umfasst folgende Einstellungsmöglichkeiten (hinsichtlich der in der Titelleiste aufgeführten aktuellen Aufnahmegruppe):
Unter Auswahl kann hinter Master die Aufnahmegruppe als Master gewählt werden, gegen die synchronisiert werden soll.
Als Arten der Synchronisation stehen (mit jeweils unterschiedlichen Konfigurationsmöglichkeiten) zur Verfügung:
In den folgenden Abbildungen beschreiben blau dargestellte Kurven stets den Master und orange dargestellte ein dagegen zu synchronisierendes Signal.
Zeitbeschränkungsparameter¶
Die folgenden Parameter können in allen Synchronisationsmethoden mit Ausnahme von Offset verwendet werden.
TimeLimit
|
Der Parameter TimeLimit gibt an, bis zu welchem Zeitstempel im Trace, relativ zum Traceanfang, die Suche nach einem Synchronisationspunkt maximal erfolgen soll. Im abgebildeten Fall werden alle Werte im Bereich der durchgezogenen Kurven für die Synchronisation berücksichtigt, wohingegen Werte im Bereich der gestrichelten Kurven ignoriert werden. |
MaxDeltaT
|
Da es mehrere mögliche Übereinstimmungen geben kann, die zur Herstellung falscher Kausalitäten führen können, lässt sich über den Parameter MaxDeltaT eine maximal zulässige Zeitverschiebung vorgeben mit abs(ΔT) <= MaxDeltaT. |
Differenz der ersten Zeitstempel
|
Ist die Option zuzüglich Differenz der ersten Zeitstempel gesetzt, so wird diese Differenz auf das angegebene MaxDeltaT addiert. Ist sie nicht gesetzt, wird ausschließlich MaxDeltaT für die maximal zulässige Zeitverschiebung betrachtet. Die Option ist vor allem dann zu verwenden, wenn davon auszugehen ist, dass beide Traces zum gleichen Zeitpunkt starten. Es gilt stets abs(ΔT) <= MaxDeltaT + abs(ΔTstart). Im dargestellten Fall würde das Abwählen der Option zur potentiell falschen Synchronisation zwischen den Punkten (b) und (c) führen, wohingegen das Anwählen der Option zur Synchronisation zwischen den Punkten (a) und (b) führt. |
Info
Falls mehrere mögliche Synchronisationszeitpunkte die zeitlichen Anforderungen erfüllen, wird immer der zuerst gefundene verwendet. Dabei werden die Zeitstempel des Masters chronologisch betrachtet. Zunächst wird für einen Zeitstempel des Masters im kompletten gültigen Zeitfenster der anderen Aufnahmen nach möglichen Synchronisationszeitpunkten gesucht. Anschließend wird der nächste Zeitstempel des Masters betrachtet.
Offset-Methode¶
|
|
Hier kann unter Bekannter Offset ein dem Nutzer vorher bekannter Wert ΔT angegeben werden, der auf die Zeitstempel der Traces der Aufnahmegruppe addiert werden soll, um zu den Zeitstempeln der anderen (Master-)Aufnahmegruppe zu passen. Es können negative und positive Werte angegeben werden. Bekannter Offset steht auch allen weiteren Synchronisationsmethoden als zusätzlicher Parameter der Zeitverschiebung zur Verfügung, welcher auf den durch diese Methoden ermittelten Wert ΔT addiert wird.
Expectation-Methode¶
|
|
Hierbei erfolgt eine Suche nach einem Synchronisationspunkt in beiden Traces. Unter Erwartung Aufnahmegruppe bzw. Erwartung Master wird jeweils auf genau einem (mittels Signalname und -art zu wählendem) Signal unter Einbezug einer gewissen (durch Toleranzart und -wert einstellbaren) Toleranz eine Erwartungshaltung (hinter Messwert durch Wahl einer der Relationen <, <=, ==, !=, >= oder > und Angabe eines konkreten Wertes) formuliert.
Als Synchronisationspunkte kommen dann pro Trace alle Zeitstempel in Frage, an denen sich das Signal so ändert, dass die Erwartungshaltung erfüllt ist.
EqualnessMatching-Methode¶
Eine Synchronisationsmethode, die Aufnahmen anhand gleicher Signalwerte synchronisiert. Wichtig dabei ist, dass die Signalwerte halbwegs einmalig sind. Wenn das Signal in Aufnahme A und B sehr oft den Wert X annimmt, dann ist nicht klar, welche Vorkommen einander zuzuordnen sind. Gut geeignet sind Signale, die beispielsweise Stunde, Minute und Sekunde enthalten. Dabei kann dann davon ausgegangen werden, dass die einzelnen Werte pro Aufnahme nur genau einmal auftreten. -> An diesem Beispiel erkennt man, dass es auch möglich ist, mehrere Signale anzugeben. Dabei kann ein Signal (zum Beispiel das Sekunden-Signal) durchaus wiederholt in der Aufnahme denselben Wert annehmen, die Gesamtheit aller zu synchronisierenden Signale (in diesem Beispiele Stunde, Minute, Sekunde) ist aber einmalig.
Vorgang der Synchronisation:
In allen Aufnahmen wird nach dem ersten Zeitstempel gesucht, bei dem alle zu synchronisierenden Signale einen Wert angenommen haben.
Dann wird im Master der nächste Zeitstempel gesucht, bei dem sich eines dieser Signale ändert (das ist der erste mögliche Synchronisationskandidat).
In allen anderen Aufnahmen wird im Rahmen von maxDeltaT solange vorgespult, bis der aktuelle Synchronisationskandidat gefunden wurde.
Wenn das nicht klappt, wird im Master der nächste Zeitstempel gesucht, bei dem sich mindestens eines der zu synchronisierenden Signale geändert hat.
In allen anderen Aufnahmen wird dann ebenfalls erneut gesucht.
Das ganze geht solange, bis entweder eine Übereinstimmung gefunden wurde, oder auch im Master maxDeltaT überschritten ist
|
|
Bei dieser Methode wird anhand exakter Wertgleichheit der Signale synchronisiert, ohne dass der Wert vorher bekannt ist.
Voraussetzung sind 1 bis n Signale, die in beiden zu synchronisierenden Aufnahmegruppen (womöglich unter verschiedenen Namen) enthalten sind.
Gesucht wird nach einer Werteänderung auf einen identischen Signalwert dieser Signale. Die Differenz der beiden Zeitstempel, mit identischen Signalwerten in beiden Traces, bildet den gesuchten Wert ΔT.
LeastSquares-Methode¶
|
|
Nutzt man die LeastSquares-Methode, so wird für jeweils genau ein Signal aus Master und Aufnahmegruppe (zu wählen mittels Signalname und -art) die Verschiebung bestimmt, die die Summe der quadratischen Abstände der beiden Signale minimiert.
Anschaulich wird durch diese Methode die Fläche der Einhüllenden minimiert (in der oberen Abbildung dargestellt durch orange schraffiert nach grau gefüllt), die durch die Differenz der beiden Signale erzeugt wird.
Der Parameter Resolution bestimmt auf welcher Auflösung (Schrittweite) diese Verschiebung ΔT erfolgt. Dabei wird zwischen den vorliegenden Datenpunkten linear interpoliert.
Info
Wenn MaxDeltaT zu groß gewählt wird, neigt die LeastSquares-Methode dazu die Überlappung der Signale zu minimieren. MaxDeltaT sollte deshalb höchstens halb so groß wie TimeLimit gewählt werden bzw. bei Aufnahmen die kürzer als TimeLimit sind, nur halb so groß wie die Länge der Aufnahme. Falls das aufgrund einer zu großen Verschiebung der Aufnahmen nicht möglich ist, sollte in der Regel eine andere Synchronisationsmethode gewählt werden.
Mittels des Minimal nötigen Determinationskoeffizienten ist es möglich einen Minimalwert für die Ähnlichkeit der zu synchronisierenden Signale festzusetzen. Unterhalb des Wertes wird die Synchronisation verworfen und als fehlerhaft bewertet. Dabei steht ein Wert von R²=1 für perfekte Übereinstimmung, ein Wert kleiner 1 suggeriert welchen Anteil der Varianz beide Signale sich teilen. So entspricht etwa R²=0.25 einer geteilten Varianz von 25%.
Info
Obwohl es die Bezeichnung R² nicht vermuten lässt, kann der Determinationskoeffizient auch negative Werte annehmen. Negative Werte bedeuten, dass ein konstantes Signal mit dem Durchschnittswert des Master-Signals besser mit diesem übereinstimmen würde (R²=0), als das gewählte Signal. Daher sollte in der Regel ein Determinationskoeffizient mindestens infinitesimal größer als null gewählt werden, da die Synchronisation sonst für praktische Anwendungsfälle unplausibel ist.
Beispiel¶
Signalgruppe „Traces_GroupA“ enthält die Signale „SigA_1“ und „SigA_2“.
Signalgruppe „Traces_GroupB“ enthält die Signale „SigB_1“ und „SigB_3“.
Signalgruppe „Traces_GroupC“ enthält die Signale „SigC_3“, „SigC_4“ und „SigC_5“.
Die Traces aus „Traces_GroupA“ sollen mit den Traces aus „Traces_GroupB“ synchronisiert werden, indem anhand der Signale „SigA_1“ und „SigB_1“ ein gemeinsames, eindeutiges Ereignis gesucht werden soll.
Analog sollen die Traces aus „Traces_GroupB“ mit den Traces aus „Traces_GroupC“ synchronisiert werden, indem die Zeitverschiebung zwischen den Traces ausgehend von den Signalverläufen der Signale „SigB_3“ und „SigC_3“ bestimmt wird.
Für die Synchronisation zwischen „Traces_GroupA“ und „Traces_GroupB“ bietet sich in diesem Beispiel die EqualnessMatching-Methode. Für die Synchronisation zwischen „Traces_GroupB“ und „Traces_GroupC“ bietet sich entweder die LeastSquares-Methode (für ähnliche Signalverläufe) oder die Expectation-Methode (für ein bestimmtes Verhalten der Signale im Verhältnis zueinander) an.
CrossCorrelation-Methode¶
|
|
Mit der CrossCorrelation-Methode wird die Ähnlichkeit von jeweils einem Signal der Mastergruppe und einem Signal aus der Aufnahmegruppe bestimmt. Die Berechnung Kreuzkorrelation erfolgt, indem eines der Signale um verschiedene Zeitverschiebungen (Lags) verschoben und dann der Korrelationskoeffizient zwischen den beiden Signal ermittelt wird. Dieser ergibt sich aus der Summe der paarweise multiplizierten normalisierten Signalwerte. Der Lag, bei dem die Kreuzkorrelation ihren maximalen Wert erreicht, zeigt die Verschiebung an, bei der die beiden Signale am besten übereinstimmen.
Der Parameter Resolution bestimmt, auf welcher Auflösung (Schrittweite) diese Verschiebung ΔT erfolgt. Dabei wird zwischen den vorliegenden Datenpunkten linear interpoliert.
Mittels der Option Minimal nötiger Korrelationsskoeffizient ist es möglich, einen Minimalwert für die Ähnlichkeit der zu synchronisierenden Signale festzusetzen. Unterhalb des Wertes wird die Synchronisation verworfen und als fehlerhaft bewertet. Dabei steht ein Wert von 1 für perfekte Übereinstimmung, ein Wert kleiner 1 gibt an, welchen Anteil der Varianz sich beide Signale teilen. Die Korrelation kann auch negative Werte annehmen. Ein Wert von -1 bedeutet, dass die zu synchronisierten Signale genau invers verlaufen. Bei aktivierter Option Negative Korrelation berücksichtigen wird nur noch der Betrag der Kreuzkorrelation betrachtet, sodass positiv und negativ korrelierte Signale gleichermaßen zur Synchronisation verwendet werden können.
AUTOSAR Zeitsynchronisation (AutosarTime)¶
|
|
AUTOSAR sieht mit der Time Synchronization Protocol Specification eine Möglichkeit vor, wie Bus- bzw. Netzwerkteilnehmer sich auf eine gemeinsame Zeitbasis gegen einen Master synchronisieren können. Der Standard umfasst CAN, FlexRay und Ethernet.
Für Ethernet setzt der Standard auf das bestehende PTP-Protokoll auf. Daher bestimmt ecu.test automatisch die benötigten Signale. Im Fall von MDF4-Buslogging ist es erforderlich, das Pseudosignal PacketPtpFollowUp des betreffenden ETH-Busses in die Aufnahmegruppe des Masters hinzuzufügen. Unabhängig des Mediums gibt es immer zwei ganzzahlige Signale: eines für Sekunden und eines für Nanosekunden. Bei CAN und FlexRay werden spezielle Sync- und FollowUp-Botschaften definiert. Da diese von der Busdatenbank abhängen, muss man selbst die Signale für die Synchronisation angeben:
CAN: Sekundensignal SyncTimeSec aus der PDU SYNC, Nanosekundensignal SyncTimeNSec aus der PDU FUP
FlexRay: Signale SyncTimeSec und SyncTimeNSec aus der, in der Busdatenbank definierten, PDU
Aus den Signalen SyncTimeSec und SyncTimeNSec werden jeweils die exakten Zeitstempel zusammengesetzt. Die Verschiebung ΔT der Synchronisation entspricht der Differenz der ersten Samples von Recording und Master.
Es ist weiterhin möglich ein bekanntes Offset auf die Verschiebung zu addieren.
UtcTimestamp Zeitsynchronisation¶
|
|
Bei der UtcTimestamp Synchronisation werden für ausgewählte Formate (siehe unten) die Metadaten der Aufnahmen gelesen und der darin definierte UTC Zeitstempel als Synchronisationszeitpunkt festgelegt. Die Differenz zwischen Master und Recording entspricht dann der Verschiebung ΔT.
Unterstützte Formate:
Benutzerdefinierte Synchronisation¶
Sind die in ecu.test bereitgestellten Synchronisationsmethoden nicht ausreichend, kann eine benutzerdefinierte Synchronisation implementiert werden.
Eine vollständige Beschreibung aller implementierbaren Methoden und der an sie übergebenen Schnittstellenobjekte ist in der Dokumentation zur Trace Analysis API zu finden.
Eine Implementierung dieser Schnittstelle wird als Python-Modul im Verzeichnis für Benutzer-Python-Bibliotheken abgelegt. Die eigene Synchronisation steht dann abgesetzt von den mitgelieferten Methoden zur Auswahl.
Die Zeitbeschränkungsparameter MaxDeltaT und TimeLimit stehen allen benutzerdefinierten Synchronisationen zur Verfügung.
Weitere Parameter sowie die zur Verfügung stehenden Signale obliegen der konkreten Implementierung und werden im Dialog zur Parameterisierung aufgeführt.