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'.

Пример: Будущее = parsim (в, 'RunInBackground', 'on')

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

Пример: [idx, simOut] = fetchNext (будущее, 45)

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

свернуть все

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

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

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

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