parsim
Этот пример показывает, как использовать объект Simulink.SimulationInput
изменить блок и параметры модели и моделирования выполнения параллельно с теми изменениями.
sldemo_househeat
модели в качестве примера является системой, которая моделирует тепловые характеристики дома, его наружной среды и системы отопления дома. Эта модель вычисляет нагревающиеся затраты для типичного дома.
Блок Set Point, подсистема Термостата, подсистема Нагревателя, подсистема Дома и компонент Cost Calculator являются основными компонентами. Для подробного объяснения модели смотрите Тепловую Модель Дома.
Эта модель использует блок 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
. Чтобы видеть все различные заданные значения, откройте график Температур (Внутренний и Наружный) и компонент Heat Cost. Постоянный блок Avg Outdoor Temp задает среднюю температуру воздуха на открытом воздухе. Блок The Daily Temp Variation Sine Wave генерирует ежедневные температурные колебания наружной температуры. Внутренняя температура выведена от подсистемы палаты. Температура вне помещения отличается синусоидально, тогда как температура в закрытом помещении сохраняется в 5 градусах по Фаренгейту сетбола.
В отсутствие Параллельных вычислений лицензии Toolbox™ команда parsim
ведет себя как команда sim
. Моделирования запущены в сериале.
Установка аргумента ShowSimulationManager
к on
включает менеджеру по Моделированию. Для получения дополнительной информации смотрите Simulation Manager
.
Можно просмотреть состояние всех выполнений и подробной информации о них.
Менеджер по Моделированию позволяет вам просмотреть свои результаты в Моделировании Data Inspector, который в свою очередь позволяет вам анализировать и сравнивать свои данные. Можно просмотреть график Температур (Внутренний и Наружный) и Стоимость Тепла в Моделировании Data Inspector. Выберите выполнения, для которых вы хотите просмотреть значок нажатия кнопки и график.
Можно теперь видеть стоимость тепла для трех моделирований.
Используя менеджера по Моделированию, можно применить параметры любого выполнения к модели. Теперь, предположите, что вы хотите применить параметры Запущенных 3 к вашей модели. Выберите Run 3 и кликните по значку. Ваши параметры применяются к модели.
Simulation Manager
| Simulink.SimulationInput
| applyToModel
| parsim
| setBlockParameter
| setExternalInput
| setInitialState
| setModelParameter
| setPostSimFcn
| setPreSimFcn
| setVariable
| validate