Forum: Analoge Elektronik und Schaltungstechnik Lasersensorsignal


von Matthias P (Gast)


Angehängte Dateien:

Lesenswert?

Hi
ich hoffe ihr könnt mir helfen.
Ich habe 2 Lasersensoren (Triangulationsverfahren), welche 2 Abstände 
messen und als Analogsignal (0-10V) ausgeben.

Das Problem dabei ist, dass wenn der Abstand absolut gleich bleibt 
(schwarzes Signal Anfang und Ende), ist ein störendes Rauschen 
vorhanden. (Welligkeit von ca. 50mV)

Problemursachen, die ausgeschlossen werden können, sind induktive 
Kopplung, galvanische Kopplung und Lufteinkopplung, da ich den Sensor im 
Schaltschrank und auch alleine betrieben habe. Das Ergebnis sieht gleich 
aus.

Ein weiteres Problem, welches ich mir vorstellen könnte, ist die 
unkonstante Spannungsquelle (Schaltnetzteil - Welligkeit 50mV). Da ich 
den Sensor jedoch an einem normalen Netzteil schon laufen ließ, konnte 
ich das auch ausschließen. Auch ein dazwischen geschaltener 
Glättungskondensator hat keine Abhilfe gebracht

Nun ist meine Frage, wo sonst das Problem liegen kann.
Denn mein Sensor besitzt eine Genauigkeit von 0,15%, was ca. 1 mV 
entspricht.

Und wenn es dafür keine Erklärung gibt, kommt die Frage auf, wie ich das 
wegfiltern kann. Ich habe mir ein normales RC-Glied überlegt. 
(Grenzfrequenz 5 Hz), jedoch brachte das auch nichts.

Übrigens: Aufgenommen wurden die Signale von einem Datenlogger 
(Easylogger, falls den wer kennt). Den konnte ich als Fehlerquelle auch 
ausschließen, da ich das Signal auch am Oszi angeschaut habe, und ein 
gleiches Verhalten eingestellt hat.

Hoffe auf Hilfe.
mfg
Matthias P.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Das überlagerte Signal im Bild scheint eine feste Frequenz zu haben. Wie
hoch ist diese?

von Matthias P (Gast)


Angehängte Dateien:

Lesenswert?

also unten sind die Sekunden eingezeichnet.
Somit wärs eine Periodendauer von 20ms
also 50Hz ... nur weiß ich wirklich nicht woher die kommen sollten.

und was könnte ich dagegen tun? Schirmen?
mfg
Matthias P.

von Wolfgang Horn (Gast)


Lesenswert?

Matthias P schrieb:
> Ich habe 2 Lasersensoren (Triangulationsverfahren)

Klingt interessant, Mathias,

wenn handelsüblicher Typ, bitte ein Link auf das Datenblatt.

Ciao
Wolfgang Horn

von Matthias P. (Gast)


Lesenswert?


von Michael (Gast)


Lesenswert?

Matthias P schrieb:
> Ich habe mir ein normales RC-Glied überlegt.
> (Grenzfrequenz 5 Hz), jedoch brachte das auch nichts.

Was heißt "das brachte auch nichts"? Ein 5 Hz Tiefpaß muß ein 50 Hz 
Signal abschwächen, sonst war es kein 5 Hz Tiefpaß. Mit einem Tiefpaß 
höherer Ordnung und niedrigerer Grenzfrequenz muß sich das Signal auf 
jeden Fall unterdrücken lassen, falls es wirklich von deinem Sensor 
kommt und nicht irgendwo auf dem Weg zu deiner Aufzeichnung einstreut.

von Willi W. (Gast)


Lesenswert?

Matthias P schrieb:
> Denn mein Sensor besitzt eine Genauigkeit von 0,15%, was ca. 1 mV
> entspricht.

Im Datenblatt steht 0,15% als Angabe für die Linearität. Verwechselst du 
da nicht etwas?

von Matthias P. (Gast)


Lesenswert?

aso ... ja hab ich verwechselt ^^
ich meinte die Auflösung ... die is ungefähr bei 50µm. Das entspricht 
dann 0,01666%

Aber da ich gerade ein paar Versuche mit dem Datenlogger gemacht habe, 
bin ich auf etwas draufgekommen.
Selbst ein geeichtes Gerät (auf mV) und eine Batter erzeugen ein 
Rauschen von 50mV im Gerät.
Da wird wohl der Datenlogger schuld dran sein.

Kennt wer geeignete Geräte für meine Anwendung?
mfg
Matthias P.

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Matthias P. schrieb:
> Selbst ein geeichtes Gerät (auf mV) und eine Batter erzeugen ein
> Rauschen von 50mV im Gerät.
> Da wird wohl der Datenlogger schuld dran sein.

Was war dann das:

Matthias P schrieb:
> Übrigens: Aufgenommen wurden die Signale von einem Datenlogger
> (Easylogger, falls den wer kennt). Den konnte ich als Fehlerquelle auch
> ausschließen, da ich das Signal auch am Oszi angeschaut habe, und ein
> gleiches Verhalten eingestellt hat.

Oder hast du mit dem Oszi gemessen, während auch der Datenlogger ange-
schlossen war?

> Kennt wer geeignete Geräte für meine Anwendung?

Vielleicht brauchst du gar kein anderes Gerät. Wenn die Störung wirklich
aus dem Datenlogger kommt, müsste ihre Frequenz immer die gleiche sein.
Dann kann das Signal auch softwaremäßig mit gleitender Mittelung heraus-
gefiltert werden.

  http://de.wikipedia.org/wiki/Gleitender_Mittelwert#Einfacher_gleitender_Mittelwert

Entspricht das Zeitintervall, über das gemittelt wird, exakt der Perio-
dendauer der Störung, wird diese theoretisch komplett beseitigt.

Deinem vergößerten Screenshot ist zu entnehmen, dass die Störfrequenz
ziemlich genau bei 60Hz liegt. Da die Abtastfrequenz 1kHz beträgt,
müsstest du idealerweise über jeweils 16⅔ Werte mitteln. Da das nicht
geht, behilft man sich damit, dass man für die Mittelung jeweils 16
Werte mit dem Gewicht 1 und einen 17. Wert mit dem Gewicht ⅔ versieht.

Das folgende Programm tut genau dies, wobei immer der älteste der letz-
ten 17 Messwerte geringer, nämlich W_OLDEST=⅔ gewichtet wird:
1
#include <stdio.h>
2
3
// Abtastfrequenz
4
#define F_SAMPLE 1000
5
6
// Störfrequenz
7
#define F_NOISE 60
8
9
// Das Verhältnis zwischen beiden
10
#define RATIO ((double)F_SAMPLE / F_NOISE)
11
12
// Puffergröße: nächstgrößere ganze Zahl
13
#define N ((F_SAMPLE-1) / F_NOISE + 1)
14
15
// Gewichtungsfaktor für das jeweils älteste Element im Puffer
16
#define W_OLDEST (RATIO + 1 - N)
17
18
int main(void) {
19
  static int buf[N];
20
  int y, i;
21
  double sum;
22
  FILE *fpi, *fpo;
23
  
24
  fpi = fopen("unfiltered.dat", "r"); // Signaldaten
25
  fpo = fopen("mov-avg.dat", "w");    // gefilterte Signaldaten
26
27
  while(fscanf(fpi, "%d", &y) == 1) {
28
    buf[N-1] = y;
29
    sum = W_OLDEST * buf[0];
30
    for(i=1; i<N; i++) {
31
      sum += buf[i];
32
      buf[i-1] = buf[i];
33
    }
34
    sum /= RATIO;
35
    fprintf(fpo, "%f\n", sum);
36
  }
37
  fclose(fpo);
38
  fclose(fpi);
39
  return 0;
40
}

Das Bild im Anhang zeigt das Ergebnis: Das gefilterte Signal (blau) ent-
hält zwar noch minimales Rauschen, der 60Hz-Anteil ist aber nicht mehr
zu erkennen. Durch Ändern der Parameter F_SAMPLE und F_NOISE kannst du
das Programm auch an andere Gegebenheiten anpassen.

Wie bei jedem Tiefpassfilter wird auch hier das Signal zeitlich verzö-
gert. Aber während ein RC-Tiefpass theoretisch unendlich lange braucht,
um einem Sprung des Eingangssignals zu folgen, geschieht dies bei der
gleitenden Mittelung in konstanter Zeit, in diesem Fall in 17 Abtast-
zyklen. Da die Pufferwerte im Programm mit 0 initialisiert werden,
dauert es deswegen etwa 17ms bis ein konstanter Mittelwert von etwa 13
erreicht wird.

Zum Vergleich ist im Diagramm noch das Ergebnis eines RC-Tiefpasses 1.
Ordnung mit einer Grenzfrequenz von 10Hz eingetragen (grün). Obwohl er
deutlich länger braucht, um den Zielwert zu erreichen, sind noch Reste
der 60Hz-Störung erkennbar.

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
Noch kein Account? Hier anmelden.