- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 66

Thema: Sensorfusion mit unterschiedlicher statistischer Fehlerrate

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    wie gesagt, dann rechne es doch bitte mal vor, Schritt für Schritt, was kommt dann zahlenmäßig raus?

    (Bei Arduino gibts übrigens auch keine Klasse Math, und deine Graphen habe ich auch nicht bei Arduino zur Verfügung, aber du kannst ja die echte mathematische Formel dafür hinschreiben;

    edit: übrigens auch bei einer Fehlmessung eines oder zweier Sensoren brauche ich aber irgendein Ergebnis, eben das wahrscheinlichste.)
    Geändert von HaWe (01.09.2018 um 20:20 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    Zitat Zitat von HaWe Beitrag anzeigen
    wie gesagt, dann rechne es doch bitte mal vor, Schritt für Schritt, was kommt dann zahlenmäßig raus?
    Kein Problem! Du findest im Log sämtliche relevanten Eingangswerte, Zwischenergebnisse sowie die übers Maximum bestimmten Bestfit-Werte
    Code:
    ==========================================
    Sensor1  Dist: 0120 rel. deviation: 0,20
    Sensor2  Dist: 0100 rel. deviation: 0,10
    Sensor3  Dist: 0090 rel. deviation: 0,05
    ==========================================
    Hypothetic dist:90 (dev1: 18,00  dev2: 9,00  dev3: 4,50)-->Norm.: 0,1181  Eq.: 1,7888
    Hypothetic dist:91 (dev1: 18,20  dev2: 9,10  dev3: 4,55)-->Norm.: 0,1186  Eq.: 1,8703
    Hypothetic dist:92 (dev1: 18,40  dev2: 9,20  dev3: 4,60)-->Norm.: 0,1154  Eq.: 1,9092
    Hypothetic dist:93 (dev1: 18,60  dev2: 9,30  dev3: 4,65)-->Norm.: 0,1095  Eq.: 1,9141
    Hypothetic dist:94 (dev1: 18,80  dev2: 9,40  dev3: 4,70)-->Norm.: 0,1019  Eq.: 1,8962
    Hypothetic dist:95 (dev1: 19,00  dev2: 9,50  dev3: 4,75)-->Norm.: 0,0937  Eq.: 1,8661
    Hypothetic dist:96 (dev1: 19,20  dev2: 9,60  dev3: 4,80)-->Norm.: 0,0857  Eq.: 1,8325
    Hypothetic dist:97 (dev1: 19,40  dev2: 9,70  dev3: 4,85)-->Norm.: 0,0784  Eq.: 1,8014
    Hypothetic dist:98 (dev1: 19,60  dev2: 9,80  dev3: 4,90)-->Norm.: 0,0722  Eq.: 1,7758
    Hypothetic dist:99 (dev1: 19,80  dev2: 9,90  dev3: 4,95)-->Norm.: 0,0670  Eq.: 1,7562
    Hypothetic dist:100 (dev1: 20,00  dev2: 10,00  dev3: 5,00)-->Norm.: 0,0628  Eq.: 1,7419
    Hypothetic dist:101 (dev1: 20,20  dev2: 10,10  dev3: 5,05)-->Norm.: 0,0594  Eq.: 1,7309
    Hypothetic dist:102 (dev1: 20,40  dev2: 10,20  dev3: 5,10)-->Norm.: 0,0565  Eq.: 1,7213
    Hypothetic dist:103 (dev1: 20,60  dev2: 10,30  dev3: 5,15)-->Norm.: 0,0541  Eq.: 1,7112
    Hypothetic dist:104 (dev1: 20,80  dev2: 10,40  dev3: 5,20)-->Norm.: 0,0519  Eq.: 1,6993
    Hypothetic dist:105 (dev1: 21,00  dev2: 10,50  dev3: 5,25)-->Norm.: 0,0499  Eq.: 1,6845
    Hypothetic dist:106 (dev1: 21,20  dev2: 10,60  dev3: 5,30)-->Norm.: 0,0480  Eq.: 1,6666
    Hypothetic dist:107 (dev1: 21,40  dev2: 10,70  dev3: 5,35)-->Norm.: 0,0461  Eq.: 1,6453
    Hypothetic dist:108 (dev1: 21,60  dev2: 10,80  dev3: 5,40)-->Norm.: 0,0442  Eq.: 1,6209
    Hypothetic dist:109 (dev1: 21,80  dev2: 10,90  dev3: 5,45)-->Norm.: 0,0423  Eq.: 1,5939
    Hypothetic dist:110 (dev1: 22,00  dev2: 11,00  dev3: 5,50)-->Norm.: 0,0404  Eq.: 1,5647
    Hypothetic dist:111 (dev1: 22,20  dev2: 11,10  dev3: 5,55)-->Norm.: 0,0386  Eq.: 1,5339
    Hypothetic dist:112 (dev1: 22,40  dev2: 11,20  dev3: 5,60)-->Norm.: 0,0368  Eq.: 1,5019
    Hypothetic dist:113 (dev1: 22,60  dev2: 11,30  dev3: 5,65)-->Norm.: 0,0351  Eq.: 1,4694
    Hypothetic dist:114 (dev1: 22,80  dev2: 11,40  dev3: 5,70)-->Norm.: 0,0334  Eq.: 1,4366
    Hypothetic dist:115 (dev1: 23,00  dev2: 11,50  dev3: 5,75)-->Norm.: 0,0318  Eq.: 1,4039
    Hypothetic dist:116 (dev1: 23,20  dev2: 11,60  dev3: 5,80)-->Norm.: 0,0302  Eq.: 1,3715
    Hypothetic dist:117 (dev1: 23,40  dev2: 11,70  dev3: 5,85)-->Norm.: 0,0288  Eq.: 1,3398
    Hypothetic dist:118 (dev1: 23,60  dev2: 11,80  dev3: 5,90)-->Norm.: 0,0274  Eq.: 1,3088
    Hypothetic dist:119 (dev1: 23,80  dev2: 11,90  dev3: 5,95)-->Norm.: 0,0261  Eq.: 1,2787
    Hypothetic dist:120 (dev1: 24,00  dev2: 12,00  dev3: 6,00)-->Norm.: 0,0249  Eq.: 1,2494
    Normalized optimal probability 0,119 at distance 91
    Equalized optimal probability 1,914 at distance 93
    ==========================================
    Soll ich Dir die Zwischenschritte jetzt noch mit nem Taschenrechner herleiten oder schaffst Du den Rest selbst?


    Zitat Zitat von HaWe Beitrag anzeigen
    (Bei Arduino gibts übrigens auch keine Klasse Math, und deine Graphen habe ich auch nicht bei Arduino zur Verfügung, aber du kannst ja die echte mathematische Formel dafür hinschreiben;
    Das Bild hast Du selber aus Wikipedia in einem Deiner vorherigen Posts kopiert. Die Formel darunter hast Du nicht gesehen? Such noch mal Dichtefunktion im rechten Kasten bei https://de.wikipedia.org/wiki/Normalverteilung. Neben KlickiBunti-Bildern bekommt man da auch ne Funktion, die Dir für ein x bei gegebenem Sigma und µ den Wert der Kurve zurückgibt. (Das y= oder f(x)= davor musst Du Dir allerdings denken.)


    Zitat Zitat von HaWe Beitrag anzeigen
    edit: übrigens auch bei einer Fehlmessung eines oder zweier Sensoren brauche ich aber irgendein Ergebnis, eben das wahrscheinlichste.)
    Nein, wenn Du jemals ein fehlertolerantes System programmiert hast, dann kommst Du zu der Erkenntnis, dass Du das nicht brauchst. Da sind unplausible Messergebnisse genauso zu behandeln, wie fehlerhafte Eingangsparameter einer Funktion. Die fängt man ab.
    Geändert von Holomino (01.09.2018 um 21:37 Uhr)

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ich versuche es noch mal. Anhand meines Beispiels. Ob die Toleranzen jetzt so von HaWe gemeint sind oder nicht. Ist ja erst mal egal. Wichtig ist, ich habe 3 Sensoren mit Streuung der Werte. Ich denke, in dem Beispiel kann man das Streuung oder Toleranz nennen, man kann es auch Messfehler nennen. Meint für mich erstmal dasselbe: gemessene Werte befinden sich innerhalb gewisser Grenzen. Bei einem Sensor kann der Wert bis zu 20% betragen, bei Anderen weniger. Es könnte auch passieren, dass die Werte von den Sensoren teils außerhalb dieses Rahmens liegen. Diese Werte könnte man sicher irgendwie rausfiltern, da man 3 Sensoren hat, die man vergleichen kann. Fällt der Wert eines Sensors damit raus, hat man nur noch die Werte zweier Sensoren. Fallen 2 Werte raus, hat man nur noch einen Sensorwert. Man müsste sich hier entscheiden, auf welchen man sich am meisten verlassen kann, bzw. welchem man "vertraut" um den kleinstmöglichen "Schaden" anzurichten. Mit Schaden meine ich, dass man sich bei einem Entfernungssensor lieber einen größeren Wert berücksichtigt, als einen kleineren, damit es nicht zur Kollision kommt, falls dass das Ziel sein sollte. Es kann auch andere Ziele geben, bei denen die Werte anders gewichtet würden.

    1. Messung: 100cm, Fehler: +/-20%
    2. Messung: 110cm, Fehler: +/-10%
    3. Messung: 90cm, Fehler: +/-5%

    Mittelwert aller Messungen: 100cm, Fehler über alle: +/-11.7% (tatsächliche Entfernung: 88.3cm bis 117cm).

    Den dritten Sensor würde ich als am verlässlichsten einstufen, weil der die geringste Streuung hat. Sensor 3, 3.Messung, tatsächliche Entfernung: 85.5cm bis 94.5cm, weil Fehler: +/-5%.

    Jetzt könnte man das eindämmen. Ich denke hier, dass ich für eine möglichst genaue Messung, versuche den Wert zu finden, der dem Mittelwert am nächsten kommt, aber irgendwie auch wahrscheinlich ist. Ich müsste mich also mit meiner Betrachtung auf die 100cm zu bewegen.

    Frage, was ist der unterste Grenzwert, den ich annehmen könnte? Hier kommt es drauf an, welche Gewichtung ich ansetze: verlasse ich mich auf eine Mittelung der Werte aller Sensoren oder nur auf einen einzigen Sensor?
    Ich habe mich für den unteren Grenzwert für die Mittelung entschieden:

    Der untere Grenzwert ist wohl: 88.3cm.

    Beim oberen Grenzwert muss man sich auch überlegen, was einem wichtig ist. Daher habe ich mich für den Wert entschieden, der mir der 3. Sensor garantiert:

    Der obere Grenzwert ist wohl: 94.5cm.

    Frage, warum ich mich so entschieden habe?
    Ich versuche, den genauesten Wertebereich zu treffen, in welchem sich der tatsächliche Entfernungswert befinden könnte. Deshalb habe ich die Werte gewählt, die meinem Ziel (dem errechneten Mittelwert der Daten, der 3 Sensoren) am nächsten liegen. Deshalb 88.3 und 94.5.

    Allerdings ist in diesem Beispiel kein genauer Wert zu errechnen, ich treffe nur eine Aussage und entscheide mich indirekt damit für einen Wert, der dem idealen Wert nicht entsprechen muss.

    Wobei ich ehrlich sagen muss, dass ich den Sinn von Anfang an nicht ganz verstehe. Eine Sensorfusionierung, also ganz einfach gesagt: das Zusammenführen verschiedener Daten zu einem Gesamtbild und damit zu einem momentan endgültigen Ergebnis, setzt nach meinem Verständnis immer voraus, dass man die Umgebungsbedingungen, die Anforderungen an das Ergebnis (Gewichtung der Daten) und die Sensoren, speziell für eine Aufgabe festlegen muss. Für eine Entferungsmessung könnte ich mir vorstellen: Mediumdruck, Mediumdichte, Mediumtemperatur, Sensortemperatur etc... Würde man alles einkalkulieren was irgend denkbar ist, hätte man vermutlich einen fast 100%ig sicheren Wert, nach Fusionierung.

    Um das jetzt zu entkomplizieren wäre hier auch die Frage: warum verlässt man sich nicht auf den Sensor mit der geringsten Streuung der Messwerte, wenn alle drei Sensoren dieselbe Min-/Max-Entferung abdecken? Dann kann man 3 dieser Sensoren oder auch 5 dieser Sensoren mit geringer Streuung wählen und mit diesen Sensordaten eine vernünftige Aussage treffen. Oder man verwendet gleich eben nur einen Sensor und geht das Ganze anders an.

    Alle komplexen Formeln, die man gefunden hat und die sich bewährt haben, stellen auch immer Anforderungen. Es gibt Bedingungen an die Sensoren und die Umgebung, damit diese Formeln einen Wert auswerfen, der ziemlich verlässlich ist.


    ----

    Wenn man davon ausgeht, dass die drei Sensoren normal messen und eine gewisse Streuung haben (idealerweise gleichmäßig, um den idealen Messwert herum), so nimmt man wohl den Mittelwert aller drei Sensorergebnisse und ist fertig.

    Misst ein Sensor 110cm, bei einer max. Streuung von +/-10%, so liegt das Ergebnis im Bereich 99cm bis 121cm. Um also genauere Werte zu errechnen, benötigt man weitere Daten der Messung bzw. Messumstände und die Kenntnis, wie sich dies auf die Sensorgenauigkeit auswirkt. Nach Fusionierung erhält man dann einen genaueren, berechneten Wert.
    Mit Pech liegen auch alle drei Sensoren daneben, weil allen drei Sensoren dieselbe Störung zugrunde liegt.

    Fazit: Wenn ein Sensor mit der Messung zum Beispiel 1cm über dem tatsächlichen Wert liegt, der Zweite Sensor 1cm darunter und der Dritte 2cm darunter, wie kommt man dann mit irgendeiner Formel dieser Welt dem tatsächlichen Wert am nächsten, wenn keine weiteren Umstände bekannt sind? Antwort: gar nicht. Warum? Antwort: weil man nicht weiß, welcher Sensor gerade welche Ungenaugkeit bei der Messung aufweist. Für den - in dem Fall - wahrscheinlichsten Wert, nimmt man das Mittel aller drei Sensorergebnisse, um sich dem idealen Messwert zu nähern. Mehr geht hier nicht. Je mehr Messungen oder Sensoren man hat, steigt die Wahrscheinlichkeit, dass das Mittel aller Werte dem Idealwert möglichst nahe ist.

    Einen genaueren Messwert kann man ableiten, wenn man zuvor Vergleichsmessungen machte. Was HaWe ja schon getan hat, um zu sehen, wieviel die Sensoren ca. streuen. Das allein reicht aber nur aus, um die Toleranz des Ergenisses, in Bezug zur Entfernung zu kennen. Ohne weitere Messreihen lässt sich nichts Genaueres ableiten. HaWe hat ja nur ermittelt, weiviel die Sensoren im gesamten Messbereich (von ..cm bis ..cm) vom idealen Wert abweichen können. Je mehr Messreihen man hat, die unter verschiedenen Bedingungen gemacht wurden, je genauer kann man eine endgültige Formel aufstellen. Hier brauchts dann aber wahrscheinlich wieder weitere Sensoren, um die Bedingungen während der Messung zu erfassen. Dann kommt man zur Sensorfusionierung und kann den nun einmalig gemessenen Wert ziemlich exakt einschätzen und letztlich auf einen genaueren Wert schließen.
    Geändert von Moppi (02.09.2018 um 07:04 Uhr)

  4. #4
    HaWe
    Gast
    moin!
    Danke für eure Beiträge!

    also das Ziel ist ja, wenn z.B. alle ca. 20ms eine neue Gruppe von 3 Sensoren (oder 4,5,6 oder7) je 1 neuen Messwert poduziert, dass man aus den 3er- (4er, 5er,...)-Gruppen schnell einen brauchbaren Wert erhält,mit dem man eine Abschätzung der tatsächlichen Entfernung enhält, die wahrscheinlih näher am echten Wert liegt als jeder Einzelwert für sich betrachtet.

    @Holomino
    Wenn diese (beispielhaft) drei Werte jetzt im Messbereich über eine Distand von 30cm verteilt sind (oder mehr, oder weniger), dann macht es doch einen Riesen-Aufwand, hier in 1cm-Schritten e-Funktionen auf jedem Zwischenpunkt aufzusetzen, dort mit den Sensorwerten durchzurechnen (die Rechnung wurde ja leider noch gar nicht genannt) per "hypthetic Distance", um dann nachzusehen, um dann anschließend das Maximum dieser 30 Werte (oder mehr, oder weniger) für "Eq." zu suchen.

    @Moppi:
    dass der gesuchte Wert irgendwo im Intervall zwischen min und max liegen muss, ist ja klar, und zwar vermutlich auch näher am Wert des zuverlässigsten Sensors, aber wie programmierst du es, dass er das Optimum der Vorhersage, das irgendwo in der Nähe liegen mag, wirklich findet? Und wie machst du es, wenn du 2 oder 3 sehr zuverlässige Sensoren hast mit divergenten Werten, und noch 5 oder 6 weniger zuverlässige zusätzlich?
    Die Fälle 1+2 im TOP Beispiel waren ja nur idealisierte, vereinfachte Anschauungsbeispiele. Tatsächlich sind solche Probleme aber statistisch lösbar, der Kalmanfilter oder die Monte-Carlo-Methode sind nur 2 Beispiele für Lösungsalgorithmen, allerdings rechnerisch recht aufwändig, andere wären Quadratur-Filter, Gaußsummenfilter oder Projektionsfilter. Um solche Filter (allerdings vereinfachte Algorithmen) geht es hier.

    Schaut man sich jetzt das Ergebnis "93" von Holomino an, bin ich mir schon sehr sicher, dass es die Realität sehr gut treffen wird, denn ich arbeite hier ja wahrscheinlich mit den Gauss Glockenkurven (auch wenn in Holominos Post keine Formel genannt wurde) und nicht mit einfachen gewichteten arithmetischen Durchschnitten.
    @Holomino: meinst du Dichtefunktion und Verteilungsfunktion und Fehlerfunktion hintereinander ausgeführt?
    https://wikimedia.org/api/rest_v1/me...e029134a113f34
    https://wikimedia.org/api/rest_v1/me...24dd4d174502d5
    https://wikimedia.org/api/rest_v1/me...3400a445ca4e4f

    Bei den gewichteten Durchschnitten, die ich oben nach manfs Link per einfacher Addition, Multiplikation und Division ausgerechnet habe, kam ich auf 97, das ist nach Holominos Tabelle nach 4 Rechen-Zeilen um ca. 4% schlechter.
    https://www.roboternetz.de/community...l=1#post646322


    @Holomino
    Zunächst: Leider fehlt bei dir noch Fall 2 zum Vergleich, das könnte noch hilfreich sein.
    Die Frage ist nun aber, lohnt sich der Aufwand, hier dutzende e-Funktionen an verschiedenen theoretischen Punkten aufzusetzen und durchzurechnen,
    und das alle 20ms, also 50x pro Sekunde,
    schafft das ein Arduino auch sicher, und hat er noch Zeit dann für andere Dinge, z.B. die Weiterverarbeitung dieser Daten und die Ortung und Navigation etc.?

    Wie schätzt du selber den relativen Aufwand deiner Methode ein, lohnt sich der Aufwand deiner Meinung nach?

    - Oder empfiehlt sich anstelle des "Kehrwerts der relat.Standardabweichung" ein anderer Faktor, um den gewichteten Durchschnitt anders und besser zu gewichten?
    Du, Holomino, hattest ja einen anderen Kehrwert als diesen angesprochen, welchen meintest du denn seinerzeit? (Die Frage war ja noch offen)

    - - - Aktualisiert - - -

    nochmal @ moppi:
    die Liste
    1. Messung: 100cm, Fehler: +/-20%
    2. Messung: 110cm, Fehler: +/-10%
    3. Messung: 90cm, Fehler: +/-5%

    heißt ja nicht, dass die Messwerte IMMER innerhalb dieser Grenzen liegen müssen, es ist nur ein gewisses Wahscheinlichkeitsniveau (68%), dass das so ist.
    Jeder dritte Wert (32%) liegt statistisch also immer außerhalb dieser Standardabweichung, das sind bei 50 messungen pro Sekunde für jeden Sensor immerhin 15-20 Messungen, die regelmäßig, statistisch betrachtet, stärker abweichen (teilw. auch extremer), und das tun sie statistisch völlig regelrecht (Glockenkurve), das wären dann also noch nicht einmal statistische "Ausreißer" . Bei der statistischen Auswertung darf man sich daher nicht auf diesen nur scheinbar engen Fehlerbereich beschränken.
    Geändert von HaWe (02.09.2018 um 10:09 Uhr) Grund: typo

  5. #5
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    72
    Beiträge
    13.155
    Ich habe die Dichtefunktionen der drei Sensoren für die erste Messung einmal aufgetragen, wobei das Integral der Kurven jeweils 1 ist. Das Integral der Wahrscheinlichkeitsdichte pro Intervall gibt an, wie hoch die Wahrscheinlichkeit ist, dass der Wert im entsprechenden Intervall liegt.
    Klicke auf die Grafik für eine größere Ansicht

Name:	Dichtefunktionen.jpg
Hits:	10
Größe:	30,7 KB
ID:	33600
    Zur Zusammenführung kann man grundsätzlich (!) für jedes Intervall berechnen, wie groß die Wahrscheinlichkeit ist, dass er es das richtige ist. Man erhält dadurch eine neue Dichtefunktion.
    Bei nur einer Messung ist die Wahrscheinlichkeit für einen Wert höher als wenn noch eine Messung hinzukommt, die eine andere Aussage macht. Es kommt zu einer bedingten Wahrscheinlichkeit, für die die Werte miteinander multipliziert werden.

    Das ist grundsätzlich interessant, für die aktuelle Aufgabe bin ich auch froh, dass es eine grundsätzliche Lösung in Wikipedia gibt.
    (Das Beispiel deutet sicher auch auf eine systematische Abweichung hin, aber es dient ja hier wie beschrieben auch mehr zur Veranschaulichung.)
    Geändert von Manf (02.09.2018 um 09:33 Uhr)

Ähnliche Themen

  1. Sensorfusion Kompass und Ultraschall (Zeitstempel?)
    Von BattleBot im Forum Robby RP6
    Antworten: 1
    Letzter Beitrag: 13.01.2013, 02:46
  2. Infos zu den Themen Sensorfusion / Kalman-Filterung?
    Von katakombi_ im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 28.01.2005, 18:44

Berechtigungen

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

LiFePO4 Speicher Test