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

Когда вы используете 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';

Используйте структуру, чтобы создать специфичное для экземпляра значение аргумента для второго блока Model. Задайте точку останова и табличные данные для структуры.

StructForInst2.Table = [9 8; 7 7];
StructForInst2.BP1 = [3 4];
StructForInst2.BP2 = [5 6];

В ex_arg_LUT модель, для экземпляра модели Model, установите значение LUTArg к LUTForInst1. Для экземпляра модели Model1, установите значение LUTArg к StructForInst2.

instSpecParams = get_param('ex_arg_LUT/Model','InstanceParameters');
instSpecParams(1).Value = 'LUTForInst1';
instSpecParams1 = get_param('ex_arg_LUT/Model1','InstanceParameters');
instSpecParams1(1).Value = 'structForInst2';
set_param('ex_arg_LUT/Model','InstanceParameters',instSpecParams);
set_param('ex_arg_LUT/Model1','InstanceParameters',instSpecParams1);

Один экземпляр ex_arg_LUT_ref использует таблицу и данные о точке останова, хранимые в Simulink.LookupTable объект в базовом рабочем пространстве и другом экземпляре использует таблицу и данные о точке останова, хранимые в структуре.

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