Forum: Analoge Elektronik und Schaltungstechnik quadratursignal für encoderschaltung generieren


von Philipp P. (putzer_philipp)


Lesenswert?

servus,

ich bin gerade dabei bei einer bestehenden encoder-schaltung (fertiges 
Gerät) einen Encoder anzubinden. Das problem ist, dass mein Signal 
eigentlich der ausgang eines Fringecounters (Sinussignal, 
Michelsoninterferometer) ist. Ich habe also nur ein singal (sinus, +-10V 
symmetrisch) welches ich durch einen Komparator in ein Rechtecksignal 
umwandle.

Eigentlich wollte ich dem Gerät dieses Signal geben und die Leitung B 
auf Masse oder auf +5V legen, ich gebe der Steuerung die Richtung also 
manuell vor.

Das funktioniert aber leider nicht, laut Hersteller der 
Encoderauswertung braucht das Ding beide Singale A und B.

Meine Frage nun, wie kann ich das signal B, welches ja 90° 
phasenverschoben sein muss, erzeugen?

Wenn ich den Sinus integriere bekomme ich je einen -Cosinus, der wäre ja 
90° versetzt. ist das so aber auch dynamisch genug?

Ich habe auch schon überlegt ob ich es mit einem oder zwei delay-gleider 
(4538) machen sollte, da wird das ganze aber nur für eine Frequenz genau 
passen, für alle anderen nicht.


Weis jemand Rat?

Gruß und Dank
Philipp

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ein Quadratursignal enthält Positionsinformationen. Deshalb kann damit 
ein Zähler hoch- und runtergezählt werden. Wenn du sowieso nur 1 Signal 
hast, dann kann es auch nur 1 Richtung geben. Und deshalb brauchst du 
keine Quadraturauswertung, sondern bestenfalls einen simplen Zähler.

Alternativ könntest du dich über das Signal des Interferometers noch ein 
wenig auslassen: worin ist dort die Position versteckt?

von Philipp P. (putzer_philipp)


Lesenswert?

Das ist immer nur eine relative position. eine sinusschwingung 
entspricht einer Wegänderung von der halben Wellenlänge des 
Laserlichtes( rot ca. 650nm). Bin mir jetzt nicht absolut sicher ob das 
mit der halben Wellenlänge oder einer ganzen Wellenlänge ist, müsste ich 
noch mal genauer nachlesen...

Ich hab die Auswertung eben schon, dort drin ist auch ein PID Regler für 
einen simplen Motor. Die will ich jetzt zweckentfremeden um damit meinen 
Motor für das Interferometer zu betreiben.

Klar, wenn ich das blöde Ding nicht nehmen müsste, würd ich auch einen 
Zähler nehmen und fertig.

von karadur (Gast)


Lesenswert?

Hallo

wenn du schon ein Rechtecksignal hast kannst du mit einer PLL die 4fache 
Frequenz erzeugen. Dann Teiler dahinter. Unter Verwendung des 
invertierten Ausgangs kannst du 2 Signale erzeugen die 90Grad verschoben 
sind.

von Falk B. (falk)


Lesenswert?

@  Philipp Putzer (putzer_philipp)

>Das ist immer nur eine relative position. eine sinusschwingung
>entspricht einer Wegänderung von der halben Wellenlänge des

Dann musst du sinnvollerweise dein Sinussignal direkt verarbeiten. Und 
zwar analog, bzw. digitlaisiert. ADC dran, fertig. Ein klassischer 
Encoder ist hier schlicht fehl am Platz.

MfG
Falk

von MaWin (Gast)


Lesenswert?

Da die Amplitude deines Sinus ja frequenzunabhängig ist (sagen wir von 
0V bis 5V oder zumindest voin 2V bis 3V) kannst du so was bauen:

        +5V
         |
        10k
         +----1M----+
         |          |
         +----|+\   |
         |    |  >--+-- A
         | +--|-/
         | |
Signal --(-+--|-\
         |    |  >--+-- B
         +R4+-|+/   |     R4 hängt von Spannungsbereich ab,
         |  |       |     bei 0V75V sind 100k gut
         |  +-100k--+
        10k
         |
        GND

von Reinhard Kern (Gast)


Lesenswert?

Philipp Putzer schrieb:
> Ich habe auch schon überlegt ob ich es mit einem oder zwei delay-gleider
> (4538) machen sollte, da wird das ganze aber nur für eine Frequenz genau
> passen, für alle anderen nicht.

Hallo Philipp,

muss es auch nicht unbedingt - aber dazu solltest du zuerst folgende 
Frage beantworten: genügt dir die Zählung der durchlaufenden 
Sinushalbwellen oder musst du auch innerhalb der Periode interpolieren?

Ich kann dir nur sagen, was ich machen würde, aber das ist keineswegs 
eine triviale Lösung: ich würde mit einem ausreichend schnellen 
µController einerseits Sinus und Richtung zum Zählen auswerten und 
andrerseits den Sinus digitalisieren, um die Position innerhalb der 
Periode zu bestimmen und damit dem Zähler weitere Stellen anzufügen. 
Wenn du das halt so haben willst, kann am Ausgang ein synthetisches 
nachlaufendes Quadratur-Signal (Rechteck) erzeugt werden, einfacher wäre 
es, den Zählwert direkt auszulesen.

Dass das funktioniert, weiss ich, weil ich schon Interpolierer nach 
diesem System gebaut habe, und Heidenhain macht auch sowas.

Ohne Interpolation muss der Phasenabstand nicht stimmen, dann genügt es, 
wenn je nach Richtung der eine Eingang dem anderen etwas hinterherhinkt. 
Natürlich bekommst du damit nur eine Zählerauflösung von einer halben 
Wellenlänge.

Gruss Reinhard

von Philipp P. (putzer_philipp)


Lesenswert?

mir genügt die anzahl der durchlaufenden Perioden.

Das ganze mit einem µC zu machen war auch meine erste Idee, dann haben 
wir den bestehenden Regler gefunden und dachten wir könnten den mscl 
'schnell' umbauen und grob das ganze testen.

Dem ist wohl nun doch nicht so.


Das mit der PLL, wie dynamisch issen des? braucht die nicht eine 
bestimmte Zeit bis sie stabil läuft??

von Falk B. (falk)


Lesenswert?

@  Philipp Putzer (putzer_philipp)

>mir genügt die anzahl der durchlaufenden Perioden.

Wozu dann der Encoder? Dann reicht ein einfacher Eingang am uC. GGf. ein 
Zählereingang, wenn die Frequenz recht hoch ist.

MFG
Falk

von Reinhard Kern (Gast)


Lesenswert?

Philipp Putzer schrieb:
> mir genügt die anzahl der durchlaufenden Perioden.
>...
> Das mit der PLL, wie dynamisch issen des? braucht die nicht eine
> bestimmte Zeit bis sie stabil läuft??

Dann brauchst du auch keine PLL, sondern nur eine Verzögerungsschaltung, 
die A vor B oder B vor A liefert, je nach Richtung. Die Verzögerung 
dabei muss kürzer sein als die minimale Periodendauer des Sinussignals. 
Geeignet: CPLD oder Tiny-Prozessor mit ausreichender 
Taktgeschwindigkeit.

Über die auftretenden Frequenzen hast du uns ja auch noch nichts 
verraten.

Die Verzögerung ist also konstant für jede Frequenz, die Phasenlage 
logischerweise nicht - macht aber nix, solang der Quadraturzähler noch 
mitzählt. Über die auftretenden Frequenzen ...

Gruss Reinhard

von Philipp P. (putzer_philipp)


Lesenswert?

ok, meine Grundidee war es ja einen MotorRegler mit einem AVR zu bauen. 
Also signal rein, zählen, und daraus die istgröße für die Regelung 
berechnen. PID Regler dort implementieren und eine geeignete Endstufe 
bauen und fertig.

Der Projektleiter meinte aber das dauert ihm zeitlich zu lange und ich 
soll doch mal das mit dem fertigen PID Regler probieren bzw. umbauen.

Das das nicht so einfach wäre hab ich ihm auch gesagt, die Frequenzen 
von dem Interferometer (100-200kHz) sind auch höher als beim normalen 
dafür vorgesehen encoder.

Ich werd ihm einfach nochmal erklären warum das so einfsch mit ein paar 
Bauteilen nicht geht.

Danke jedenfalls für die Anregungen

Gruß

Philipp

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.