fetchNext

Выберите затем доступный непрочитанный вывод от объектного массива Simulink.Simulation.Future

Синтаксис

[idx,simOut] = fetchNext(Future)
[idx,simOut] = fetchNext(Future, Timeout)

Описание

[idx,simOut] = fetchNext(Future) ожидает непрочитанного элемента массива Simulink.Simulation.Future, Future, чтобы достигнуть состояния 'finished'. Это возвращает индекс симуляции, которая закончилась, и соответствующий объект Simulink.SimulationOutput.

[idx,simOut] = fetchNext(Future, Timeout) ожидает максимума секунд Timeout для результата стать доступным. Если тайм-аут истекает, прежде чем любой результат будет доступен, simOut возвращен как пустой массив.

Об ошибке сообщают, при отсутствии элементов в Future со свойством Read как ложь. Можно проверять на, любые непрочитанные фьючерсы с помощью anyUnread = ~all([F.Read]).

fetchNext отображает ошибку, если какой-либо элемент Future с состоянием 'finished' сталкивается с ошибкой во время выполнения. Свойство Read того элемента становится true, позволяющим любой последующий вызов fetchNext продолжить.

Примеры

свернуть все

Этот пример показывает, как создать объектный массив Simulink.Simulation.Future и использовать его, чтобы получить выходные параметры и видеть состояние симуляций.

Этот пример запускает несколько симуляций модели vdp, отличаясь значение усиления Му.

Откройте модель и задайте вектор значений Му.

open_system('vdp');
Mu_Values = [0.5:0.25:5];
MuVal_length = length(Mu_Values);

Используя Mu_Values, инициализируйте массив объектов Simulink.SimulationInput. Чтобы предварительно выделить массив, индекс цикла сделан начать с самого большого значения.

for i = MuVal_length:-1:1
    in(i) = Simulink.SimulationInput('vdp');
    in(i) = in(i).setBlockParameter('vdp/Mu',...
        'Gain',num2str(Mu_Values(i)));
end

Моделируйте модель с помощью parsim. Установите его на 'RunInBackground' мочь использовать командную строку, в то время как симуляции запускаются.

Future = parsim(in,'RunInBackground','on');

Используйте метод fetchNext на Future.

for i = 1:MuVal_length
    [completedIdx,simOut] = fetchNext(Future)
end

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

свернуть все

Массив объектов Simulation.Simulink.Future. Чтобы создать Future, запустите parsim с набором опции 'RunInBackground' к 'on'.

Пример: Future = parsim(in,'RunInBackground','on')

Задайте Timeout для fetchNext, чтобы получить результаты массива Simulation.Simulink.Future, Future.

Пример: [idx, simOut] = fetchNext(Future, 45)

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

свернуть все

Когда метод fetchNext используется на массиве объектов Simulink.Simulation.Future, он возвращает индекс симуляции, вывод которой получается.

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

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

Смотрите также

Функции

Классы

Введенный в R2017b