exponenta event banner

fetchOutputs

Получение массива Simulink.SimulationOutput объекты из всех моделирований в Simulink.Simulation.Job

Синтаксис

Описание

пример

out = fetchOutputs(simJob) возвращает массив Simulink.SimulationOutput объекты, содержащие результаты моделирования в пакетном задании, simJob.

fetchOutputs сообщает об ошибке, если задания нет в 'finished' состояние, или если одно из его моделирований сталкивается с ошибкой во время выполнения. Используйте wait ожидание завершения задания перед извлечением выходных данных.

Примеры

свернуть все

В этом примере показано, как выполнять параллельное моделирование в пакете и извлекать полученные данные. Simulink.SimulationOutput объекты из Simulink.Simulation.Job объект. batchsim команда выгружает моделирование в вычислительный кластер, позволяя выполнять другие задачи во время обработки пакетного задания, или закрывает клиент MATLAB ® и получает доступ к пакетному заданию позже.

1. Откройте модель.

open_system('sldemo_househeat');

2. Определите набор значений для различных температур.

setPointValues = 65:2:85;
spv_Length = length(setPointValues);

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

in(1:spv_Length) = Simulink.SimulationInput('sldemo_househeat');
for i = 1:1:spv_Length 
    in(i) = in(i).setBlockParameter('sldemo_househeat/Set Point',...
        'Value',num2str(setPointValues(i)));
end

4. Укажите размер пула числа работников для использования. В дополнение к количеству работников, используемых для параллельного моделирования, требуется головной работник. В этом случае предположим, что три работника доступны для выполнения пакетного задания для параллельного моделирования. Объект задания возвращает полезные метаданные, как показано на рисунке. Можно использовать задание ID для последующего доступа к объекту задания с любого компьютера. NumWorkers отображает количество работников, выполняющих моделирование - количество работников, указанное в 'Pool' аргумент плюс дополнительный главный работник.

simJob = batchsim(in,'Pool',3)
                  ID: 1
                Type: pool
          NumWorkers: 4
            Username: #####
               State: running
      SubmitDateTime: ##-###-#### ##:##:##
       StartDateTime: 
    Running Duration: 0 days 0h 0m 0s

5. Доступ к результатам пакетного задания с помощью fetchOutputs способ. fetchOutputs возвращает массив Simulink.SimulationOuput объекты. Вывод можно получить только один раз simJob находится в finished состояние.

out = fetchOutputs(simJob)
1x11 Simulink.SimulationOutput array

Входные аргументы

свернуть все

A Simulink.Simulation.Job объект. Создать simJob, выполнить batchsim.

Пример: simJob = batchsim(in,'Pool',4)

Выходные аргументы

свернуть все

Массив Simulink.SimulationOutput объекты, содержащие все зарегистрированные результаты моделирования. Размер массива равен размеру массива Simulink.SimulationInput объекты, переданные batchsim.

Все выходные данные моделирования (зарегистрированное время, состояния и сигналы) возвращаются в одном Simulink.SimulationOutput объект. Время, состояния и выходные данные модели определяются с помощью панели Импорт/экспорт данных (Data Import/Export) диалогового окна Параметры конфигурации модели (Model Configuration Parameters). Можно регистрировать сигналы с помощью таких блоков, как блоки «В рабочую область» и «Область». Средство Signal & Scope Manager может непосредственно регистрировать сигналы.

Представлен в R2018b