В этом примере показов, как программно сконфигурировать несколько образцы ссылочной модели, чтобы использовать различные значения для одних и тех же параметров блоков.
Когда вы моделируете модель, объекты параметров в рабочем пространстве модели используют значения, которые вы задаете для 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);