Polynomial (Modulbaustein)

Mittels Polynom können Additionen, Subtraktionen, Multiplikationen und einfache Exponenten-Aufgaben gelöst werden.

Syntax

["Polynomial", "$Variable_X", "$Out",["$A0", "$A1", "$A2", ..., "$An]]

Funktion

Löst Additionen, Multiplikationen und Exponenten-Aufgaben durch die Berechnung des Funktionswert eines Polynoms der Form:
f(x)=A0 + A1 * X + A2 * X^2 + ... + An * X^n

Eingänge

  • "$Variable_X"(float): Variable X in der Polynomformel

  • ["$A0", "$A1", "$A2", ..., "$An"]: Array der Koeffizienten, bestehend aus einer oder mehreren Variablen vom Typ float

Ausgänge

  • "$Out"(float): Ergebnis der Berechnung

Besonderheiten

  • Für mathematisch weniger geübte Menschen wird die Polynomformel leichter lesbar, wenn sie mit Klammern geschrieben wird:
    A0 + (A1 * X1) + (A2 * X2) + (A3 * X3) + ( ...) + (An * Xn)

  • Wird "$Variable_X" der Wert 1 zugewiesen, erhält man eine lineare Funktion; diese eignet sich für Additionen und Subtraktionen. Für Subtraktion den entsprechenden Koeffizient mit einem Minuszeichen "invertieren", dann wird ein negativer Wert summiert.

Praktische Anwendungsbeispiele

  • Addition: Berechnung von 7 + 4:

    • "$Variable_X" mit Wert 1

    • "$A0" mit Wert 7

    • "$A1" mit Wert 4

  • Subtraktion: Berechnung von 7 - 4:

    • "$Variable_X" mit Wert 1

    • "$A0" mit Wert 7

    • "$A1" mit Wert -4

  • Multiplikation: Berechnung von 7 * 4:

    • "$Variable_X" mit Wert 7

    • "$A0" mit Wert 0

    • "$A1" mit Wert 4

  • Potenzierung: Berechnung von 72:

    • "$Variable_X" mit Wert 7

    • "$A0" mit Wert 0

    • "$A1" mit Wert 0

    • "$A2" mit Wert 1

  • Formeln, um mit diesem Modulbaustein annäherungsweise Tangens (tan), Cosinus (cos) und Arkustangens (arctan) zu berechnen: https://forum.timberwolf.io/viewtopic.php?f=46&t=1389

  • Beispiel: Zeitlicher Event um X Minuten vor eine bestimmten Uhrzeit auslösen: https://forum.timberwolf.io/viewtopic.php?f=24&t=1079&p=10914&hilit=logikeditor#p11022

Entsprechendes Logik-Modul

  • →Polynomfunktion

Ergänzende Informationen:

Beispiel: Auswertung des 1-Wire-Sensors DS2438 mit Hilfe der Polynomial-Funktion

Folgende Gleichung soll mittels Logik ausgewertet werden:
(157,2327 * (VAD / VDD) - 23,82) / (1.0546 - 0.00216 * TEMP)

Zur Auswertung dieser Gleichung werden die Module "Polynomial" und "Ratio" verwendet.

{ "Level": [ ["$VAD_In","float",2.0], ["$VDD_In","float",5.0], ["$VAD_Rel","float",0.4], ["$V_Offset","float",-23.82], ["$V_Gradient","float",157.2327], ["$V_Part","float",39.07], ["$TEMP_IN","float",20.0], ["$TEMP_Offset","float",1.0546], ["$TEMP_Gradient","float",-0.00216], ["$TEMP_Part","float",39.07], ["$Result","float",47.11] ], "Module": [ ["Ratio","$VAD_In","$VAD_Rel","$VDD_In"], ["Polynomial","$VAD_Rel","$V_Part",["$V_Offset","$V_Gradient"]], ["Polynomial","$TEMP_IN","$TEMP_Part",["$TEMP_Offset","$TEMP_Gradient"]], ["Ratio","$V_Part","$Result","$TEMP_Part"] ], "Input": [ ["VAD","Messspannung","$VAD_In","c"], ["VDD","Referenz-/Versorgungsspannung","$VDD_In","c"], ["TEMP","Temperatur","$TEMP_IN","c"], ["Offset V","Offset des Spannungsanteils","$V_Offset","c"], ["Steigung V","Steigung des Spannungsanteils","$V_Gradient","c"], ["Offset T","Offset des Temperaturanteils","$TEMP_Offset","c"], ["Steigung T","Steigung des Temperaturanteils","$TEMP_Gradient","c"] ], "Output": [ ["Erbebnis","Resultierende Messgröße","$Result","c"] ] }

Die daraus generierte Logikzelle sieht wie folgt aus:

2019 - 2023 by Elaborated Networks GmbH / Impressum / Datenschutzerklärung