Hallo!
Ich experimentiere momentan mit einem BMP085-Drucksensor herum, aber
kriege leider immer sehr starke Schwankungen in den Druckmessungen. Der
Sensor sollte ja bei OSS=2 ein maximales Rauschen von 5 Pa haben, ich
habe bei all meinen Messungen jeweils ein Noise-Level von 30 Pa.
Ich verwende die Code-Beispiele hier aus dem Forum bzw. eine auf den
Code von JeeLab basierenden Version. Temperatur & Luftdruck stimmen zwar
im "Groben" (d.h. auf hPa) Ebene gut mit realen Werten überein, aber da
ich Höhenänderungen messen will ist das Rauschen mein Problem. Selbst
die "rohen" Messwerte (vor dem Umrechnen in den realen Luftdruck)
unterliegen diesen starken Schwankungen.
Wo dran könnte dieses Rauschen liegen? Ich habe schon versucht einige
Kondensatoren verschiedener Größe direkt an die Spannungsversorgung des
Sensors zu packen, und auch die ganze Schaltung nur über eine 3.3V
Lithium Batterie zu versorgen. Alle Versuche irgendwelche "störenden"
Wechselströme (PWM, ...) zu deaktivieren, haben auch nicht geholfen.
Ist der Sensor einfach defekt, oder überseh ich irgend etwas? Ich würde
mich über Ratschläge & Ideen freuen!
>Der Sensor sollte ja bei OSS=2 ein maximales Rauschen von 5 Pa haben, ich>habe bei all meinen Messungen jeweils ein Noise-Level von 30 Pa.
5Pa ist ein Effektivwert. Der Peak-Peak-Wert ist dagegen 6,6 x 5Pa =
33Pa.
Warum machst du denn kein Software Averaging?
Was willst du genau erreichen? Höhenbestimmung? Wie schnell so das
System reagieren? 30 Pa ist doch in Ordnung. Das entspricht einer
Höhenänderung von ca. 25 cm. Besser kannst du das nur mit einen
Mittelwert über mehr Werte erreichen. Wenn du die Höhenänderung genauer
und schneller willst, darfst du eben keinen Drucksensor nehmen...
Hi!
Danke für alle eure Antworten. Entspricht in Nähe des Meeresspiegels
(0-500m) eine Änderung von 11,7 Pa einer Höhenänderung von 1m? Da sind
3m "Rauschen" schon ganz schön viel. Ich möchte im Endeffekt wirklich
wie bei einem Variometer Höhen-Änderungen messen. Die grobe Tendenz
bekomm ich zwar auch hin, aber das Rauschen zerstört die Messwerte
einfach komplett.
Ich bin leider deshalb mit dem ganzen Problem auch noch nicht wirklich
weiter. Selbst wenn ich über eine Sekunde lang Messwerte sample, erhalte
ich immer noch ein Rauschen von etwa 3 Pa, also 26cm. Das ist zwar
selber nun in einem akzeptablen Rahmen, aber 1 Hz ist nicht gerade die
gewünschte Abtastrate ..
@XMega: Danke, das muss ich mir mal näher anschauen. Ich hab leider
momentan keine passenden Drosseln/.. hier, aber eigentlich dürfte da
auch kein so starkes Rauschen auf der Spannungsleitung sein --
schließlich hängt an dieser Schaltung zum Testen wirklich nur ein
Lithium 3.3V Akku, und ein ATMega8L. Es könnte höchstens sein, dass der
zum Testen verwendete UART Max232 noch ein Rauschen reinbringt. Hmm. Hab
leider aber auch kein Oszilloskop hier.
Naja, wenn du uns Schaltplan und Layout nicht zeigst, können wir auch
nicht helfen!
>@XMega: Danke, das muss ich mir mal näher anschauen. Ich hab leider>momentan keine passenden Drosseln/.. hier, aber eigentlich dürfte da>auch kein so starkes Rauschen auf der Spannungsleitung sein -->schließlich hängt an dieser Schaltung zum Testen wirklich nur ein>Lithium 3.3V Akku, und ein ATMega8L.
Natürlich kann da schon zu sarkes Rauschen sein! Spendiere dem VDDA
Eingang wenigstens versuchshalber eine zusätzliche Siebung mit 10...100R
und 47µF. Schirme das Teil außerdem vor Zugluft und Vibrationen ab.
Hallo nochmal!
Ich habe jetzt einige Zeit mit dem Sensor selber rumprobiert. Sowohl auf
zwei verschiedenen Platinen, als auch auf Breadboardschaltungen und
ähnlichem; mit Spannungsreglern, und ohne Spannungsreglern direkt an
Batterien, ... - Unter die ~30 Pa Noise (Min <->) Max kommt man
scheinbar nicht.
Das ganze dient dem Bau eines kleinen Solarvarios, und funktioniert
inzwischen auch ganz brauchbar. Das mit dem Noise stört jedoch schon.
Ich frage mich nun, welches der beste Software-Averaging-Algorithm ist
-- Alle haben scheinbar ihre Vor- und Nachteile.
Entweder ich habe selbst bei gleichbleibender Höhe ständiges
unterschiedliches Piepsen (also "Höhenschwankungen"), oder das
Variometer reagiert sehr träge (d.h. erst nach 1-2 Sekunden). Wie lösen
die professionellen Variometer das Problem?
Momentan verwendee ich einen Algorithmus, der das Ganze in drei
Schritten glättet:
(a) über 995ms Samples aufnehmen, und anschließend den Durchschnitt aus
Minimal und Maximalwert errechnen, d.h. p = (max+min)/2. Ich nehme diese
Version, da ich hier auf ein geringeres Rauschen komme (Kann das
eigentlich überhaupt?)
(b) Eine kleine I-D-Stufe, welche die Änderungsgeschwindigkeit misst,
und diese mit Averaging auch noch einbringt.
(c) Als letzter Schritt pDiffNeu = (pDiffAlt + pDiffNeu)/2
Hat jemand schon einmal damit rumexperimentiert und bessere Ideen?
>(a) über 995ms Samples aufnehmen, und anschließend den Durchschnitt aus>Minimal und Maximalwert errechnen, d.h. p = (max+min)/2. Ich nehme diese>Version, da ich hier auf ein geringeres Rauschen komme (Kann das>eigentlich überhaupt?)
Was Du damit effektiv machst, ist Bandbreitenbegrenzung. Also nix
anderes als ein Tiefpaß. Und sowas reduziert natürlich das Rauschen.
Aber warum ist es effektiver als einfach den Durchschnitt der Datenmenge
zu nehmen? Welche Noise-Reduction-Verfahren sind generell bei soetwas zu
bevorzugen?
Ich kenne kein Verfahren, was besser oder schlechter ist. Alles, was ich
kenne, basiert auf Verringerung der effektiven Bandbreite. Klar kann man
Spezialbehandlungen durchführen, wie z.B. extreme Ausreiser ignorieren,
was quasi einer zeitlich begrenzten Verringerung der Bandbreite
gleichkommen würde.
Hallo,
ich weiss, der Thread ist schon alt. Ich habe aber genau das gleiche
Problem mit dem BMP085 wie Jansen (starkes Rauschen trotz sauberer
Betriebsspannung und korrekter Ansteuerung).
RMS Rauschen bei oss=2 sollte laut Datenblatt 5Pa sein. Peak-to-Peak
wären das 5Pa * 1.4 = 7Pa. Ich sehe aber wie Jansen etwa 30Pa
Peak-to-Peak Noise (Samplingrate 25Hz, kein Software-Averaging). Wenn
ich das Loch vom Sensor mit einem Silikon-Oropax verschließe, verringert
sich der Noise nur sehr geringfügig (etwa 10-20%). Betriebsspannung ist
sauber (gemessen mit Oszi) und hat nach meinen Versuchen null Einfluß
auf das Rauschen.
Gibt es vielleicht neue Ideen/Erkenntnisse hierzu?
Gruß, M.
Malte Ibs schrieb:> Peak-to-Peak wären das 5Pa * 1.4 = 7Pa. Ich sehe aber wie Jansen> etwa 30Pa Peak-to-Peak Noise (kein Software-Averaging).> ich weiss, der Thread ist schon alt.
Ja, und hast du wenigstens den allerersten Antwortpost gelesen?
Martina schrieb:>>>> 5Pa ist ein Effektivwert.>>>> Der Peak-Peak-Wert ist dagegen 6,6 x 5Pa = 33Pa.
Hast du im Datenblatt gesehen, dass da als "Rauschwert" die
Standardabweichung von 10 Messpunkten verwendet wurde? Du verwendest
mit der Messmethode "Vergleich von Einzelwerten" den falschen Ansatz.
Hast du im Datenblatt den Abschnitt mit dem Verweis auf die Appnote
"noise in pressure sensor applications" gesehen?
Blöderweise findet man diese Appnote nicht, aber auch andere haben das
Problem:
http://www.freescale.com/files/sensors/doc/app_note/AN1646.pdfhttp://www.sensorica.ru/pdf/1_doc_15.pdf
Der BPM085 ist übrigens abgekündigt:
http://media.digikey.com/pdf/PCNs/Bosch/BMP085_Disc.pdf
Malte Ibs schrieb:> Wie kommt man auf den Faktor 6,6?
Simple Wahrscheinlichkeitsrechnung.
Damit liegen 99,9% aller Messungen innerhalb der Grenzen.
Wenn Du den Faktor 5 nimmst den man auch oft liest sind es nur 99,0%.
Gruß Anja
Malte Ibs schrieb:> (stimmt aber nur bei normalverteilten Werten...)
Davon gehen die Jungs bei Bosch offenbar aus. Sonst wäre die
Standardabweichung ohne weitere Angaben ein ungeeignetes Werkzeug...
Malte Ibs schrieb:> Gibt es vielleicht neue Ideen/Erkenntnisse hierzu?
andere Forumsteilnehmer haben das Problem auch, hier findest Du ein paar
Messwerte:
Beitrag "BMP085 driftet"
Der von Bosch im DB angegebene Wert ist wie schon angemerkt zum einen
die Standardabweichung, zum anderen ist der Wert nur "typical", wird
also nicht garantiert.
Wie ich im obigen Thread schon geschrieben habe, ist das Teil sehr
empfindlich für Temperaturdifferenzen. Wenn da was warmes in der Nähe
ist, geht das Rauschen sofort hoch.