Inhaltsverzeichnis
Ergänzungen zur Dokumentation
Der Abgabetermin für das Projekt kam eindeutig zu früh, deshalb wurde die Gruppenarbeit gezwungenermaßen beendet, und die obige Dokumentation erstellt. Darüber hinaus habe ich noch ein weinig an dem Projekt weitergearbeitet.
Lage der Biegegelenke
Die Maße der Wägezelle wurden mit einem Messschieber ermittelt, und sind mit einer Genauigkeit von ca. ±0,1mm.
Die mittlere Ebene der Aktorspule befindet sich auf der Höhe des orangenen Hauptlagers.
Hebelverhältnisse
Hauptlager bis Mitte Spule zu Hauptlager bis Koppelstück = 70,1:18,4 = 3,81
Mitte Schlitzblende bis Hauptlager zu Hauptlager bis Koppelstück = (70,1+27,3):18,4 = 5,29
Temperatursensoren
Die Temperatursensoren waren bei den Messungen bis zur Projektabgabe noch immer stark mit „Rauschen“ behaftet.
Durch weitere Messungen konnte gezeigt werden, dass es sich dabei tatsächlich um Luft- bzw. Sensortemperaturschwankungen handelte! Bisher sind die Sensoren nur am Tisch gelegen. Nun hab ich die vier Sensoren zwischen zwei Schaumstoffteile gepackt, und das ganze kam dann noch zwischen zwei dicke Decken. Zu sehen war dann eine „aalglatte“ Temperaturkurve!
Hier sind verschiedene Zoomstufen des selben Plots zu sehen:
Hier sind Sprünge von nur 0.1mK zu sehen, also ein Zehntausendstel von einem Grad Celsius! Diese scheinen recht regelmäßig zu sein. Vermutlich kommt das von Netzeinstreuungen und der netz-asynchronen Abtastungen. Erste Versuche, eine netzsynchrone Abtastung zu realisieren, sind leider gescheitert - da müsste man vielleicht nochmals etwas Zeit investieren.
4.2.2014 Heute wurden die Temperatursenoren neu kalibriert.
Im Zuge eines anderen Projektes habe ich die 4 NTC-Sensoren einmal ungefähr mit einem PT-1000 kalibriert. Dabei wurde der PT-1000 mit einem Ohmmeter vermessen, und der Widerstandswert der NTCs wurde mit der Messschaltung der EMK-Platine bestimmt (Spannungsteiler mit einem 10k Referenzwiderstand).
Heute wurden die 4 Sensoren auf ein Kupferblech montiert und unter den Windschutz der Waage gelegt. Eine Messung über einen Tag lang zeigte, dass die Sensoren untereinander fast die gleiche Temperatur anzeigen, aber eben nur fast.
Hier die Abweichungen der 4 Sensoren zum mittleren Messwert mit der vorläufigen Kalibrierung:
Bezugstemperatur TN für die exponentielle Berechnungsformel: 19.98°C = 293.13 K
NTC | 1 | 2 | 3 | 4 |
---|---|---|---|---|
RN in kΩ | 12.712 | 12.488 | 12.531 | 12.572 |
B in K | 3941.0 | 3964.0 | 3937.3 | 3958.6 |
Nach dem Kalibrieren:
Man sieht, dass die Kurven immer noch um ±5mK vom Durchschnitt abweichen. Woher die verbleibenden Abweichungen kommen, müsste noch eingehender untersucht werden. Da es sich um eine ratiometrische Messung handelt, sollte die Referenzspannungsquelle keine Rolle spielen. Evt. sieht man hier Thermospannungen. Weiters hat der Referenzwiderstand 10kΩ und einen Temperaturkoeffizienten von max. ±50ppm/K. Dieser sitzt ja auf der Platine, und nicht unter dem Windschutz der Wägezelle. Er hat daher eine etwas andere Temperatur als die 4 NTCs. Jedenfalls lassen die Messschriebe vermuten, dass es sich um systematische Fehler handelt.
Ergebnisse:
NTC | 1 | 2 | 3 | 4 |
---|---|---|---|---|
RN in kΩ | 12.7228 | 12.4814 | 12.5267 | 12.5723 |
B in K | 3955.4 | 3948.7 | 3942.2 | 3954.3 |
Systemidentifikation
März 2013 Die Aktorspule ist elektrisch gesehen eine Kombination aus elektrischen und mechanischen Eigenschaften. Bewegt sich der Waagbalken, wird eins Spannung in der Spule induziert. Schickt man einen Strom durch die Spule, wirkt eine Kraft auf den Waagbalken. Es gibt also einen Zusammenhang zwischen den elektrischen und den mechanischen Eigenschaften.
Um die mechanischen Parameter der Waage identifizieren zu können, wurde die Spule als komplexe Impedanz betrachtet, und ein Bodediagramm aufgenommen.
Es wurde ein Modell entwickelt, und es als Impedanzfunktion dargestellt: Z(jw) = R + jwL + k^2/(c-m*w^2+jwd) mit
- Z…elektrische impedanz in Ohm (komplex)
- R…DC-Widerstand der Spule in Ohm
- L…Streuinduktivität der Luftspule in H
- k…Maschinenkonstante in N/A
- c…Federsteifigkeit in N/m
- m…reduzierte Masse in kg
- d…Wirbelstomdämpfung in N/(m/s)
- R = 138; % gemessen
- k = 121; % identifiziert mit schwingversuch
- c = 586; % identifiziert mit schwingversuch
- m = 1.27+0.091; % identifiziert mit schwingversuch + gemessen
- d = 80; % durch visuelles curve-fitting mit der Impedanzmessung ermittelt
Parasitäre Eigenschaften des Linearmotors:
- Cp = 200e-12;
- Ls = 1/(39.5*180e3^2*Cp); % angenommen
- R2 = 17.1e3;
Dieses Modell kann nun in eine LTspice Simulation eingebaut werden, und somit der Positionsregler simuliert werden. Ebenfalls kann eine Rauschanlyse durchgeführt werden, und der Regler rauschoptimiert werden.
Hier die Messdaten als Textdatei Zum Messen wurde der Regelkreis geöffnet, ein 10kOhm-Widerstand in Serie zur Spule geschaltet, und die Spannung am Widerstand und an der Spule gemessen. Dabei ist der 91g-Aluminium-Zylinder auf der „Waagschale“ gelegen, damit sich der Waagbalken in der Ruhelage befindet.
Simulationen zur Rauschoptimierung
Ziel wäre es, eine Auflösung von 10ug zu erreichen. Bei einer Shuntspannung von ±2.25V kann die Waage ca. ±100g wägen. D.h. um 10ug auflösen zu können, muss die Shuntspannung auf 225nV Aufgelöst werden können.
Um ein möglichst geringes Rauschen bei der Strommessung zu erzielen, wurden teilweise Operationsverstärker ohne 1/f-Rauschen eingesetzt. Leider nur teilweise. Der PI-Regler des Positionsreglers wurde mit dem Standard-OP LM324 aufgebaut. Leider konnte ich kein Spice-Modell des LM324 finden, das auch das 1/f-Rauschen implementiert. Aber selbst mit dem vereinfachten Modell von Shot-Noise konnt mit einer Spice-Simulation gezeigt werden, dass die Schaltung noch nennenswertes Potential hat.
Hier die Simulation zur Schaltung, wie sie auch aufgebaut wurde:
Man kann den Photoverstärker und den PI-Regler in einem OPV zusammenfassen, und dabei z.B. den ADA4528 einsetzen. Dadurch kann man die Rauschspannung im Frequenzband von 0.01Hz bis 1Hz von optimistischen 17.3nV auf 6.6nV reduzieren! Der Faktor der Verbesserung ist sicherlich noch viel größer, weil in der ersten Simulation eben das 1/f-Rauschen des LM324 komplett fehlt.
Wichtig ist hier, dass es sich bei der Simulation um den geschlossenen Regelkreis handelt!
Große Enttäuschung: Eval Board des 31-Bit ADCs
Die Eingangsstufe des Evalboards von TI verwendet leider einen OP, der mit 1/f-Rauschen behaftet ist. Das Macht die Optimierung der Reglerschaltung fast komplett zur Nichte. 107nV bringt alleine diese Eingangsstufe (0.01 bis 1Hz)! Ich muss mich noch auf die Suche machen, und schaun, ob ich einen passenden OP ohne 1/f-Rauschen finde.
Hier gibt es die Datein zu den Simulationen zum Downloaden: LTspice Rausch Simulationen
Messungen zum Rauschen
Gewünschte und machbare Grenzen
Welche maximale Rauschspannung wünschen wir uns? Es wird eine Auflösung von 10ug angestrebt. Die Aktorkonstante ist ca. 12g/mA = 83.3uA/g mit R_shunt = 270 ergeben sich 22.5mV/g = 225nV/10ug. Es gibt einen Faktor, der das Verhältnis zwischen Rauschen-Spitze-Spitze und Rauschen-Effektivwert wiedergibt. Momentan finde ich dazu nicht die entsprechende Quelle, wo ich das einmal gelesen hab. Ich glaube, der liegt so bei ca. 6. Wir erhalten als maximale Rauschspannung 225nV/6 = 37.5nVeff - das ist schon sehr wenig, und vermutlich utopisch. Für mich ist und bleibt es noch ein Rätsel, wie Sartorius eine Auflösung von 10ug schafft. Es bleibt auch die Frage, was Auflösung bei den Angaben von Sartorius überhaupt heißt.
Laut Datenblatt hat der ADC ein SNR von 130dB bei 250S/s und ±2.5V Referenzspannung, so wie wir ihn auch betreiben. Durch eine Abtastratenreduktion auf ca. 1S/s gewinnen wir mit korrekter digitaler Filterung weitere 24dB. Wir kommen also auf 5V/154dB = 100nVeff. Reduziert man die Abtastrate noch weiter, könne man bei 16s pro Abtastwert auf 25nVeff kommen. Voraussetzung ist dafür die Abwesenheit von 1/f-Rauschen.
Dieses wird nämlich die Auflösungsgrenze beschränken. Der Positionsregler kann ohne 1/f-Rauschen aufgebaut werden, der ADC-Vorverstärker auch. Über den ADC weiß ich nichts über 1/f-Rauschen. Die hauptsächliche Quelle für 1/f-Rauschen wird vermutlich die Referenzspannung sein.
Messungen
Die analoge Reglerschaltung wurde mit 9 verschiedenen Modifikationen betrieben, und es wurden jeweils ca. 100s lang Daten mit dem ADC aufgezeichnet und anschließend ausgewertet. Hier die Messdaten zum Downloaden
Hier sind die verschiedenen Modifikationen aufgelistet. Sortiert nach der größe der gemessenen Rauschspannung im Freuqenzinterval 0.01Hz bis 0.5Hz. Kleinste Rauschspannung zuerst:
Platz | Rauschspannung in µVRMS | Regelkreis | Messung Nr. | Modifikation |
---|---|---|---|---|
1 | 0.33 | offen | 5 | kurzgeschlossener Eingang des Anti-Aliasing-Filters |
2 | 0.70 | offen | 7 | Eingang des Summierers auf Masse |
3 | 1.44 | offen | 4 | ADC-Eingang (vor dem Eingangsverstärker) am Evalboard kurzgeschlossen |
4 | 2.72 | offen | 8 | Eingang des P-Reglers auf Masse |
5 | 2.80 | geschlossen | 6 | Nur P-Regler. Dazu wurde auch der 91g Alu-Zylinder auf die Waagschale gestellt, da der P-Regler alleine nicht die benötigte Spannung aufbringen kann. D.h. die Waage war mechanisch ziemlich ausbalanciert. |
6 | 8.55 | offen | 9 | Offener Eingang des Photo-Verstärkers, nur P-Regler aktiv |
7 | 9.56 | geschlossen | 2 | 100kΩ Biaskompensation am Photoverstärker kurzgeschlossen; PI-Regler aktiv |
8 | 15.5 | geschlossen | 1 | Normalbeschaltung, so wie ursprünglich entworfen! |
9 | instabil | geschlossen | 3 | Beipass-Kondensator am Photoverstärker von 100p auf 1uF vergrößert |
Man kann folgendes erkennen: Je länger die Kette vor dem ADC, desto mehr Rauschen misst man.
Man kann also verschiedenen Komponenten entsprechende Rauschspannungen zuordnen:
- Offener Kreis:
- Anti-Aliasing-Filter mit Spannungsfolger: 0.33uV (Grundwert)
- Summierverstärker: 0.62uV (= 0.70uV „minus“ 0.33uV)
- P-Regler: 2.63uV (= 2.72uV „minus“ 0.70uV)
- Photoverstärker: 8.11uV (= 8.55uV „minus“ 2.72uV)
- Geschlossener Kreis
- mit P-Regler alleine: 2.80uV
- mit PI-Regler: 9.14uV
U1 „minus“ U2 = sqrt(U1^2-U2^2), weil unkorreliertes Rauschen angenommen wurde.
Beim Übergang von offenem auf geschlossenen Regelkreis geht die Rauschspannung von 8.55uV zurück auf 2.80uV.
Nicht in die Reihe passt Platz 3, kurzgeschlossener Eingang des ADC-Moduls mit 1.44uV.
Temperaturabhängigkeit
Einer der größten Störfaktoren ist noch die Temperaturabhängigkeit.
In obiger Grafik kann man eine Temperaturabhängigkeit von ca. 60mg pro 300mK erkennen. Umgerechnet also 200mg/K. Möchte man diese Temperaturabhängigkeit herausrechnen, und man strebt eine Genauigkeit von 10ug an, muss die Temperatur auf 0.05mK genau gemessen werden! Wie man aus den obigen Grafiken bez. der Temperatursensoren erkennen kann, ist das fast machbar. Eine netzsynchrone Abtastung ist jedoch auf jeden Fall notwendig.
Die größte Temperaturabhängigkeit ist der Neodymmagnet mit ca. -1200ppm/K (laut Wikipedia). Rechnet man diesen Temperaturbeiwert um auf unseren Wägebereich von elektrischen +-100g, so kommt man auf 120mg/K. Scheinbar gibt es noch eine andere Komponente für den Temperaturbeiwert. Er müsste in der Größenordnung von 80mg/K bzw. 800ppm/K liegen, um somit auf die gemessenen 200mg/K zu kommen.
Nicht zu unterschätzen ist auch, dass der Positionssensor aus FR4 (Platinenmaterial) und nicht aus Aluminium aufgebaut ist. Durch die unterschiedlichen Temperaturausdehnungskoeffizienten von Aluminium (Wägezelle) und Positionssensor kommt es zu einem geschätzten Fehler von fast 2mg/K aufgrund der Federkraft der Biegegelenke! Diese Abweichung ist Konstant über den Wägebereich, also nicht proportional zum Spulenstrom. Er führt also im besten Fall zu einem relativen Fehler von 2mg/K durch 200g = 10ppm/K. Wiegt man jedoch nur ein Gewicht von z.B. 1g, dann führt das zu einem relativen Fehler von 2000ppm/K!
Noch Anstehende Punkte
- Optimierung der Temperaturmessung: Netzsynchrones Sampling
- Dynamische Temperaturkompensation
- Aufbau des rauscharmen Positionsreglers
- Eingangsstufe am ADC-Eval-Board, die kein 1/f-Rauschen hat
- Untersuchung des Ecklastfehlers, und dessen Kompensation über Einstellschrauben am Alublock
- Schwerpunkt des Waagbalkens einstellen (muss an die Stabilitätsgrenze gebracht werden)
- Messung der Reproduzierbarkeit
- Quellcode und Fertigungsdatein veröffentlichen
- Überlegungen zu einem möglichst optimalen Messraum für Langzeitmessungen (dazu gibt es bereits ein Gedankenexperiment)
Modifikationen
Positionsregler und Zugluftschutz
28.1.2014 Heute hab ich den Positionsregler so umgelötet, dass er nur mehr mit einem OPV arbeitet, so wie in der rauschoptimierten LT-Spice Simulation. Der Photoverstärker arbeitet gleichzeitig auch als PI-Regler (in der Rückkopplung: 150kΩ + 1uF).
29.1.2014 Heute hab ich die Wägezelle auf einem Stück Küchenarbeitsplatte (die ist recht plan und steif) aufgebaut, und einen Zugluftschutz mit Schaumstoff und einer Aufbewahrungsbox aus der Küche gemacht.
Neue Messungen sind schon sehr vielversprechend!
Ich hab heute über mehrere Stunden gemessen. Die Daten wurden mit einer Samplerate von ca. 1S/s aufgenommen (8x downgesamplet). Auf der Waage befindet sich der Al-Zylinder, und sie ist dadurch mechanisch gut ausgeglichen. Rechnet man die lineare drift über einen Zeitraum von 4 Minuten aus den Anzeigewerten heraus, so kommt man auf eine Messwertstandardabweichung von 8 bis 15μg! Die Spitze-Spitze-Werte liegen dabei um das ca. 4- bis 6-fache höher, also 32 bis 90μg.
30.1.2014
Unter Tags wird der Raum, in dem die Waage aufgebaut ist, immer wieder betreten, und es kommt oft kalte Luft von draußen (-5°C) hinein.
Ich habe nun die Messung von vergangener Nacht ausgewertet. Dabei wurde der Messschrieb in Intervalle von 240S unterteilt (= ca. 4 Minuten), und jeweils eine Driftkorrektur gemacht, und dann die Standardabweichung und der Spitze-Spitze-Wert pro Intervall abgespeichert. Davon wurde dann ein Histogramm gemacht.
Es ergibt sich eine Mittlere Standardabweichung von 10.4μg.
Man muss erwähnen, dass obige Messungen noch mit den mit 1/f-Rauschen behafteten OPVs gemacht wurden (MAX4236 als Photo-/Regelverstärker und OPA1632 auf dem ADC-Board als Eingangsverstärker). D.h. in den Bauteilen steckt noch Verbesserungspotential.
Lastabhängiges Rauschen
4.2.2014
Messung über mehrere Tage; Berücksichtigung von Intervallen mit s ⇐ 15ug. Somit wurden Störungen der Waage durch das Begehen des Messraumes nicht berücksichtigt:
Man beachte: die Waage befindet sich nahe am mechanischen Gleichgewicht!
Aktuelle Messungen, bei denen die Waage mit ca. 45g beladen ist, zeigen ein wesentlich höheres Rauschen. Die Werte liegen so bei 100 bis 200ug!
Mögliche Ursachen müssen noch geklärt werden.
Luftdichteschwankungen aufgrund von Wind konnten eher ausgeschlossen werden, da es dafür eine Luftdruckänderung von ca. 1% bräuchte, und das scheint echt zu viel für ein bisschen Wind außerhalb des Hauses.
12.2.2014
Den Spannungsfolger OP der Temperaturmessung (ADA4528) mit dem Photo-OP des Positionsreglers (MAX4236) ausgetauscht, weil der OP von Analog Devices vermutlich besser ist.
Dass das Rauschen mit zunehmender Last auf der Waage auch zunimmt, ist leider unverändert.
Hier der aktualisierte Schaltplan: http://zeilhofer.co.at/documents/waage/Schematic_V1.2.0_20140214.pdf
Justiergewicht
13.2.2014 Justiergewicht montiert, um den Waagbalken in die stabile Lage zu bringen.
Der Schwerpunkt des Waagbalkens ist konstruktionsbedingt oberhalb des Hauptlagers. Das führt dazu, dass der Regler ständig ein bisschen schwingt. Man sieht das in Form von Schwingungspaketen mit einer Frequenz von 6.9Hz. Durch das Einstellen des Schwerpunktes erreicht man, dass diese Schwingungspakete verschwinden.
Emulation der Wägezelle
14.2.2014 Messungen mit dem Wägezellen-Emulator
Hier die Schaltung. Mit den Jumpern kann man das Emulierte Gewicht einstellen 0-7 mal Grundeinheit. Die Grundeinheit ist zufälligerweise ziemlich genau 10g.
Messung Samplerate: ca. 30Hz, Standardabweichung über 20s driftbefreit Umgebungstemperatur ca. 13°C im Keller auf Fundament
Rauschwerte:
Nenngewicht | Messrauschen | Ausgedrückt als Spannung am Shunt |
---|---|---|
0g | 7.5-12ug | 0V (170-270nV) |
10g | 40-60ug | 225mV (0.90-1.35uV) |
20g | 70-110ug | 450mV (1.6-2.5uV) |
30g | 140-270ug | 676mV (3.2-6.1uV) |
40g | 180-460ug | 901mV (4.1-10uV) |
50g | 330-530ug | 1.13V (7.4-12uV) |
60g | 250-460ug | 1.35V (5.6-10uV) |
70g | 350-570ug | 1.58V (7.9-13uV) |
Man erkennt ganz gut den Zusammenhang, der mit der Wägezelle selbst auch festgestellt wurde: Je größer der Spulenstrom, desto größer auch das Rauschen. Nun ist aber auf jeden Fall klar, dass das Rauschen aus der Elektronik kommt, und nicht etwa von der Wägezelle selbst. Die Fehlersuche hat sich zumindest ein wenig eingegrenzt.
Diese Messungen sollten nochmals wiederholt werden und unter eingeschwungenen Zuständen dann statistisch ausgewertet werden. Die obigen Messwerte wurden durch ablesen des Rauschwertes aus der GUI ermittelt.
Rauschen einer NiMH-Zelle
16.2.2014
Heute hab ich kurz probiert, was der ADC an Rauschen misst, wenn man statt dem Shunt eine Akku-Zelle anschließt. Ich hätte vermutet, dass das Rauschen eher bei 10ug liegt. Doch tatsächlich ist die Spannung eines Akkus alles andere als konstant und rauschfrei. Bei selbigen Bedingungen wie bei den obigen Messungen mit dem Emulator hab ich ein Rauschen von 700-1200ug gemessen. Der Wert ist unabhängig davon, ob die Akkuzelle im Leerlauf ist, oder mit dem 270Ω-Shunt belastet wird. Der PI-Regelkreis war mit dem Emulator geschlossen, der „Spulenstrom“ floss jedoch nicht durch die Zelle. D.h. es war nur der Plus-Kontakt der „Spule“ des Emulators angeschlossen.
Das besondere an diesem Versuch ist, dass kein zusätzlicher Strom in den analogen Versorgungsleitungen bzw. der Masseleitung fließt. Eine Vermutung ist nämlich, dass das Layout der Platine für Störungen sorgt, wobei ursprünglich beim Layout schon darauf geachtet wurde, dass es durch Masseströme zum Beispiel nicht ungewollt zu Messstörungen kommt.
Als nächstes möchte ich probieren, einen großen Elko aufzuladen, und den dann im Leerlauf statt dem Shunt in die Schaltung hängen. Vielleicht rauscht solch ein Elko weniger als eine NiMH-Zelle.
Außerdem hab ich heute probiert den Shunt durch einen Jumper zu ersetzen, wobei hier wieder kein „Spulenstrom“ durch den Jumper floss. Es wurde also der Eingang des Anti-Aliasing-Filters kurzgeschlossen. Dabei misst man ein Rauschen von ca. 17ug. Interessant ist, dass das gemessene Rauschen noch kleiner wird, wenn man den Regler mit dem Emulator mit 0g Last hinzunimmt. Man misst dann nur ca. 10ug. Das soll mal einer verstehen…
Texas Instruments ADS1281EVM - Enttäuschung Nr. 2
17.2.2014
Es hat sich nun herausgestellt, dass das 31-Bit-ADC-Eval-Board die Quelle des lastabhängigen Rauschens ist!
Ich hab nun die Schaltung der Waage vom ADC-Board getrennt, und direkt an den dafür vorgesehenen Pins eine Spannung angeschlossen. Diese wurde mit einer Spannungsreferenz (Chip LT1004-1.2) erzeugt. Schließt man diese an das ADC-Board an, so misst man ein Rauschen von ca. 700ug bei ca. 62g Nenngewicht. Nun war aber noch unklar, wie groß das Rauschen der eher schlechten Spannungsreferenz selbst ist. Um dies herauszufinden, hab ich zwei mal die gleiche Schaltung aufgebaut (Li-Zelle mit 1kΩ Vorwiderstand und die Spannungsreferenz). Schaltet man diese dann antiseriell zusammen, verbleibt eine Differenzspannung von ca. 0.5mV - also die Abweichung der beiden Spannungsreferenzen untereinander. Schließt man diese Reihenschaltung nun an das ADC-Board, so misst man ein Rauschen von ca. 100ug. Da die beiden Spannungsquellen voneinander unabhängig rauschen, so kann man annehmen, dass eine Spannungsquelle alleine mit ca. 1/wurzel(2)*100ug = 70ug rauscht (abgesehen vom ADC-Rauschen selbst).
Ich hab dann auch noch den OPA1632 ausgelötet, zwei Drahtbrücken drauf, und somit die Spannungsreferenz direkt an die ADC-Eingänge angeschlossen, wobei der R12 und der C21 vom EVM noch wirksam waren. Das Rauschen war mit ca. 400ug etwas kleiner als mit Vorverstärker, aber trotzdem noch weit weg von den schon erzielten 10ug.
Allen Anschein nach ist der ADC selber die Quelle des lastabhängigen (=spannungsabhängigen) Rauschens.
Rauscht der digitale Filter für die Abtastratenreduktion?
18.2.2014 Am Ende der Signalkette liegt der digitale Filter. Durch Rundungsfehler kommt es beim Filtern zum Rauschen. Wie groß das ist, kann man fast nur durch ausprobieren herausfinden. Eine Vermutung war jetzt nocht, dass das digitale Filter selbst bei einem DC-Offset stärker rauscht als um die Nulllage herum. Das konnte jedoch wiederlegt werden. Zum digitalen Sample-Wert wurde vor dem Filtern ein Offset testweise addiert. Doch das Rauschen blieb klein wie ohne Offset.
Neuer ADC gefunden: AD7190
24.2.2014: Laut Datenblatt schafft dieser bei einer Abtastrate von z.B. 150S/s 22.5 Bit (Rauschen RMS) bzw. 20 Bit rauschfrei. Reduziert man die Abtastrate auf z.B. 1 Abtastwert pro 30s, kommt man auf 26 Bit rauschfrei bzw. 70 Mio. LSBs. Das entspricht dann in etwa der Auflösung, die Sartorius beim Massekomparator CCE6 schafft: 0.1ug bei 6.1g Wägebereich (jedoch haben die dort eine Einschwingzeit von nur 10s).
Ich hab bei Farnell nun das Eval-Board und einen Chip bestellt. Ich bin schon gespannt auf die ersten Messungen. Bis dahin ist erst einmal Pause.
Positionsregler für Single-Supply
27.2.2014 Der neue ADC wird auf der Analogseite mit 0-5V versorgt. Und die Eingangssignale dürfen im Bereich von 0.25V bis 4.75V sein. Daher muss eine neue Schaltung für den Positionsregler her, die eine passende Shuntspannung liefert.
Die Spule wird nun bipolar durch zwei gegengleich arbeitende OPs angesteuert, um die Spannung von ±3.4V für Spule plus Shunt bereitstellen zu können. Durch den 2. OP verdoppelt sich die Schleifenverstärkung des Regelkreises. Daher wurden die RC-Werte des PI-Reglers angepasst. R wurde von 150k auf 82k ca. halbiert, und C wurde von 1uF auf 2uF verdoppelt.
Erste Messungen mit dem AD7190
12.3.2014
Samplerate: ca. 30S/s
Effektivwert berechnet über 20s (ca. 600S)
Angeschlossen ist hier wieder der Wägezellen-Emulator
Die analoge 5V Versogung kommt von einem 9V Block-Akku
Der Positionsregler ist auf der Prototyping-Fläche des Eval-Boards aufgebaut.
Rauschwerte:
Nenngewicht | Messrauschen | Ausgedrückt als Spannung am Shunt |
---|---|---|
0g | 29-34ug | 0V (0.65-0.77uV) |
20g | 40-48ug | 454mV (0.90-1.1uV) |
41g | 60-68ug | 909mV (1.4-1.5uV) |
61g | 85-98ug | 1.36V (1.9-2.2uV) |
82g | 104-135ug | 1.82V (2.3-3.0uV) |
102g | 130-150ug | 2.26V (2.9-3.4uV) |
Durch die bipolare Ansteuerung beim Positionsregler funktioniert der Emulator nun etwas anders. Die einstellbaren Stufen sind nun ca. 20g anstatt 10g. R1 des Emulators (R_Coil = 100Ω) und der Shunt (270Ω) werden symmetrisch um 2.5V angesteuert. D.h. „im Shunt“ ist ein vituelles potential von auxillary ground 2.5V. Man muss sich den Shunt 2-geteilt vorstellen, wobei der obere Teilwiderstand 85Ω [(270+100)/2 - 100 = 85], und der untere 185Ω hat.
Es ergibt sich ein linear ansteigendes Rauschen mit ca. 1.1ug/g mit einem Grundrauschen von ca. 30ug.
Edit 2015-10-08:
In Anbetracht der eher schnellen Abtastrate von 30S/s könnte man durch Abtastratenreduktion die Rauschspannung noch ca. um den Faktor 16 reduzieren, wenn man auf 10s/S geht. Dadurch würde sich eine Rauschspannung von ca. 3uV/sqrt(16) = 750nVeff bei 100g Last einstellen. Oben wurde gezeigt, dass ca. 35nVeff notwendig wären um 10ug rauschfrei auflösen zu können. Daher ist der aktuelle Aufbau noch immer ca. um den Faktor 20 schlechter als Sartorius es schafft. Aber immerhin sollten sich damit tatsächlich Auflösungen von 200ug, was 1 Mio. LSBs entspricht, realisieren lassen. Bleibt nur noch die Temperaturdrift zu eliminieren.
Edit 2015-11-11:
Das „lastabhängige“ Rauschen kommt bei obigem Versuch vom Emaluator selbst, bzw. dessen Spannungsreferenz!
Eine theoretische Ableitung der zu erwartenden Rauschspannung, basierend auf der Rauschmessung des LT1004 vom 17.2.2014 ergibt bei 100g Nennwert 2.9uVeff 1) 2)
Die Spannungsreferenz des ADCs
2015-11-11
Das Rauschen der Spannungsreferenz wurde bisher außer Acht gelassen. Das Evalboard des AD7190 verwendet den ADR421 als Referenz (2.5V). Laut Datenblatt hat diese ein Spannungsrauschen von typisch 1.75uVpp (0.1-10Hz), was ca. 290nVeff entspricht. Diese Spannungsangabe ist einigermaßen mit den Rauschspannungen vom 12.3.2015 vergleichbar, da es sich dort um einen ähnlichen Frequenzbereich handelt (30S/s, 20s lang).
Das Rauschen der Spannungsreferenz müsste sich auch proportional zur Eingangsspannung im Ausgabewert des ADCs bemerkbar machen. Da es sich um einen Delta-Sigma-Wandler handelt, wird die Spannungsreferenz zeitlich gesehen im Schnitt proportional zum Eingangssignal „verwendet“.
Die beste Spannungsreferenz, die man heutzutage als integrierte Schaltung zu kaufen bekommt, ist der LTZ1000. Diese hat bei einer Nennspannung von 7.2V eine typische Rauschspannung von 1.2uVpp (0.1-10Hz), also ca. 200nVeff. Umgerechnet auf 2.5V, sodass dieser Wert mit dem ADR421 vergleichbar ist, sind das 70nVeff. Sie ist also gut um den Faktor 4 besser. Durch das mitteln mehrerer LTZ1000 könnte diese Rauschspannung noch reduziert werden, ist aber bei einem Preis von ca. 50€/Stk eher kostspielig!
Eine etwas günstigere und leichter handhabbare Spannungsreferenz ist der LTC6655. Dieser ist in einem dampfdichten CLCC-8 Gehäuse, und daher auch vergleichsweise stabil. Sein Rauschen wird mit typ. 0.25ppm peak-peak = 630nVpp = 100nVrms angegeben.
25 Stk wären um gesamt 224€ zu haben. Damit würde sich ein Rauschen von 20nVrms erreichen lassen.
Der größte Nachteil ist hier das SMD-Gehäuse. Dieses ist wie oben schon beschrieben auf thermomechanische Spannungen der Leiterplatte sehr empfindlich. Eine Abhilfe dazu wäre die „tote Käfer Montage“.
In einen Thermostaten müsste man die Platine jedoch auf jeden Fall geben. Diesen könnte man analog zur LTZ1000-Beschaltung mit einem Transistor als Sensor ausstatten.