- 12V Akku mit 280 Ah bauen         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 31

Thema: Kalman Filter für BASCOM

  1. #21
    Benutzer Stammmitglied
    Registriert seit
    17.08.2009
    Beiträge
    31
    Anzeige

    Praxistest und DIY Projekte
    @ mare_crisium

    Ja, die Formeln interessieren mich! Wäre sehr nett, wenn du sie mal posten würdest!

    VG Dirk

  2. #22
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    Dirk,

    hier ist meine Berechnung. Du musst sie kritisch lesen, weil sie etwas freihändig abgeleitet ist . Der Pferdefuss ist mir leider zu spät aufgefallen: Wenn ein Messwert sehr nahe am vorherigen Wert des Mittelwerts liegt, dann gibt's eine Division durch Null. Ich habe inzwischen verschiedene andere Gewichtsfunktionen ausprobiert, um das Problem zu umgehen, leider bisher ohne Erfolg. Vielleicht hast Du ja einen guten Einfall !

    mare_crisium

    Edit1: Anhang gelöscht wg. Upload-Quota

  3. #23
    Benutzer Stammmitglied
    Registriert seit
    17.08.2009
    Beiträge
    31
    Danke mare_crisium!
    Habe mir die PDF gerade angesehen, sieht ganz interessant aus. Aber um das zu verstehen, muss ich mir das wohl erstmal etwas näher zu Gemüte führen
    Die PDF hast du mit OpenOffice erstellt? Hat das etwa einen brauchbaren Formeleditor?

    Viele Grüße!

  4. #24
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Das Problem mit dem großen Gewicht bei Werten, die zufällig dem alten Mittelwert entsprechen, sollte sich lösen lassen. Am einfachsten, indem man einfach eine feste obere Schranke einbaut. Das könnte etwa so sein, das der letzte Wert maximal etwa 1/3 des Gesamtwichtes haben kann.
    Eine andere alternative wäre es statt der harten Begrenzung eine nichtlineare Funktion zu nutzen, die bei einem Wert in Sättigung geht. Z.B. statt 1/(Xn+1-Xm)^2 einfach 1/((Xn+1- Xm)^2 + const.)

    Schon ein interessanter Ansatz, aber es gibt noch ein paar Probleme:
    Wenn man einmal k Werte hat zu zufällig gleich sind, das kann beim AD mit nicht so viel Auflösung und eher kleinem k) schon mal vorkommen, dann werden andere Werte kaum noch berücksichtige und man kommt kaum davon weg.

    Wenn die Werte wirklich stark verrauscht sind, kommt auch mal ein Wert nahe dem alten Mittelwert zufäälig vor, und der wird dann besonders stark gewertet. Das ist aber für ein normalverteiltes Rauschen nicht ideal. Ideal wäre da ein einfaches konstates gewicht.

    Die Idee Werte die Weit von dem erwarteten Mittelwert abweichen schwächer zu gewichten findet man in sogenanten robusten Schätzern. Die Idee dabei ist es einzelen Ausreißer die mehr oder weniger offensichtlich nicht zu den anderen Werten passen nicht zu berücksichtigen. Der eher übliche Weg ist es Regeln zu finden welche Werte als Ausreißer gelten und dann gar nicht mehr berücksichtiget werden. Das könnten werte sein, die mehr als z.B. 4 mal so stark vom alten mittelwert abweichen wie sonst üblich. Oder man verwirft von z.B. 10 Werten den größten und den kleinsten. Bis hin zum Median, als nur dem Wert mit mittlerer Größe aus den letzten k werten.

    Verglichen mit dem Verfahren oben, werden dabei die meisten werte gleich gewichtet, nur Werte die wirklich weit abweichen bekommen weniger Gewicht. Die oben vorgeschlagene Begrenzung der Gewichte ist also mehr die Regel als die Ausnahme.

  5. #25
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    @Dirk,

    ja, der Formeleditor von OpenOffice ist ziemlich gut.

    @Besserwessi,

    danke für die Anregungen , ich werde sie mir durch den Kopf gehen lassen. Die Schwäche mit den Messwerten nah am Mittelwert ist mir bewusst; nur hat mich keine der alternativen Gewichtungsfunktion, die ich bisher ausprobiert habe, wirklich überzeugt.

    Am Besten ist es natürlich, wenn der Sensor gleich auch ein Genauigkeitsmass liefert: Z.B. beim GPS-Empfänger die Anzahl empfangener Satelliten oder beim Maussensor die Anzahl beobachteter Einzelheiten.

    mare_crisium

  6. #26
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo Filtersucher,

    ich bin bei meiner Recherche vor einiger Zeit auf http://www.winfilter.20m.com/ gestoßen.
    Natürlich wird dort auch kein Kalmanfilter geboten, aber man kann so einige Filtertypen einstellen (IIR/FIR Low-/High-Pass/... Butherworth/Chebychev/Bessel/...). Auch die Filterordnung ist einstellbar.

    Das geniale an dem Programm ist, dass es C-Code erzeugt und dazu die Koeffizienten für den Filter aus den Eingaben berechnet und gleich mit im Code einträgt.
    Der Haken ist natürlich die Zeitabhängigkeit der Filter. Die generierte Funktion muss halt immer zeitlich passend aufgerufen werden. Aber das ist ja normal.


    Ansonsten kann ich mich Vitis nur anschließen, wenn es um Folien aus Dirk123's Link geht. Puuuaaa!
    Aber zum Glück kann man mare_crisium's pdf gut folgen. Auch die Bemerkungen von Besserwessi kann ich noch lesen. Allerdings kommt mir der Vorschlag mit dem "statt 1/(Xn+1-Xm)^2 einfach 1/((Xn+1- Xm)^2 + const.)" etwas komisch vor. Zumindest erkenne ich da keine Lösung zum Problem der "Division durch 0" da ja der Divisor immer noch 0 werden kann. (Aber wahrscheinlich geht es Besserwessi da nicht um die Division. Mein Mathewissen ist leider heftigst begrenzt.)

    Frohes filtern wünscht
    Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

  7. #27
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    Buona sera, Sternthaler,

    freut mich aber, dass Du Dich noch für Mathe interessierst ! Ich habe natürlich noch mit meinen Formeln weitergespielt. Das Ergebnis ist aber nicht 100%ig befriedigend. Aber vielleicht kan der eine oder andere doch was damit anfangen.

    Ciao,

    mare_cirisum

    Edit1: Anhang gelöscht wg. Upload-Quota

  8. #28
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    @Sterntahler:
    Das Problem mit der Division durch 0 hat man durch die zusätzliche Konstante im Nenner schon erledigt. Der Teil vor der Konstante ist als Quarat nie negativ. Mit einer Positiven Konstante hat man also immer etwas das drößer ist als die Konstante und damit auch eine obere grnze für das Gewicht der Messwerte. Der Vergleich mit den sonst üblichen Verfahren zeigt eher das die Konstante ruhig relativ groß sein kann, denn ohne ausreißer ist es ideal, wenn alle Werte gleich stark gewichtet werden.

    @mare_cirisum:
    Ich befürchte die Ideen zur schätzung der Genauigkeit der einzelnen Messwerte haben eine Problem. Die Abweichung eines einzelen Messwertes vom vorherigen Mittel lassen kaum auf die Genauigkeit dieses einzelenen Wertes schließen. Wenn man z.B. Normalverteilte Werte bekommt, ist der Ideale Schätzer einfach ein mittelwert mit konstanten Gewichten. Alles andere wird nur schlechter.

    Das wird nur anders, wenn man eine andere Verteilung hat. Der Fall der gelegentlich vorkommt, sind Fehlerquellen, die nur selten auftreten aber einen großen Einfluß haben. Dann sind Werte weit weg häufiger als bei der Normalverteilung und sollte irgendwie unterdrückt oder abgeschwächt werden. Bei den Werten dicht am Mittelwert hat man keine Chance die von normalen Werten irgendwie zu unterscheiden, und sollte sie also alle gleich behandeln.

    Dazu gibt es schon einige gut entwickelte und anerkannte Formeln unter dem Begriff "robuste Schätzer".

  9. #29
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Guten Morgen mare_crisium,

    klar interessiere ich mich noch für Mathe. Macht mir immer wieder Spaß über Dinge zu reden von denen ich keine Ahnung habe. OK, ich weiss ganz genau worauf du hinaus willst, ich komme aber nicht in die Pötte .


    Hallo Besserwessi,

    danke für den Tritt in den Hintern. Oh man, oh man. Das ist mal wieder typisch für mich, dass solche Lapalien von mir übersehen werden.


    Und da kommen sie schon wieder die Fragen zu übersehenen Dingen:

    Im deinem PDF mare_crisium, führst du oben in der Ableitung an:
    "Die Streuung der Messwerte wird dabei mit dem Kehrwehrt des Genauigkeitsmasses abgeschätzt"
    Wenn aber der dritte Algorithmus das Genauigkeitsmass immer reduziert (bis auf (Xn - X[mittel]n-1)=0 ), dann bedeutet dies ja automatisch, dass die Streuung immer größer wird.
    Pendeln meine Messwerte nun (zufälligerweise) immer konstant um den Mittelwert, dann ist die Streuung konstant, aber das Genauigkeitsmass wird immer weiter reduziert. (Bitte sagt mir was ich mal wieder nicht gelesen habe!)

    Frage: Entspricht deine eigene Erklärung zu dem "... Das stimmt aber nicht: ..." und auch der Einwand von Besserwessi meiner Überlegung?
    Wenn ja, gibt es dann trotzdem einen Grund diesen Ansatz zu nutzen?
    Z.B. Vorteile oder ein bestimmter Nutzen bei großem k? Oder bei Messwerten, die eben nicht zufällig konstant pendeln wie in meiner Annahme?

    Und noch eine Frage: Wo ist Algorithmus 2?
    Kann ich nun zumindest besser zählen als du, oder habe ich auch das schon wieder übersehen ?

    Gruß Sternthaler
    P.S.: Jagt meine Mathe-Beiträge lieber durch ne'n Kalman-Filter. Könnte zwar sein, dass dann nur noch OT rauskommt, aber zumindest wird das Genauigkeitsmass dieses Threads dann nicht mehr reduziert.
    Lieber Asuro programieren als arbeiten gehen.

  10. #30
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    @Sternthaler,

    tja, der zweite Algorithmus gefiel mir nicht und hab' ihn zur Strafe gelöscht. Dabei habe ich leider vergessen, die Nummerierung nachzuhalten. Pecunia astrale, pecavi!!

    Im Grunde ist das Ergebnis meiner Rechnerei, dass sich der Aufwand nicht lohnt. Es reicht völlig aus, einfach die Formel

    neuer_Mittelwert = (1-s)*alter_Mittelwert + s*neuer_Messwert

    einem angepassten Wert von s grööser als 0 und kleiner als 1 zu verwenden (siehe Code-Schnipsel von Dirk123, im Posting vom 11.10.2009).

    @Besserwessi,

    habe angefangen, mich auch mit den robusten Schätzalgorithmen zu beschäftigen. Dauert aber noch ein Weilchen .

    Ciao,

    mare_crisium

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test