PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Bewegungsrichtung" einer Sinusfunktion



Herkulase
16.12.2008, 22:44
Hallo allerseits!

Ich hab mal folgende Frage. Wahrscheinlich ist es eh ganz leicht, aber ich komm irgendwie einfach nicht drauf:
Eine Sinuswelle (Amplitude, Wellenlänge konstant) bewegt sich entlang der x-Achse hin und her, entweder nach links, oder nach rechts. Ich stelle zwei Sensoren auf (an unterschiedlichen x-Punkten, in einem Abstand d != n*pi/2), die den aktuellen y-Wert der Funktion ermitteln. Wenn sich nun der Sinus bewegt, dann erhalte ich, wenn ich die Werte der Sensoren über die Zeit beobachte zwei Sinuskurven, die lediglich um den Betrad von d gegeneinander Verschoben sind. (Bzw. der eine Sensor eilt dem anderen voraus). Wenn sich die Bewegungsrichtung umkehrt, eilt eben der andere voraus. Wie kann ich denn nun möglichst elegant ermitteln, in welche Richtung sich der Sinus bewegt.

Konkret geht es darum, per Michelson-Interferometer zu ermitteln, ob sich ein Gegenstand hin oder weg bewegt. (Denn in Abhängigkeit zur Bewegungsrichtung des Messsobjektes änert sich auch die Bewegungsrichtung der Interferenzstreifen).

Viele Grüße

GErald

Edit: Ich sehe gerade, ganz einfach ist es nicht, das gut zu beschreiben, aber vllt. versteht mich ja jemand ;-)

pacer_one
17.12.2008, 11:26
Hab mal kurz drüber nachgedacht, daher weiß ich jetzt nicht ob ich einen Denkfehler habe. "Sensoren im Abstand von 45° (360=T)
Schauen ob sich einer der Sensoren an einem Tief bzw. Hochpunkt befindet.
Bsp. erster Sensor Tiefpunkt dann, zweiter Sensor auf steigender Flanke.
erster Sensor auf Hochpunkt, dann zweiter Sesnor auf fallender Flanke.

Analog wenn sich zweiter Sensor auf einem Tief- bzw. Hochpunkt befindet.

Ist das ne Idee?

Gock
17.12.2008, 15:44
Du könntest einen Offset in der Höhe der Amplitude hinzufügen (dann erhälst Du nur po Werte), die Steigung in den jeweiligen Punkten bestimmen (2x messen) und eine Fallunterscheidung machen. Es gibt 4 Fälle für jede Bewegungsrichtung:
1.beide negativ
2. x1 neg, x2 pos
3. beide pos
4. x1 pos, x2 neg
Für die Fälle 1 und 2 erhällt man die Richtung dann durch Unterscheidung der Absolutwerte. x1>x2 und umgekehrt. Bei den anderen müsste man unterscheiden, ob > oder < Offset.
Elegant ist was anderes, aber auf die Schnelle...vielleicht hilfts ja...
Gruß

Netzman
17.12.2008, 17:06
wenn ich das jetzt richtig verstanden hab, klingts ja wie ein quadraturencoder... vielleicht einfach die beiden phasenverschobenen sinus-wellen nach rechteck wandeln und dann wie einen ebensolchen encoder auswerten?

Gock
17.12.2008, 18:26
Da fällt mir ein:
Wenn Du zwischen die beiden Positionen immer genau 90° einhalten kannst, dann erhälst Du eine Sinus und eine Cosinuswelle und kannst den "Winkel" über den arctan ausrechnen.
Auf diese Weise erhält man sehr genaue Ergebnisse.
Gruß

Herkulase
18.12.2008, 10:08
Hallo,

danke erstmal für die ganzen Anregungen. Bin ja froh, dass ich mein Problem doch halbwegs verständlich formulieren konnte... Ich sollte vielleicht sagen, dass sich das Signal sehr schnell, und sehr unterschiedlich bewegen kann (geschätzt mit 0 - 100kHz oder so).

@ pacer: Da der Abstand der Sensoren ja konstant ist, bekomme ich beispielsweise wen x1 im Tiefpunkt ist für x2 immer eine steigende Flanke (wenn x2 "rechts" von x1). D.h. durch die Steigung bekomme ich keine zus. Information. Aber Du hast mich auf die Idee gebracht, wenn ich immer schaue, welches Extremum x2 erreicht nachdem x1 einen TP passiert hat, dann bekomme ich eine Info über die Bewegungsrichtung.

@Gock: Wenn beide neg. sind (ich also an einer fallenden Flanke messe) dann ist immer x1 > x2 (wenn x2 "rechts" von x1). S.o. Man müsste halt die Messergebnisse über eine gewisse Zeit speichern, aber das wird dann ziemlich komplex, da die Bewegungsgeschwindigkeit sehr unterschiedlich sein kann. (Ganz habe ich leider nicht verstanden, was Du damit meinst :" Für die Fälle 1 und 2 erhällt man die Richtung dann durch Unterscheidung der Absolutwerte. x1>x2 und umgekehrt. Bei den anderen müsste man unterscheiden, ob > oder < Offset. " Bin mathematisch leider nicht so ur-fit :-( Ich muss es mir irgendwie bildlich vorstellen können).

@ Netzman: Das klingt interessant, werde ich mal weiterverfolgen. Kannst du mir einen bestimmten IC empfehlen?

@Gock2: Die Positionen der Sensoren kann ich wählen wie ich will, und die bleiben auch fix. Was meinst Du mit "Winkel" ?

Gruß

Gerald

pacer_one
18.12.2008, 10:22
also meine Variante wäre sozusagen die Analogvariante von Netzman, ohne Auswertung des 2. Sensors würde es sowieso nicht funktionieren.
Wobei die digitale Variante natürlich unkomplizierter erscheint.
schau mal hier:
http://www.mikrocontroller.net/articles/Drehgeber

Gock
18.12.2008, 11:27
Ah, missverständliche Bezeichnung, ich meinte die Amplitudenwerte y müssen unterschieden werden (y1>y2?): Sind zB beide Steigungen negativ, dann bewegt sich die "Welle" in Richtung des kleineren y-Wertes und umgekehrt. Dazu musst Du nichts speichern.
Sind die Steigungen unterschiedlich, muss man beim normalen Sinus (ohne Offset) prüfen, ob sie größer oder kleiner Null sind, um herauszufinden, ob sie an einem Max oder an einem Min liegen.
Die Sache mit dem arctan ist ziemlich kompliziert. Das bracuht man eigentlich nur, wenn man sehr genau Winkel zwischen einer Welle und einer Referenz messen will. Würde man zwei Winkel derart messen, könnte man auf die Drehrichtung schließen. Außerdem ginge das nur, wenn Du immer ) 90° zwischen den Wellen hast, also eine feste Frequenz und die hast Du offenbar nicht.
Gruß

pacer_one
18.12.2008, 11:35
Doch eine feste Frequenz sollte es eigentlich sein, da diese von der Wellenlänge der Quelle (üblich ist ein Laser) abhängig ist.
Die Breite der Streifen des Steifenmusters sollte nur von der Vergrößerung der im Strahlengang befindlichen Opik abhängig sein.

Yossarian
18.12.2008, 11:39
Hallo
Die Signale triggern und wie schon mal erwähnt auswerten.
Kann in Hard- oder Software gelöst werden.
Mit freundlichen Grüßen
Benno