SIMULINK ermöglicht visuelles Programmieren zur Modellierung dynamischer Systeme mittels grafischer Blöcke auf Basis der Programmiersprache MATLAB.
SIMULINK ist eine grafische Programmieroberfläche, die auf der Programmiersprache MATLAB aufbaut. So wie sich im Namen MATLAB, einer Zusammensetzung der Anfangsbuchstaben der Begriffe MATrix und LABoratory, schon grundlegende Eigenschaften dieser Programmiersprache widerspiegeln, spricht auch der Name SIMULINK für sich. Die Kombination aus SIMUlation und LINK steht für Simulationsobjekte, die zu einem Gesamtsystem verlinkt, also verbunden werden.
Blöcke und Blocksets
Die Simulation komplexer dynamischer Systeme erfolgt durch einfaches Verbinden vorgefertigter grafischer Blöcke. Die Verknüpfung der Ein- und Ausgänge der Datenblöcke in der gewünschten Art und Weise simuliert letztendlich das Gesamtsystem. Eine Grundausstattung von Blöcken mit wichtigen Basisfunktionalitäten ist bereits vorhanden. Für Spezialaufgaben kann SIMULINK durch weitere Blocksets erweitert werden. Blocksets sind Sammlungen von Blöcken zur Modellierung von z.B. reglungstechnischen, kommunikationstechnischen oder finanzmathematischen Aufgabenstellungen. Sie werden von MathWorks selbst, aber auch von anderen Firmen angeboten. Fortgeschrittene Anwender können eigene Blöcke oder ganze Blocksets erstellen. Für diese Blöcke kann auch eigener Programmcode verwendet werden. Mittels der sogenannten s-Function wird der Originalcode, z.B. direkt aus MATLAB, aber auch aus anderen Programmiersprachen wie C, in das Simulationsmodell eingebunden.
Codeerzeugung und Echtzeitanwendung
Soll aus einem SIMULINK-Modell selbstständig lauffähiger Programmcode in C erzeugt werden, empfiehlt sich der Einsatz der MATLAB-Toolbox Real-Time Workshop. Der damit erzeugte C-Code ist ANSI/ISO kompatibel. Diese Kompatibilität stellt die Lauffähigkeit auf vielfältigen Hardwareplattformen sicher und eröffnet den SIMULINK-Modellen ein breites Einsatzspektrum bis hin zu Echtzeitanwendungen. In diesem Fall kann das Simulationsmodell Daten mit der realen Welt, beispielsweise über eine externe I/O-Hardware, in Echtzeit austauschen.
(Hardware-)Simulation der Simulation
Bei der Erzeugung und dem Ablauf von Simulationen sehr umfangreicher Systeme oder bei Echtzeitanwendungen mit sehr hohen Datenraten kann es vorkommen, dass die Rechenleistung der MATLAB/SIMULINK-Anwendung nicht mehr ausreichend ist. In diesem Fall hilft die Auslagerung der gesamten Simulation oder der rechenintensiven Teile auf FPGAs (Field Programmable Gate Array). FPGAs sind programmierbare integrierte Schaltkreise. Sie werden mit einer eigenen Programmiersprache konfiguriert, so dass sie die vorgesehenen logischen Funktionalitäten hardwaremäßig nachbilden. Die Ausführungszeiten reduzieren sich dabei um Größenordnungen. Zwei bedeutende FPGA-Programmiersprachen sind VHDL und Verilog HDL. Die Erzeugung von VHDL oder Verilog HDL-Code aus einem SIMULINK-Modell übernimmt der SIMULINK-HDL-Coder. Diese Toolbox ist ebenfalls bei MathWorks erhältlich.
Das Unternehmen
Vorraussetzung für den Einsatz von SIMULINK ist die Programmiersprache MATLAB. SIMULINK und MATLAB sind kommerzielle Produkte der Firma The MathWorks, mit Sitz in Natick, Massachusetts, USA. In Deutschland ist die Firma an den Standorten München, Aachen und Stuttgart vertreten. Es gibt einen deutschsprachigen Support und es werden Schulungen für Einsteiger und Fortgeschrittene, teilweise auch als Webinar, angeboten. Weitere Produkte von The MathWorks sind Stateflow, zur Modellierung und Simulation von endlichen Automaten sowie Simscape, zur topologischen Modellierung und Simulation physikalischer Systeme.