ожидать

Ожидайте объекта Simulink.Simulation.Job изменить состояние

Синтаксис

wait(simJob)
wait(simJob,'stateOfJob')
wait(simJob,'stateOfJob',timeout)

Описание

пример

Блочное выполнение 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)

Входные параметры

свернуть все

Объект Simulink.Simulation.Job. Чтобы создать simJob, запустите batchsim.

Пример: simJob = batchsim (в, 'Пул', '5')

Значение свойства State объекта Simulink.Simulation.Job ожидать.

Пример: ожидайте (simJob, 'поставленный в очередь')

Задайте тайм-аут для wait , чтобы блокировать выполнение в секундах.

Пример: ожидайте (simJob, 5)

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

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