PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shunt-Widerstand Strommessung



homedom
11.06.2011, 22:17
Hallo,
ich habe hier einen BLDC Motor mit Motorregler. Der Motor benötigt in meiner Anwendung so in etwa 1-2A kann aber bei blockieren bis 20A ziehen. Das ist aber ein Problem für meine Akku-Schutzschaltung welche nur 10A liefern kann. Nun will ich den Motorstrom vor dem Regler messen und bei Überstrom den Motor einfach ausschalten. Dazu habe ich einen 10mOhm Widerstand eingelötet. Nun bekomm ich auch am ADC Werte, wenn auch sehr kleine, aber leider ist das nicht linear zur Stromaufnahme. Zum Test habe ich mal eine Halogenlampe mit 20W, eine mit 35W, und beide zusammen mit 55W angeschlossen und musste festellen, dass bei 20W 0,0147V, bei 35W 0,0489V und bei 55W 0,0978V gemessen wurden. Nun wird da wohl noch irgend ein Widerstand von Kupferbahn auf der Leiterplatte mitmischen, warum ist das jedoch nicht linear? Je größer der Strom desto größer der Widerstand? Meint ihr dass es praktikabel wäre, einfach eine Last mit dem gewünschten Grenzstrom anzulegen und dann die Spannung zu messen und diese als Referenz zu nutzen oder sollte ich lieber auf einen genauen Stromsensor wie den ACS714 zurückgreifen? Wäre es hinreichen genau sich eine Formel für den Widerstand herzuleiten?

Gruß, homedom

021aet04
11.06.2011, 22:31
Es kommt darauf an was das für ein Widerstand ist. Wenn es ein Shunt ist sollte er linear sein (im Gegensatz zu z.B. PTC/NTC). Am Besten ist es, wenn du eine 4 Punkt Messung verwendest.

Du solltest, wenn du es noch nicht machst, einen Mittelwert über einige Messungen. Damit schließt du kurzzeitige Falschmessungen aus bzw begrenzt diese.

MfG Hannes

Jakob L.
11.06.2011, 22:39
Die Messwerte sehen im wesentlichen nach einem Offsetfehler aus. Wenn du zu den gemessenen Spannungen ca. 0.035V dazuzählst, dann ist das Ergebnis relativ linear zur Leistung (und die aufgedruckte Leistungsangabe auf Lampen ist sowieso nicht 100%ig genau). Die Offsetspannung entsteht wahrscheinlich durch den ADC selbst oder die Verstärkerschaltung davor. Oft reicht es aus, die Offset-Spannung einmalig zu bestimmen und man kann dann damit die Ergebnisse korrigieren.

homedom
11.06.2011, 22:39
Hallo,
also beim ADC wird der erste Wert nach einem Kanalwechsel verworfen und dann 5 Messungen gemittelt. Der Widerstand ist ein 3W Shuntwiderstand (http://de.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=6934381). Wie gesagt denke ich dass es an der Platine liegt. Aber müsste das dann nich auch linear sein? Oder ändert sich der Widerstand der Leiterbahn je nach Last? Was genau ist eine 4 Punkt Messung? 4 Messwerte und daraus eine Formel herleiten? Danke

gruß, homedom

homedom
11.06.2011, 22:46
Hallo jakob,
wenn ich ehrlich bin habe ich keine Verstärkerschaltung davor. Ich nehm in Kauf dass ich nur 0.5A/ADC Wert messen kann. Natürlich habe ich mir auch Gedanken gemacht dass es bei so kleinen Spannungen evtl durch äußere Beeinflussung Fehler entstehen. Da ich aber meine Platine schon fertig habe und nun von einem DC auf BLDC umgestiegen bin wollte ich die Schaltung so wenig wie möglich ändern. Wie genau berechnet man die Offsetspannung? Wie kann diese beim ADC entstehen. Als ich mit einem Multimeter gemessen hatte habe ich auch eine höhere Spannung am Pin gemessen als der ADC ausgibt. Kann das damit zusammenhängen? Danke

gruß, homedom

EDIT: Ich hab gerade gesehen, dass man mit der GAIN Stufe des AVR eine Offsetmessung machen kann. Ist das des Rätsels Lösung? Ich werde das bei gelegenheit mal ausprobieren. Bin aber trotzdem weiterhin über jeden Tipp dankbar.

Jakob L.
11.06.2011, 23:02
Hallo jakob,
wenn ich ehrlich bin habe ich keine Verstärkerschaltung davor. Ich nehm in Kauf dass ich nur 0.5A/ADC Wert messen kann.


Je nach verwendetem ADC kann man schon mal einen Offset-Fehler von 1-2 Bits haben.


Wie genau berechnet man die Offsetspannung?


Man macht 2 Messungen, trägt diese in ein Diagramm ein und zeichnet dann eine Linie durch die beiden Messungen. Im Idealfall (kein Offset-Fehler) geht diese Linie durch den Ursprung. Anhand der Schnittpunkte der Linie mit den Achsen kann man den Offset-Wert ablesen. Wenn man mehr als zwei Messungen hat, dann sollten diese Punkte im Diagramm ungefähr auf einer Linie liegen (sonst hat man noch andere Fehler). Natürlich kann man die Offset-Spannung auch mathematisch ausrechnen.



Wie kann diese beim ADC entstehen. Als ich mit einem Multimeter gemessen hatte habe ich auch eine höhere Spannung am Pin gemessen als der ADC ausgibt. Kann das damit zusammenhängen? Danke


Ja. Durch den Vergleich zwischen der ADC-Ausgabe und der gemessenen Spannung am ADC-Pin kann man die Offset-Spannung ebenfalls bestimmen.

Für die ursprüngliche Aufgabenstellung (Abschaltung bei Überstrom) kann man auch einfach einen festen ADC-Wert bestimmen, ab dem der Motor abgeschaltet werden soll.

homedom
11.06.2011, 23:18
Also ich hatte das alles mal in eine Excel-Tabelle eingetragen. Ich werde morgen mal versuchen den y-Achsenabschnitt so gut es geht zu bestimmen. Werde wohl auch noch Messungen mit anderen Lasten machen um eine etwa genaue Linie hinzubekommen. Auf einen extra Stromsensor werde ich verzichten. Hier mal anbei noch das Diagramm:
http://www.homedomsoftware.de/uploads/diagram.jpg
Die Zeile Widerstand kann irgnoriert werden.. hier habe ich den Widerstand aus Strom und Spannung errechnet. Danke schonmal für die schnelle Hilfe, ich melde mich wieder wenn ich noch einige Messungen gemacht habe. Wenn noch wer Tipps hat habe ich ein offenes Ohr. Danke

gruß, homedom

Besserwessi
11.06.2011, 23:44
Wenn der AD Wandler schon mehrfach misst kann man auch die zusätzliche Auflösung duch Oversampling nutzen. Also z.B. 16 Werte Aufsummieren und dann nicht duch 16 Teilen, sondern nur durch 4. Man bekommt so fast 2 zusätzliche Bits Auflösung. Die beiden Bits die man duch das Teilen duch 4 verwirft sind nicht aussgekräftig, weil das Rauschen der Summe von N Werten mit der Wurzel aus N ansteigt.

Ein bischen besser könnte es schon mit der 2,5 V referenz werden, statt einer 5 V Referenz.

Das Problem wird einfach der Offset sein. Hier ist der negativ und läßt sich nicht so einfach rechnerisch korrigieren, denn unter etwa 1 A wird der AD einfach 0 ausgeben. Eine Lösung wäre eine Verstärkerschaltung.

homedom
12.06.2011, 00:18
Also wenn ich das mal schnell richtig durchgerechnet habe liegt der Offset tatsächlich bei -0.01788. Da ich mich bei den Ampere Angaben aber auf die Wattzahl der Halogenlampen verlassen habe könnte es sein, dass das ganze Diagramm fehlerhaft ist. Ich werde also mal die korrekte Amperezahl messen und weitere Messungen durchführen. Verstärkungsschaltung will ich aufgrund der fertigen Platine vermeiden, auch wenn das die sauberste Lösung wäre. Die nächste Platinenversion bekommt einfach einen ASC714 drauf. Die Referenzspannung kann ich auch nicht ändern, da noch LiPo Zellen am ADC hängen. Vielen Dank

Gruß, homedom

PICture
12.06.2011, 00:23
Hallo!

Den Offset könnte man doch softwaremässig genauso wie hardwärmässig (OPV) korriegieren (abziehen). Beim OPV entsteht dazu unkorrektbarer Temperaturdrift. ;)

021aet04
12.06.2011, 10:37
Zum Thema 4 Punkt Messung hat noch niemand geschrieben. Wenn ich das auf die Schnelle gesehen habe. Bei einer 4 Punkt Messung hast du 2 Anschlüsse für den Hauptstrom/Laststrom und 2 eigene nur für die Messung. Im DB ist ein Bild von einem empfohlenen Layout ( http://docs-europe.electrocomponents.com/webdocs/0ddc/0900766b80ddce06.pdf ). Das Layout ist rechts beim 1ten Blatt (Recommended Solder Pad Layout). Der Hauptstrom ist mit "Cu Trace" bezeichnet und der Messkreis ist mit "Sensing Trace" bezeichnet.

Der Grund dafür ist relativ einfach, wenn man weiß warum. Wenn man eine normale Messung nimmt (2 Punkt Messung) hat man den Spannungsabfall, der durch den Strom entsteht, der Leiterbahn in der Messung enthalten. Je höher der Strom desto mehr wirkt sich der Fehler aus.

Bei einer 4 Punkt Messung hat man 2 Anschlüsse für den Hauptstrom. 2 weitere sind für die Spannung, die am Shunt abfällt. Da der Messstrom, der zum ADC/OP o.Ä. geht sehr gering ist (durch hohen Eingangswiderstand) wird die Messung fast nicht (vernachlässigbar) beeinträchtigt.

Das ist auch der Grund, warum man bei niedrigen Widerstandsmessungen bzw genauen Messungen eine 4 Punkt Messung verwendet.

Bei den Bildern habe ich ein Stk Draht gemessen (den blauen). Das linke Bild ist eine normale 2 Punkt Messung. Das rechte Bild ist eine 4 Punkt Messung, die Leitungen habe ich zwar nicht ganz richtig angeschlossen (die Leitungen für die Spannungsmessung sind außen), das Bild ist aber nur zur Demonstration. So kann man schon richtig sehen, dass die beiden Messungen sehr abweichen (bei so niedrigen Widerständen)

MfG Hannes

Richard
12.06.2011, 13:35
Nun will ich den Motorstrom vor dem Regler messen


Wie realisierst Du dabei die Bezugs Masse für den ADC? Das "schreit" nach einen Instrumenten Verstärker dessen Versorgung = der des µC's ist. Z.B. http://www.datasheetcatalog.org/datasheet/stmicroelectronics/4848.pdf

Einfacher wäre sicherlich den Mess R hinter dem Motor (klassisch) nach GND zu schalten.

Gruß Richard

homedom
15.06.2011, 20:35
Soo, nun bin ich endlich mal wieder zu dem Projekt gekommen. Also ich hab jetzt mit 4 verschiedenen Stromstärken gemessen und bin zu einem, für mich, sehr zufriedenstellenden Ergebnis gekommen. Hier das neue Messdiagramm
http://www.homedomsoftware.de/uploads/stromshunt.jpg
Was mich aber trotzdem noch wundert, vlt lieg ich auch komplett falsch, aber wenn U = R*I ist => R = U/I und R ist doch konstant? Wenn ich aber mit den obigen Werten R errechne, dann steigt das parallel zur Spannung. Lieg ich jetzt falsch?

gruß, homedom

Besserwessi
15.06.2011, 21:00
Durch eine Fehler (Vermutlich Offset des AD-Wandlers) ist die gemessene Spannung vermutlich immer um einen festen Betrag zu klein. Damit kriegt man dann scheinbar einen veränderlichen Widerstand heraus. Aus dem Diagramm (bei besserer Darstellung, vor allem der Strom Achse) lässt sich etwa ablesen wie groß der Offset ist. Den Betrag kann man dann rechnerisch korrigieren und dann sollte auch ein konstanter Widerstand herauskommen.

homedom
15.06.2011, 21:08
Naja, zum einen wird b mein Offset sein, und zum anderen, wenn das immer um einen festen Betrag zu klein ist, dann ist das hinterher trotzdem nicht konstant, weil es ja bei jedem Wert zu klein ist?! Aber für meine Einsatzzweck reicht mir die Genauigkeit von 0,8% (im Durchschnitt) locker aus. Also entweder denke ich immer noch falsch oder das mit dem Offset beantwortet nicht meine Frage ;-)

gruß, homedom

Richard
15.06.2011, 21:16
Lieg ich jetzt falsch?

gruß, homedom

Du darfst nicht den Unterschied zwischen Theorie und Praxis vergessen. Jedes Bauteil, auch Widerstände, sind und sind */- Temperatur abhängig. Dazu kommt noch das man bei Digitalisierten Analog Werten das LSB praktisch nicht nutzen kann/sollte. R = U/I gilt letztendlich nur für Ideal angenommene Parameter von URI (Eselsbrücke) und sind eher für Mathematiker als für Praktiker von Bedeutung. "Im Leben" wird möglichst genau Berechnet, den Feinschliff erledigt dann oft die Praxis nach Versuch und Irrtum = Versuchslabor. Alte Praktiker haben so "ihre" Grundlagen im "Urin" und berechnen erst einmal nix, siehe auch Picktures Beitrag zu "Faustregeln". :-) Das geht natürlich nur bei relativ kleinen Schaltungs Modulen, eine Reise zum Mars sollte schon genau Berechnet werden, aber bitte mit real ermittelten Messwerten der Module. :-)

Gruß Richard