Сконфигурируйте специфичные для экземпляра данные для интерполяционных таблиц программно

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

Для просмотра документации необходимо авторизоваться на сайте