Simulink. данные. dictionary.cleanupWorkerCache

Восстановите значения по умолчанию после параллельного моделирования со словарем данных

Синтаксис

Simulink.data.dictionary.cleanupWorkerCache

Описание

Simulink.data.dictionary.cleanupWorkerCache восстанавливает настройки по умолчанию после того, как вы закончили параллельное моделирование модели, которая соединяется со словарем данных. Используйте эту функцию в блоке spmd, после того, как вы заканчиваете параллельное моделирование с помощью блоков parfor, чтобы восстановить настройки по умолчанию, которые были изменены функцией Simulink.data.dictionary.setupWorkerCache.

Во время параллельного моделирования модели, которая соединяется со словарем данных, можно позволить каждому рабочему получать доступ и изменять данные в словаре независимо от других рабочих. Функциональный Simulink.data.dictionary.setupWorkerCache предоставляет каждому рабочему уникальный кэш словаря, чтобы предоставить независимый доступ к данным, и функциональный Simulink.data.dictionary.cleanupWorkerCache восстанавливает параметры кэширования к их значениям по умолчанию.

У вас должны быть Параллельные вычисления лицензия Toolbox™, чтобы выполнить параллельное моделирование с помощью блока parfor.

Примеры

Разверните различное управление Используя параллельное моделирование

Чтобы использовать параллельное моделирование, чтобы развернуть различное управление (объект Simulink.Parameter, значение которого влияет на различное условие объекта Simulink.Variant), что вы храните в словаре данных, используйте этот код в качестве шаблона. Поменяйте имена и значения модели, словаря данных и различного управления, чтобы совпадать с вашим приложением.

Чтобы развернуть блочные значения параметров или значения переменных рабочей области, которые вы используете, чтобы установить блочные параметры, используйте объекты Simulink.SimulationInput вместо программируемого интерфейса к словарю данных. Смотрите Оптимизируют, Оценка и Блочные Значения параметров Развертки.

У вас должна быть лицензия Parallel Computing Toolbox, чтобы выполнить параллельное моделирование.

% For convenience, define names of model and data dictionary
model = 'mySweepMdl';
dd = 'mySweepDD.sldd';

% Define the sweeping values for the variant control
CtrlValues = [1 2 3 4];

% Grant each worker in the parallel pool an independent data dictionary 
% so they can use the data without interference
spmd 
    Simulink.data.dictionary.setupWorkerCache
end

% Determine the number of times to simulate
numberOfSims = length(CtrlValues);

% Prepare a nondistributed array to contain simulation output
simOut = cell(1,numberOfSims);

parfor index = 1:numberOfSims
    % Create objects to interact with dictionary data
    % You must create these objects for every iteration of the parfor-loop
    dictObj = Simulink.data.dictionary.open(dd);
    sectObj = getSection(dictObj,'Design Data');
    entryObj = getEntry(sectObj,'MODE'); 
    % Suppose MODE is a Simulink.Parameter object stored in the data dictionary
    
    % Modify the value of MODE
    temp = getValue(entryObj);
    temp.Value = CtrlValues(index);
    setValue(entryObj,temp);

    % Simulate and store simulation output in the nondistributed array
    simOut{index} = sim(model);
    
    % Each worker must discard all changes to the data dictionary and
    % close the dictionary when finished with an iteration of the parfor-loop
    discardChanges(dictObj);
    close(dictObj);
end

% Restore default settings that were changed by the function
% Simulink.data.dictionary.setupWorkerCache
% Prior to calling cleanupWorkerCache, close the model

spmd
    bdclose(model)
    Simulink.data.dictionary.cleanupWorkerCache
end

Примечание

Если словари данных открыты, вы не можете использовать команду Simulink.data.dictionary.cleanupWorkerCache. Чтобы идентифицировать открытые словари данных, используйте Simulink.data.dictionary.getOpenDictionaryPaths.

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

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