fetchNext

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

Описание

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

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

Функции

Классы

Введенный в R2017b