ожидать

Ожидайте объекта 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(in,'Pool','5')

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

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

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

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

Введенный в R2018b