Когда вы используете 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; LUTForInst2 = Simulink.LookupTable;
Задайте таблицу и установите точки останова данные для каждого объекта.
LUTForInst1.Table.Value = [8 7; 6 5]; LUTForInst1.Breakpoints(1).Value = [5 6]; LUTForInst1.Breakpoints(2).Value = [3 4]; LUTForInst2.Table.Value = [9 8; 7 7]; LUTForInst2.Breakpoints(1).Value = [3 4]; LUTForInst2.Breakpoints(2).Value = [5 6];
Задайте имя структуры, чтобы совпадать с именем, заданным объектом в рабочем пространстве модели, на которое ссылаются.
LUTForInst1.StructTypeInfo.Name = 'LUTArg_Type'; LUTForInst2.StructTypeInfo.Name = 'LUTArg_Type';
В ex_arg_LUT
модель, для экземпляра модели Model
, установите значение LUTArg
к LUTForInst1
. Для экземпляра модели Model1
, установите значение LUTArg
к LUTForInst2
.
set_param('ex_arg_LUT/Model','ParameterArgumentValues',... struct('LUTArg','LUTForInst1')) set_param('ex_arg_LUT/Model1','ParameterArgumentValues',... struct('LUTArg','LUTForInst2'))
Каждый экземпляр ex_arg_LUT_ref
использует таблицу и данные о точке останова, хранимые в одном из Simulink.LookupTable
объекты в базовом рабочем пространстве.