simulink.compiler.modifyParameters

Настройте параметры блоков во времени выполнения через переменные рабочей области

Описание

simulink.compiler.modifyParameters(modelName) параметры блоков мелодий во времени выполнения симуляции через переменные рабочей области. Можно использовать simulink.compiler.modifyParameters изменить переменные только во время рабочей симуляции.

Можно использовать simulink.compiler.modifyParameters настроить любые переменные, которые возвращены simulink.compiler.getTunableVariables функция. simulink.compiler.modifyParameters поддерживается только для быстрого акселератора и рабочих процессов развертывания.

Примеры

свернуть все

Этот пример показывает вам, как использовать simulink.compiler.modifyParameters функционируйте, чтобы настроить параметры блоков.

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

Модель в качестве примера example_modify_parameters referneces другая модель, mRefUsingGlobalWksVars. блок усиления топ-модели, триггируемая подсистема и усиление блокируют в модели, на которую ссылаются, все глобальные переменные рабочей области использования. Подсистема маскированная, существующая в модели, использует глобальную переменную и переменную рабочего пространства модели.

open_system("example_modify_parameters.slx");

Запишите функцию для настройки параметра периода выполнения

Следующая функция устанавливает режим симуляции на быстрый и создает Simulink.SimulationInput объект. В этой функции можно использовать simulink.compiler.setPostStepFcn API, чтобы установить коллбэк, который использует simulink.compiler.modifyParameters настроить параметры блоков

function runtimeParameterTuning()
simMode = 'rapid';
model = 'example_modify_parameters';
ref = 'exRefModelWorkspaceVars';
load_system(model);
closeModels = onCleanup(@() cellfun(@(x)close_system(x,0),{model,ref}));
set_param(model, "SimulationMode", simMode);

% Get simulation input object
simInput = Simulink.SimulationInput(model);
% Set post-step callback function that tunes variables
simInput = simulink.compiler.setPostStepFcn(simInput,@(time)postStepParameterTuner(time,model));

out = sim(simInput);
end

Запишите функцию для коллбэка постшага

Функциональный postStepParameterTuner использование simulink.compiler.modifyParameters изменить переменные.

function postStepParameterTuner(time,model)
% Callback which tunes parameters based on time
if time==5.0
    % Modify global variables used by top model gain block
    newGlobalVars = [Simulink.Simulation.Variable('gNum',1.1),...
                     Simulink.Simulation.Variable('gDen',0.5)];
    simulink.compiler.modifyParameters(model,newGlobalVars);
end
if time==2.5
    % Modify variables in reference model workspace
    newRefWksVars = [Simulink.Simulation.Variable('gNum',1.2),...
                     Simulink.Simulation.Variable('gDen',0.1)];
    simulink.compiler.modifyParameters(model,newRefWksVars);
end
if time==4.5
    % Modify variables used by mask dialog parameters
    newMaskVars = [Simulink.Simulation.Variable('mGain',2.0),...
                   Simulink.Simulation.Variable('Bias',-1,'Workspace',model)];
    simulink.compiler.modifyParameters(model,newMaskVars);
end
end

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

свернуть все

Имя модели, для которой вы хотите найти настраиваемые параметры в виде строки

Введенный в R2021b
Для просмотра документации необходимо авторизоваться на сайте