Entwicklung einer modellbasierten Codegenerierung für einen Cortex-M4-Microcontroller

  • Motivation

     

    Für das Praktikum „Hardware und Software in leistungselektronischen Systemen“ wird bisher ein Arduino Nano 33 IoT eingesetzt, welcher auf einem ARM-Cortex-M0 Mikrocontroller basiert und mittels Simulink-Codegenerierung programmiert wird.

     

    Der Mikrocontroller im Zusammenspiel mit dem bisher für die Code-Generierung verwendeten Software-Gerüst für Arduino erweist sich jedoch nicht als ausreichend schnell, um die gewünschte Regler-Performance zu erreichen.

     

    Aufgabenstellung

     

    Im Rahmen dieser Bachelorarbeit soll ein speziell für leistungselektronische Systeme angepasstes Software-Grundgerüst für die Simulink-Codegenerierung erstellt werden. Für die Zielhardware ist ein Mikrocontroller mit einem ARM-Cortex-M4-Kern von der Firma STMicroelectronics vorgesehen. Das Software-Gerüst soll jedoch so aufgebaut werden, dass dieses leicht auf Mikrocontroller anderer Hersteller portierbar ist.

     

    Im ersten Schritt soll eine Einarbeitung in den Embedded Coder von MATLAB/Simulink erfolgen und bereits erster Code für die Zielhardware generiert und ausprobiert werden.

     

    Im zweiten Schritt sollen speziell für die Leistungselektronik angepasste Simulink-Blöcke erstellt werden. Hierzu gehören beispielsweise ein anpassbarer PWM-Block, ein GPIO-Block und ein ADC-Block. Gleichzeitig soll mithilfe von MATLAB-Skripten ein komfortabler und automatisierter Workflow entwickelt werden.

     

    Im letzten Schritt soll eine leistungselektronische Beispielanwendung implementiert werden, welche die Funktionsweise der damit geschaffenen „Signalverarbeitungsplattform“ demonstrieren soll. Ob es sich hierbei um den Tiefsetzsteller aus dem Praktikum oder um beispielsweise einen Maximum-Power-Point-Tracker für Photovoltaik handelt, sei frei zur Wahl gestellt. Passende Hardware ist für beide Anwendungen vorhanden.

     

    Für die Bearbeitung dieser Arbeit sind gute Kenntnisse in MATLAB und Simulink erforderlich. Ferner sollten Basiskenntnisse der Programmiersprache C vorhanden sein. Erfahrungen mit Embedded-Programmierung wären hilfreich, sind jedoch keine Voraussetzung.

     

    Aushang als PDF