wait

Ожидайте 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)

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

свернуть все

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

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

Значение State свойство Simulink.Simulation.Job возразите, чтобы ожидать.

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

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

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

Введенный в R2018b