Enthält das Modell bereits Blöcke mit unterschiedlichen Ausführraten, kann die Option Allow tasks to execute concurrently on target in den Konfigurationsparametern des Modells aktiviert und somit alle Kerne des Prozessors genutzt werden. Eine Umstrukturierung des Modells ist hierbei nicht nötig. Je nachdem, wie viel Rechenarbeit in jedem Zyklus ausgeführt wird, kann dies ggf. zu einer Verbesserung der Ausführungszeit führen. Da für diesen Schritt nur eine minimale Konfiguration erforderlich ist, kann das schnell ausprobiert werden. In diesem Beispiel wird das gesamte Modell mit einer einzigen Simulationsrate ausgeführt, d.h. das Modell muss partitioniert werden, um den Vorteil mehrerer Kerne nutzen zu können.
Es gibt viele Möglichkeiten für die Partitionierung; im Allgemeinen lässt sich ein Modell anhand der folgenden Aspekte partitionieren:
Taktrate – Partitionierung anhand von Ausführungsraten innerhalb des Modells (z.B. schneller Takt, langsamer Takt).
Physik – Partitionierung anhand der physikalischen Eigenschaften der Teilsysteme (z.B. Motormodell, Getriebemodell und elektrisches Modell).
Funktion – z.B. Trennung von I/O-Kanälen und Streckenmodell.
Da es sich bei diesem Beispiel um eine Simulation mit globaler Taktrate handelt und keinerlei I/O-Kanäle verwendet werden, wurde das Modell anhand der physikalischen Eigenschaften partitioniert:
Mechanische Komponenten – Fahrzeugmodell
Elektrische Komponenten – Batteriemodell und DC/DC-Konverter
Im explizit partitionierten Modell muss jeder Top-Level-Block den „Model Reference“-Block aus der Simulink-Ports- und -Subsystem-Bibliothek verwenden (Bild 5). Dadurch können die Tasks auf der obersten Modellebene getrennt werden. Zur Konfiguration des Modells für die Concurrent Execution muss wie folgt vorgegangen werden:
Solver-Einstellungen: Aktivieren der Option Allow tasks to execute concurrently on target und Auswahl von Configure Tasks.
Erstellen von drei separaten Tasks, damit jedem referenzierten Modell eine individuelle Task zugewiesen werden kann.
Zuweisen der Tasks zu den referenzierten Modellen in der Registerkarte Task and Mapping.
Das Modell ist nun so konfiguriert, dass mehrere Kerne verwendet werden. Wenn das Modell aktualisiert wird, werden die zugewiesenen Tasks als farbige Symbole angezeigt. Die Task-Zuweisung kann also immer auf der obersten Modellebene gesehen werden.
Durch die Zuweisung von Tasks wird das Verhalten des Simulationsmodells beeinflusst, da an den Taskübergängen Rate-Transition-Blöcke (Taktratenübergänge) eingefügt werden müssen. Diese Änderungen können als Annotationen gesehen und durch Simulation überprüft werden. Während der Partitionierungsphase empfiehlt es sich, das Modell regelmäßig zu simulieren und die Validität zu überprüfen. Durch die zusätzlichen Rate Transitions ist es möglich, dass sich das Streckenverhalten ändert. Über die Schaltfläche „Build and Download“ wird das Modell auf den Speedgoat-Echtzeit-Rechner heruntergeladen.