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 (в, 'Пул', 4)

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

свернуть все

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

Все моделирование выходные параметры (регистрируемое время, состояния и сигналы) возвращено в единственном объекте Simulink.SimulationOutput. Вы задаете образцовое время, состояния, и выводите, которые регистрируются с помощью панели Импорта/Экспорта Данных диалогового окна Model Configuration Parameters. Можно регистрировать блоки использования сигналов, такие как блоки To Workspace и Scope. Инструмент Signal & Scope Manager может непосредственно регистрировать сигналы.

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

Была ли эта тема полезной?