fetchOutputs

Получите массив объектов Simulink.SimulationOutput от всех симуляций в Simulink.Simulation.Job

Синтаксис

out = fetchOutputs(simJob)

Описание

пример

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

Входные параметры

свернуть все

Объект 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