fetchNext

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

Описание

[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' состояние встречается с ошибкой во время выполнения. The Read свойство этого элемента становится true разрешение любого последующего вызова на fetchNext чтобы продолжить.

Примеры

свернуть все

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

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

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

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