Параметризуйте модель, на которую ссылаются, программно

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

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

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

Чтобы сконфигурировать параметр Усиления блока Gain и параметр Числителя блока Discrete Filter в качестве образцовых аргументов, выполните эти шаги.

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

open_system('ex_model_arg_ref')

Для блока 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));

Для блока Discrete Filter, установленного значение параметра Числителя к объекту 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);

Похожие темы