Многопоточная ко-симуляция

В этом примере показано, как запустить совместное моделирование на нескольких потоках.

Simulink - это интеграционная платформа, которая поддерживает совместное моделирование между компонентами с помощью локальных решателей или которая включает инструменты симуляции. Для примера ко-симуляция может включать S-функцию как шлюз ко-симуляции между Simulink и сторонними программами или пользовательским кодом. Это также может включать FMU в режиме ко-симуляции, импортированном в Simulink.

По умолчанию Simulink конфигурирует все модели для выполнения в нескольких потоках с параметром MultiThreadCoSim.

Этот пример показывает, как запустить многопоточную совместную симуляцию трех компонентов (два реализованы в C-MEX S-Function, один реализован с использованием FMU Co-Simulation v2.0). Эти компоненты вычисляют простые числа, чтобы найти максимальное простое число, которое меньше или равно заданному входу.

Многопоточная совместная симуляция лучше всего подходит для моделей с вычислительно интенсивными и слабо связанными компонентами. В этом примере каждый компонент вычисляет простые числа с помощью поиска перебора. Интенсивность расчетов прямо пропорциональна заданной области значений, который является блочным входом, с которым можно экспериментировать. Кроме того, компоненты обмениваются скалярным сигналом, который является максимальным простым числом в заданной области значений, во времени связи.

Экспериментируйте с переключением параметра MultithreadedSim и измерением стенки времени синхроимпульса.