Bildergalerie
Bild 1: Integrierte industrielle Antriebssteuerung auf FPGA-Basis.
Bild 2: Implementierung einer feldorientierten Regelung (FOC).
Bild 3: Vergleich der System-Ressourcen und Latenzzeiten (mit und ohne Folding).
Bild 4: Vergleich Festkomma- und Gleitkomma-Implementierung.

In vielen Antriebssteuerungen werden bisher Standard-Mikrocontroller oder DSPs für die Bereitstellung der Verarbeitungsleistung und der Regelschleifen genutzt. Damit kann die Motorlast erfasst und das Drehmoment, die Geschwindigkeit oder andere dynamische Parameter geregelt werden. Allerdings haben MCUs und DSPs Limitierungen in Bezug auf die Skalierbarkeit und die Performance, wenn es um komplexe Algorithmen geht. Außerdem müssen moderne Motor-Controller für die Automatisierung netzwerkfähig sein, wobei unterschiedlichste Standards unterstützt werden sollten.

21677.jpg

Altera

Bei neuen Motorantriebslösungen kommen nun verstärkt FPGAs zum Einsatz, dank ihrer hohen Flexibilität und Performance, aber auch im Hinblick auf den effizienten Design-Flow. Allerdings sind viele Entwickler von Motorsteuerungen weder besonders vertraut mit DSP-Algorithmen noch versierte RTL-Designer mit FPGAs. Um diese Einschränkung zu überwinden, werden Modell-basierte Design-Techniken wie Matlab/Simulink eingesetzt. In Kombination mit Block-basierten Tools wie dem DSP Builder Advanced Blockset von Altera können DSP-Entwickler in der gewohnten Matlab-Umgebung arbeiten und optimierten RTL-Code automatisch erzeugen. Der DSP Builder sorgt dann für das Time-Sharing von logischen Operatoren wie Multiplizierer oder Addierer und unterstützt Gleit- und Festkomma-Arithmetik direkt in Hardware.

Tools erleichtern Entwicklungsprozess der Motorsteuerung

Während Standard-Mikrocontroller und DSPs bei neuesten Motorsteuerungen an ihre Grenzen kommen, bieten sich FPGAs als ideale Lösung an. Sie bieten die Flexibilität alle erforderliche Funktionalität auf einem Baustein zu integrieren. Außerdem verfügen sie über ausreichende Performance, um mehrere Kanäle zu verarbeiten und hoch präzise Gleitkomma-Implementierung zu unterstützen. Zugriff auf Embedded-Prozessoren, Netzwerk- und Interface-IP ermöglicht eine einfache und schnelle Systemintegration.

Ein weiterer wichtiger Vorteil von FPGAs ist, dass fast alle erforderlichen Funktionsblöcke für eine Motorsteuerung integriert werden können, da die Regelschleifen und das System-Management parallel verarbeitet werden können. Embedded-Prozessoren wie der Nios II (32-Bit-RISC) übernehmen die Steuerung der I/Os, Filter- und Schnittstellenfunktionen oder implementieren ein deterministisches Industrial Ethernet-Protokoll wie EtherCAT oder Profinet. Darüber hinaus können die flexiblen DSP-Blöcke in den FPGAs auch rechenintensive Algorithmen wie feldorientierte Regelung (FOC) einfach und effizient implementieren.

DSP-Algorithmen einfach implementieren

In Bezug auf die Performance bringen FPGAs mehrere Vorteile mit sich: Dank der effizienten Parallelverarbeitung der FPGA-Hardware und der Skalierbarkeit auf komplexer Bausteine wird ein hoher Durchsatz bzw. eine hohe Verarbeitungsleistung gewährleistet. Potenzielle Hardware-Beschleunigung für Aufgaben, die sonst in Software ausgeführt werden, sowie das direkte Interface zwischen den Steuerungs-Algorithmen und der Peripherie (beispielsweise AD-Wandler, PWM, Positions-Decodierer) sorgen für reduzierte Latenzzeiten bei der Regelung. Außerdem variieren die Latenzzeiten der Algorithmen nicht, da in Hardware ausgeführt. Bei einer Software-Implementierung können die Latenzzeiten schwer vorhergesagt werden und zu Echtzeit-Fehlern führen, wenn sie nicht entsprechend geregelt sind. High-Level-Synthese mit Simulink direkt nach der FPGA-Implementierung mit dem DSP-Builder erfordert keine spezielle HDL-Expertise vom Entwickler. Mit dem Folding-Feature können Latenzzeit, Durchsatz und Ressourcen bestmöglich aufeinander abgestimmt werden. Die Unterstützung von Gleit- und Festkomma-Arithmetik mit variabler Genauigkeit ermöglicht optimierte Algorithmen.

Bestehenden C-Code einfach portieren

Entwickler können bereits bestehenden C-Code einfach auf den Nios II-Prozessor und damit auf das FPGA portieren. Der Code kann beispielsweise dazu dienen, Engpässe zu beseitigen, wobei rechenintensive oder Echtzeit-Aufgaben im System vom FPGA erledigt werden, während der Hauptprozessor frei wird für andere Aufgaben. Man kann diese Funktionen entsprechend auslagern, indem man entweder per Hand geschriebene und RTL-basierte kundenspezifische Befehle nutzt oder DSP-Hardware-Beschleuniger mittels des DSP Builder erzeugt.

Für komplett neue Designs, können Entwickler von Beginn an Simulink nutzen, um das komplette System zu modellieren. Dafür werden Blöcke verwendet, die zwischen Software, DSP-Hardware-Beschleunigern oder kundenspezifischer RTL-IP aufgeteilt sein können.

DSP Builder Advanced Blockset

Der DSP Builder Advanced Blockset fügt spezielle Simulink-Bibliotheken in die Matlab-Design-Umgebung ein, die es Entwicklern ermöglichen, DSP-Designs schnell und einfach zu implementieren. Die Blockfunktionen basieren auf einer High-Level-Synthese-Technologie, die die High-Level-Netzliste (ohne Timing) für die Pipeline-Hardware des Ziel-FPGAs mit der erforderlichen Taktrate optimiert. Der DSP Builder gibt die entsprechende Hardware als VHDL-Beschreibung wider, mit Scripts, die in den Software-Flow von Quartus II und in den Modelsim-Simulator integriert werden.

Ist die System-Taktrate größer als die Datenrate oder die Abtastrate, dann kann beispielsweise ein Hardware-Block (zum Beispiel ein Multiplizierer) eventuell mehrere Datenpunkte wieder aufarbeiten. Der DSP Builder gibt das Verhältnis zwischen der Takt- und der Abtastrate als Folding-Faktor wider. Wenn Entwickler im DSP Builder das Folding erlauben, dann haben mehrere Datenpunkte Zugriff auf den gemeinsamen Hardware-Block, was die Ressourcen-Ausnutzung deutlich verbessert.

Eine typische Motor-Regelung als Vergleichsbeispiel

Bei der feldorientierten Regelung (FOC) muss der sinusförmige, dreiphasige Motorstrom in Echtzeit geregelt werden. Die zur Regelung genutzte Größe ist der Augenblickswert des Motorstroms, anhand dessen Größe und Phasenlage zur Spannung alle erforderlichen Motorzustände, wie Drehzahl, Schlupf oder Drehmoment aus dem Modell ermittelt werden können. Bei diesem Verfahren wird die Amplitude des Stromvektors bei 90 Grad in Bezug auf die Achse des magnetischen Flusses des Rotormagneten („Quadrature-Strom“) genutzt, um das Drehmoment zu regeln, während die „direkte“ Strom-Komponente (0 Grad) bei Null gehalten wird. Die Lösung beinhaltet PI-Steuerschleifen für die Position und die Geschwindigkeit, mit denen die Rotor-Geschwindigkeit und der Winkel geregelt werden können. Die entsprechende Interface-IP, um das entsprechende Design zu vervollständigen kann einfach mit dem SOPC Builder Tool eingefügt werden.

Bei einem typischen FOC-Controller tastet die Software die Eingänge mit 10 bis 100 kSample/s ab, während die FPGA-Taktrate bei 50 bis 100 MHz liegt. Bei 100 kSample/s muss eine neue Abtastung innerhalb von weniger als 10 µs verarbeitet sein. Diese Latenzzeit konstant und auf einem minimalen Wert zu halten, ist entscheidend für die Performance des Regelungs-Algorithmus.

Der Algorithmus wird mit Simulink und Gleitkomma-Typen einfacher Genauigkeit modelliert, um die erforderliche Performance zu prüfen. Danach wird die Hardware erzeugt, um die VHDL-Netzliste für das entsprechende FPGA zu kreieren, mit einer Ziel-Taktrate von 100 MHz. Die erreichte Latenzzeit wird direkt an den DSP Builder übermittelt, zusammen mit einer Abschätzung der erforderlichen Logik-Ressourcen. Um dann schließlich eine genaue Ressourcen-Angabe zu bekommen, wird das Design mit der Quartus II-Software compiliert.

Ein Design dieser Art kann auch mit Festkomma-DSP realisiert werden, aber eine Gleitkomma-Implementierung bietet einige Vorteile: Bei der Gleitkomma-Lösung werden ein arithmetischer Überlauf und auch Skalierungs-Probleme vermieden. Außerdem weist die Gleitkomma-Implementierung dank ihrer besseren numerischen Stabilität eine ausgezeichnete Performance auf. Durch den höheren Dynamikbereich ist auch eine schnellere Rückmeldung auf die Regelschleife möglich. Die FPGAs und Tools von Altera unterstützen sowohl Gleitkomma- als auch Festkomma-Lösungen.

Standardmäßig erzeugt der DSP Builder eine Designwiedergabe mit kompletter Pipeline-Struktur, die neue Eingangswerte mit jedem Taktzyklus akzeptieren kann. Entwickler können nun die Ergebnisse für diese Konfiguration mit maximalem Durchsatz mit einer Folder-Konfiguration vergleichen und so das Design optimieren. Außerdem kann man für den gleichen Algorithmus einen Vergleich zwischen einer Festkomma- und Gleitkomma-Implementierung anstellen.

Die Ergebnisse zeigen wie durch Folding der Operator-Aufwand deutlich verringert werden kann. Damit kann zum Beispiel ein kleinerer Cyclone IV-Baustein eingesetzt werden, während die Latenzzeit immer noch akzeptabel für den Algorithmus ist. Die Geschwindigkeit der Regelschleife ergibt sich aus der Latenzzeit des Algorithmus plus der Einschwingzeit. Bei 5 µs erreicht man 200.000 Regelschleifen oder PWM-Ausgangssignale je Sekunde – deutlich innerhalb der Spezifikation.

Die Ergebnisse

Es zeigt sich, dass die Verwendung von Folding deutliche Vorteile mit sich bringt. So wird einmal die Anzahl der erforderlichen Logikelemente und Multiplizierer reduziert, was den Einsatz von deutlich kleineren FPGAs ermöglicht. Auf der anderen Seite wird die Latenzzeit nur moderat erhöht. Auch die Reduzierung des Durchsatzes auf 1 MS/s ist kein Problem, da das immer noch 10 Mal schneller als die erforderlichen 100 kS/s für die feldorientierte Regelung ist. Damit können demnach bis zu 10 FOC-Kanäle in Echtzeit verarbeitet werden.

Während die Gleitkomma- und die 32-Bit-Festkomma-Implementierung Logik-Ressourcen in ähnlicher Größenordnung benötigen, ist die Latenzzeit für die Festkomma-Lösung nur halb so lang. Ohne Folding besteht ein deutlich größerer Unterschied zwischen dem Gleitkomma- und dem Festkomma-Ansatz. Reduziert man die Genauigkeit auf 16 Bit, dann benötigt man aufgrund des schmaleren Datenpfades weniger Ressourcen.

Fazit

Da viele Entwickler nicht unbedingt vertraut mit FPGA- oder DSP-Applikationen sind, ist es wichtig Tools zur Verfügung zu stellen, die die Design-Produktivität erhöhen und die Entwicklungszeiten reduzieren. Dafür wurden von Altera Tools wie der SOPC Builder oder der DSP Builder entwickelt, mit denen Entwickler den konventionellen DSP-Entwicklungsprozess nutzen können und somit schnell zu der gewünschten Motorsteuerung kommen. (jj)