Größen in FPScript

07.02.2018
 Daten mathematisch analysieren > Formel > FPScript > Größen in FPScript

Größen in FPScript

Physikalische Größen

Eine Stärke von FPScript ist das Rechnen mit physikalischen Größen, welche sich aus Wert und Einheit zusammensetzen. FPScript verwaltet hierbei nicht nur das Symbol der Einheit, sondern auch die SI-Dimension, mit der es möglich wird, unterschiedliche Einheiten auf Kompatibilität zu prüfen und ggf. zu transformieren.

Eingeben von Größen

Eine Konstante wird durch Anhängen einer Einheit zur Größe. Der Wert einer Größe kann den Datentyp 32- oder 64-Bit Fließkomma haben, jeweils reell oder komplex. Größen mit ganzzahligem Datentyp werden nicht unterstützt.

Die Einheit wird durch Leerzeichen getrennt hinter die Konstante geschrieben, z. B.:

1.3 N

Eine Ausnahme bilden die Einheiten Grad (°), Minute (´) und Sekunde (´´). Diese werden ohne Leerzeichen direkt hinter den Zahlenwert geschrieben:

15° + 30´ + 45´´

oder

15° + 30' + 45"

Aus den meisten Einheiten können mittels eines SI-Präfix neue Einheiten gebildet werden:

1 kHz

1 MHz

1 µm

FPScript akzeptiert auch die oft verwendete Schreibweise mit u statt µ für das Präfix "micro":

1 um ist gleich 1 µm

Allein geschrieben wird u jedoch als das Symbol für die atomare Masseneinheit interpretiert:

1 u ist gleich 1 Da ist gleich 1 Dalton

FPScript akzeptiert das Symbol oder den Namen einer Einheit. Beim Symbol wird Groß-/Kleinschreibung berücksichtigt und beim Namen ist diese nicht relevant. Korrekte Schreibweisen sind:

5 V

5 mV

5 Volt

5 volt

5 Millivolt

2 Ω

2 Ohm

Nicht akzeptiert werden dagegen:

5 mVolt

5 Volts

Abgeleitete Einheiten können als Produkt von Potenzen von bekannten Einheiten aufgebaut werden:

1 N m

1 N*m

1 N·m

Exponenten leiten Sie mit dem ^-Zeichen ein:

1 m s^-2

Für die Exponenten 2 und 3 akzeptiert FPScript auch die hochgestellten Ziffern:

1 m²

1 m³

Statt negativer Exponenten können Sie auch das /-Zeichen (Division) verwenden:

1 m/s^2

1 1/min

Achten Sie auf korrekte Klammerung:

1 m/(s kg)

Wenn Sie die Einheitenüberwachung auf der Registerkarte Einheitenverwaltung im Dialogfeld Eigenschaften der Projektdatenbank auf Tolerant stellen, dann können Sie das Leer- bzw. Multiplikationszeichen zwischen den Elementareinheiten weglassen:

1 Ws

Dies hat jedoch zur Folge, dass auch unbeabsichtigte Interpretationen auftreten können, z. B:

5 Volts

wird dann akzeptiert als

5 V·o·l·t·s

gleich 5 Volt·Oktett·Liter·Tonne·Sekunde.

Hinweis   Sie vermeiden Fehlinterpretationen indem Sie ausschließlich Einheitensymbole verwenden und diese durch Leerzeichen trennen. Verwenden Sie µ und nicht u für das Präfix "micro". Achten Sie sorgfältig auf die Groß-/Kleinschreibung, sowohl beim Präfix als auch beim Einheitensymbol. Typische Fehler sind S (Siemens=Leitwert) statt s (Sekunde=Zeit) oder M (mega=106) statt m (milli=10-3).

Es können auch rationale Exponenten verwendet werden. Folgendes Beispiel stellt das Franklin aus dem Gauß-Einheitensystem in SI-Einheiten dar:

1 g^(1/2) cm^(3/2) s^-1

Einheiten können einen Vorfaktor und einen Offset enthalten. Folgendes Beispiel stellt die Einheit ° Fahrenheit in der SI-Einheit Kelvin dar:

1 0.555555555555555K+255.3722222222222

Bei Mehrdeutigkeiten müssen Sie die Einheit in Hochkomma setzen:

Dim s = 2

v = 3 'Vs'*s

Auch bei einem negativen Vorfaktor ist dies nötig:

5 '-1.602176487E-19 C'

Das Einheitensymbol kontrollieren

FlexPro zerlegt eine Einheit während der Übersetzung in ihre Elemente und speichert die Einheitensymbole der Elemente einzelnen mit Ihren entsprechenden Exponenten. Zusätzlich wird das Einheitensymbol wie angegeben als benutzerdefiniertes Einheitensymbol gespeichert. Für:

1 N m/(1/min)

wird also als benutzerdefiniertes Symbol "Nm/(1/min)" gespeichert und als Symbole der Elementareinheiten "N", "m", "min" mit den Exponenten 1, 1, 1. Beim Verrechnen unterschiedlicher Einheiten wird das benutzerdefinierte Symbol verworfen und Ergebniseinheitensymbol wird aus den Symbolen der Elementareinheiten rekonstruiert:

1 N m/(1/min) * 1 min^-1

ergibt:

1 N m

Das benutzerdefinierte Symbol können Sie mit der Funktion ChangeUnitSymbol ersetzen, ohne dass die Einheit tangiert wird. Mit der gleichen Funktion können Sie es auch löschen. FlexPro regeneriert das Einheitensymbol dann wieder aus den Elementareinheiten. Für obiges Beispiel ergibt das "N m min".

Rechnen mit Größen

FPScript passt Einheiten vor der Verrechnung von Größen aneinander an. Folgender FPScript-Ausdruck:

1 V + 2 mV

liefert z. B. das Ergebnis 1,002 V und nicht etwa den Wert 3, den eine Berechnung ohne Berücksichtigung der Einheit liefern würde. Der rechte Operand wird vor der Addition auf die Einheit des linken transformiert.

Das Gleiche gilt für Vergleichsoperationen:

5 mV < 1 V

liefert z. B. TRUE und nicht FALSE.

Eine weitere häufige Fehlerquelle bei der rein numerischen Berechnung von Größengleichungen ist die Verrechnung inkompatibler Einheiten. Der Ausdruck:

1 A + 2 V

erzeugt in FPScript eine Fehlermeldung, da die Einheiten Ampere und Volt unterschiedliche SI-Dimensionen haben.

1 km + 5 NM

ist dagegen zulässig, da die nautische Meile in km umgerechnet werden kann.

Wenn Werte, d. h. reine Zahlen, mit Größen verrechnet werden, dann nimmt der Wert implizit die Einheit der Größe an:

1 V + 2 = 2 + 1 V = 3 V

Dieses Grundprinzip, das auch für Vergleichs- und weitere Operationen sowie für Funktionsargumente gilt, erleichtert es, "einheitenneutralen" FPScript-Code zu schreiben.

Bei manchen Operationen wird die Einheit des Ergebnisses aus den Einheiten der Argumente gebildet:

1 m / 2 s

liefert 0.5 m/s als Ergebnis.

(1 m) ^ 2

liefert 1 m^2 als Ergebnis.

Bei vektoriellen Daten, d. h. Datenreihen und Datenmatrizen, haben alle Elemente immer die gleiche Einheit. Die einzelnen Komponenten einer zusammengesetzten Datenstruktur können dagegen unterschiedliche Einheiten haben, so kann z. B. die Y-Komponente eines Signals die Einheit Nm haben und die X-Komponente die Einheit s.

Die Einheiten werden nicht nur bei den Operatoren von FPScript, sondern auch in allen FPScript-Funktionen berücksichtigt:

Derivative(Weg)

liefert z. B. die Geschwindigkeit in der Einheit m/s für den Fall, dass Weg ein Zeitsignal mit der X-Einheit s und der Y-Einheit m ist.

Je nach Einstellung der Einheitenverwaltung lässt FPScript auch unbekannte Einheiten zu, die dann jedoch nicht transformiert werden können, z. B. ergibt:

1 Dummy + 3 Dummy

das Ergebnis 4 Dummy.

Den Wert einer Größe ermittelt der Value-Operator:

Value 5 mm

liefert den 64-Bit Fließkommawert 5.

Mit dem Unit-Operator können Sie die Einheit einer Größe transformieren:

Unit<mm> 2 cm

liefert 20 mm als Ergebnis.

Hinweis   Das Verhalten von FPScript in Bezug auf die Verarbeitung von Einheiten hängt von der auf der Registerkarte Einheitenverwaltung im Dialogfeld Eigenschaften der Projektdatenbank eingestellten Einheitenüberwachung ab.

Einheitenrechnung

Mit der Unit-Funktion können Sie die Einheit einer Größe extrahieren:

Unit(5.3 V)

// Hier wird eine Datenreihe mit zwei Werten übergeben

Unit({56 V, 7.8 V})

Beide Aufrufe liefern 1 V als Ergebnis.

Sie können somit Einheitenrechnungen durchführen und mit der AdjustUnit-Funktion eine Größe auf die Ergebniseinheit transformieren:

AdjustUnit(Frequenz, 1 / Unit(Zeit))

Die Einheit von Frequenz wird auf den Kehrwert der Einheit von Zeit transformiert.

Prozentrechnung mit den Einheiten % und ppm

Die Grundrechenarten Addition, Subtraktion, Multiplikation und Division werden für Operanden mit der Einheit % oder ppm auf der rechten Seite in besonderer Weise berechnet:

200 m + 10 % = 200 m + 200 m * (10/100) = 220 m

200 m - 10 % = 200 m - 200 m * (10/100) = 180 m

200 m * 20 % = 200 m * (20/100) = 40 m

200 m / 20 % = 200 m / (20/100) = 1000 m

Bei der Einheit ppm wird analog mit dem Faktor 1.000.000 statt mit 100 gerechnet.

Hinweis   Die Prozentrechnung muss auf der Registerkarte Einheitenverwaltung im Dialogfeld Eigenschaften der Projektdatenbank eingeschaltet sein. Ansonsten werden die Einheiten % und ppm wie alle anderen Einheiten behandelt.

Siehe auch

Einheitenverwaltung

Share article or send as email:

You might be interested in these articles