← Alle Dokumentation

Berechnete Signale

Panel „Berechnete Signale“ bei der Definition eines neuen Signals namens power aus dem Ausdruck torque mal motor_speed

Ein berechnetes Signal ist ein neuer Kanal, der per Formel aus einem oder mehreren bestehenden Kanälen abgeleitet wird und nicht vom Datenlogger aufgezeichnet wurde - dasselbe Prinzip wie ein Math-/virtueller Kanal in einem Werkzeug wie ETAS MDA. Formeln werden in der Syntax von mathjs geschrieben, und die Schnelleinfüge-Schaltflächen im Editor (abs, sqrt, min, max, round, sin, cos, log, die bitweisen Operatoren sowie die Vergleichs- und logischen Operatoren) sind Abkürzungen, keine abschließende Liste - jede mathjs-Funktion steht auch ohne eigene Schaltfläche zur Verfügung.

Signale referenzieren

Ein Signal wird referenziert, indem sein exakter Name als einfacher Bezeichner in den Ausdruck eingetippt wird, oder indem sein Name aus der Signalliste hineingezogen wird. Eine Formel kann nicht nur reale Kanäle, sondern auch ein anderes berechnetes Signal referenzieren, sodass eine Formel schichtweise aufgebaut werden kann: eine Einheitenumrechnung, eine darauf aufbauende physikalische Berechnung und ein auf dieser physikalischen Berechnung aufbauendes Schwellenwert- oder Klassifikationssignal - jedes davon ein eigenes, benanntes, unabhängig wiederverwendbares Signal, statt eines zunehmend unlesbaren Ausdrucks.

Wie und wann eine Formel ausgewertet wird

Anders als in einer Tabellenkalkulation wird ein berechnetes Signal einmalig ausgewertet, und zwar in dem Moment, in dem Sie es erstellen oder bearbeiten - Punkt für Punkt über jeden Messwert der aktuell geladenen Messung, nicht als einzelne vektorisierte Array-Operation. Das Ergebnis ist eine Momentaufnahme, kein reaktiv neu berechneter Wert. Wenn Sie nachträglich ein früheres Signal bearbeiten, von dem ein späteres abhängt, behält das spätere Signal seine bereits berechneten Werte; eine automatische Neuauswertung findet nicht statt. Um neue Werte zu übernehmen, müssen Sie das abhängige Signal selbst erneut öffnen und speichern.

Da alle Kanäle einer geladenen Messung auf einem gemeinsamen Zeitraster liegen (siehe Erste Schritte), muss die Formel-Engine Eingänge vor der Auswertung nicht interpolieren oder ausrichten.

Was gespeichert wird

Eine Sitzungskonfiguration speichert für jedes berechnete Signal die Formel, nicht die daraus resultierenden berechneten Werte. Beim erneuten Öffnen dieser Konfiguration - egal ob gegen dieselbe Datei oder eine andere - wird jede Formel neu ausgewertet, gegen die Messung, die in diesem Moment geladen ist, und zwar in der Reihenfolge, in der sie ursprünglich gespeichert wurden (sodass ein Signal, das auf einem anderen aufbaut, weiterhin korrekt aufgelöst wird). Referenziert eine gespeicherte Formel einen Kanal, den die neu geladene Datei nicht enthält, wird nur dieses eine Signal stillschweigend übersprungen, statt den gesamten Ladevorgang fehlschlagen zu lassen.

Beispiel. Gegeben die realen Kanäle torque (N·m) und motor_speed (rad/s), berechnet ein berechnetes Signal namens power mit dem Ausdruck torque * motor_speed und der Einheit W die mechanische Leistung an jedem Messpunkt. Ein zweites berechnetes Signal namens power_kw, Ausdruck power / 1000, Einheit kW, referenziert das erste berechnete Signal per Namen, um es in besser lesbaren Einheiten auszudrücken - zwei benannte, unabhängig sichtbare Signale statt einer einzelnen, schwer nachvollziehbaren Formel.

Einheiten und Benennung

Das Einheitenfeld eines berechneten Signals ist eine reine Textbeschriftung - es findet keine Dimensionsanalyse statt, die prüft, ob das Ergebnis einer Formel zur eingetragenen Einheit passt. torque * motor_speed wird deshalb auch mit der Beschriftung m/s ohne Warnung berechnet, obwohl das die falsche Einheit ist. Jeder Signalname, ob real oder berechnet, muss innerhalb seiner Messung eindeutig sein; die App erzwingt dies in dem Moment, in dem Sie versuchen, ein berechnetes Signal unter einem Namen zu speichern, der bereits von einem realen Kanal oder einem anderen berechneten Signal verwendet wird.

Fehler

Eine fehlerhafte Formel - ein leerer Ausdruck, unausgeglichene Klammern, ein führender oder abschließender Operator oder eine Syntax, die mathjs selbst ablehnt - wird erkannt, wenn Sie das Signal speichern, nicht fortlaufend während der Eingabe, und als Inline-Fehlermeldung angezeigt, die erklärt, was falsch ist.