В этом примере показано, как запустить co-симуляцию на нескольких потоках.
Simulink является платформой интегрирования, которая поддерживает co-симуляцию между компонентами с локальными решателями, или это включает инструменты симуляции. Например, co-симуляция может включить S-функцию как шлюз co-симуляции между Simulink и сторонними программами или пользовательским кодом. Это может также вовлечь FMU в режим co-симуляции, импортированный в Simulink.
По умолчанию Simulink конфигурирует все модели, чтобы работать на нескольких потоках параметром MultiThreadCoSim.
В этом примере показано, как запустить многопоточную co-симуляцию трех компонентов (два реализованных в S-функции C-MEX, один реализованный FMU Co-Simulation v2.0 использования). Эти компоненты вычисляют простые числа, чтобы найти максимальное простое число, которое меньше, чем или равно данному входу.
Многопоточная co-симуляция лучше всего удовлетворяет моделям с в вычислительном отношении интенсивными и слабо связанными компонентами. В этом примере каждый компонент вычисляет простые числа с помощью поиска "в лоб". Интенсивность расчета прямо пропорциональна данной области значений, которая является входом блока, с которым можно экспериментировать. Кроме того, компоненты обмениваются скалярным сигналом, который является максимальным простым числом в данной области значений в коммуникационные времена.
Эксперимент, переключающий параметр MultithreadedSim и измеряющий стену, показывает время.
open_system('slexCoSimPrimeExample') sim('slexCoSimPrimeExample');