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). Можно регистрировать сигналы с помощью блоков, таких как To Workspace и Scope блоки. Инструмент Signal & Scope Manager может непосредственно регистрировать сигналы.

Введенный в R2018b