Forum: Analoge Elektronik und Schaltungstechnik Messfehler berechnen


von Johnny S. (sgt_johnny)


Angehängte Dateien:

Lesenswert?

Ich möchte mit einem ATMEGA328 ARUDINO eine Spannung mittels 
Spannungsteiler messen


Arduino ADC = 0-1023, das bedeuted bei Vref von 4.096V/1023 = 4 mV 
Schritte sind messbar.

Anbei das Schema wie die Messung aussehen soll. Die Spannungsreferenz 
hat eine Toleranz von plus und minus 1.5mV.  Die Widerstände sind plus 
und minus 0.1% Toleranz.

Wie kann ich im vorherein herausfinden was der kleinste und grösst 
mögliche Fehler der Messung sein wird?

Also bis zu 4mV ist ja schonmal klar weil die Auflösung ja nur diese 
Grösse hat.

von M. K. (sylaina)


Lesenswert?

Johnny S. schrieb:
> das bedeuted bei Vref von 4.096V/1023 = 4 mV
> Schritte sind messbar.

Nope, es sind 4096/1024 und ja, das sind 4 mV, die maximale Spannung, 
die du damit messen kannst sind 4092 bzw. 4092 wird das selbe Ergebnis 
liefern wie 4096 nämlich beides 1023.

Johnny S. schrieb:
> Wie kann ich im vorherein herausfinden was der kleinste und grösst
> mögliche Fehler der Messung sein wird?

Kleinster Fehler ist 0V, größter Fehler die Summe aller anderen Fehler 
zusammen ;)

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Johnny S. schrieb:
> Arduino ADC = 0-1023, das bedeuted bei Vref von 4.096V/1023 = 4 mV
> Schritte sind messbar.

Die Schritte sind 4,096/1024 groß, wobei der letzte Schritt vom ADC 
nicht erreicht wird.

Johnny S. schrieb:
> Wie kann ich im vorherein herausfinden was der kleinste und grösst
> mögliche Fehler der Messung sein wird?

Indem Du die max. Abweichungen von Referenz und Spannungsteiler 
durchrechnest. Typisch: Referenz und Teiler jweils bei Max- und 
Minwerten durchrechnen.

ABER: sieh ins Datenblatt vom ATmega328. Dessen ADC hat größere Fehler, 
als die ext. Bauteile. Daher ist es immer sinnvoll, die aufgebaute 
Schaltung abzugleichen. Insofern ist eine Referenzspannung von 4,096 V 
ja ganz schön, aber letztlich nur auf dem Papier ein geeigneter Wert.

von Helmut S. (helmuts)


Lesenswert?

So geht das.

Umin = U1*(R2*0.999)/(R2*0.999+R1*1.001)

Unmom = U1*R2/(R2+R1)

Umax = U1*(R2*1.001)/(R2*1.001+R1*0.999)


Rel_Fehler_minus = (Umin-Unenn)/Unenn

Rel_Fehler_plus = (Umax-Unenn)/Unenn

von Martin S. (sirnails)


Lesenswert?

Und dann musst Du Helmut S. Ansatz noch weiter bringen

- Fehler der Quelle um +-1,5mV
- Offsetfehler des ADC
- Linearitätsfehler des ADC
- eventuell noch Temperaturdrift der Widerstände (und Holla die Waldfee 
- die sollte man nicht unterschätzen. Selbst bei 12 bit Auflösung macht 
das bei normalen, nicht temperaturstabilen Widerständen enorm viel 
aus!).

Unter Strich also hast Du die minimale Spannung

U_MIN = U_Quelle, nenn - 1,5mV - U_R1,fehler - U_R2,fehler - 
U_ADC,linearitätsfehler - U_ADC,offsetfehler

Und das ganze für U_MAX natürlich durch addition.

Und wenn Du das alles ausgerechnet hast, dann musst Du den errechneten 
Wert noch auf die 12-bit Auflösung des ADC beziehen, weil es hier nur 
ganze Zustände gibt.

Wenn irgendwas um die +-10-20 digits herauskommt, dürfte das überaus 
realistisch sein.

von Stefan F. (Gast)


Lesenswert?

Der ADC hat 10 bits.

von Martin S. (sirnails)


Lesenswert?

Stefan U. schrieb:
> Der ADC hat 10 bits.

Ach da habe ich mich jetzt von den 4.096 = 12bit irritieren lassen :)

Dann ändert sich an der Rechnung trotzdem nichts, außer dass es dann 
vllt. nur 5-15 digits sein werden.

von m.n. (Gast)


Lesenswert?

Martin S. schrieb:
> Dann ändert sich an der Rechnung trotzdem nichts, außer dass es dann
> vllt. nur 5-15 digits sein werden.

Nein, so schlecht wird es auch nicht werden.
Dennoch: 0-Punkt und Vmax-Punkt ausmessen, ins EEPROM schreiben und den 
eff. Messwert passend korrigieren. Dabei darf man auch gerne 
float-Berechnungen verwenden ;-)
Damit und mit einem sauberen Aufbau (Masseleitung) hat man die größten 
Fehler umgangen. Die Linearität des ADC ist ja passabel.

von Martin S. (sirnails)


Lesenswert?

Also ich habe mit dem Tiny8 ADC gerne gearbeitet. Die Messwerte waren 
eigentlich auch unkalibriert immer schon sehr gut. Das Grauen bekommt 
man dann allerdings, wenn man sieht, wieviel Messungenauigkeit Atmel da 
mit eingeplant hat. Real sind die ADC um den Faktor 10 besser.

von lizenzierter Funkloch Bohrspezialist (Gast)


Lesenswert?

> Das Grauen bekommt man dann allerdings, wenn man sieht, wieviel 
Messungenauigkeit Atmel da mit eingeplant hat. Real sind die ADC um den Faktor 10 
besser.

Nee. Atmel will sich nicht auf bessere Werte als spezifiziert behafter 
lassen. Spezifiziert im Sinne von in Temperaturbereich, Clockbereich, 
Spannungsbereich. Dass du fuer deine Anwendung einen Faktor 10 besser 
bist ist schoen fuer dich. Aber eben nicht einforderbar.

von Jürgen (Gast)


Lesenswert?

Johnny S. schrieb:
> Ich möchte mit einem ATMEGA328 ARUDINO eine Spannung mittels
> Spannungsteiler messen
>
> Arduino ADC = 0-1023, das bedeuted bei Vref von 4.096V/1023 = 4 mV
> Schritte sind messbar.
>
> Anbei das Schema wie die Messung aussehen soll. Die Spannungsreferenz
> hat eine Toleranz von plus und minus 1.5mV.  Die Widerstände sind plus
> und minus 0.1% Toleranz.
>
> Wie kann ich im vorherein herausfinden was der kleinste und grösst
> mögliche Fehler der Messung sein wird?
>
> Also bis zu 4mV ist ja schonmal klar weil die Auflösung ja nur diese
> Grösse hat.

Fehlerrechnung ist so ziemlich das übelste, was im E-Grundstudium auf 
einen wartet.

Ich weiß nicht, ob ich es damals richtig verstanden habe?

Z. B.

Ein ganz normaler Widerstand aus dem Handel:

Eine Überschreitung des angegebenen Toleranzwertes an solchem Widerstand 
besagt nicht, daß die Toleranz nicht eingehalten wurde!

Soweit ich verstanden habe reicht es, wenn 66 Prozent der 
Widerstandswerte
einer Stickprobe innerhalb des Sigma 1-Bereich liegen...oder wie war 
das?

Zum anderen muß bei solchen Vorhaben die Fehlerfortpflanzung auch 
berücksichtigt werden, sowie eine überschlagsmäßige Betrachtung aller 
Fehler der einzelnen Komponenten.

von W.A. (Gast)


Lesenswert?

m.n. schrieb:
> Dabei darf man auch gerne float-Berechnungen verwenden ;-)

Erwartest du bei der Rechnung größer Dynamik, oder warum willst du 
etliche Bits für einen so gut wie konstanten Exponenten verschwenden?

von m.n. (Gast)


Lesenswert?

Ich steh auf Luxus und leiste es mir, die Formeln so einzugeben, wie sie 
sind. Ob beim ATmega328 nun 8kB oder 9kB belegt sind, das ist doch 
völlig schnuppe.

von Martin S. (sirnails)


Lesenswert?

lizenzierter Funkloch Bohrspezialist schrieb:
>> Das Grauen bekommt man dann allerdings, wenn man sieht, wieviel
> Messungenauigkeit Atmel da mit eingeplant hat. Real sind die ADC um den
> Faktor 10
> besser.
>
> Nee. Atmel will sich nicht auf bessere Werte als spezifiziert behafter
> lassen. Spezifiziert im Sinne von in Temperaturbereich, Clockbereich,
> Spannungsbereich. Dass du fuer deine Anwendung einen Faktor 10 besser
> bist ist schoen fuer dich. Aber eben nicht einforderbar.

Was Du nicht sagst...

von Anja (Gast)


Lesenswert?

Jürgen schrieb:
> Soweit ich verstanden habe reicht es, wenn 66 Prozent der
> Widerstandswerte
> einer Stickprobe innerhalb des Sigma 1-Bereich liegen...oder wie war
> das?

Ganz so schlimm ist es nicht.

Aber: die Toleranz ist die Abgleich/Liefertoleranz ab Werk des 
Herstellers.
Und gilt nur für die spezifizierte Temperatur (z.B. 25 Grad).

Hinzu kommen noch Temperaturgang (bei 0.1% Widerständen typisch 15-50 
ppm/K) was von -40 .. +125 Grad auch noch mal 0.8% ausmachen kann.
Dann Drift beim Einlöten (bis 1%) und Drift über Alterung (auch nochmal 
bis 1%). Wenn man den Worst Case betrachtet kommt man mit üblichen 
SMD-Widerständen auf ca 5% Toleranz über Temperatur und Lebensdauer für 
einen Spannungsteiler aus 0.1% Widerständen.

Bei der Spannungsreferenz gibt es Temperaturgang, Alterung und 
Hystereseeffekte.

Beim ADC schaut man in der Regel auf die TUE Angabe im Datenblatt.

Gruß Anja

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Martin S. schrieb:
> - eventuell noch Temperaturdrift der Widerstände (und Holla die Waldfee
> - die sollte man nicht unterschätzen. Selbst bei 12 bit Auflösung macht
> das bei normalen, nicht temperaturstabilen Widerständen enorm viel
> aus!).

Einer der interessanteren Fehler, bei Spannungsteilern mit stark 
unterschiedlichen Widerstandswerten, ist die unterschiedliche 
Eigenerwärmung durch den Messstrom.
Auch sehr nett: Eine ungleichmäßige Temperaturverteilung auf dem Board.
Beide Konstellationen führen ggf. zu einer Drift des Spannungsteilers, 
die größer als die angegebenen Toleranzen der Bauteile ist.

Es gibt noch weitere Fehler, die noch nicht explizit genannt worden 
sind, bzw. die ich ggf. überlesen habe (z.B. Drift der Referenz?).
Aber selbst ohne ins Grundstudium E-Technik und Gauß zurückzugehen, ist 
es gibt es die Möglichkeit, dass man für eine Maximalbetrachtung alle 
möglichen Fehler jedes einzelnen Bauteils identifizieren und 
"schlimmstmöglich", sprich mit passend gesetztem Vorzeichen aufaddieren 
kann.

von HildeK (Gast)


Lesenswert?

Anja schrieb:
> Wenn man den Worst Case betrachtet kommt man mit üblichen
> SMD-Widerständen auf ca 5% Toleranz über Temperatur und Lebensdauer für
> einen Spannungsteiler aus 0.1% Widerständen.

Du hast aber schlechte Widerstände ;-).
Ich kenne das eher so, dass die 1%-Ausführungen in dem Bereich zu 
betrachten sind. Mit den 0.1%-Widerständen bist du über alles 
(Auslieferung, Verarbeitung, Temperatur, Alterung) auf rund 1% oder wenn 
du Glück hast, auch noch leicht darunter. Zumindest geben das die 
Datenblätter der von uns eingesetzten Serien so wieder.

In Folge würde das dann heißen, dass mit käuflichen Widerständen (0.1%) 
praktisch keine z.B. einstellbare Spannungsversorgung dimensioniert 
werden könnte, die die typischen Anforderungen nach max. 5% Toleranz 
einhalten. Denn dabei kommt ja nochmals eine Betrag dazu von der 
Referenzspannung des Reglers. Und welcher Kaufmann akzeptiert noch enger 
tolerierte Serien, sowohl bei den Widerständen als auch bei den Reglern?

Wenn dann noch eine HW-Überwachung notwendig ist, wird es auch mit 
'meinen' Widerstandstoleranzen nicht mehr möglich, das Toleranzfeld 
worst case in den grünen Bereich zu bringen.
Und neuerdings ist bei manchen ICs die VCC-Ablage nur noch mit max. 3% 
zulässig. Bei unter 1V Core-Spannung und einigen Watt Leistungsaufnahme 
ist das nur noch ein Hauch von Millivolts, die man noch als Toleranzfeld 
zur Verfügung hat.
Gut, dass ich bald in Rente bin ...

von MaWin (Gast)


Lesenswert?

Johnny S. schrieb:
> Wie kann ich im vorherein herausfinden was der kleinste und grösst
> mögliche Fehler der Messung sein wird?

Der kleinste ist 0 und der grösste ergibt sich mit den Werten am 
schlechtestens Rand.

Also z.B. Richtung zu viel messen: 4.096-0.0015 und 2k3+0.1% und 
10k-0.1% und die Abweichung des DAC, sagen wir 1.5 bit also 6mV.

10V / (2302.3+9990) = 1.8729611 vs. 4.0885 = 469 statt 467.5, also echt 
nicht der Rede wert, Zufallsstreuungen durch Störungeneinkopplung sind 
grösser.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.