- Input und Output Datentyp frei wählbar (=> z.B. wäre neben dem üblichen float/float auch ein bool/string sinnvoll, dass Zustände in Text übersetzt)
- Config ob interpolierend oder nächst bester Wert (ggf. mit der Wahl zwischen auf/ab/kaufmännisch runden)
- Config ob extrapolierend oder Clamp auf min/max Wert
- Für den Anfang sollte Kennlinie und Kennfeld (also 1D und 2D reichen)
UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ
NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ
NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074
[Implemented] Logik: Look-up-Tabelle
-
- Reactions:
- Beiträge: 1190
- Registriert: Sa Aug 11, 2018 10:52 pm
- Wohnort: Oberbayern
- Hat sich bedankt: 234 Mal
- Danksagung erhalten: 853 Mal
- Kontaktdaten:
Logik: Look-up-Tabelle
Bei den Logiken fehlt mir eine Look-up-Tabelle:
Zuletzt geändert von Robert_Mini am Mo Nov 18, 2019 11:12 am, insgesamt 1-mal geändert.
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!
CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.
TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache
CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.
TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache
-
- Elaborated Networks
- Reactions:
- Beiträge: 588
- Registriert: Mi Aug 15, 2018 11:34 am
- Hat sich bedankt: 82 Mal
- Danksagung erhalten: 558 Mal
Hallo Chris,
Eine einfache Lookup-Tabelle lässt sich mit den Multiplexern umsetzen.
Die eigentlichen Eingänge als Parameter auslegen und mit dem Selektor erfolgt dann die Auswahl.
Damit lassen sich dann auch Integer-Werte in Texte/Strings umwandeln.
Die Multiplexer werden, neben Integer, auch Boolean (false = 0 ; true = 1) als Selektor akzeptieren.
Aktuell kannst du das aber leider noch nicht ausprobieren, da müssen wir noch die Oberfläche gerade ziehen.
Wenn du Lookup-Tabelle mit Interpolation für die Nachbildung von beliebigen Funktionskurven benötigst, kann man das auch gut mit der Polynomialfunktion annähern. Bei gegebenen Wertepaaren (auch statistische Werte) lassen sich die Koeffizienten ganz gut hier bestimmen:
https://www.arndt-bruenner.de/mathe/scripts/regr.htm (als Term ein Polynom n.Grades auswählen)
Eine 2D oder mehr-D Lookup-Tabelle ließe sich mit einer Verkettung von mehreren Polynomialfunktionen erreichen, aber da wird es dann aufwändiger.
Gruß,
Stefan K.
Eine einfache Lookup-Tabelle lässt sich mit den Multiplexern umsetzen.
Die eigentlichen Eingänge als Parameter auslegen und mit dem Selektor erfolgt dann die Auswahl.
Damit lassen sich dann auch Integer-Werte in Texte/Strings umwandeln.
Die Multiplexer werden, neben Integer, auch Boolean (false = 0 ; true = 1) als Selektor akzeptieren.
Aktuell kannst du das aber leider noch nicht ausprobieren, da müssen wir noch die Oberfläche gerade ziehen.
Wenn du Lookup-Tabelle mit Interpolation für die Nachbildung von beliebigen Funktionskurven benötigst, kann man das auch gut mit der Polynomialfunktion annähern. Bei gegebenen Wertepaaren (auch statistische Werte) lassen sich die Koeffizienten ganz gut hier bestimmen:
https://www.arndt-bruenner.de/mathe/scripts/regr.htm (als Term ein Polynom n.Grades auswählen)
Eine 2D oder mehr-D Lookup-Tabelle ließe sich mit einer Verkettung von mehreren Polynomialfunktionen erreichen, aber da wird es dann aufwändiger.
Gruß,
Stefan K.
Zuletzt geändert von S. Kolbinger am Mo Apr 22, 2019 12:03 pm, insgesamt 1-mal geändert.
Gruß,
Stefan K.
Stefan K.
-
- Reactions:
- Beiträge: 1190
- Registriert: Sa Aug 11, 2018 10:52 pm
- Wohnort: Oberbayern
- Hat sich bedankt: 234 Mal
- Danksagung erhalten: 853 Mal
- Kontaktdaten:
Hallo Stefan,
bei Polynominterpolation sollte man auf alles über Kubisch verzichten, da das Ergebnis sonst gerne mal nicht stabil sein wird.
Umgedreht ist eine (lineare) Interpolation von Look-up-Tabellen sehr stabil und es lassen sich beliebige Funktionsverläufe beliebig genau approximieren, das auch noch bei sehr guter Performance. Nicht umsonst sind die in professionellen Steuer- und Regelsystemen in großer Anzahl vorhanden. Polynome dagegen nur sehr selten.
(Mit stabil meine ich nicht die triviale numerische Definition, sondern das, was praktisch übrig bleibt)
bei Polynominterpolation sollte man auf alles über Kubisch verzichten, da das Ergebnis sonst gerne mal nicht stabil sein wird.
Umgedreht ist eine (lineare) Interpolation von Look-up-Tabellen sehr stabil und es lassen sich beliebige Funktionsverläufe beliebig genau approximieren, das auch noch bei sehr guter Performance. Nicht umsonst sind die in professionellen Steuer- und Regelsystemen in großer Anzahl vorhanden. Polynome dagegen nur sehr selten.
(Mit stabil meine ich nicht die triviale numerische Definition, sondern das, was praktisch übrig bleibt)
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!
CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.
TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache
CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.
TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache
-
- Elaborated Networks
- Reactions:
- Beiträge: 588
- Registriert: Mi Aug 15, 2018 11:34 am
- Hat sich bedankt: 82 Mal
- Danksagung erhalten: 558 Mal
Hallo @Chris M.,
ich habe deinen Vorschlag Interpolations-Funktion aufgegriffen und als Modul für die LE umgesetzt.
Syntax: ["Interpolation","$In", "$Out", [ [x1,y1] , [x2,y2] , ... , [xn,yn ] ] ]
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 abschnittweiser linearer Interpolation.
Zusätzlich werden die Ein- und Ausgangswerte auf den Wertebereich der Stützpunkte limitiert:
Einfaches Beispiel für Verhältniszahl (0 - 1.0) => Prozent (0 - 100)
ich habe deinen Vorschlag Interpolations-Funktion aufgegriffen und als Modul für die LE umgesetzt.
Syntax: ["Interpolation","$In", "$Out", [ [x1,y1] , [x2,y2] , ... , [xn,yn ] ] ]
- "Interpolation" (Modulbezeichner)
- "$In" (Referenz auf Eingangs-Level)
- "$Out" (Referenz auf Ausgangs-Level)
- [ [x1,y1] , [x2,y2] , ... , [xn,yn ] ] (Stützpunkte der Interpolatioin)
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 abschnittweiser linearer Interpolation.
Zusätzlich werden die Ein- und Ausgangswerte auf den Wertebereich der Stützpunkte limitiert:
Eingangswert (X) | Ausgangswert (Y) |
---|---|
X < x1 | y1 |
X = xi | yi |
xi < X < xi+1 | yi + (yi+1 - yi) / (xi+1 - xi) * (X - xi) |
X > xn | yn |
Einfaches Beispiel für Verhältniszahl (0 - 1.0) => Prozent (0 - 100)
Code: Alles auswählen
{
"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"]
]
}
Zuletzt geändert von S. Kolbinger am Do Jul 18, 2019 1:58 pm, insgesamt 2-mal geändert.
Gruß,
Stefan K.
Stefan K.
-
- Reactions:
- Beiträge: 428
- Registriert: Mo Okt 15, 2018 9:24 pm
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 208 Mal
D.h. der Wert für "z" in der (Temperaturwerte)Reihe 23, 24, 24, z, 23, 23 liesse sich damit nicht interpolieren?... und x-Werte dürfen nicht doppelt vorkommen...
Gruss
Stephan
TWS 2500 ID:677, PBM ID:495 & ID:632, TWS 2500 ID:574, TWS 2500 ID:220, PBM ID:1022, VPN offen, Neustart kein Problem
-
- Elaborated Networks
- Reactions:
- Beiträge: 588
- Registriert: Mi Aug 15, 2018 11:34 am
- Hat sich bedankt: 82 Mal
- Danksagung erhalten: 558 Mal
Hallo Stephan,
Darum glaube ich, dass es sich hier um ein Missverständnis handelt.
Bei der linearen Interpolation wird eine Abbildungsfunktion, also eine Abbildung eines Eingangswertes x auf einen Ausgangswert y = f(x) angenähert.
Damit lassen sich z.B. nichtlineare Kennlinien von Sensoren korrigieren.
So kann man auch logarithmische Dimmkurven für LED-Leuchten erzeugen:
Das dazugehörige Modul würde dann so aussehen:
["Interpolation","$In", "$Out", [ [0,0] , [80,5] , [150,25] , [200,76] , [234,161] , [255,255] ] ]
ich bin mir nicht sicher, ob ich die Frage richtig verstehe.
Darum glaube ich, dass es sich hier um ein Missverständnis handelt.
Bei der linearen Interpolation wird eine Abbildungsfunktion, also eine Abbildung eines Eingangswertes x auf einen Ausgangswert y = f(x) angenähert.
Damit lassen sich z.B. nichtlineare Kennlinien von Sensoren korrigieren.
So kann man auch logarithmische Dimmkurven für LED-Leuchten erzeugen:
Das dazugehörige Modul würde dann so aussehen:
["Interpolation","$In", "$Out", [ [0,0] , [80,5] , [150,25] , [200,76] , [234,161] , [255,255] ] ]
Gruß,
Stefan K.
Stefan K.
-
- Reactions:
- Beiträge: 428
- Registriert: Mo Okt 15, 2018 9:24 pm
- Hat sich bedankt: 103 Mal
- Danksagung erhalten: 208 Mal
Dann war es ein Missverständnis. Ich ziehe die Frage zurück.
TWS 2500 ID:677, PBM ID:495 & ID:632, TWS 2500 ID:574, TWS 2500 ID:220, PBM ID:1022, VPN offen, Neustart kein Problem
-
- Reactions:
- Beiträge: 3741
- Registriert: So Aug 12, 2018 8:44 am
- Hat sich bedankt: 1164 Mal
- Danksagung erhalten: 2058 Mal
Super - Danke für die perfekte Umsetzung!!!
Wieder einen (vielfach nutzbaren) Kundenwunsch erfüllt .
Und in die KB rutscht dein Beitrag auch gleich rein...
@Stefan K.: Hattest du schon mal Gelegenheit diesen Fehler zu analysieren?
viewtopic.php?f=31&t=1172
Danke und lg
Robert
Wieder einen (vielfach nutzbaren) Kundenwunsch erfüllt .
Und in die KB rutscht dein Beitrag auch gleich rein...
@Stefan K.: Hattest du schon mal Gelegenheit diesen Fehler zu analysieren?
viewtopic.php?f=31&t=1172
Danke und lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
-
- Reactions:
- Beiträge: 3741
- Registriert: So Aug 12, 2018 8:44 am
- Hat sich bedankt: 1164 Mal
- Danksagung erhalten: 2058 Mal
KB online, eingearbeitet in folgendende Artikel:
app.php/kb/viewarticle?a=87
app.php/kb/viewarticle?a=101
@S. Kolbinger: Wird es diesen Baustein auch als Standardbaustein geben?
Robert
app.php/kb/viewarticle?a=87
app.php/kb/viewarticle?a=101
@S. Kolbinger: Wird es diesen Baustein auch als Standardbaustein geben?
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297