parsimВ этом примере показано, как использовать Simulink.SimulationInput объект для изменения блоков и параметров модели и запуска параллельных симуляций с этими изменениями.
Пример модели sldemo_househeat является системой, которая моделирует тепловые характеристики дома, его наружное окружение и систему отопления дома. Эта модель вычисляет затраты на отопление для типового дома.
Установите Точку блок, подсистему Thermostat, подсистему нагревателя, подсистему House и Расчета стоимости компонент являются основными компонентами. Подробное объяснение модели смотрите в Тепловой модели дома.

Эта модель использует блок Constant, чтобы задать точку набора температур, которая должна поддерживаться в закрытом помещении. Значение по умолчанию set точки value является 70 степенями по Фаренгейту. В этом примере показано, как симулировать модель параллельно с использованием различных значений Set Point.
Откройте пример и модель
openExample('simulink_general/sldemo_househeatExample'); open_system('sldemo_househeat');
Задайте множество значений для Set Point.
SetPointValues = 65:2:85; spv_length = length(SetPointValues);
Используя определенные значения, инициализируйте массив Simulink.SimulationInput объекты. Используйте эти Simulink.SimulationInput объекты для задания Set Point значения. На этом этапе, чтобы предварительно выделить массив, индекс цикла делается, чтобы начать с самого большого значения.
for i = spv_length:-1:1 in(i) = Simulink.SimulationInput('sldemo_househeat'); in(i) = in(i).setBlockParameter('sldemo_househeat/Set Point',... 'Value',num2str(SetPointValues(i))); end
Этот пример создает массив из 10 Simulink.SimulationInput объекты, каждый из которых соответствует другому значению Set Point.
Теперь запустите эти многочисленные параллельные симуляции с помощью команды parsim. Чтобы контролировать и анализировать запуски, откройте Simulation Manager путем установки ShowSimulationManager аргумент в on. The ShowProgress аргумент, если установлен в on показывает прогресс симуляций.
out = parsim(in,'ShowSimulationManager','on','ShowProgress','on')
Выход генерируется как Simulink.SimulationOutput объект. Чтобы увидеть все различные значения точки набора, откройте график Температуры (Внутренняя и Наружная) и компонента Стоимость тепла. Постоянный блок Avg Outdoor Temp задает среднюю температуру воздуха на открытом воздухе. Блок Daily Temp Variation Sine Wave генерирует ежедневные колебания температуры на открытом воздухе. Температура в помещении определяется подсистемой House. Температура на открытом воздухе изменяется синусоидально, в то время как температура в закрытом помещении поддерживается в пределах 5 степеней по Фаренгейту от заданной точки.
В отсутствие лицензий Parallel Computing Toolbox™, parsim команда ведет себя как sim команда. Симуляции выполняются последовательно.
Установка ShowSimulationManager аргумент в on включает Simulation Manager. Для получения дополнительной информации см. Simulation
Manager.
Вы можете просмотреть состояние всех запусков и подробную информацию о них.

Simulation Manager позволяет вам просмотреть результаты в Данные моделирования Inspector, что, в свою очередь, позволяет вам анализировать и сравнивать данные. Вы можете просмотреть график Температуры (Внутри и Снаружи) и Стоимость тепла в Данные моделирования Inspector. Выберите запуски графика и щелкните
значок.

Теперь вы можете увидеть стоимость тепла для трех симуляций.
Используя Simulation Manager, можно применить параметры любого запуска к модели. Теперь предположим, что вы хотите применить параметры Run 3 к вашей модели. Выберите Запуск 3 и щелкните
значок. Ваши параметры применяются к модели.
applyToModel | parsim | setBlockParameter | setExternalInput | setInitialState | setModelParameter | setPostSimFcn | setPreSimFcn | setVariable | Simulation Manager | Simulink.SimulationInput | validate