NEWS
Test Adapter Tiefpassfilter
-
@ben1983 Sorry, da hatte ich mich falsch ausgedrückt. Wenn Eilieferungszeit udn Abtastzeit nahe beieinander liegen gibt es Schwebung.
-
@klassisch Sollte es eigentlich nicht geben, da bei änderung sowieso geprüft wird.
Wie äußert sich das bei Dir?Ps. zum Hintergrund, es wird schedule verwendet, da man sonst mit timeouts unterschiedliche aktualisierungen bekommen würde.
-
Erste Zwischenergebnisse. Die schwarze Linie ist der Filterausgang zur Magenta Linie
Ganz zu Beginn hatte ich auf Werteänderung getriggert. Da sprangen die Werte heftig.
Dann habe ich umgestellt
Es kommt noch immer zu Sprüngen
Ich habe meine Rohdaten gesichtet und einige "null" Werte entdeckt. Kann es sein, daß der lowpass Adapter die als 0 interpretiert?
Hier nochmals das Filtervehalten etwas detaillierter
-
@homoran said in Test Adapter Tiefpassfilter:
ein Filter ist ein Filter weil er filtert?
Wie mein Vater mir Dinge erklärt hat
-
@alinaclg sagte in Test Adapter Tiefpassfilter:
Wie mein Vater mir Dinge erklärt hat
Davon mußte ich mich sehr früh lösen. Denke diesen Begriff hat er Zeit seines Lebens nicht gehört - geschweige denn verstanden. Lauter atechnische Leute in der Familie. Also, selbst ist der Mann.
Die Erklärung eines Tiefpasses ist nicht so trivial, wie schon der zugehörige Wikipedia Artikel zeigt.
Auch die Analogie zur Federung eines Autos paßt nicht ganz, weil dort mind 2 Energiespeicher mitspielen und es sich damit um ein einen Tiefass mind. 2. Ordnung handelt, hier aber ein gutmütiger TP 1 Ordnung abgebildet wird.Vielleicht ist die Erkläung anhand der Sprungantwort des PT1-Gliedes noch halbwegs intuitiv.
Bei einem rechteckigen Sprung des Signals werden die Kanten "verschliffen". Ein verrauschtes Signal wird dadurch etwas geglättet.In dieser Implementierung hier gibt es 2 Parameter.
- Einmal die Abtastzeit, die ich erst mal etwas kleiner (vielleicht ein fünftel) als die Änderungszeit des Eingangssignals wähle.
- Die Filterzeitkonstante. Dazu legt man an den Eingang des Filters einen Sprung an, der von jetzt auf gleich von 0 auf 100% springt. Nach 1 * Filterzeitkonstante ist der Ausgnag dann bei 63% nach 5 Zeitkonstanten dann bei 99%.
Bild oben: Wikipedia Chris828
-
@klassisch Danke Dir - ich schau es mir an; ist also schon eine tiefergehende Filtermethode
-
@alinaclg naja, sagen wir mal der Einstieg dazu. Der harmloseste und gutmütigste Fall. Nur ein Energiespeicher und ein Element welche Energie vernichtet.
Filter höherer Ordnung haben mehrere Energiespeicher und können damit auch schwingen. Ähnlich wie das Feder-Masse System bei der Autofederung.
Und die Art und Weise wie die Filter höherer Ordnung ein-und auschwingen haben dann großartige Mathegenies wie Butterwoth, Bessel, Cauer und Tschebyscheff berechnet. -
@klassisch Letzterer sagt mir was vom Namen aus der Stochastik, sollte es der gleiche sein; aber es gibt ja auch einige "Bernoullis"
Danke für deine Zeit zu antworten; so habe ich ein Gefühl für den Anwendungsfall
-
@alinaclg Denke, es ist der selbe. Ja, die Familien Bernoulli und Euler sind schon phänomenal.
Btw. interessant auch die Bohr-FamilieWir werden die Filtereigenschaften an meinem Beispiel sehen. Sei es, daß der Filter die Null Werte ausblendet oder mein Skript diese vermeidet
-
@klassisch top Filter Verhalten, würde ich sagen ;-).
0 wird als ganz normaler Wert erkannt und darauf wird auch gefiltert. -
@ben1983 sagte in Test Adapter Tiefpassfilter:
0 wird als ganz normaler Wert erkannt und darauf wird auch gefiltert.
Bei mir steht aber nicht "0" sondern "null", also "kein gültiger Wert", akademisches Schulterzucken
Beispiel:
{ "val": null, "ack": 0, "ts": 1649474110435, "q": 0, "c": "script.js.tests.test-climateValues", "from": "system.adapter.javascript.0", "user": "system.user.admin" },
Gegenbeispiel
{ "val": 72.0804237247672, "ack": 0, "ts": 1649473810456, "q": 0, "c": "script.js.tests.test-climateValues", "from": "system.adapter.javascript.0", "user": "system.user.admin" },
In meinen Graphen fällt das nicht auf, weil FLOT das ausblenden kann und ich das standarmäßig so einstelle.
Stellt sich die Frage, ob Du auch so eine Möglichkeit einbauen möchtest?
Und ja, ansonsten sieht die Sprungantwort gut aus....
-
@klassisch Für mich stellt sich erst mal die Frage, warum bei Dir NULL Werte kommen
-
@ben1983 sagte in Test Adapter Tiefpassfilter:
@klassisch Für mich stellt sich erst mal die Frage, warum bei Dir NULL Werte kommen
Wahrscheinlich damit man auch diesen Fall testen kann
-
@klassisch Du möchtest also eine Checkbox
NULL ausblenden…. Oder Wert ausblenden…. Und wert xy eintragen? -
@ben1983 Ja, vielen Dank!
Ja, das wäre das erste Resultat meines Tests.
Und wenn das altbewährte Flot so etwas implementiert hat, dann ist das sicher nicht so abwegig.
Ich habe mittlerweile vor dem Speichern der Daten auf "null" geprüft. Hat ein paar Stunden gut funktioniert. Jetzt gibt es wieder ein paar null-Werte. Muß nochmals die Skripte durchsuchen. Vielleicht gibt es auch noch andere Gründe.Zum Testen Deines TP Adapters werden diese Prüfungen natürlich wieder rausgenommen.
-
@klassisch Mir schwebt da folgendes vor.
Ein Eingabefeld, bei dem man mittels Semikolon getrennt Werte eintragen kann, welche ignoriert werden sollen. -
@ben1983 Wäre auch eine Möglichkeit.
Typische Werte wären 0 und null. Was würde man für null schreiben? null oder "null"?
So eine offene Liste macht aber viel Arbeit. Man muß alles mögliche abfangen, Länge begrenzen etc. Künnte ja einer <0 oder <=0 schreiben. Checkboxen für 0 und null sind da wahrscheinlich einfacher. -
@klassisch ich würde dann einfach auf die eingetragenen Werte abfragen, dass geht ja Ruck zuck. Müsste nur die Semikolons suchen.
Wenn man halt <0 einträgt dann ist die Bedingung halt nicht erfüllt. -
@ben1983 So weit reichen meine JS Kenntnisse nicht.
Aber so ein freies Feld weckt Begehrlichkeiten und hat das Potential Fragen und Mißverständnisse zu schaffen.
Jemand gibt nach bestem Wissen und Gewissen etwas ein und JS macht etwas anderes draus. Schon hat man Fragen udn Unsicherheit generiert. -
@klassisch stimmt wohl.
Ich schau mir mal eine Tabelle an.