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

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

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

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

Похожие темы