Параметризация ссылочной Модели программно

В этом примере показов, как программно сконфигурировать несколько образцы ссылочной модели, чтобы использовать различные значения для одних и тех же параметров блоков.

Сконфигурируйте модель-ссылку, чтобы использовать аргументы модели

Когда вы моделируете модель, объекты параметров в рабочем пространстве модели используют значения, которые вы задаете для Simulink.Parameter объекты, Simulink.LookupTable объекты или переменные MATLAB ®. Параметры блоков также используют эти значения.

Чтобы сконфигурировать параметр Gain блока Gain и параметр Numerator блока Discrete Filter в качестве аргументов модели, выполните следующие шаги.

Откройте ex_model_arg_ref модели. Эта модель представляет переиспользуемый алгоритм.

open_system('ex_model_arg_ref')

Для блока Gain установите значение параметра Gain в Simulink.Parameter объект в рабочем пространстве модели с числовым значением. В данном примере назовите Simulink.Parameter gainArg объекта и присвойте значение 3.17.

set_param('ex_model_arg_ref/Gain','Gain','gainArg')
modelWorkspace = get_param('ex_model_arg_ref','ModelWorkspace');
assignin(modelWorkspace,'gainArg',Simulink.Parameter(3.17));

Для блока Дискретный Фильтр установите значение параметра Numerator в Simulink.Parameter объект в рабочем пространстве модели с числовым значением. В данном примере назовите Simulink.Parameter coeffArg объекта и присвойте значение 1.05.

set_param('ex_model_arg_ref/Discrete Filter','Numerator','coeffArg')
assignin(modelWorkspace,'coeffArg',Simulink.Parameter(1.05));

Задайте gainArg и coeffArg как аргументы модели.

set_param('ex_model_arg_ref','ParameterArgumentNames','coeffArg,gainArg')

Установите значения аргументов модели в родительской модели

Когда вы моделируете родительскую модель, каждый образец переиспользуемой модели-ссылки использует значения аргументов, которые вы задаете в родительской модели. В этом примере в верхнем образце ex_model_arg_ref, объект параметра gainArg использует значение 2.98.

Модель ex_model_arg содержит два блока Model, которые ссылаются на ex_model_arg_ref. Чтобы задать различные значения параметров для двух образцов модели, выполните следующие шаги.

Откройте ex_model_arg модели. Эта модель представляет системную модель, которая использует несколько образцов переиспользуемого алгоритма.

open_system('ex_model_arg')

Для обоих образцов модели ex_model_arg, установите значения для аргументов модели. Если вы решили повторно продвигать эти аргументы, установите Argument поле к true. По умолчанию в Argument поле false.

instSpecParams = get_param('ex_model_arg/Model','InstanceParameters');
instSpecParams1 = get_param('ex_model_arg/Model1','InstanceParameters');

instSpecParams(1).Value = '.98';
instSpecParams(2).Value = '2.98';
instSpecParams1(1).Value = '1.11';
instSpecParams1(2).Value = '3.34';
instSpecParams(1).Argument = true;
instSpecParams(2).Argument = true;
instSpecParams1(1).Argument = true;
instSpecParams1(2).Argument = true;

set_param('ex_model_arg/Model','InstanceParameters',instSpecParams);
set_param('ex_model_arg/Model1','InstanceParameters',instSpecParams1);

Похожие темы