Fehler rechnung integer
-
ich schreibe momentan eine Arbeit über eine Schaltung mit Mikrocontroller und bin bei der Fehlerberechnung angekommen. mein Problem:
ich messe mit dem 10Bit ADC des Controller eine Offset behaftete Spannung.
Ureff ist 5 volt Offset ist 2,5 Volt. Dann berechne ich einen Messwert mit der formel:
U = (int)((int64_t)ADC *5000/1023 -2500);
ich erhalte also einen Messwert im Bereich von +-2500 mVolt.
Ich brauche für die Dokumentation jetzt den relativen Messfehler. weiß jemand wie ich den berechne.LSB bei 5volt Ureff ist 4,88mV aber weiter weiß ich nicht.
wehre schön wenn mir einer helfen könnte.
-
Jo, mei, das LSB korrespondiert immer (bei dieser Umrechnung und der korrespondierenden Schaltung) zu einem Spannungsdelta dU=4,89mV und damit ist dein Diskretisierungsfehler durch den ADC in der Spannung +- 1/2 dU.
Das kannste dir ja leicht vorstellen, indem Du dir die ideale Spannungsmessung hinzeichnest (also halt ne Gerade mit der gemessenen Spannung über die anliegende Spannung). Dein ADC nähert das durch eine Treppenfunktion an, fertig ist der Diskretisierungsfehler.
Aber ich bin mir nicht sicher, ob das das ist, was Du wirklich haben willst, weil Du "Integer" in die Überschrift geschrieben hast. Du holst dir natürlich einen Fehler ins Boot, weil Du mit Integerarithmetik, also "mit Abschneiden" bei der Division rechnest. Dafür wirst Du deine Gründe haben (sonst nix verfügbar?), aber ne Fehlerabschätzung wirst Du auch machen müssen. Der Fehler ist halt über das Intervall nicht gleichverteilt und auch nicht mittelwertfrei, sondern schwankt zwischen 0 und etwa 1mV. Dein Wert liegt nach der Integer-Rechnung im Mittel unter dem realen Wert.
-
ja das ist ja erst die halbe Miete. Der ADC verursacht einen Fehler von absolut LSB/2. dann berechne ich aber noch einen Messwert mit der Gleichung.
U = (int)((int64_t)ADC *5000/1023 -2500);
die eingangs Spannung ist noch ohne Offset. Der Offset von 2,5v +-0.1% wird Schaltungstechnisch überlagert und durch das (-25000) wider heraus gerechnet.
Dann ist das noch das *5000/1023 (LSB in mV) wo er auf ganze Bits rundet.also jede menge Fehlerfortpflanzung
-
Achtung es sollte 5000/1024 heißen mein Fehler
-
Versuch doch mal ordentlich zu sagen, was Du eigentlich willst.
Also: was willst Du haben, welche Fehler kommen vor, welche möchtest Du abschätzen, wie soll die Abschätzung aussehen, etc.
Ich hab dir den Fehler für die Quantisierung gesagt und eine Abschätzung für den Worst-Case-Fehler der "Integerformel" gegeben. Damit kannst Du deinen Fehler abschätzen und es ergibt sich insgesamt
U_real = U_mess + e
mit dem Fehler e aus [-3.44 ... 2.44] mV. (Diese "Fortpflanzung" war nicht so spektakulär.) Wenn dir das nicht reicht, mußt Du arbeitspunktabhängig einen Fehler angeben, weil, wie gesagt, der Rundungsfehler arbeitspunktabhängig ist.
Wenn Du jetzt noch andere Fehler reinbringen willst, zB. weil deine Offsetspannung schwankt oder diverse Widerstände Ungenauigkeiten haben, schön, dann kannst Du doch ganz konventionell abschätzen. Also: berechnen, was das für eine Konsequenz auf die ideale Spannung hätte und dann wieder die Ungenauigkeit der Konvertierung berücksichtigen, die Du oben schon abgeschätzt hast.
-
du willst damit sagen das ich den relativen Fehler gar nicht allgemein angeben kann da der ja relativ vom Arbeitspunkt ist. ich glaub das habe ich jetzt verstanden.
ich gehe jetzt vom Worst-Case-Fehler aus und versuche jetzt den absoluten maximalen Fehler zu Berechnen.
-
Zusammenfassung
ADC verursacht einen Fehler von +- LSB/2
der Offset hat eine Genauigkeit von 0.1% das ist ein Fehler von 0,25mV
die Rundung auf ein mV durch die Division verursacht einen Fehler von +-0,5mVKann ich das jetzt einfach Addieren und habe ich was vergessen?
-
Sicher, dass der gesamte analoge Teil (Eingangsbeschaltung, Wandler) so präzise ist, dass diese Betrachtung nicht zu einem total theoretischen Problem wird?
-
die eingangs Beschaltung wird getrennt betrachtet und verursacht einem Fehler von 0.1% beim Offset. Mein Ergebnis ist jetzt 12,67mV als möglicher maximaler Fehler und dass passt auch zu meinen Beobachtungen