Erstellen eigener S-Functions

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autor: Phillip Blunck


Einleitung

Wenn man ein Simulink Projekt für einen Arduino umsetzen möchte, kann es vorkommen, dass die bereitgestellten Arduino Bibliotheken nicht ausreichen oder für die Lösung nicht geeignet sind. Um dieses Problem einfach zu lösen, kann mit Hilfe einer eigenen S-Function beispielsweise Arduino Quellcode in Simulink eingebunden werden. Dieses Tutorial erläutert wie eine S-Function erstellt werden kann.

Inhalt

Konfigurieren des Simulink-Modells

Zunächst müssen folgende Einstellungen des Simulink-Modells durchgeführt werden. Dazu klickt man auf den Button "Model Configuration Parameters". Danach öffnet man die Reiter und stellt folgende Einstellungen ein: S fun 1.PNG
Hier wurde als Beispiel der Arduino Mega 2560 als Zielhardware ausgewählt. Dies muss bei der eigenen Anwendung entsprechend angepasst werden.

S fun 2.PNG

S-Function-Block

Nun fügt man aus dem Library Browser den S-Function Builder in das Modell ein.

S fun builder logo.PNG

Nachdem der Block eingefügt wurde, öffnet man die Konfiguartionen per Doppelklick. Es öffnet sich ein Fenster welches alle Einstellungen der S-Function enthält.
S fun 3.PNG

Man wählt sich einen Namen der S-Function Folgende Einstellungen müssen vorgenommen werden:
S fun 4.PNG S fun 5.PNG S fun 6.PNG
Wenn der Qullecode eingefügt wurde müssen die benötigten Bibliotheken eingebunden werden. Dies geschieht unter folgendem Reiter:
S fun 7.PNG

Nachdem alle Einstellungen vorgenommen wurden muss die S-Function generiert werden, indem der Button "Build" gedrückt wird. Danach erscheint im Reiter "Build Info" ob die Generierung erfolgreich verlaufen ist.

S fun 8.PNG

Tipps

  • Der Name der S-Function muss zusammenhängend oder mit Unterstrichen verbunden werden
  • Die eingebundenen Bibliotheken (Header-Dateien) müssen im Ordner des Simulink Modells liegen
  • Compiler für die Genereirung muss isntalliert sein
  • Keine doppelte Inkludierung von Bibliotheken bei mehreren S-Functions

Literaturverzeichnis

http://de.mathworks.com/matlabcentral/fileexchange/39354-device-drivers