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