Modell-basierte Entwicklung von regelungs-technischen Algorithmen auf Xilinx Ultrascale MPSOC Plattformen

Partner Call offen bis: 08. Oktober 2021

Projektstart: Q4 2021

Zielsetzung

Entwicklung von Software- bzw. Firmware-modulen zur Erweiterung bestehender Toolchains der automatisierten Softwareentwicklung für regelungstechnische Algorithmen im Bereich Leistungselektronik sowie elektrischer Antriebe. Die Erweiterung betrifft unter anderem Parametrier- und Monitoring- bzw. Oszilloskop-funktionen für die Unterstützung des Entwicklungsprozesses.

Ziel des kooperativen Forschungsvorhabens ist die Erweiterung von bestehenden Toolchains auf Xilinx Ultrascale-basierten Echtzeit-Hochleistungsrechenplattformen. Diese Toolchain wurden im Rahmen von mehreren Forschungsprojekten am Joanneum Power-Electronics Center entwickelt. Im Zuge der Zusammenführung der Forschungsaktivitäten (Aufbau eines SAL-Power-Hubs an der FH JOANNEUM Kapfenberg) soll nunmehr die Erweiterung durchgeführt werden. Die Toolchain zeichnet sich dadurch aus, dass sowohl VHDL-codes für den FPGA-Teil des MPSoCs (Multiprocessor system on Chip) als auch C-code für die ARM-cores aus Matlab/Simulink generiert werden können. Die entstehenden Firmware-/Software-module ermöglichen extrem kurze Latenzzeiten in Bezug auf die Datenerfassung bzw. die Vorgabe von Steuersignalen (z.B. PWM-Signale), wodurch die Abarbeitung extrem dynamischer Regelungsalgorithmen mit Zykluszeiten < 1 µs optimal unterstützt wird.

Ziel der geplanten Erweiterung ist nunmehr die Vorbereitung des Systems für den Einsatz als hochflexible Steuereinheit von P-HIL-Systemen (Power-Hardware-in-the-Loop-Systeme). P-HIL-Systeme sind dadurch gekennzeichnet, dass mit generisch konzipierten - typischerweise sehr hochfrequent-taktenden Leistungskonvertern auf SiC- oder GaN-Basis –unterschiedliche Gerätefunktionalitäten realisiert werden. Diese Funktionalitäten werden dann nur durch Downloads entsprechender Matlab/Simulink-Modelle ausgewählt. Eventuell erforderliche Hardwareanpassungen betreffen dann nur Filterkomponenten. Der Konverter selbst kann aber ausschließlich durch Software (Code der automatisiert aus den Simulink-Modellen generiert wird) an die jeweiligen Anforderungen angepasst werden.

Für die nunmehr geplante Systemerweiterung ergeben sich daraus unter anderem folgende Ziele:

Implementierung von Firmware IP-Cores für die Verwaltung des Datenaustauschs zwischen FPGA, FreeRTOS und Linux

Für die flexible Kommunikation zwischen den Prozessoren und dem FPGA werden Management-Blöcke benötigt, die in Form von FPGA-IP-Cores zu implementieren sind. Diese Blöcke helfen bei der Ablage von Signalen in gemeinsamen Speicherplätzen, auf die sowohl FPGA als auch CPU unter Berücksichtigung von Zykluszeiten und Signaldatenraten zugreifen können.

Automatische Aufteilung von Algorithmen / Simulinkblöcken auf Prozessoreinheiten bzw. FPGAs (längere und kürzere Zykluszeiten)

Die Xilinx Ultrascale MPSOCs verfügen neben dem FPGA-Teil über bis zu 6 ARM-cores, von denen zwei auch als Realtime cores verwendet werden können (4 Cortex-A53 application cores and 2 Cortex-R5F real-time cores). In Bezug auf die Toolchain besteht die Aufgabe darin, die Aufteilung von Simulinkblöcken in Abhängigkeit von den Zykluszeiten geeignet auf FPGAs bzw. Prozessoren aufzuteilen. Der generierte Code aus Simulinkblöcken soll analysiert werden um festzustellen, welche Algorithmen in den CPUs und welche im FPGA implementiert werden sollten. Die Anforderungen beziehen sich neben den Zykluszeiten auch auf die Ausführzeit und Latenzzeit der Simulinkblöcke, die zur Implementierung der Algorithmen verwendet wurden.

Oszilloskopfunktionen für die Aufzeichnung ausgewählter Regler-Signale

Während des Entwicklungsprozesses ist es praktisch unabdingbar, dass unterschiedliche Signale in flexibler Weise mitaufgezeichnet und anschließend analysiert werden können. Dies betrifft nicht nur Eingangs- und Ausgangs-Signale, sondern auch interne Signale der teilweise sehr komplexen Regler-Strukturen. Die Aufzeichnungen müssen hinsichtlich zeitlicher Auflösung entsprechend parametrierbar sein. Unterschiedliche Triggerfunktionen müssen dabei insbesondere für die Suche möglicher Fehlersignale zur Auswahl stehen. Für die Aufzeichnung größerer Datenmengen (Betrieb als Datenlogger) ist zudem die Abspeicherung auf SSD-Disks über entsprechend schnelle Datenschnittstellen vorzusehen. Eine Lösung könnte hier ein SATA-Kommunikationsinterface zur Anbindung von Speichermedien sein.

Automatisierungsprozess

Hier soll ein durchgängiges Automatisierungskonzept entwickelt werden, das sowohl die embedded Linux-Plattform (auf den nicht RT-ARM Prozessoren) als auch die RT-CPUs und den FPGA -Teil umfasst. Dieser automatisierte Workflow muss es dem Nutzer ermöglichen, den Codegenerierungsprozess sowohl für FPGA als auch für CPU zu verwalten, wobei Flexibilität, Wiederverwendbarkeit und Implementierungszeit im Vordergrund stehen. Dies beinhaltet eine möglichst gute Unterstützung des Debuggings und das Zusammenführen der generierten Ausgabedateien (bitstream und kompilierter C Code) in die z.B. mit Yocto erstellte Linux-Umgebung.

Eingebettete Intelligenz

An Hand von typischen Applikationsbeispielen wie z.B.: Modellparametrisierung von Batteriezellen auf Basis von Impedanzspektroskopie, sollen Simulinkblöcke bzw. IP-cores (in VHDL) vorbereitet werden, die dann anwendungsabhängig in die jeweilige Applikation integriert werden können.
Typische IP-cores wären z.B.:

  • Flexibel konfigurierbare Signalgeneratoren (Sinus, Sägezahn, Rechteck, arbitrary waveforms)
  • Digitale Filtermodule für die Signalaufbereitung
  • Vorbereitung der flexiblen Parametrierung der Simulinkblöcke bzw. IP-cores

Sicherheitskritische Hardware- bzw. Firmwareteile

Im Projekt sollen auch Konzepte für die Partitionierung von sicherheitsrelevanten Teilen und Teilen die für User bzw. Applikationsingenieure zugänglich sind erarbeitet werden. Lösungen können dafür eigene FPGA-Teile oder Ansätze mit Partial-Reconfiguration sein.

Synchronisierung von mehreren Xilinx Ultrascale-control-units im Paralellbetrieb

Hier sollen Konzepte erstellt werden, die den Parallelbetrieb von Konvertern die mit eigenen Ultrascale-Einheiten angesteuert werden, ermöglichen. Wesentliches Kriterium ist dabei die Minimierung von Latenzzeiten auf Werte im Bereich unter 100ns.

Erwartete Ergebnisse

Toolchain für Xilinx Ultrascale-basierte Echtzeit-Hochleistungsrechenplattform zur Unterstützung / Beschleunigung des Entwicklungsprozesses mit folgenden in Beispielform aufgezählten Eigenschaften:

  • Aufteilung von Algorithmen / Simulinkblöcken auf Prozessoreinheiten bzw. FPGAs
  • Oszilloskopfunktionen für die Aufzeichnung ausgewählter Regler-Signale
  • Software zur Automatisierung des Workflows
  • Eingebettete Intelligenz in Form von vorbereiteten Simulinkblöcken bzw. IP-cores
  • Synchronisierung von UltraCcal-Plattformen im Parallelbetrieb
  • Lösung der Partitionierung hinsichtlich freier Programmierbarkeit versus Schutz sicherheitskritischer Funktionalitäten