exponenta event banner

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' при выполнении состояния возникает ошибка. 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). Можно регистрировать сигналы с помощью таких блоков, как блоки «В рабочую область» и «Область». Средство Signal & Scope Manager может непосредственно регистрировать сигналы.

См. также

Функции

Классы

Представлен в R2017b