Da die Impulsaufnahme anscheinend gut funktioniert geht es nun an die Auswertung.
Tiefpassfilterung hast Du ja im Prinzip schon gemacht.
Ich würde die Refreshrate auf 3 neue Anzeigen / Sekunde ändern bzw. umschaltbar machen.
Das gibt dann noch eine "lesbare" Anzeige und ist trotzdem "schnell".
Ich bin hier bestimmt nicht der große Mathematiker vor dem Herrn, aber für solche Aufgaben wird immer wieder gerne mal das Kalman Filter empfohlen.
Ich hab mich da früher schon mal reingelesen, konnte es aber nicht anwenden, da ich die Varianz der Messwerte nicht bestimmen konnte.
https://www.cbcity.de/das-kalman-fil...rklaert-teil-1
https://www.cbcity.de/das-kalman-fil...rklaert-teil-2
https://www.cbcity.de/das-extended-k...nfach-erklaert
Das ist bei Dir durch deine Messreihen anders.
Eventuell kann Dir jemand, der in Mathe besser drauf ist, mal gucken ob das hier funktionieren würde?!
Ich meine auch, anhand Deiner Messreihen, das dein Verfahren innerhalb einer festen Messperiode die Impulse zu verarbeiten zu der genauesten Messung führen wird.
Allerdings ist dadurch die Anzahl der Messwerte variabel und wird zu höheren Drehzahlen hin weniger.
Ich hab das früher mal so gelöst, das Ich ab einer bestimmten Drehzahl auf die Impulszählung mit fester Torzeit umgeschaltet habe.
Denn wenn die Pin Change Werte zu klein werden steigen die Rundungsfehler massiv an und eine Torzeitmessung bringt dann genauere Ergebnisse.
So hab's Ich gemacht:
Im ersten Moment werden dabei die Impulse pro fester Zeiteinheit ermittelt.
Sind die zu gering wird auf Impulsdauermessung ( das Verfahren, das Du jetzt benutzt ) umgeschaltet.
Bei mir war das Nötig, weil Ich an mehrblättrigen Propellern mit Drehzahlen bis 20000 U/min messen wollte und Ich deshalb stellenweise 4 Impulse pro Umdrehung bekommen habe.
Da kam dann der Pinchange Interrupt nicht mehr mit, außerdem waren da ja noch die Rundungsfehler!
Lesezeichen