Interpolation (Modulbaustein)

Interpoliert Werte zwischen vorgegebenen Stützpunkten

Syntax

["Interpolation","$InF", "$OutF", [ [x1,y1] , [x2,y2] , ... , [xn,yn ] ] ]

Funktion

Interpoliert zwischen den nächstgelegenen Stützpunkten den Funktionswert einer punktweise definierten Kennlinie.

 

Eingänge

  • "$InF"(float): Zu berechnender Wert (resp. sein X-Wert)

  • [x1,y1] , [x2,y2] , ... , [xn,yn ] ]: Array mit den Stützpunkten, beschrieben über ihre jeweiligen x- und y-Werte (vom Typ: integer).
    Die Stützpunkte werden direkt in der Moduldeklaration als Zahlen eingetragen werden, also zum Beispiel [[0,0,] , [5.5,11], [20,18]] ; die Verwendung von Variablen ist nicht vorgesehen.

Ausgänge

  • "$OutF"(float): Ergebnis der Berechnung, d.h. Y-Wert des Eingangs

Besonderheiten

  • Die Stützpunkte [xi,yi] müssen folgende Bedingung erfüllen:
    xi < xi+1 , d.h. die Stützpunkte müssen nach ihren x-Werten aufsteigend sortiert sein und x-Werte dürfen nicht doppelt vorkommen

  • Die Berechnung des Ausgangswertes erfolgt mit abschnittsweiser linearer Interpolation.
    Zusätzlich werden die Ein- und Ausgangswerte auf den Wertebereich der Stützpunkte limitiert, d.h. bei Eingangswert (X) und Ausgangswert (Y) X < x1y1 X = xiyi xi < X < xi+1yi + (yi+1 - yi) / (xi+1 - xi) * (X - xi) X > xnyn

Praktische Anwendungsbeispiele

Entsprechendes Logik-Modul

 Dieses Modul ist nicht als standalone Modulbaustein vorhanden.

Vereinfachte Erläuterung für mathematisch wenig erfahrene Anwender:

  • Vorgegeben ist ein Array von blauen Stützpunkten über ihre X- und Y-Werte

  • Die Stützpunkte definieren den Verlauf einer Kennlinie; diese wird durch die lineare (d.h. “gerade”) Verbindung zwischen zwei Stützpunkten festgelegt.

  • Der Modulbaustein interpoliert anhand der Kennlinie den Y-Wert eines vorgegebenen x-Position die y

Weitere Informationen:

Beispiel: Interpolation von Eingangswerten im Bereich von 0 bis 1 auf Prozentwerte von 0% bis 100%

Quelle: https://forum.timberwolf.io/app.php/kb/viewarticle?a=101

{ "Level": [ ["$In", "float", 0.0], ["$Out", "float", 0.0] ], "Module": [ ["Interpolation","$In", "$Out", [[0,0],[1,100]]] ], "Input": [ ["Eingang","Eingangswert (x)", "$In", "a"] ], "Output": [ ["Ausgang","Ausgangswert (y)","$Out", "a"] ] }

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