parsimВ этом примере показано, как использовать Simulink.SimulationInput объект для изменения параметров блока и модели и выполнения моделирования параллельно с этими изменениями.
Пример модели sldemo_househeat - система, моделирующая тепловые характеристики дома, его наружную среду и систему отопления дома. Эта модель вычисляет затраты на отопление для общего дома.
Основными компонентами являются блок уставки, подсистема термостата, подсистема нагревателя, домашняя подсистема и компонент калькулятора затрат. Подробное описание модели см. в разделе Тепловая модель дома.

Эта модель использует блок константы для задания уставки температуры, которая должна поддерживаться в помещении. Значение по умолчанию - 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. 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.
Можно просмотреть статус всех прогонов и подробную информацию о них.

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

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