Hallo,
eine knifflige Frage über dir Codierung eines Winkel-Encoders:
Der Drehwinkel einer Welle soll mit einem speziellen absolut messenden Encoder erfasst werden. Im Gegensatz zum Gray-Code soll aber nur EINE EINZIGE Code-Spur verwendet werden, welche von mehreren Sensoren an verschiedenen Stellen abgetastet wird. Wie beim Gray-Code soll sich immer nur ein Bit gleichzeitig ändern. Das einfachste Beispiel ist der normale Quadratur-Encoder mit 90° Auflösung:
Codespur: 0011 (jedes der 4 Segmente ist 90° lang) Sensoren: SS (ein Sensor bei 0°, der andere Sensor bei
90°) Das Ausgangssignal sieht nacheinander so aus: 00, 01, 11,Wie lässt sich dieses Prinzip auf höhere Winkelauflösung erweitern? Das folgende Beispiel zeigt einen Encoder mit 20° Auflösung:
Codespur: 000000000111111111 (jedes der 18 Segmente ist
20° lang) Sensoren: SSSSSSSSS (9 Sensoren jeweils im Abstand von 20°) Das Ausgangssignal sieht nacheinander so aus: 000000000, 000000001, 000000011, 000000111, ... , 110000000, 100000000Nun ist es natürlich ungünstig dass man dafür so viele Sensoren braucht. Wir kommen zu der entscheidenden Frage: Ist es möglich die Anzahl der Sensoren zu reduzieren, indem man ein geeignetes Muster auf der Codespur verwendet und indem man die Sensoren an geeigneten Stellen anordnet? Die Codespur darf ein beliebiges Muster aus den Elementen 0 und 1 sein, und die Sensoren dürfen an beliebigen Stellen angeordnet werden. Wichtige Randbedingungen:
- Es sollen sich niemals zwei Ausgangssignale gleichzeitig ändern.
- Der Drehwinkel muss immer eindeutig bestimmbar sein, d.h. das gleiche Ausgangssignal darf nicht mehrfach vorkommen.
- Es ist NICHT zwingend gefordert dass die Auflösung gleich (360° / Codelänge) ist.
Es kann sein dass es gar keine Lösung gibt, d.h. für 20° Winkelauflösung könnte die Lösung mit 9 Sensoren bereits optimal sein. Findet jemand ein Gegenbeispiel mit weniger als 9 Sensoren?
Ich bedanke mich für's Nachdenken, für alle weiterführenden Hinweise, oder für den Beweis dass es keine Lösung gibt.
Michael