MATLAB Coder

Hauptmerkmale

  • Generiert ANSI/ISO-konformen C- und C++-Code
  • Generiert MEX-Funktionen für Festkomma- und Fließkommaarithmetik
  • MATLAB Coder-App zur Definition von Einsprungpunkt-Funktionen, Eigenschaften von Eingabedaten und anderen Konfigurationsoptionen für die Codegenerierung.
  • Unterstützt die statische oder dynamische Speicherzuweisung für Daten variabler Größe
  • Unterstützt die Codegenerierung aus vielen Funktionen und System Objects der Communications System Toolbox, der Computer Vision System Toolbox, der DSP System Toolbox und der Phased Array System Toolbox™
  • Unterstützt Kernfunktionen der MATLAB-Sprache wie Matrizen-Operationen, Indizierung, Steueranweisungen (if, switch, for, while) und Strukturen

Zusammen mit dem Simulink Coder und ggf. dem Embedded Coder erzeugt der MATLAB Coder C-Code aus Simulink®-Modellen. Der generierte C-Code lässt sich:

  • Eigenständig ausführen
  • Mit anderer Software integrieren
  • Zur Beschleunigen von MATLAB-Algorithmen einsetzen
  • Für die Implementierung auf Embedded Systemen nutzen
MATLAB Coder project manager interface and code generation report showing the generated C code.
Project Manager-GUI des MATLAB Coder (links) und Codegenerierungsbericht (rechts) mit generiertem C-Code.

Teilmenge der MATLAB-Sprache für die Codegenerierung

Der MATLAB Coder generiert Code aus einer Teilmenge der MATLAB-Sprache, die von Entwicklungsingenieuren typischerweise zum Entwurf von Algorithmen als Komponenten größerer Systeme verwendet wird. Diese unterstützte Teilmenge umfasst mehr als 400 Operatoren und Funktionen aus MATLAB.

Zusätzlich wird die Codegenerierung aus einer begrenzten Menge von Funktionen der Aerospace Toolbox, der Fixed-Point Designer™, der Image Processing Toolbox, der Signal Processing Toolbox und der Statistics and Machine Learning Toolbox™ unterstützt. Daneben unterstützt der MATLAB Coder die Codegenerierung aus vielen System Objects der Communications System Toolbox, der Computer Vision System Toolbox, der DSP System Toolbox und der Phased Array System Toolbox™.

Eine Vielzahl der zur Algorithmen-Entwicklung eingesetzten Attribute der MATLAB-Sprache werden vom MATLAB Coder unterstützt. Dazu gehören:

Matrizen und Arrays, etwa persistente Variablen, globale Variablen, Matrizen-Operationen, n-dimensionale Arrays, Indizierung und Frames

Klassen und Datentypen wie komplexe Zahlen, Integer Match, Singles und Doubles, Festkommaarithmetik, Zeichen, Strukturen, numerische Klassen und Daten variabler Größe

Programmier-Konstrukte wie MATLAB-Steueranweisungen (if, for, while, switch) und arithmetische, relationale und logische Operatoren

Funktionen, beispielsweise Function Handles, Unterfunktionen, die Teilmenge von unterstützten MATLAB-Funktionen, Argumentenlisten für Ein- und Ausgaben variabler Länge sowie die Fähigkeit zum Aufrufen von MATLAB-Funktionen

Hier finden Sie die ausführliche Liste aller für die Codegenerierung unterstützten MATLAB-Sprachattribute.

Anwendungsbeispiele für den MATLAB Coder

Entwicklungsingenieure, welche unter MATLAB Algorithmen entwickeln, können daraus mit dem MATLAB Coder leicht lesbaren und plattformunabhängigen C/C++-Code erzeugen. Dieser generierte Code kann eingesetzt werden:

  • Zum Prototyping von MATLAB-Algorithmen auf PCs in Form von Standalone-Executables, die dann als Entwurfsspezifikation an die Softwareingenieure weitergegeben werden können
  • Zur Beschleunigung von Simulations-Anteilen, indem MATLAB-Code durch automatisch generierte MATLAB-Programmdateien (MEX-Funktion) ersetzt wird, die den kompilierten C- oder C++-Code aufrufen
  • Zur Integration von MATLAB-Algorithmen in Form kompilierter Bibliothekskomponenten in andere Software wie z. B. eigenentwickelte Simulatoren
  • Zur Implementierung und Verifikation von MATLAB-Algorithmen auf Embedded- Prozessoren
MATLAB Coder use cases.
Anwendungsbeispiele für den MATLAB Coder.

Codegenerierung aus MATLAB

Für die Übersetzung von MATLAB-Algorithmen in C-Code müssen unter anderem die Anforderungen für die Implementierung definiert werden. Der MATLAB Coder führt Sie durch diesen iterativen Vorgang, während Sie weiter mit der MATLAB-Sprache arbeiten. Zur Sicherstellung, dass der Algorithmus für die Codegenerierung konform bleibt, wird eine MEX-Funktion generiert, die den Code wrappt, damit er wieder in MATLAB ausgeführt werden kann. Der MATLAB Coder erzeugt einen Bericht mit allen Fehlern, die behoben werden müssen, damit der MATLAB-Algorithmus für die Codegenerierung konform ist. Die Fehlerbehebung und das erneute Generieren der MEX-Funktion werden so lange wiederholt, bis der MATLAB-Algorithmus schließlich die Voraussetzungen für die Codegenerierung erfüllt.

Aus dem fertig vorbereiteten Algorithmus kann nun C- oder C++-Quellcode oder eine leistungsoptimierte MEX-Funktion generiert werden.

Mit C- oder C++-Quellcode können Sie:

  • Prototyping auf PCs betreiben
  • Bibliotheken erzeugen
  • In Form von Embedded Code implementieren

Die MEX-Funktion kann anstelle des ursprünglichen MATLAB-Codes aufgerufen werden, um:

  • Den kompilierten Code in MATLAB zu verifizieren
  • Die Ausführung zu beschleunigen
Three-step iterative workflow for generating code from MATLAB using  MATLAB Coder.
Iterativer, aus drei Schritten bestehender Workflow der Codegenerierung aus MATLAB mit dem MATLAB Coder.

MATLAB Coder mit Simulink Coder und Embedded Coder

Mit dem MATLAB Function-Block für die Simulation und Codegenerierung können Sie MATLAB-Algorithmen, die mit der unterstützten MATLAB-Teilmenge geschrieben wurden, als MATLAB-Code in Simulink-Modelle integrieren. Mit dem Simulink Coder können Sie auch aus solchen Simulink-Modellen, die MATLAB-Code enthalten, Code generieren.

Radar tracking model in Simulink with a Kalman filtering algorithm that is written in MATLAB and called using the MATLAB Function block.
Simulink-Modell zur Radarverfolgung. Das Modell enthält einen in MATLAB geschriebenen Kalman-Filteralgorithmus, der über den MATLAB Function-Block aufgerufen wird.

Der Embedded Coder generiert Code für unterstützte Embedded-Prozessoren, für On-Target Rapid Prototyping HW sowie für in der Massenfertigung eingesetzte Mikroprozessoren. Er erweitert den MATLAB Coder und Simulink Coder durch die Bereitstellung von Konfigurationsoptionen und hochentwickelten Optimierungen, die eine differenzierte Steuerung der Funktionen, Dateien und Daten des generierten Codes ermöglichen. Der Embedded Coder verbessert die Codeeffizienz und erleichtert die Integration mit in der Serienproduktion eingesetztem Code, Datentypen und Kalibrierparametern.

Mit dem Embedded Coder generierter Code kann in die Entwicklungsumgebungen von Drittanbietern exportiert werden, wodurch sich die Erzeugung von einsatzfertigen Programmen für Embedded Systems automatisieren lässt. Der generierte Code kann außerdem auf Prozessoren ausgeführt werden um die Performance zu verifizieren sowie Informationen zum Ressourcenverbrauch in PIL- (Processor-in-the-Loop) Simulationen und mit Profiling-Methoden zu sammeln.

Kostenloser Quick Start Guide

Zum Guide