-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung, der dem Oberbegriff des Anspruchs 1 und 3 entsprechenden Art zur Bestimmung einer Motorposition. Das Verfahren basiert auf der Nutzung dreier Signale eines mit der Motorposition verknüpften optischen Kodierers, wobei die Signale analog, sinusförmig und um 120° gegeneinander verschoben sind.
-
Stand der Technik
-
Eine Art optischer Kodierer besitzt inkrementale, zu zählende oder aber absolute Maßverkörperungen als Strichmuster, die mechanisch an eine Rotation oder Translation gekoppelt sind. Die Strichmuster in Kombination mit einer Lichtquelle und einer Auswerteeinheit ergeben die Lageinformationen in Form eines digitalen Zahlenwertes. Entstehende sinusförmige Signale, erzeugt durch Modulation des Lichtstrahls der Lichtquelle an den Strichmustern, sind in ihrer Anzahl und Phasenverschiebung an die Anzahl und die relative Lage der Strichmuster zueinander gebunden. Üblich sind 2-oder 3-phasige Kodierer. Die Auflösung ist direkt an das Verhältnis der Abstände im Strichmuster zur zurückgelegten Strecke oder zum Winkel gekoppelt.
-
Es werden in optischen Kodierern auch interferentielle Messprinzipien genutzt. Es ist dabei zu unterscheiden zwischen einem interferentiellen Messprinzip, das entsprechend einem Michelson-Interferometer arbeitet und die Wellenlänge im Interferometer als Maßstab verwendet, und einem interferentiellen Messprinzip, das mit optischen Beugungsgittern arbeitet und bei dem das Beugungsgitter als Maßverkörperung dient. In einer speziellen Ausführung des interferentiellen Messprinzips nach Michelson werden die Referenzstrahlen so moduliert, dass der Teststrahl mit Strahlen unterschiedlicher, vorbestimmter Phase zur Interferenz gebracht wird. So gelangen zwei, drei oder mehr Interferenzinformationen zur Auswertung. Die Referenzstrahlen können dabei Phasenverschiebungen von z. B. 90° oder 120° zueinander aufweisen (Phasenverschiebungsinterferometrie, engl.: Phase Shifting Interferometry).
-
In der
DE 10 2007 042 073 A1 , die den nächsten Stand der Technik bildet, werden die Werte von Kurvenstücken der dreiphasigen Signale eines optischen Kodierers mit Maßverkörperungen als Strichmuster mit einer inversen trigonometrischen Funktion ausgewertet, um eine Winkelinformation zu erhalten. Die Signale werden dazu eingangs mit einem Analog/Digital-Wandler digitalisiert. Ein Phasendigitalisierer wandelt die dreiphasigen, analogen Signale in digitale Phasensignale. Ein Digitalzähler erzeugt auf Grundlage der digitalen Phasensignale einen Zählwert. Ein digitaler Signalprozessor (DSP) führt für annähernd lineare Kurvenstücke der dreiphasigen, digitalen Signale eine inverse trigonometrische Funktion unter Nutzung der Information des Digitalzählers aus, um die Winkelinformation zu erhalten. Zur Auswertung gelangen Kurvenstücke, die jeweils an die Nulldurchgänge der Signale mit mittlerer Amplitude grenzen und relativ linear sind. Sie werden durch Vergleich der Signale untereinander und gegen Null ermittelt. Eine Periode der sinusförmigen Signale ist hier in 12 Teilstücke aufgeteilt, die jeweils an die Nulldurchgänge der Signale angrenzen. Die berechneten Signale werden einer Weiterverarbeitung oder Ausgabe zugeführt. Die Vorrichtung und das Verfahren benötigen dabei eine parallele Prozession der Signale. Es werden Korrekturen bezüglich eines Amplitudenfehlers und eines Phasenversatzes (Phasenkorrektur) der Eingangswerte für alle drei Signale gemeinsam ermittelt. Die Funktion zur Berechnung der Position ist dabei aufwendig.
-
In der
EP 0 006 492 A1 wird ein Verfahren zur digitalen Interpolation einer Periode eines dreiphasigen sinusförmigen Analogsignals eines optischen Kodierers mit Maßverkörperungen als Strichmuster, dessen Amplituden die Messgrößen (Motorpositionen) darstellen, offenbart. Die oben beschriebenen annähernd linearen Kurvenstücke werden auch hier durch Vergleich der Signale zu je zwei untereinander und zu Null ermittelt und einem von 12 Teilstücken einer Periode, wobei die Teilstücke jeweils an die Nulldurchgänge der Signale grenzen, zugeteilt. Die Digitalisierung der 12 Bereiche und die Berechnung des Messwerts erfolgt mittels Hilfsvariablen (H, K) und einer Tabelle. Es erfolgen keine Korrekturen der Eingangswerte bezüglich eines Phasenversatzes oder eines Amplitudenfehlers für die einzelnen Signale. Die Berechnungen erfolgen unter der Annahme, dass alle drei Signale, wenn eine Abweichung vom idealen Signal vorliegt, gleichermaßen beeinflusst sind.
-
Aufgabenstellung
-
Die Aufgabe der vorliegenden Erfindung ist es ein Verfahren anzugeben, mit dem Korrekturen von Signalen optischer Kodierer mit 120° Phasenversatz bezüglich Amplitudenfehler und Phasenfehler präzise korrigiert werden, das einen einfachen Auswertungsalgorithmus beinhaltet und mit einfachen Mitteln auszuführen ist und eine entsprechende Vorrichtung zur Durchführung des Verfahrens.
-
Die Aufgabe wird durch die Merkmale des Anspruchs eins und drei gelöst.
-
In der erfindungsgemäßen Lösung für ein Verfahren zur Bestimmung einer Motorposition werden die drei mit 1, 2, 3 durchnummerierten Signale mit 120° Phasenversatz, U1, U2 und U3, nach einer Digitalisierung auf einen aktuellen Amplitudenfehler (AOFF1,2,3) korrigiert. Die Subskripte 1, 2 und 3 beziehen sich auf die nummerierten Signale. Alle Zeichen mit mehrfachen Subskripten sind stellvertretend für die den Subskripten entsprechenden Signale. In allen Formeln, in denen Zeichen mit Subskripten aufgeführt sind, sind diese jeweils für die entsprechenden nummerierten Signale separat auszuführen. Der Amplitudenfehler ist gleich dem arithmetischen Mittelwert einer Summe maximaler und minimaler Signalamplituden (UMAX1,2,3, UMIN1,2,3) der eingehenden Signale (U1,2,3) einer Periode. Die Werte UMAX1,2,3 und UMIN1,2,3 werden für ihren Gebrauch zwischengespeichert und ständig aktualisiert. Die Aktualisierung erfolgt dabei immer bei dem Erreichen eines maximalen oder minimalen Wertes der eingehenden Signale.
-
Zu Beginn der Messung werden die Maximal- und Minimalwerte der Eingangsspannungen ermittelt. Der Startwert für die Korrektur des Maximalwerts ist dabei kleiner als der kleinstmöglich zu erwartende Amplitudenfehler (dieser kann auch negativ sein, Null eingeschlossen). Für den Minimalwert gilt das Gleiche entsprechend. Durch Subtraktion des Amplitudenfehlers vom eingehenden Signal wird ein auf den Amplitudenfehler korrigiertes Signal (UAKORR1,2,3) erzeugt. AOFF1,2,3 = (UMAX1,2,3 + UMIN1,2,3)/2 (1) UAKORR1,2,3 = U1,2,3 – AOFF1,2,3 (2)
-
Das auf den Amplitudenfehler korrigierte Signal UAKORR1,2,3 wird hiernach normiert auf die Summe der Beträge von UMAX1,2,3 und UMIN1,2,3 und mit einem Skalierungswert (SKAL) skaliert, wodurch ein normiertes und skaliertes Signal UNS1,2,3 gebildet wird. Der Skalierungswert (SKAL) entspricht dabei einem Vielfachen eines Zwölftels der Wellenlänge des Lichtstrahls des optischen Kodierers mit interferentiellem Messprinzip oder einem Sechstel des Inkrements des Strichmusters oder Beugungsgitters. UNS1,2,3 = (UAKORR1,2,3/(|UMAX1,2,3| + |UMIN1,2,3|))·SKAL (3)
-
Aus den drei Signalen wird jeweils nur das Signal zur Bestimmung der Motorposition herangezogen, das eine mittlere Amplitude aufweist. Eine Periode von drei sinusförmigen Signalen, die um 120° phasenversetzt sind, weist sechs Teilstücke auf, in denen jeweils eins der Signale eine mittlere Amplitude aufweist. Die Teilstücke beginnen jeweils am Schnittpunkt zweier Signale. Die Signale mittlerer Amplitude durchlaufen in diesen Teilstücken den Nulldurchgang. Eine besondere Eigenschaft dieser Kurvenabschnitte, die zwischen zwei Schnittpunkten zweier Signale liegen und einen Nulldurchgang aufweisen (das sind die Signale mittlerer Amplitude) ist ihre annähernde Linearität. Diese Linearität entspricht dem aus der Trigonometrie bekannten Bereich kleiner Winkel, für den der Sinus eines Winkels gleich dem Winkel ist. Die Linearität kann direkt zur Bestimmung der Motorposition genutzt werden, da die Änderung der Motorposition in diesem Bereich annähernd direkt proportional mit der linearen Änderung des Signals verknüpft ist. Die Proportionalität ergibt sich im interferentiellen Messprinzip daraus, dass eine Änderung der Motorposition um den Betrag der halben Wellenlänge der Lichtquelle dem Durchlauf einer Periode der Wellenlänge der Lichtquelle im Interferometer (z.B. Laser oder Diode oder andere monochromatische Lichtquelle) entspricht. Um bei optischen Kodierern mit interferentiellem Messprinzip und der Wellenlänge als Maßstab die lineare Änderung der Signalamplitude direkt an die Änderung der Motorposition zu knüpfen, wird das eingehende Signal auf ein Vielfaches eines Zwölftels der Wellenlänge des Lichtstrahls im optischen Kodierer skaliert (siehe oben). Das Vielfache dient zur Verstärkung. In den linearen Kurvenstücken entspricht die Signalamplitude nach der Skalierung dann dem erfolgten Durchgang der Motorposition (in dem betreffenden Teilstück). Die normierten und skalierten Signale können unter Berücksichtigung schon zurückgelegter Strecken (Offsets) durch Addition direkt zur Bestimmung der Position genutzt werden.
-
Am Schnittpunkt zweier Signale beginnt ein neues Teilstück, wobei der Schnittpunkt selber zum vorhergehenden Teilstück gehört. Durch Vergleich der Signale untereinander wird die aktuelle Phase (das aktuelle Signal) mit mittlerer Amplitude bestimmt und im Folgenden weiter zur Auswertung herangezogen. Die sechs Teilstücke einer Periode werden als T1 bis T6 bezeichnet. Die Teilstücke sind dabei wie folgt definiert:. T1 = UNS1 ≤ UNS3 & UNS1 > UNS2 & UNS2 < UNS3 (4a) T2 = UNS1 < UNS3 & UNS1 ≤ UNS2 & UNS2 < UNS3 (4b) T3 = UNS1 < UNS3 & UNS1 < UNS2 & UNS2 ≥ UNS3 (4c) T4 = UNS1 ≥ UNS3 & UNS1 < UNS2 & UNS2 > UNS3 (4d) T5 = UNS1 > UNS3 & UNS1 ≥ UNS2 & UNS2 > UNS3 (4e) T6 = UNS1 > UNS3 & UNS1 > UNS2 & UNS2 ≤ UNS3 (4f)
-
Der Nullpunkt der Berechnung der Motorposition wird auf den Beginn von T1 festgesetzt. Die Überprüfung auf die aktuellen Teilstücke kann z.B. mit einer Wenn-Dann (if, then) Abfrage erfolgen.
-
Die normierten und skalierten Signale mit aktuell mittlerer Amplitude werden zusätzlich auf einen Phasenfehler korrigiert. Für die Bestimmung des Phasenfehlers werden die jeweils letzten Schnittpunkte zweier Signale herangezogen. Bei einem Phasenfehler von Null wären beide auf einen Amplitudenfehler korrigierte, normierte und skalierte Signale gleich der Hälfte des Betrags der maximalen Amplitude. Die Abweichung vom halben Amplitudenwert wird als Phasenfehler zur Korrektur der Phasenlage genutzt. Dabei wird unterschieden zwischen Teilstücken, die bei einem Schnittpunkt zweier Signale mit negativer Amplitude beginnen (T2, T5) und solchen, die bei einem Schnittpunkt positiver Signale beginnen (T3, T6). In den Teilstücken T1 und T4, zu denen das Signal UNS1 gehört, wird keine Phasenkorrektur vorgenommen, da das Signal UNS1 als Referenzphase dient. Die Phasenkorrekturwerte PKORR(T2, T5) und PKORR(T3, T6) ergeben sich zu: PKORR(T2, T5) = (|UNS1 + UNS2|/2)1/4·SKAL (5a) und PKORR(T3, T6) = (|UNS2 + UNS3|/2)1/4·SKAL + PKORR(T2, T5) (5b).
-
Die Berechnung der Motorposition (POS) erfolgt anhand des aktuellen Signals mittlerer Amplitude, das korrigiert ist auf einen Amplitudenfehler, normiert und skaliert ist. Für die einzelnen Teilstücke erfolgt die Berechnung der Motorposition inklusive der Korrektur des Phasenfehlers wie folgt: T1: POS = –UNS1, (6a) T2: POS = UNS2 + 1/2·SKAL + PKORR(T2, T5), (6b) T3: POS = (–UNS3) + SKAL + PKORR(T3, T6), (6c) T4: POS = UNS1 + 3/2·SKAL, (6d) T5: POS = (–UNS2) + 2·SKAL + PKORR(T2, T5) (6e) und T6: POS = UNS3 + 5/2·SKAL + PKORR(T3, T6). (6f)
-
Durch die Multiplikation mit –1 der Teilstücke mit negativer Steigung werden ausschließlich positive Änderungen erzeugt, die sich direkt zu einer linearen Zunahme addieren lassen. Die Überprüfung auf die aktuell anzuwendende POS-Berechnung kann z.B. mit einer Wenn-Dann (if, then) Abfrage erfolgen.
-
Pro durchlaufenem Teilstück wird auf das aktuelle Signal die bereits zurückgelegte Strecke addiert. Der zu addierende Term für jede weitere Periode, der Offset (OFF), wird gebildet aus der Anzahl bereits durchlaufener Perioden N und dem Skalierungswert SKAL mit OFF = N·3·SKAL.
-
Die Werte für N werden mit einem Zähler ermittelt. Der Zähler zählt die Perioden N bei einem Übergang vom Teilstück T6 auf das Teilstück T1 aufwärts und bei einem Übergang T1 → T6 abwärts.
-
Die ermittelten Motorpositionen werden zur Anzeige, zur Rückkopplung an die Motorsteuerung und andere Steuereinheiten ausgegeben.
-
Um auch noch die Abweichungen von der Linearität der nur annähernd linearen Kurvenstücke der sinusförmigen Signale zu korrigieren, kann eine Abbildung von Amplitudenwerten auf eine Tabelle erfolgen, wie es einer Ausführungsform entspricht.
-
Die erfindungsgemäße Vorrichtung nutzt zur Durchführung des Verfahrens eine konfigurierbare Logik-Gatter-Anordnung. In dieser werden die zuvor digitalisierten Signale entsprechend dem vorhergehenden Verfahren mit folgenden Schritten weiterverarbeitet: 1. Normierung und Skalierung, 2. Korrektur eines Amplitudenfehlers, 3. Ermittlung eines Kurvenstücks mittlerer Amplitude, 4. Phasenkorrektur und Berechnung der Motorposition, 5. Ausgabe zur Weiterverarbeitung der Motorposition. Die Konfigurierung der Logik-Gatter-Anordnung entspricht hierbei Logikblöcken einer Schaltungsanordnung.
-
Die Vorteile des erfindungsgemäßen Verfahren und der erfindungsgemäßen Vorrichtung liegen in der hohen Präzision, die durch die Korrektur (Amplitude und Phase) aller Signale erzielt wird, des einfachen Algorithmus und dessen einfacher Umsetzung (Konfiguration einer Logik-Gatter-Anordnung). Zusätzlich garantiert die Nutzung einer entsprechenden Logik-Gatter-Anordnung eine hohe Geschwindigkeit in der Signalverarbeitung.
-
Ausführungsbeispiele
-
Die Erfindung soll in einem Ausführungsbeispiel und anhand von zwei Figuren näher erläutert werden.
-
Die Figuren zeigen:
-
1: Aufteilung der drei sinusförmigen Signale mit einem Phasenunterschied von 120° in sechs Teilstücke;
-
2: Flussdiagramm der Signalverarbeitung.
-
In der 1 ist die Aufteilung einer Periode der drei sinusförmigen, analogen Signale (repräsentiert durch die drei Kurven unterschiedlicher Linienart), die um 120° gegeneinander verschoben sind, gezeigt. Die Aufteilung in sechs Teilstücke, T1 bis T6, ist durch vertikale, strichpunktierte Linien veranschaulicht. Ein Messpunkt ist durch eine vertikale durchgezogene Linie markiert, für den das Verfahren im Ausführungsbeispiel angewandt wird. Im Beispiel eines optischen Kodierers mit interferentiellem Messprinzip nach Michelson entspricht die Änderung der Motorposition in einer Periode der sinusförmigen Signale der halben Wellenlänge der Lichtquelle (z.B. Laser) im Interferometer. Die Laserwellenlänge entspricht im Ausführungsbeispiel 632,4 nm. In den sechs Teilstücken ist die annähernde Linearität der Signale mit mittlerer Amplitude zu erkennen.
-
Im Ausführungsbeispiel sind die Schritte des erfindungsgemäßen Verfahrens auf einem handelsüblichen, sogenannten FPGA-Chip (nach engl.: Field Programmable Gate Array, Feld programmierbare (Logik-)Gatter-Anordnung) mit einem grafischen Programmiersystem programmiert.
-
Die Signale liegen als Spannungsverlauf aus dem Interferometer vor (Wandlung der Lichtsignale durch Photodioden) und werden zunächst in standardgemäßen Analog-Digital-Wandlern digitalisiert. Die digitalisierten Signale werden im FGPA-Chip weiterverarbeitet.
-
Dort werden die digitalisierten Signale auf einen Amplitudenfehler korrigiert, normiert und skaliert. Der Skalierungswert wird im Speicher vorgehalten und entspricht dem Zehnfachen eines Zwölftel der Wellenlänge der Lichtquelle im Interferometer SKAL = (½·632,4 nm)/6·10 = 1/12·632,4·10 = 527 nm.
-
Für das Ausführungsbeispiel (siehe 1, durchgezogene Linie) gilt: UNS1 < UNS3 & UNS1 < UNS2 & UNS2 ≥ UNS3; (4c) daraus folgt, dass die Signale im Teilstück T3 liegen. Da es sich um T3 handelt, wird die Position POS berechnet nach: POS = (–UNS3) + 527 + PKORR(T3, T6), (6c) mit PKORR(T3, T6) = (|UNS2 + UNS3|/2)1/4·527 + PKORR(T2, T5) (5b).
-
Entsprechend der durchlaufenen Perioden wird ein Wert OFF addiert mit OFF = N·3·SKAL, also nach z.B. drei Perioden (N = 3) im Ausführungsbeispiel OFF = 3·3·527 = 4743 nm.
-
Die ermittelten Motorpositionen werden zur Anzeige, zur Rückkopplung an die Motorsteuerung und an andere Steuereinheiten ausgegeben.
-
In der 2 ist ein Flussdiagramm der Signalverarbeitung mit den in den einzelnen Schritten der Signalverarbeitung gebildeten Werten und deren Verknüpfung in der Schaltungsanordnung gezeigt.
-
Die eingehenden Signale U1,2,3 laufen zunächst durch Analog-Digital-Wandler (1). Danach werden die Werte für UMAX1,2,3 und UMIN1,2,3 ermittelt und gespeichert. Mit diesen Werten werden die aktuellen digitalen Signale auf den Amplitudenfehler entsprechend den Formeln 1 und 2 korrigiert und liegen nun als amplitudenkorrigierte Signale UAKORR1,2,3 vor (2). Anschließend werden diese Signale normiert und skaliert (Formel 3) und so die Signale UNS1,2,3 bereitgestellt (4). Zur Skalierung wird der Wert SKAL als Konstante vorgehalten und auch für die Verwendung in späteren Schritten zur Verfügung gestellt (3). Die Signale UNS1,2,3 gehen in eine Abfrage (5) zur Ermittlung des aktuellen Teilstücks T1 bis T6 einer Periode, wie es den Formeln 4(a) bis 4(f) entspricht, ein. Die Information des aktuell vorliegenden Teilstücks einer Periode wird auch für später folgende Schritte der Signalverarbeitung vorgehalten. Für die Teilstücke T2, T3, T5 und T6 wird eine Korrektur der Phasenlage nach den Formeln 5(a) und 5(b) und dem entsprechenden Teilstück vorgenommen (6). Die Phasenkorrekturwerte PKORR(T2, T5) und PKORR(T3, T6) werden für die Weiterverarbeitung zur Verfügung gestellt. Diese gehen zusammen mit den Signalen UNS1,2,3 in die Berechnung der Position POS nach den Formeln 6(a) bis 6(f) (7) ein. Der aktuelle Wert für POS wird anschließend noch auf die bereits zurückgelegte Strecke OFF korrigiert (8) und dann ausgegeben (9).