Ich bin mir sicher, zu dem Thema gibts schon hunderte Antworten und ich habe glaube ich schon mal gefragt - aber ich werd einfach nicht schlau, welches die beste Möglichkeit ist, 15..20A möglichst verlustarm mit dem AVR-ADC zu messen, also ohne extra Stromwandler oder externe OPVs. Eigentlich müsste der AVR mit seiner Gain-Stufe alles dabeihaben. Daher mal die Frage völlig ohne Bias: Welche ist die beste und am besten erprobte Methode, 15..20A max. möglichst verlustarm und gut aufgelöst mit dem onboard-ADC eines AVR/ATMega zu messen? Gibts dafür erprobte Schaltungsvorschläge? Danke!
Ein ADC misst erstmal nur Spannung. Du brauchst also einen Widerstand über dem dann eine zum Strom proportionale Spannung abfällt und die kannst du mit einem ADC messen. Für so große Ströme gibt es aber auch Hallsensoren.
Ben B. schrieb: > 15..20A max. möglichst verlustarm und gut aufgelöst > mit dem onboard-ADC eines AVR/ATMega zu messen? Du bist schon lange hier im Forum. Kannst Du glaubhaft machen, nicht zu trollen? Der A/D misst Spannung, Bezug ist Ground. Ein ATMega328 kann die interne Referenz 1,1V nutzen und auf rund 1000 Schritte auflösen. Du legst also 0,055 Ohm in die Stromleitung, bekommst eine Auflösung von 20 mA und 22 Watt Verlustleistung am Shunt. Gefällt nicht, zu viel - dann muß wohl etwas mehr Aufwand getrieben werden.
Leute... ich habe nicht vor, 20A durch den AVR zu schicken, das könnt ihr mir ruhig glauben. Jedenfalls nicht solange er nett zu mir ist. Wenn er nicht nett zu mir ist, garantiere ich für nichts. Also daß man da einen Shunt für braucht ist mir klar. Was mich interessiert sind brauchbare Dimensionierungen für einen Tiefpass falls jemand sowas über den Shunt geschaltet hat oder welche Einstellungen andere für die 10x gain stage des ATMega verwenden, ob die überhaupt zuverlässig arbeiten kann, weil viele OPVs haben ja Probleme in der Nähe der Betriebsspannung oder Masse zu arbeiten, und so eine Strommessung arbeitet ja direkt auf Masse plus Messspannung. Habe ich noch nie gemacht und würde mir gerne den Fehlschlag ersparen, wenn ich mit meinen Annahmen auf dem Holzweg sein sollte. Mit Hallsensor-Messwandlern hatte ich in letzter Zeit ein wenig Sorgen, daß die Dinger mit der Zeit driften und würde es deswegen gerne mal ohne probieren.
Ben B. schrieb: > Was mich interessiert sind brauchbare Dimensionierungen für einen > Tiefpass Hängt von der Abtastrate und oder dem benötigen Frequenzbereich ab. Ben B. schrieb: > weil viele OPVs haben ja Probleme in der Nähe der Betriebsspannung oder > Masse zu arbeiten Dann nimm einen anderen oder setze einen Spannungsteiler davor.
Den INA216 möchte ich noch empfehlen. Den kann man schön neben einen kleinen Messewiderstand setzen und bekommt eine Spannung für den ADC die du noch filtern kannst.
Ben B. schrieb: > Ich bin mir sicher, zu dem Thema gibts schon hunderte Antworten und ich > habe glaube ich schon mal gefragt - aber ich werd einfach nicht schlau, > welches die beste Möglichkeit ist, 15..20A möglichst verlustarm mit dem > AVR-ADC zu messen, also ohne extra Stromwandler oder externe OPVs. Shunt-Widerstand in der Größenordnung 50mOhm. Aber ich würde hier auch eher Richtung INA281 und Co oder ACS712 und Co gehen.
Ich vermisse noch eine Angabe zur initialen Aussage "verlustarm". Was soll gemessen werden? Strom klar, aber DC oder AC, Hausnetz oder irgendeine kleine Spannung? Wie genau muss es sein? Geht es um einen BIAS Strom oder eine Endstufen-Überwachung? Muss jeder Peak erfasst werden, soll das nur Energie messen oder ist es eine elektronische Crowbar? Das alles hat doch Einfluss auf die Umsetzung.
Gemessen werden soll DC aus sowas wie Photovoltaik, erwartet ziemlich glatt (ohne Ripple), maximal fünf Messungen pro Sekunde, wenn nicht jeder Peak erfasst wird, ist das nicht schlimm, Mittelwert sollte stimmen und die 20A sollten gut auf die 10Bit des AVR-ADC abgebildet werden. Mit verlustarm meine ich so wenig Verluste wie möglich, so viel wie nötig. Angenommen man nutzt die 1,1V Referenz und 10fach gain stage, bräuchte man 110mV für "Vollausschlag" des ADC, soweit korrekt? 0,11V*20A wären 2,2W, das wäre absolut vertretbar. Widerstandswert des Stromshunts wären dann 0,0055 Ohm, mal schauen wie man das am besten realisiert. Wo ich mir unsicher bin ist, ob die gain stage so dicht am Massepotential fehlerfrei arbeitet, also tatsächlich 110mV zwischen zwei ADC-Eingängen (einer Masse, einer über Messwiderstand und ggf. Tiefpass auch sehr nahe an Masse) auf 1,1V für den ADC umgesetzt werden.
Ben B. schrieb: > Eigentlich müsste der AVR mit seiner Gain-Stufe alles dabeihaben. Nicht jeder ATMega hat eine Gain-Stufe. Je niederohmiger der Shunt ist, umso geringer dessen Spannung, so dass das rauschen des Verstärkers mehr relevant wird. Keine Ahnung wie präzise du es brauchst. > Was mich interessiert sind brauchbare Dimensionierungen > für einen Tiefpass Das kommt doch ganz auf den Anwendungsfall an. Man kann auch per Software filtern. > und so eine Strommessung arbeitet ja direkt auf Masse plus Messspannung. Nicht zwingend. Der Shunt kann auch in der positiven Versorgungsspannung liegen, dann misst man halt differenziell. Aber deine bedenken sind nicht ganz falsch, in den Grenzbereichen arbeiten Verstärker und ADC oft nicht mehr so linear wie im optimalen Arbeitsbereich.
So richtig viel möchte ich per Software nicht filtern. Was ich ggf. mache ist mehrere Messungen, also 4, 8 oder 16 je nach dem wieviel Zeit ich dafür verschwenden darf, addiere alle Ergebnisse und schmeiße die unteren Bits weg. Sicherlich könnte man den Shunt auch in eine Messbrücke auf halber Betriebsspannung einbauen bzw. die Messpannung an einem Zweig "ziehen" lassen, aber das ist das was ich mit Bias meine. Wenn sich alle sicher sind, daß Messen direkt an Masse besser ist als so eine Messbrücke, dann nehme ich lieber die Masse-Variante und umgegekehrt genauso. Genau das weiß ich im Moment nicht, weil ich sowas noch nicht ausprobiert habe. Ich dachte immer Messwandler sind das non-plus-ultra, aber sie haben eben auch ihre Macken.
Ich schlage immer noch den AC712 vor. Damit trennst du auch gleich die Mikrocontrollerschaltung galvanisch vom Strompfad und hast eine Isolationsfestigkeit von, ich glaub, 2100V.
Steve van de Grens schrieb: > Nicht jeder ATMega hat eine Gain-Stufe. Das ist richtig, es gibt aber auch welche, die mehr als nur eine mit 10x haben. Also, wo ist das Problem? Nimmt man einfach einen, der z.B. 20x hat (ATtiny25/45/85) oder gar 200x (ATmega16/32/644/644P/1284/1284P) und schon kann man den Shunt reduzieren und signifikant Verlustleistung sparen. Ist doch easy und logisch: wenn ich eine Anwendung mit einem bestimmten Zweck habe, wähle ich den am besten geeigneten µC dafür aus, nicht den schlechtesten...
Warum ohne Stromwandler? Ich messe meine Solarpanels mit dem Sensor von Pollin: https://www.pollin.de/p/aktiver-stromsensor-vacuumschmelze-t60404-n4646-x66282-15-a-5-v-180070 Der liefert VREF und Messwert, so das man mit einem Differnzeingang am AVR leicht messen kann - keine weiteren Bauteile nötig. Galvanisch getrennt ist er sowieso und die Rechnerei im AVR hält sich in Grenzen. Ich habe den ATTiny861A benutzt. Die Solarspannung misst er über Spannungteiler hochohmig direkt am Panel.
Mit Stromwandlern hatte ich ein paar Probleme mit dem Nullabgleich, vor allem wenn der Controller nicht weiß wann der Strom wirklich sichergestellt Null ist. Das driftet irgendwann weg und dann ist die ganze Messung für'n Eimer. Die 200x gain stage ist mir zu empfindlich. In der Anwendung, in der ich momentan konkret über einen Versuch nachdenke, läuft direkt neben dem Controller ein DC/DC-Wandler, der mit bis zu 1,5kW Spitze einen Akku laden können soll. Da fange ich mir mit 200x zuviel Störungen von ein. Wenn die 10x gain stage an Massepotential wirklich zuverlässig läuft, dann genügt mir das völlig. 2,2W Verlust sind gemessen an der Gesamtleistung so wenig, das geht in den Toleranzen unter. Ich hoffe nur, ich finde noch jemanden, der mir das sagen kann, also wie sich die 10x gain stage auf Massepotential verhält, ob das funktioniert oder ob man das besser lassen soll weil zu dicht an der Betriebsspannung.
Ben B. schrieb: > Ich hoffe nur, ich finde noch jemanden, der mir das sagen kann Probiere es doch aus, genau dafür gibt es doch Arduino Module und Steckbretter. Den Shunt mit dem großen Laststrom kannst du ja durch was kleineres simulieren.
-gb- schrieb: > Ein ADC misst erstmal nur Spannung. Du brauchst also einen Widerstand > über dem dann eine zum Strom proportionale Spannung abfällt und die > kannst du mit einem ADC messen. > Für so große Ströme gibt es aber auch Hallsensoren. Du widersprichst dir selbst. Für Ströme von 15..20A braucht man keinen Widerstand. Für Ströme in diesem Bereich ist z.B. der ACS712ELCTR-20A-T wie geschaffen, weil er genau dafür auf den Markt gebracht wurde,
Ben B. schrieb: > Das driftet irgendwann weg und dann ist die > ganze Messung für'n Eimer. Das ist doch der Witz beim Wandler von Vacuumschmelze. Er liefert sein VREF mit. Da wandert bei mir nichts. Das gilt auch für Temperaturschwankungen. VREF landet dabei auf dem -Eingang und Signal auf den +Eingang. Wenn du möchtest, kannst du Hin- und Rückstrom messen, ich messe nur den Strom vom Panel in die Verbraucher.
Wolfgang schrieb: > Du widersprichst dir selbst. Nein. Wenn man seine Anforderungen Ben B. schrieb: > also ohne extra Stromwandler oder externe OPVs. ernst nimmt, dann braucht man einen Widerstand. Alternativ dazu die Hallsensoren, die aber nicht zu seinen Anforderungen passen. Ben B. schrieb: > Mit Stromwandlern hatte ich ein paar Probleme mit dem Nullabgleich, vor > allem wenn der Controller nicht weiß wann der Strom wirklich > sichergestellt Null ist. Also bei dem Hallsensor ist eben oft null Strom nicht null Spannung denn der Messbereich ist oft bipolar. -20 A ... +20 A. Da ist dann die Null in der Mitte des Spannungsbereichs. Muss man einmal kalibrieren und gut.
Gustl B. schrieb: > Also bei dem Hallsensor ist eben oft null Strom nicht null Spannung denn > der Messbereich ist oft bipolar. -20 A ... +20 A. Da ist dann die Null > in der Mitte des Spannungsbereichs. Wenn Du Hallsensor gleich ACS712 setzt, stimmt das. Für andere Produkte muß das nicht so sein. Wolfgang schrieb: > Für Ströme in diesem Bereich ist z.B. der ACS712ELCTR-20A-T > wie geschaffen Den habe ich vor einigen Tagen in einem anderen Thread vorgerechnet. In Ruhe 2,5 Volt (halbe Ub), von da aus je nach Stromrichtung rauf oder runter. Ausgehend von einem 10bit-A/D mit 5V-Referenz bekommt man nur eine sehr mäßige Auflösung.
Naaa nicht zanken... bei µC.net ist es normal, daß wenn man einen schwarzen Benz haben möchte, mindestens drei Leute damit kommen, daß der himmelblaue Trabant doch aber viel schöner und das bessere Auto sei. Und dann noch einer mit seinem roten Opel. > Da ist dann die Null in der Mitte des Spannungsbereichs. Stimmt. Habe ich schon so verwendet, einmal mit abgleichbarem Spannungsteiler über Vcc und dann nochmal mit der internen 2,56 Spannungsreferenz des Controllers, beides mit Verbesserungspotential würde ich sagen. Nicht unbrauchbar, aber auch nicht wirklich gut. > Muss man einmal kalibrieren und gut. Genau das dachte ich auch. > Ausgehend von einem 10bit-A/D mit 5V-Referenz bekommt man > nur eine sehr mäßige Auflösung. Dieses Problem hatte sogar der Aufbau mit der 2,56 Vref des Controllers.
:
Bearbeitet durch User
Ben B. schrieb: >> Ausgehend von einem 10bit-A/D mit 5V-Referenz bekommt man >> nur eine sehr mäßige Auflösung. > Dieses Problem hatte sogar der Aufbau mit der 2,56 Vref des Controllers. Ich habe es aus Sicht eines Arduinos-AT328 betrachtet, entweder Ub 5V oder seiner internen 1,1V als Referenz. Wenn Du einen anderen Stein mit 2,56 Vref einsetzt, kannst Du deutlich besser auflösen: Der ACS712 wird nur negativ betrieben, seine 2,5 V in Ruhe sind 0,0 Ampere. Je mehr Strom, desto geringer wird seine Spannung, muss der µC halt rückwärts umrechnen. Und jetzt tschüß, ab ins Bett :-)
Genau das habe ich probiert, funktioniert, aber Auflösung war für'n Arsch.
Ben B. schrieb: > Genau das habe ich probiert, funktioniert, > aber Auflösung war für'n Arsch. Kannst du das vielleicht in mA ausdrücken, um hier eine etwas sachlichere Diskussion führen zu können?
Ben B. schrieb: > ...oder welche Einstellungen andere für die 10x gain stage des ATMega verwenden Letztlich reduziert sich die Frage auf den Fehler des ADC mit Gain nahe GND. Kann ich verstehen. Wenn man das noch nie aufgebaut hat und es grummelt im Hinterkopp, ist es ja durchaus sinnig, einmal im Vorfeld nach entsprechenden Erfahrungen in die Runde zu fragen. Wenn keine Erfahrungen vorliegen, muss man sie wohl selber sammeln. Dazu brauchts dann eine Ausgabe und eine simulierte Eingabe (Spindelpoti und Vorwiderstand), dazwischen den Controller in seiner üblichen Beschaltungsform. Ich hab hier z.B. verschiedene AVR-Testboards (Mega328, Tiny1614, XMega32A4) mit UART, Progstecker und Stiftleisten für die restlichen IOs, alle mit ADC, aber alle leider ohne Gain (bis auf den ATXMega, da weiß ich, dass bei höheren Gain-Einstellungen die Sache kräftig anfängt zu wackeln). Ich kann Dir also nicht direkt helfen, aber vielleicht findet sich hier jemand mit dem entsprechenden Controllertestboard (welcher ist es denn jetzt eigentlich genau?) in der Schublade, der die Sache auf dem Steckbrett innerhalb von einer Stunde löst. Wenn nicht, ist es vielleicht doch eine Überlegung wert, dass Du Dir primär so ein entarduientes, aber steckbrettkompatibles Testplatinchen für Deinen Wunschcontroller baust, damit Du Dir in Zukunft solche Fragen etwas flotter selber beantworten kannst?
Euro schrieb: > Ich kann Dir also nicht direkt helfen, aber vielleicht findet sich hier > jemand mit dem entsprechenden Controllertestboard Bin ich zu dreist wenn ich hier die Meinung vertrete, dass der TO solche Sachen selber testen soll anstatt die Aufgabe an andere zu delegieren die er dafür nicht einmal zu belohnen gedenkt?
Stefan F. schrieb: > Bin ich zu dreist wenn ich hier die Meinung vertrete, dass der TO solche > Sachen selber testen soll anstatt die Aufgabe an andere zu delegieren > die er dafür nicht einmal zu belohnen gedenkt? Ach Du, die Frage des TO mit dem Gain stellt sich mir auch. Ich hätte sie mit entsprechendem Equipment aus reiner Neugier auch sicher schon beantwortet. Aber mal andersrum: Wenn Dich die Frage nicht interessiert, was machst Du dann hier? ;)
> Kannst du das vielleicht in mA ausdrücken, um hier eine > etwas sachlichere Diskussion führen zu können? Leider nein, dieser Aufbau ist nicht mehr zum Testen vorhanden, ich weiß nur noch, daß die Auflösung wirklich schlecht war. Also wenn ich für'n Arsch schreibe, dann meine ich auch für'n Arsch, kann man bei einer so schlechten erreichten Performance durchaus als sachliches Statement stehenlassen. Das hat mich wirklich geärgert. > Bin ich zu dreist wenn ich hier die Meinung vertrete, dass der TO > solche Sachen selber testen soll anstatt die Aufgabe an andere zu > delegieren die er dafür nicht einmal zu belohnen gedenkt? Ich suche einfach jemanden, der das schon gemacht hat. Niemanden, der das mit hohem Aufwand extra für mich erledigen soll. Außerdem ist das bei µC.net oft so, daß wenn man etwas baut was am Ende nicht gut funktioniert und dann seine Ergebnisse postet, mindestens drei Leute ankommen "Äh na du bist ja auch blöde, daß du nicht vorher gefragt hast, das hätte ich dir gleich sagen können, daß das nichts wird." Ich habe auch kein Testboard für sowas, ich müsste das auf Lochraster aufbauen. > Aber mal andersrum: Wenn Dich die Frage nicht interessiert, > was machst Du dann hier? ;) Bumm, Treffer, versenkt. :)
Ben B. schrieb: > Ich suche einfach jemanden, der das schon gemacht hat. Das finde ich OK. Wenn es keiner weis, dann hast du halt Pech. Der Kollege "Euro" wollte hingegen jemanden finden, der für dich (oder ihn?) experimentiert um die Antwort herauszufinden.
Die Diskussion ist doch völlig sinnlos hier. Ja, dass mit dem Shunt und mit dem x10 Gain geht. Ob es DIR reicht geht aus keinem Post hervor, da du nirgends schreibst ob die 20A mit 1% oder 0.01% Genauigkeit gemessen werden sollen. Für privat und Stückzahl bis 20, würde ich einfach einen INA226 nehmen und wir die Daten entspannt per I2C holen. Den kannst du auf den Shunt kalibrieren und bekommst sehr genaue Ergebnisse. Das wäre EIN Weg die Sache nach Stand der Technik zu lösen. Wenn du jetzt 1 Million Geräte bauen willst, dann würde ich mir die Frage hier nicht beantworten lassen sondern das ganze selbst validieren....oder willst du dann 1.000.000 Kunden erklären das du als Entwickler keine Schuld hast das der Rassel nicht so funktioniert wie versprochen, weil einer auf uC.net gesagt hat das passt schon? Zumal das was du vorhast sich in jeder Bastelstube leicht simulieren lässt und eventuell hat Atmel/Microchip da schon mal ne App Note zum ADC Gain bei fast GND rausgehauen, einfach mal googlen. VG Paul
Stefan F. schrieb: > Der Kollege "Euro" wollte hingegen... Ja und? Stefan F. schrieb: > ...Aufgabe an andere zu delegieren die er dafür nicht einmal zu belohnen > gedenkt Was hättest Du denn gerne für Dein "Spezialwissen", ein Poti anzustecken und zwei Bytes über die UART zum PC zu schicken?
Wolfgang schrieb: > Ben B. schrieb: >> Genau das habe ich probiert, funktioniert, >> aber Auflösung war für'n Arsch. > Kannst du das vielleicht in mA ausdrücken, Das kann man sogar rechnen, bevor man probiert. Ohne Strom erwarten wir 2,50 Volt, was bei 2,56 Vref und 10-Bit 1000 ergibt. Mit 100mV/A ergeben sich bei 20A noch 0,5V = 200. Das ergibt 800 Schritte für 20 Ampere, also 25 mA Auflösung. Nun sind aber die 2.56Vref nicht genau, die 100mV/A streuen, die Mittenspannung 2,50V weicht ab und auf das letzte Bit des A/D ist auch nur begrenzt Verlass - also wird das ein Schätzeisen. Ich habe zwei ACS712 im Einsatz und war mir vorher darüber klar, dass eine Meßgenauigkeit von 5% zum verdammt gut wäre. Wem das nicht genügt, der muß deutlich mehr Aufwand treiben - Shunt und Differenzverstärker. ======== Stefan F. schrieb: > Bin ich zu dreist wenn ich hier die Meinung vertrete, dass der TO solche > Sachen selber testen soll anstatt die Aufgabe an andere zu delegieren > die er dafür nicht einmal zu belohnen gedenkt? Leidest Du an akuter Verstopfung oder bist Du frustriert, weil Dir dieses Thema keinen Ansatz zur Selbstdarstellung liefert? Zu Deiner Frage: Ja! Als Sinn des Forums sehe ich doch, Lösungsansätze zu finden und nicht, Entwicklungsaufträge zu bezahlen.
Dann will ich mal nicht so sein :-) Das geht prima! Ich verwende einen ATtiny261A. Die Messung erfolgt differenziell mit (ADC0 - ADC1) * 20 an einem Shunt von 2 bis 10mOhm (je nach Variante der Baugruppe). Dabei liegt ADC1 bei mir auf Masse, direkt am Shunt. Zwischen dem Shunt und den Eingängen ist noch ein RC-Tiefpaß mit R=1kOhm verbaut, wegen der Schaltflanken. Ich messe Ströme mit Mittelwerten zwischen 1 und 30A mit deutlich höheren Peaks. Die Auflösung ist bei mir nur 8Bit, die aber ziemlich genau. Den Gleichtaktbereich des differentiellen Eingangs weiß ich gerade nicht mehr. Mußt Du ins Datenblatt schaun. Einen Offset bekommt man dann mit Widerständen gegen + hin. Viel Erfolg!
Danke Michael, das liest sich doch gar nicht so schlecht. Dann werd ich
mal schauen wie ich 5,5mOhm oder was ich da errechnet hatte
bewerkstellige und mal einen Versuch damit machen. Wie groß ist C bei
Deinem Tiefpass?
> [..] Das ergibt 800 Schritte für 20 Ampere, also 25 mA Auflösung.
Ja so ungefähr war meine Rechnung auch und mit 25mA Auflösung wäre ich
zufrieden gewesen, hat der Aufbau aber nicht erreicht.
:
Bearbeitet durch User
Der RC-Tiefpaß ist 1kOhm und 100nF, Tau = 100µs. In der Masseleitung zu ADC1 ist kein Widerstand.
Michael S. schrieb: > Die Auflösung ist bei mir > nur 8Bit, die aber ziemlich genau. Habe ähnliche Erfahrungen mit dem ATtiny261A/461A gemacht. Die theoretisch möglichen 10Bit reduzieren sich in der Praxis durch die internen Fehler (auch Rauschen), so dass 8 Bit eine gute Wahl ist. Im Datenblatt steht übrigends bei einer Verstärkung von 20x/30x ein Gain-Error von 15LSB und ein Offset-Error von 4LSB; bezogen auf eine Referenzspannung von 4V. Bei noch geringerer Referenzspannung wird sich der Fehler natürlich auch noch vergrößern.
Wenn ich das aufgebaut habe (kann ein wenig dauern) werde ich mal probieren wie das funktioniert wenn ich mehrere Messungen zusammenaddiere (4 8 oder 16) und die unteren Bits von Ergebnis wegschmeiße.
Ben B. schrieb: > probieren wie das funktioniert wenn ich mehrere Messungen > zusammenaddiere (4 8 oder 16) und die unteren Bits von Ergebnis > wegschmeiße. Wenn ich Zeit habe, was meist der Fall ist, mache ich mehrere Messungen mit delay dazwischen und addiere diese, z.B. 12. Den kleinsten und größten Wert werfe ich weg und teile die Summe durch 10 - das gibt ziemlich Ruhe. An anderer Stelle im Forum wurde über solche Dinge gestritten, einige Leute bauen einen gleitenden Mittelwert. Das hilft natürlich nichts, wenn man einen Offsetfehler hat - soweit der halbwegs konstant ist, kann man den natürlich per Subtraktion weglügen. Ich habe gerade einen Aufbau mit einem ADS1115, zwischen Auflösung und tatsächlich erreichter Genauigkeit gibt es einen erkennbaren Unterschied.
Bei meinem System liefern die Sensoren nur die Rohdaten an einen zentralen Rechner, dort erfolgt die Linearisierung per Stützstellen und dann die Filterung - u.a. gleitender Durchschnitt:
, wobei z.B. k= Intervall/3,1 ist. Bei Sensorwerten mit 8-10Bit reichen drei kalibrierte Stützstellen völlig aus, es ergibt sich dann ein Polynom zweiter Ordnung, dass in Echtzeit beherrschbar ist:
, die Werte a0-a2 werden einmalig per Kalibrierung vorgegeben. Zudem kann man so bequem Kodewerte in physikalische Parameter umrechnen. Gerade bei Messungen an physikalischen Grenzen, wie hier bei der Spannungsmessung nahe GND, kommt man mit der Linearisierung der "Wahrheit" etwas näher ;-) Langzeitdrift bekommt man allerdings so auch nicht weg...
:
Bearbeitet durch User
Manfred schrieb: > Den kleinsten und > größten Wert werfe ich weg Ich möchte keine theoretische Disskusion auslösen, aber das (nicht symmetrische) Löschen von gemessenen Werten ist falsch. Wenn z.B. eine Temperatur beginnt anzusteigen, ist der letzte gemessene Wert wahrscheinlich auch der höchste, während der tiefste fast dem Mittelwert entspricht. Fällt ersterer weg, werden nachfolgende Signalauswertungen (z.B. Berechnung des Signalanstiegs) ungenauer und ich verschenke wertvolle Sekunden, die z.B. bei einem PD-Regler (praktisches Beispiel: Pumpenregelung bei einem Feststoffkessel) zu unzulässigen Reaktionen führt. In diesem Thread geht es um Strommessungen - kurze Stromimpulse kann man kaum mit dem Controller erfassen, daher ist hier jede Messung wichtig.
Wie gesagt, ich habe sowas immer dadurch zu lösen probiert, daß ich beispielsweise 16 Messungen in schneller Folge gemacht habe, alles addiert und durch 16 geteilt habe. Das ist auf dem Controller durch ein paar Bitshifts recht einfach zu machen. Die dabei entstehenden Ergebnisse sind auch bei 10 Bit Auflösung bislang ziemlich stabil gewesen. Wenn man nur einen größten und einen kleinsten Messwert so einer Messreihe wegschmeißt, bleiben bei 12 Messungen immer noch 10 übrig, aus denen der Mittelwert gebildet wird.
Es hängt sicher von der späteren Verwendung der Daten ab. Für die Strommessung würde ich nach dem Shunt noch einen Tiefpass anordnen, der auch kurze Signalimpulse erfasst, die dem µC vielleicht sonst entgehen würden. Ist die Genauigkeit der Messung nicht so wichtig, geht es natürlich auch ohne die angesprochene Linearisierung. Die Mittelung kann auch in mehreren Stufen erfolgen. Bei mir gehen sekundenaktuelle Werte in die Steuer- und Regelung, danach wird nochmal gemittelt - für die grafische Aufbereitung im 5min-Raster.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.