Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 2 Nächste Version anzeigen »

Dieser Baustein ermöglicht mathematische Berechnungen mit freier Eingabe der Rechenformel

Inhalt dieser Seite
richtet sich an
EXPERTEN

Syntax

["CalcFormula",["$Eingang1","$Eingang2,"...","$Eingang_n"], "$Result", "$Formula"]

Funktion

  • Eingangsvariablen-Array: $Eingang_n sind hier Platzthalter für beliebige Variablen-Namen, wobei diese automatisch der Reihenfolge nach und völlig unabhängig von Ihrem Namen den Formelvariabeln X1, X2,X3,... zugeordnet werden. Im Namen der Eingangs-Variabeln muss das X1 usw. nicht vorkommen.

  • Ergebnis: $Result führt das Ergebnis der Rechnung und ist vom Typ float

  • Formel: $Formula ist vom Typ string und beinhaltet die Formel, in die Variablen (X1, X2, X3,...) eingebettet werden, z.B. :"sin(X1+5*X4-X2)*X3".
    Hinweis: Die Formel muss ebenfalls im Abschnitt Level deklariert werden und kann nicht direkt im Modul als string eingetragen werden!
    Alle unterstützen Funktionen und Konstanten sind hier:
    Freie Formel (Logik-Modul) aufgelistet

Eingänge

  • ["$In1", "$In2",... ,"$In_n"]: Array der Variablen, die in der Formel verwendet werden.

Ausgänge

  • $Result liefert das Ergebnis der Berechnung zurück (in 32bit float).

Hinweise

  • Dezimalzahlen werden zwingend mit .(Punkt) und nicht mit ,(Komma) getrennt.

  • Die Schreibweise der Variablen in der Formel ist case sensitiv, also X1 (und nicht x1)

  • Ein Fehler in der Formel führt zu dem Ergebnis = 0 und dem Abbruch der gesamten weiteren Custom-Logik (siehe auch Error).

  • Einige Konstanten wie z.B. PI werden unterstützt, Die Schreibweise _pi siehe hier. Zum Zeitpunkt des Verfassen dieses Artikels werden die erweiterten Konstanten wie z.b. _rad nicht unterstützt.

  • Ein vorhandener Eingangsparameter muss nicht in der Formel genutzt werden (das ist beim Debugging von Formelfehlern hilfreich).

  • Mathematische Zeichen müssen gesetzt werden, z.B. 2*X1 (und nicht 2X1)

  • Zahlen zwischen 0 und 1 dürfen ohne die vorangehende 0 geschrieben werden (0.2 = .2), aber das ist eine sehr unschöne Schreibweise und sollte vermieden werden.

  • Leerzeichen in Formeln sind erlaubt und haben keine Auswirkung.

  • Die muparser-Funktionen if(,,) und pow(,) werden nicht unterstützt, siehe auch Besonderheiten weiter unten.

Besonderheiten

  • Dieses Modul nutzt die MuParser Bibliothek. Dadurch können die meisten der hier beschriebenen Funktionen genutzt werden.

  • pow(,) wird nicht unterstützt, kann aber einfach durch ^ ersetzt werden
    zB: X1^X2

  • Statt if() kann innerhalb einer Formel eine Fallunterscheidung mittels folgender Schreibweise umgesetzt werden: (X1>0)?X1^X2:0'
    => if(X1>0) THEN X1X2 ELSE 0

  • pow(,) lässt sich bei ganzzahligen Exponenten mit einem Polynomial-Baustein ersetzen.

Praktische Anwendungsbeispiele

  • Berechnung des Lamellenwinkels abhängig vom Sonnenstand mittels Winkelfunktionen.

  • Eintreffwinkel der Sonne auf einen Solarkollektor berechnen

Entsprechendes Logik-Modul

Freie Formel (Logik-Modul)

  • Keine Stichwörter

0 Kommentare

Sie sind nicht angemeldet. Ihre Änderungen werden mit anonym markiert. Sie sollten sich anmelden, wenn Sie bereits über ein Konto verfügen.