exponenta event banner

подождите

Ждать Simulink.Simulation.Job объект для изменения состояния

Описание

пример

wait(simJob) блокирует выполнение в сеансе клиента до тех пор, пока задание не будет идентифицировано объектом simJob достигает 'finished«состояние или сбой». Это происходит, когда все моделирования завершают выполнение на рабочих.

wait(simJob,'stateOfJob') блокирует выполнение в клиентском сеансе до тех пор, пока указанный объект задания не изменит состояние на значение 'state'. Допустимые состояния ожидания: 'queued', 'running', и'finished'. Если объект в настоящее время или уже находится в указанном состоянии, wait не выполняется, и выполнение возвращается немедленно. Например, при выполнении wait(simJob,'queued') для задания, уже находящегося в 'finishedСостояние ', вызов возвращается немедленно.

wait(simJob,'stateOfJob',timeout) блокирует выполнение до тех пор, пока задание не достигнет указанногоstate', или истекло время ожидания в секундах, в зависимости от того, что произойдет первым.

Примеры

свернуть все

В этом примере показано использование sldemo_househeat , чтобы показать, как дождаться завершения пакетного моделирования.

1. Откройте модель.

open_system('sldemo_househeat');

2. Определите набор значений для различных температур.

setPointValues = 65:2:85;
spv_Length = length(setPointValues);

3. Использование setPointValues, инициализировать массив Simulink.SimulationInput объекты.

in(1:spv_Length) = Simulink.SimulationInput('sldemo_househeat');
for i = 1:1:spv_Length 
    in(i) = in(i).setBlockParameter('sldemo_househeat/Set Point',...
        'Value',num2str(setPointValues(i)));
end

4. Укажите размер пула числа работников для использования. В дополнение к количеству работников, используемых для параллельного моделирования, требуется головной работник. В этом случае предположим, что три работника доступны для выполнения пакетного задания для параллельного моделирования. Объект задания возвращает полезные метаданные, как показано на рисунке. Можно использовать задание ID для последующего доступа к объекту задания с любого компьютера. NumWorkers отображает количество работников, выполняющих моделирование - количество работников, указанное в 'Pool' аргумент плюс дополнительный главный работник.

simJob = batchsim(in,'Pool',3)
                  ID: 1
                Type: pool
          NumWorkers: 4
            Username: #####
               State: running
      SubmitDateTime: ##-###-#### ##:##:##
       StartDateTime: 
    Running Duration: 0 days 0h 0m 0s

5. Теперь дождитесь завершения задания перед извлечением выходных данных.

wait(simJob)

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

свернуть все

A Simulink.Simulation.Job объект. Создание simJob, выполнить batchsim.

Пример: simJob = batchsim(in,'Pool','5')

Значение State имущество Simulink.Simulation.Job объект, которого нужно дождаться.

Пример: wait(simJob,'queued')

Укажите тайм-аут для wait для блокирования выполнения в секундах.

Пример: wait(simJob, 5)

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