Выполняйте параллельные симуляции с использованием parsim

Этот пример показывает, как использовать объект Simulink.SimulationInput изменить параметры блоков и параметры модели и симуляции выполнения параллельно с теми изменениями.

Модель sldemo_househeat в качестве примера является системой, которая моделирует тепловые характеристики дома, его наружной среды и системы отопления дома. Эта модель вычисляет нагревающиеся затраты для типичного дома.

Блок Set Point, подсистема Термостата, подсистема Нагревателя, подсистема Дома и компонент Расчета стоимости являются основными компонентами. Для подробного объяснения модели см. Тепловую Модель Дома.

Запустите несколько параллельных симуляций с различными сетболами

Эта модель использует блок Constant, чтобы задать температурный сетбол, который должен сохраняться в закрытом помещении. Значение по умолчанию заданного значения составляет 70 градусов по Фаренгейту. Этот пример показывает вам, как моделировать модель в параллельных использующих различных значениях Set Point.

Откройте модель в качестве примера.

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 задает среднюю температуру воздуха на открытом воздухе. Блок The Daily Temp Variation Sine Wave генерирует ежедневные температурные колебания наружной температуры. Внутренняя температура выведена от подсистемы палаты. Температура вне помещения отличается синусоидально, тогда как температура в закрытом помещении сохраняется в 5 градусах по Фаренгейту сетбола.

В отсутствие лицензий Parallel Computing Toolbox™ команда parsim ведет себя как команда sim. Симуляции запущены в сериале.

Просмотрите выполнения в Simulation Manager

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

Можно просмотреть состояние всех выполнений и подробной информации о них.

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

Можно теперь видеть тепло, стоившее за три симуляции.

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

Смотрите также

| | | | | | | | | | |

Похожие темы