Back to top

SinCos Encoder Auswertung mit FPGA



Quelle PCIM 2007:
FPGA basierte Auswertung von Sinus - Kosinus Rückführung für Servo Applikationen

Einführung

Hochleistings Servoantriebe sind ein schnell wachsender Markt. Hochauflösende Encoder (Bild 1) werden meist als Rotorlagesensoren eingesetzt. Moderne Regler leiten auch eine Geschwindigkeitsrückführung aus dem Lagesensor ab. Die Umwandlung der Sinus/Kosinus Encodersignale zur Positionsbestimmung wird meist im Encoder ausgeführt. Durch die digitale Verbindung zum Servoverstärker führen lange Kabel mit wenigen Adern nicht zu einer Beschränkung der Signalfrequenz oder zur Reduktion der Signalqualität.

Bild 1: Hengstler Sinus/Kosinus Encoder AD 58-BiSS {1}

Die meisten Entwickler von Servoverstärkern wollen nicht mit spezialisierten integrierten Schaltungen arbeiten. Moderne Verstärker verwenden Field Programmable Gate Arrays (FPGA) um digitale Schnittstellenlogik zu realisieren. Diese logische Konfiguration kann meist verschiedene digitale Rückführsysteme abedecken.

Sinus/Kosinus Encoder sind eine Erweiterung des gebräuchlichen "A quad B" Encoders. Für die Hersteller ist es viel einfacher optische Encoder mit sinusförmigen Signalen zu entwickeln als TTL Encoder mit sehr hoher Strichzahl.

Arbeitsprinzip: die nachgeschaltete Elektronik zählt die Sinuswellen und führt eine tan-1 Interpolation innerhalb einer Signalperiode durch, Bild 2.

Bild 2: Dekodierung vin Sinus/Kosinus Encodersignalen und tan-1 Feininterpolation

Offset und Verstärkungsfehler

Die Positionsauflösung und der Positionsfehler innerhalb einer Signalperiode sind die wichtigsten Faktoren für die Feininterpolation. Die Auswahl der Encodertechnologie hängt sehr stark ab von den Genauigkeitsanforderungen der betroffenen Applikation.

Bild 3: Sinus Kosinus Offset Fehler

Der gemessene Winkel eines Sinus/Kosinus Encoders mit tan-1 Interpolation ist die Summe des realen Winkels φ und einem Interpolationsfehler :

Der Offset- und Verstärkungs- Interpolationsfehler hängt ab von:

cosoff Kosinus Signal Offset
rcos Kosinus Signal Amplitude
sinoff Sinus Signal Offset
rsin Sinus Signal Amplitude
n Sinus Kosinus Striche pro Umdrehung (meist 512 oder 2048)

Ohne signifikante Fehler (Taylor Annäherung) kann der Interpolationsfehler berechnet werden mit:

Mit 1Vss Encodersignalen ergeben sich rcos und rsin zu ~500 mV. Ein Prozent (5 mV) Offset (cosoff und sinoff) und n = 512 Striche pro Umdrehung sind vernünftige Werte. Wegen des verstärkungsfehlers kann rcos ein Prozent größer als rsin sein :

Bild 4: Sincos Verstärkungsfehler

Der maximale Winkelfehler  bei den angenommenen Offset- und Verstärkungsfehlern ist:

Wegen der Fehler ergibt sich also ein Maximum von 17,3 Bit Auflösung pro Umdrehung. Dabei kommen 9 Bit vom Zähler (n) und zusätzliche 8,3 Bit durch die tan­-1 Interpolation. Im Falle von höheren Anforderungen ist ein Encoder mit mehr Strichen/Umdrehung und/oder eine erweiterte Feininterpolation mit Onlineverstärkung und Offsetanpassung erforderlich.

In den meisten Fällen ist nicht die Genauigkeit der Position der Flaschenhals des Systems. Die meisten Servosysteme leiten die kritischere Geschwindigkeitsrückführung vom gemessenen Positionssignal mit einem Beobachter ab:

Zur Betrachtung des Geschwindigkeitsfehlers reicht es aus, den Positionsfehler herzuleiten:

und

Wir erhalten   

Nach einigen Umformungen erhalten wir eine Formel für den relativen Geschwindigkeitsfehler:

Fehler durch nicht synchrones Sampling

Nicht exakt synchrones Messen (Sampling) der zwei Kanäle generiert einen zusätzlichen Positionsfehler. Zur mathematischen Analyse wird das Kosinus Signal als verzögert betrachtet mit der Verzögerungszeit TD. Dies zeigt das gleiche Verhalten wie ein Samplen des Kosinus Signals um TD früher als das Sinus Signal. Dies verändert den Kreis zu einer Ellypse mit 45° gedrehter Achse, Bild 5.

Bild 5: Kosinus Verzögerungsfehler

Im Stillstand ist das Encoder Signal konstant und die Verzögerung TD wirkt sich nicht aus. Bei rotierendem Motor erzeugt die Verzögerungszeit mit der Encoder Signalfrequenz eine zur Geschwindigkeit proportionale Phasenverschiebung des Kosinus Signals:

Diese Phasenverschiebung erzeugt einen geschwindigkeitsabhängigen Positionsfehler:

Und einen Geschwindigkeitsfehler:

Drehung eines 2048 Strich Encoders mit n = 3000 U/min erzeugt eine Encoder Signalfrequenz von

fE = 50 Hz * 2048 = 102.4 kHz . Eine Verzögerungszeit von nur 15.6 ns erzeugt eine Phasenverschiebung von:

und dazu 1% (Hochgeschwindigkeits-) Geschwindigkeitsfehler:

Zusammenfassend ergibt sich:

  • 1% Offset der Encoder Sinus und/oder Kosinus Signale ergibt 1% Geschwindigkeitsfehler bei Encoder Signalfrequenz
  • 1% Verstärkungsfehler zwischen den Signalen ergibt 1% Geschwindigkeitsfehler bei doppelter Encoder Signalfrequenz
  • 0.01 rad Phasenfehler zwischen den Signalen ergibt 1% Hochgeschwindigkeitsfehler bei doppelter Encoder Signalfrequenz

Analog Digital Wandler Fehler

Offset und Verstärkungsfehler durch die analg->digital Wandlung brauchen nicht getrennt betrachtet zu werden. Diese Fehler werden zusammen mit dem Offset und Verstärkunsfehler des analogen Encoders betrachtet. Bei einem 12 Bit AD Wandler (Industriestandard) beträgt der Rauschanteil etwa ±0.05 % (100 % / ±2048). Es gibt zwei Möglichkeiten das Rauschen zu reduzieren:

  • AD Wandler mit höherer Auflösung wählen
  • Oversampling (Überabtastung) Techniken einsetzen

Wegen der gestörten Umgebung im Servoverstärker ist der Einsatz von hochauflösenden AD Wandlern nicht einfach.  Verwendung eine Tiefpass Filters ist fast nicht möglich wegen der hochfrequenten Encodersignale (>250 Hz).

Meist wird die Encoderposition mit der Aktualisierungsfrequenz der Rückkopplungsschleife angefordert:

  • Der Stromregler verwendet die Kommutierung (niedrige Auflösung ist möglich)
  • Der Drehzahlregler benötigt eine geschwindigkeitsrückmeldung (abgeleitet von der Position)
  • Der Lageregler benötigt eine Positionsrückmeldung

Diese Aktualisierungsfrequenz bezieht sich meist auf die die Schaltfrequenz der Endstufe. In einem Servoverstärker mit fs = 8 kHz Schaltfrequenz ist die schnellste Stromregler Aktualisierungszeit  (Abtastung) meist T0 = 62.5 µs. Die Abtastung selbst ist also wichtig. Wenn die Encoder Frequenz ähnlich oder höher als die Abtastfrequenz, wird die Amplitude des Geschwindigkeitsfehlers gedämpft zu einem niedrigeren Wert mit anderer Frequenz (aliasing), Bild 6.

Bild6:   Encoder Frequenz ωE und Abtastzeit T0 , Dämpfungsfunktion für Geschwindigkeitsripple

Der Positionsfehler wird durch die Abtastrate nicht beeinflusst.

Wenn das System schnell genug ist, um das Encoder Signal mehrmals innerhalb eines Aktualisierungszyklus des Servoregelkreises zu bearbeiten, kann das Rauschen erheblich durch Oversampling (Überabtastung) reduziert werden, Bild 7.

Bild 7: Positionssignal Filter (mit Oversampling)

Oversampling mit Flash AD Wandlern und FPGA basierter digitaler Signalauswertung mit einer Abtastrate von 16 MHz und mehr ist realistisch. Bild 7 zeigt ein Blockschaltbild eines Drehzahlbeobachters dritter Ordnung. Die Position j wird mit einer Aktualisierungsrate von 16 MHz berechnet. Diese Position wird mit einer geschätzten beobachter Position verglichen. Der Unterschied wird als Beobachter Feedback Signal verwendet. Tatsächlich arbeitet der Observer wie ein tiefpass mit kleiner Phasenverzögerung wenn die Beschleunigung nicht konstant ist.

Durch Einstellen dieser Tiefpass Grenzfrequenz auf 50 kHz (mit a, a, a2) kann der Rauschanteil um ungefähr 20 dB reduziert werden:

Dies treibt einen 12Bit AD Wandler zu 15 Bit SNR Leistung. Eine andere Möglichkeit ist die Verwendung der DSP Fähigkeit des FPGA um eine online Offset und Verstärkungsanpassung durchzuführen.

Wegen der Oversampling Technik bietet der Kollmorgen S700 Servoverstärker eine außergewöhnlich hohe Performance bei der Verarbeitung analoger Sinus/Kosinus Signale {2}.

Digital Encoder Schnittstellen

Wenn die maximal erreichbare Performance nicht benötigt wird, sind digitale Feedback Systeme eine Möglichkeit, Kosten zu reduzieren: weniger Leitungen und weniger elektromagnetische Beeinflussung bei langen Leitungen. Es gibt mehrere digitale feedback Systeme auf dem Markt.

BISS®

Der Bidirektionale Digitale Sensor Interface BiSS Standard liefert Kommunikation zwischen Lagegebern oder Messgeräten und industriellen Steuerungen, wie z.B. Antriebssteuerungen. BiSS basiert auf zwei unidirektionalen RS485 Kanälen mit Übertragungsraten bis zu 10 MBaud.

  • Ein Taktkanal con der Steuerung zum Sensor und
  • Ein Datenkanal vom Sensor zur Steuerung

Das BiSS Protokoll klassifiziert jeden Teilnehmer in einen der folgenden Datenbereiche: Sensordaten, Multiturndaten oder Registerdaten. Der Antriebshersteller kann ein elektronisches Typenschild zur automatischen Antriebskonfiguration lesen, indem die digitale Kommunikation als bidirektionaler Servicedaten Kanal (BiSS Register-Mode) benutzt wird. In diesem Modus ist der Takt pulsweitenmoduliert um Daten vom Regler zum Encoder zu übertragen.

Der Encoder liefert hochauflösende Positionssignale und zusätzliche Alarm und Warn Bits mit hoher Aktualisierungsrate, wenn die digiatel Kommunikation als Prozessdatenkanal (BiSS Sensor-Mode) benutzt wird. Z.B. kann ein Übertemperatursignal aus der Motorwicklung in dem Alarmbit abgebildet werden. Über den optionalen Multi Cycle Data (MCD) Kanal kann der Lagegeber sequentiell informationen mit niedriger Aktualisierungsrate senden, z.B. die Encodertemperatur.

Die schnellste Aktualisierung der Psoition liegt unter 20µs. Die meisten BiSS Encoder bieten optional auch 1 Vss analoge Sinus/Kosinus Signale {3}.

Die Entwickler von Servoverstärkern erhalten mit dem spezifischen ((BISS) Master Chip eine erprobte, einsatzbereite Lösung mit offengelegter Spezifikation. Nachteilig sind die hohen Komponentenkosten für den BiSS Master und der erforderliche Leiterplattenplatz {4}.

Eine ALTERA BiSS FPGA Implementierungsvorlage ist als QUARTUS II Projekt mit VHLD Quellcode als Download verfügbar {5, 6}.

8:  BiSS Interface Datenübertragung mit zwei unidirektionalen terminierten RS485 Leitungen plus Spannungsversorgung

DRIVE-CLIQ®

DRIVE-CLiQ, das Siemens standard digitale Interface zwischen den erforderlichen SINAMIC S120 Verstärkerkomponenten einschließlich Motor und Encoder reduzieren die Anzahl unterschiedlicher Teile. Elektronische Typenschilder in den Komponenten erlauben die automatische Erkennung der Komponenten über das Drive-CLiQ Kabel.

Es wird benutzt um einen Motion Controller mit mehreren Servoverstärkern und diese mit den im Motor eingebauten Feedback Geräten zu verbinden. Es ist ein nicht standardisiertes, geschlossenes System basierend auf einem schnellen (100 MBit) Ethernet mit einer 24V Erweiterung zur Versorgung des Feedback. Die schnellste Aktualisierung der Position beträgt 31,25µs. Elektronisches Typenschild ist verfügbar. Analoge Signale werden nicht unterstützt. Bis jetzt ist Siemens nicht interessiert an einer Offenelegung der DRIVE CLiQ Interface Spezifikation für Drittanbieter oder Motorhersteller.

Bild 9: SINAMIC S120 mit DRIVE-CLiQ {7}

EnDat®

Das EnDat Interface von HEIDENHAIN ist ein digitales, bidirektionales Encoderinterface. Es kann sowohl Positionswerte von inkrementellen und absoluten Encodern übertragen als auch im Encoder gespeicherte Informationen aktualisieren oder neue Informationen speichern. EnDat basiert auf einem unidirektionalen RS485 Taktkanal und einem bidirektionalen Datenkanal. Die Daten werden mit dem Taktsignal der Auswertungselektronik synchron übertragen. Der Übertragungstyp (Positionswerte, Parameter, Diagnose usw.) werden durch Modus Befehle ausgewählt, die von der Folgeelektronik zum Encoder gesendet werden.

EnDat Version 2.1 unterstützt Taktraten bis zu 1MHz und keine Kompensation der Kabellänge. EnDat Version 2.2 unterstützt Taktraten bis zu 16 MHz mit Kabellängen Kompensation.

In Hochleistungs Servoverstärkern wird EnDat 2.1 immer in Verbindung mit analogen Sinus/Kosinus Signalen genutzt. Der digitale Kanal wird für die Typenschilddaten, Kommutierungsinformation und Multiturn Daten genutzt.

Bei EnDat 2.2 müssen qwegen der viel schnelleren Kommunikation die analogen Signale nicht mehr benutzt werden. Dies spart einige Leitungen im Feedback Kabel ein. Die schnellste Aktualisierungsrate für die Position liegt unter 18 µs.

Bild 10: EnDat 2.2 verwendet nur 6 Leitungen {8}

EnDat 2.2 FPGA Beispielcode für das EBV Electronic development board (Altera Quartus II VHDL) ist als Download verfügbar {5, 6}.

MAZeT bietet auch ein kommerzielles Softmacro (IP) des EnDat 2.2 Interface an. Es beschreibt den steuerungsseitigen Anteil (auch "Master Component" genannt) der Schnittstelle zwischen einem absoluten Lagegeber von HEIDENHAIN und eine Folgeelektronik des Anwenders {9}.

HIPERFACE®

ist die Abkürzung für "High Performance Interface" und das standard Interface für SICK-STEGMANN Motor Feedback Systeme.

Das Interface wurde auch für die Anforderungen von digitalen Antriebssystemen entwickelt und bietet dem Nutzer eine standardisierte und einfache elektrische Schnittstelle.

HIPERFACE® definiert das standardisierte elektrische Interface mit 8 Leitungen:

  • 2x Versorgungsspannung 7 … 12 V
  • 4x analog inkrementelle, differentiell übertragene, Sinus/Kosinus Signale
  • 2x digitales, bidirektionales RS485 interface

Bild 11: HIPERFACE verwendet noch analoge Signale {10}

Ein voll geschirmtes 8 adriges Kabel überträgt die Signale zum Servoverstärker. Das Protokoll wird mit einem standard  (RS232) UART abgearbeitet, der in allen üblichen Microcontrollern und DSPs vorhanden ist. Das Interface is standardmäßig für 9600 Baud konfiguriert. Jedes Protokoll wird mit einer einfach zu berechnenden XOR Checksumme beendet. Das Protokollende wird über eine Timeout Überwachung erkannt.

Ein volldigitales SICK-STEGMANN Interface ist in Vorbereitung. HIPERFACE DSL soll in zwei Interface versionen verfügbar sein:

  • eine RS485 Version mit getrennten Spannungsversorgungs- und Signalleitungen
  • eine DSL Version mit Leitungen, die Versorgung und Signale gleichzeitig führen

Bis jetzt sind keine detailierten technischen Daten veröffentlicht. HIPERFACE DSL soll 2008 verfügbar sein.

Zusamenfassung

Diese Abhandlung beschreibt Methoden für Schnittstellen von hochauflösenden Encodern mit einem Servoverstärker mittels FPGA und Microcontroller Technologie.

Es gibt keinen Microcontroller auf dem Markt, der industriele digitale Encoderschnittstellen unterstützt. Kein Antriebshersteller ist bereit, unterschiedliche spezialisierte integrierte Schaltungen für die einzelnen Encoder zu verwenden. Siemens z.B. unterstützt nur das firmeneigene DRIVE CLiQ. BiSS und EnDat können jedoch leicht in ein standard FPGA mit RS485 Treibern inplementiert werden {5}. HIPERFACE DSL ist möglichrweise ebenfalls ein Kandidat für eine FPGA Lösung mit derselben Hardware.

Wirkliche Hochleistungsapplikationen (Direktantriebe) profitieren von einer FPGA integrierten, Beobachter basierten Interfacelösung mit Flash AD Wandler, Oversampling und online Offsetfehler Korrektur.

Verfasser

Prof. Dr.-Ing. Jens Onno Krah
Fachhochschule Köln
Fakultät IME – NT

Heiko Schmirgel
Kollmorgen Europe GmbH 
Düsseldorf

Referenzen

1. Hengstler  www.Hengstler.com
2. S700 Handbuch www.Kollmorgen.com
3. BiSS Interface www.biss-interface.de
4. IC - Haus   www.icHaus.de 
5. Download www.f07.fh-koeln.de/fakultaet/personen/professoren/jens.krah/
6. EBV  www.ebv.comwww.devboards.de
7. Siemens   www.automation.siemens.com
8. Heidenhain  www.heidenhain.de
9. MAZeT   www.MAZeT.de
10. Sick - Stegmann  www.stegmann.de