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