Выполняйте параллельные симуляции с использованием 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 команда. Симуляции выполняются последовательно.

Просмотр запусков в Simulation Manager

Установка ShowSimulationManager аргумент в on включает Simulation Manager. Для получения дополнительной информации см. Simulation Manager.

Вы можете просмотреть состояние всех запусков и подробную информацию о них.

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

Теперь вы можете увидеть стоимость тепла для трех симуляций.

Используя Simulation Manager, можно применить параметры любого запуска к модели. Теперь предположим, что вы хотите применить параметры Run 3 к вашей модели. Выберите Запуск 3 и щелкните значок. Ваши параметры применяются к модели.

См. также

| | | | | | | | | | |

Похожие темы