ADC: Messwert beruhigen.wie am besten?

Gast #2180732
Lesenswert?

Hallo zusammen!

Folgendes: Ich habe einen ADC, welcher einen Druck misst...also er misst 
natürlich die Spannung des Drucksensors. Problem ist, dass mein Wert 
ziemlich wackelt. Wie kann ich diesen am besten beruhigen?

Wenn ich die Sample-Rate runter stelle, dann wird das Ding 
schneckenlangsam. Mit einer höheren Sample-Rate und Averaging durch eine 
bestimmte Zahl an Messwerten bringt auch Zappeln oder Schneckentempo. 
Aber auch im Schneckentempo springt der Wert, nur halt langsamer.

Es ist ein 20-Bit SD-Wandler (den hatte ich grad hier)
In einem Metallgehäuse das ganze und sehr weit getrennt von irgendwas 
digitalem. Klar, Layout macht viel aus, aber was kann ich jetzt tun, um 
den Wert zu beruhigen?
Gast #2180742
Lesenswert?

Hi,

der Sigma Delta Wandler benötigt ein Sample&Hold Glied, wenn er noch 
keines integriert hat. Er bildet den Mittelwert der Eingangsspannung, 
also wenn die während einer Messung davonläuft dann macht der Käse am 
Ausgang.
Gast #2180748
Lesenswert?

20 BIT und welche Eingangsspannung wird gemessen ?

Beispiel: 0-5 Volt bei 20 BIT = 1048576 Schritte oder anders formuliert:

5V / 1048576 = 4,76 µVolt. Was erwartest du da ?

Da gehts dann schon mit dem Layout los, sag jetzt nicht das Ganze ist 
auf nem Lochraster Board.
Gast #2180759
Lesenswert?

1275 schrieb:
> wenn er noch
> keines integriert hat

Das ist ein fertigr Wandler für Brückenmessungen. Direkt zum anschließen 
mit integriertem PGA.

Frank Bär schrieb:
> In welchem Umfang zappelt der ADC denn?

Die Werte liegen im "Nullzustand" zwischen 502764 und 502806. Ich weiß, 
das ist nicht soooo viel, aber ich seh es auf dem Display und in meinem 
Stromausgang. Wie könnte ich das los werden?
Gast #2180770
Lesenswert?

Bernd N schrieb:
> 5V / 1048576 = 4,76 µVolt. Was erwartest du da ?

3V / 1048576 = 2,86uV

Mir ist das völlig klar! Und es ist kein Lochraster, nein. Ich suche ja 
nur nach einer geeigneten Möglichkeit, das ganze nachträglich in 
Software zu beruhigen, ohne dass die ganze Geschichte extrem langsam 
wird.

Einfach die letzten Stellen abschneiden?
Gast #2180773
Lesenswert?

raketenfred schrieb:
> gleitender Mittelwert über eine gewisse anzahl?!

Also ich habe jetzt eine bestimmte anzahl von messungen und mache da 
draus den Mittelwert. Aber der SD-Wandler ist ja eh schon ne Schnecke. 
Momentan liest er mit 10SP/s ein. Da dann noch nen Mittelwert und das 
Display hinkt.

Ich kann die SP/s jetzt hochdrehen, aber das ändert nichts.
Gast #2180775
Lesenswert?

>> Einfach die letzten Stellen abschneiden?

So ist es. Wie sinnvoll das ist ergibt sich aber erst aus dem 
Zusammenhang. Was willst du messen und wie genau willst du es messen ? 
Was soll denn die Anzeige später einmal anzeigen ? Druck in welchen 
Schritten ?
Gast #2180777
Lesenswert?

Am Meßeingang C gegen Masse (von 20 pF bis einigen nF) je nach 
Geschwindigkeitsanforderung.

In der Software entweder einen gleitenden Mittelwert oder besser einen 
Medianfilter programmieren. Elegant wäre das Mittelwertfilter gleich als 
Standard FIR-Filter zu programmieren, um die Filtercharakteristik später 
optimieren zu können.
Gast #2180797
Lesenswert?

Auf wie schnelle Änderungen willst du reagieren können? -> passender 
Tiefpassfilter.
Möglichst alle Störquellen deaktivieren (µC - sleepmodi).
Wobei alles >15bit schon recht sportlich wird.
moving average filter glätten ohne langsamer zu werden.
Gast #2180800
Lesenswert?

Vielleicht versuchst Du auch mal zu klären ob Du Dir Störung von der 
Sensor Seite einfängst. Also speise doch mal eine saubere Gleichspannung 
aus z. B. einer Batterie ein. Vielleicht hast Du aber auch Spikes auf 
der Versorgungsspannung für die Brücke. Klemm doch mal ein Scope ran.
Gast #2180817
Lesenswert?

>> Das ist auch keine Lösung: stelle dir mal vor, dass der Messwert z.B.
>> genau auf der Hälfte deines Bereiches liegt.

Es ist dann keine Lösung wenn es ohne Sinn und Verstand erfolgt. Ein AD 
Wandler wandelt immer eine Eingangsgröße in eine Ausgangsgröße. Wenn das 
mit 16 BIT geht dann kann er die letzten 4 BIT sehrwohl verwerfen.

Leider immer noch keine Angaben über die Anzeige und somit ist die 
Diskussion sinnfrei.
Gast #2180840
Lesenswert?

Guido, wir reden leider immer noch aneinander vorbei. 0,1 mBar verstehe 
ich aber ich wüßte gerne folgendes:

Beispiel:
Anzeige von 0-2 Bar, Schrittweite = 0,1 mBar.

Welche Eingangsspannung entspricht 2 Bar ? Wie ist der Bereich 
ausgenutzt ? Kannst du nicht einfach mal alle Daten zusammenhängend 
herausrücken und dann mal mit z.B. 16 BIT rechen und selbst dabei 
erkennen ob 16 BIT dafür ausreichen ?

UREF ?

Dann kann man immer noch Mittelwertbildung, TP etc. in Software angehen. 
Im ersten Schritt kann man jedenfalls durch einfache Mathematik 
bestimmen welche Auflösung für die Aufgabe benötigt wird und genau 
dieses Konzept hätte ich gerne von dir in einem Rutsch.
Gast #2180852
Lesenswert?

Bernd N schrieb:
> Guido, wir reden leider immer noch aneinander vorbei.

OK, also ich habe eine Druckmessung von 0-10bar und möchte diese gerne 
mit 0,1mbar auflösen.

Bei Vollausschlag bekomme ich einen ADC-Wert von 802310 (Brückenspannung 
am DMS vom Drucksensor) Der PGA steht auf 64, das ist das höchste, was 
geht, sonst verlässt er den Messbereich vom ADC (der ADC stellt sich die 
Verstärkung beim Kalibrieren selber ein).


Die Referenzspannung beträgt 3,000V
Gast #2180869
Lesenswert?

Die Referenzspannung beträgt 3,000V

802310 = 3V ? = 10 Bar ?

Besser 1048576 = 3V, will sagen das der Ansatz schon nicht gut ist. Im 
ersten Schritt würde ich den Sensor so anpassen das 10 Bar auch ca. der 
Wandler Endpunkt ist und erst dann gehts weiter.

Habe ich deine Werte richtig verstanden ?
Gast #2180885
Lesenswert?

Bernd N schrieb:
> 802310 = 3V ? = 10 Bar ?

802310 == 10 bar, nicht 3V! Wi gesagt, der interne PGA kann nur 2^n bis 
128, also nichts zwischen 64 und 128.

Bernd N schrieb:
> Im
> ersten Schritt würde ich den Sensor so anpassen das 10 Bar auch ca. der
> Wandler Endpunkt ist und erst dann gehts weiter.

Externe Beschaltung ist leider nicht drin, der PGA muss das erledigen, 
daher leider auch keine 100%ige Anpassung ;-\
Gast #2180905
Lesenswert?

Dann betreibst du jetzt die Korrektur eines Designfehlers. Du verwirfst 
durch die Fehlanpassung schon jede Menge. Der Ansatz ist für ein 
präzises Messgerät nicht gut.

>> Wenn ich mich nicht allzusehr verrechnet hab, dann hast du schon das
>> Minimum an Rauschen rausgeholt. Die Kosmetische Beruhigung machst du
>> dann am besten in Software.

So ist es.
Gast #2180912
Lesenswert?

Luk4s K. schrieb:
> Wenn ich mich nicht allzusehr verrechnet hab, dann hast du schon das
> Minimum an Rauschen rausgeholt. Die Kosmetische Beruhigung machst du
> dann am besten in Software.

Na jut, Jungs. Dann werde ich erstmal werkeln und mich dann wieder mit 
dem Resultat melden! Ich danke euch erstmal!
Gast #2180921
Lesenswert?

Ein kosmetischer Ansatz könnte folgender Pseudocode sein:
1
    if (measVal > AdcVal) {                                       // Messwert aktuell > vorheriger Messwert ?
2
        if (measVal - AdcVal > AdcWindow) {                       // Delta measVal, AdcVal > X mV ?
3
            AdcVal = measVal;                                     // => Anzeige sofort aktualisieren
4
        } else {                                                  // Delta measVal, AdcVal < X mV ?
5
            AdcVal += 1;                                          // => Messwert annähern
6
        }
7
    } else if (measVal < AdcVal) {                                // Messwert aktuell < vorheriger Messwert ?
8
        if (AdcVal - measVal > AdcWindow) {                       // Delta measVal, AdcVal > X mV ?
9
            AdcVal = measVal;                                     // => Anzeige sofort aktualisieren
10
        } else {                                                  // Delta measVal, AdcVal < X mV ?
11
            AdcVal -= 1;                                          // => Messwert annähern
12
        }
13
    }

Hierbei wird eine aktualisierung der Anzeige bei großem Delta sofort 
erzwungen, bei kleinen Änderungen nähert man sich an. Die Anzeige wird 
hierdurch träge.
#2180940
Lesenswert?

0,1 mbar Auflösung entspricht bei atmosphärischem Druck etwa einer 
Höhenänderung von 80cm.

Je nach Größe und Form des Volumens, in dem die Messung erfolgt, wird 
man da schon erkennbare Änderungen des Drucks durch äußere Einflüsse 
erhalten (vorbeikommendes Fahrzeug/Flugzeug).

Edit: Temperaturänderungen nicht zu vergessen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren