exponenta event banner

Выполнение параллельного моделирования с использованием 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 и щелкните значок. Параметры применяются к модели.

См. также

| | | | | | | | | | |

Связанные темы