При использовании Simulink.LookupTable объекты для хранения и настройки данных таблицы подстановки для генерации кода ASAP2 или AUTOSAR (например, STD_AXIS или CURVE) можно настроить как аргументы модели. Затем можно указать уникальные данные таблицы и данные точек останова для каждого экземпляра компонента.
В этом примере показано, как настроить несколько экземпляров ссылочной модели на использование различных значений для одного параметра блока с помощью таблиц подстановки и командной строки.
Открытая модель ex_arg_LUT_ref, который представляет многократно используемый алгоритм.
open_system('ex_arg_LUT_ref')

Создать Simulink.LookupTable в базовой рабочей области. В этом примере назовите объект LUTArg.
temp = Simulink.LookupTable;
Укажите значения для таблицы и данных точки останова. При моделировании или создании кода непосредственно из ex_arg_LUT_ref, модель использует эти значения.
temp.Table.Value = [3 4; 1 2]; temp.Breakpoints(1).Value = [1 2]; temp.Breakpoints(2).Value = [3 4];
Задайте для имени структуры значение LUTArg_Type.
temp.StructTypeInfo.Name = 'LUTArg_Type';
Скопируйте структуру в рабочее пространство модели.
mdlwks = get_param('ex_arg_LUT_ref','ModelWorkspace'); assignin(mdlwks,'LUTArg',copy(temp))
Определить LUTArg в качестве аргумента модели.
set_param('ex_arg_LUT_ref','ParameterArgumentNames','LUTArg')
Для блока n-D Lookup Table установите значение 'Data specification' кому 'Lookup table object' и задайте для имени значение LUTArg.
set_param('ex_arg_LUT_ref/n-D Lookup Table',... 'DataSpecification','Lookup table object','LookupTableObject','LUTArg')
Открытая модель ex_arg_LUT, который использует многократно используемый алгоритм дважды.
open_system('ex_arg_LUT')

Создать Simulink.LookupTable в базовой рабочей области.
LUTForInst1 = Simulink.LookupTable;
Укажите данные таблицы и точки останова для объекта.
LUTForInst1.Table.Value = [8 7; 6 5]; LUTForInst1.Breakpoints(1).Value = [5 6]; LUTForInst1.Breakpoints(2).Value = [3 4];
Укажите имя структуры, соответствующее имени, указанному объектом в рабочей области ссылочной модели.
LUTForInst1.StructTypeInfo.Name = 'LUTArg_Type';
Используйте структуру для создания значения аргумента экземпляра для второго блока модели. Укажите точку останова и данные таблицы для структуры.
StructForInst2.Table = [9 8; 7 7]; StructForInst2.BP1 = [3 4]; StructForInst2.BP2 = [5 6];
В ex_arg_LUT модель, для экземпляра модели Model, установите значение LUTArg кому LUTForInst1. Для экземпляра модели Model1, установите значение LUTArg кому StructForInst2.
set_param('ex_arg_LUT/Model','ParameterArgumentValues',... struct('LUTArg','LUTForInst1')) set_param('ex_arg_LUT/Model1','ParameterArgumentValues',... struct('LUTArg','StructForInst2'))
Один экземпляр ex_arg_LUT_ref использует данные таблицы и точки останова, хранящиеся в Simulink.LookupTable объект в базовой рабочей области, а другой экземпляр использует данные таблицы и точки останова, хранящиеся в структуре.