В этом примере показано, как программно настроить несколько экземпляров ссылочной модели для использования различных значений одного параметра блока.
При моделировании модели объекты параметров в рабочем пространстве модели используют значения, указанные для Simulink.Parameter объекты, Simulink.LookupTable объекты или переменные MATLAB ®. Параметры блока также используют эти значения.
Чтобы настроить параметр усиления блока усиления и параметр числителя блока дискретного фильтра в качестве аргументов модели, выполните следующие действия.
Открытая модель ex_model_arg_ref. Эта модель представляет многократно используемый алгоритм.
open_system('ex_model_arg_ref')

Для блока «Усиление» задайте значение параметра «Усиление» равным 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));
Для блока «Дискретный фильтр» установите значение параметра «Числитель» в 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 содержит два блока модели, которые ссылаются на 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);