Сконфигурируйте интерполяционные таблицы для измерения AUTOSAR и калибровки

В Simulink® можно реализовать стандартную ось (STD_AXIS) и общая ось (COM_AXIS) интерполяционные таблицы для приложений AUTOSAR. Приложения AUTOSAR могут использовать интерполяционные таблицы или в или в оба из двух путей:

  • Реализуйте быстрые поисковые операции.

  • Поддержите настройку приложения с измерением и инструментами калибровки.

К интерполяционным таблицам модели для автомобильной настройки приложения используйте классы Simulink.LookupTable и Simulink.Breakpoint. Путем создания Simulink.LookupTable и Simulink.Breakpoint объекты в рабочем пространстве модели, можно сохранить и совместно использовать интерполяционную таблицу и установить точки останова данные и сконфигурировать данные для генерации кода AUTOSAR.

Сконфигурируйте интерполяционные таблицы STD_AXIS при помощи объектов интерполяционной таблицы

В этом примере показано, как создать интерполяционные таблицы STD_AXIS в Simulink, с помощью Simulink.LookupTable объекты, и конфигурируют интерполяционные таблицы для генерации кода AUTOSAR. Пример использует модель mAutosarLutObjs.slx от matlabroot/help/toolbox/autosar/examples. Чтобы скопировать файл модели в вашу рабочую папку, введите эту команду MATLAB®:

copyfile(fullfile(matlabroot,'help/toolbox/autosar/examples/mAutosarLutObjs.slx'),'.')
  1. Смоделируйте интерполяционную таблицу AUTOSAR в настройке STD_AXIS.

    1. В сопоставленной модели компонента программного обеспечения AUTOSAR добавьте блок AUTOSAR Blockset Curve или Map. Этот пример добавляет блок Curve.

    2. Откройте блок Curve и сконфигурируйте его, чтобы сгенерировать стандартную программу от заменяющей библиотеки кода (CRL) AUTOSAR 4.0. Когда вы изменяете настройки блока, диалоговое окно блока обновляет имя целенаправленной стандартной программы AUTOSAR.

      В диалоговом окне блока сделайте эти выборы:

      • Чтобы сгенерировать стандартную программу с плавающей точкой, выберите IFL (floating-point).

      • Во вкладке Table Specification, чтобы задать табличные данные с помощью объекта интерполяционной таблицы, устанавливают Data Specification на Lookup table object.

    3. В рабочем пространстве модели создайте Simulink.LookupTable возразите и сконфигурируйте его, чтобы хранить данные об интерполяционной таблице.

    4. В диалоговом окне блока Curve, вкладке Table Specification, вводят Simulink.LookupTable имя объекта в поле Name.

    5. В диалоговом окне блока, вкладке Algorithm, устанавливает Integer Rounding Method на Zero. Оставьте набор Interpolation Method Linear point-slope и набор Index Search Method к Linear search.

    Табличные данные появляются в сгенерированном коде С AUTOSAR как поля одной структуры. Чтобы управлять характеристиками типа структуры, такими как его имя, используют свойства объекта.

  2. Соедините блок Curve или Map.

    • Добавьте рабочие точки AUTOSAR в интерполяционные таблицы. Соедините импорт корневого уровня в блок Curve или Map. В качестве альтернативы сконфигурируйте входной сигнал с блоком Curve или Map со статической глобальной памятью.

    • Соедините выходной порт с блоком Curve или Map.

  3. В перспективе кода AUTOSAR используйте редактор Отображений Кода, чтобы сопоставить Simulink.LookupTable объекты к внутренним калибровочным параметрам AUTOSAR. Во вкладке Parameters выберите каждый Simulink.LookupTable возразите, что вы создали. Сопоставьте каждый объект с типом параметра AUTOSAR ConstantMemory, SharedParameter, или Auto. Чтобы принять программное обеспечение, сопоставляющее значения по умолчанию, задайте Auto.

    В этом примере, объекте L_4_single интерполяционной таблицы STD_AXIS сопоставлен с ConstantMemory AUTOSAR.

  4. Для каждого параметра, если вы выбираете тип параметра кроме Auto, используйте Property Inspector, чтобы просмотреть или изменить другой код и калибровочные атрибуты. Для получения дополнительной информации о свойствах параметра смотрите Параметры Рабочего пространства модели Карты к Параметрам Компонента AUTOSAR.

  5. Сконфигурируйте модель, чтобы сгенерировать код С на основе библиотеки AUTOSAR 4.0. Откройте диалоговое окно Configuration Parameters и выберите Code Generation> Interface. Установите параметр Code replacement library на AUTOSAR 4.0. Для получения дополнительной информации смотрите Генерацию кода с Заменяющей Библиотекой Кода AUTOSAR.

  6. Создайте модель. Сгенерированный код C содержит ожидаемый Ifl и Ifx вызовы функции поиска и Rte вызовы функции доступа к данным. Например, можно искать отчет генерации кода HTML Ifl или Ifx стандартный префикс.

    Сгенерированные файлы ARXML содержат типы данных категории CURVE (1D табличные данные) и MAP (2D табличные данные). Типы данных имеют калибровочные свойства данных, которые вы сконфигурировали.

Сконфигурируйте интерполяционные таблицы COM_AXIS при помощи интерполяционной таблицы и установите точки останова объекты

В этом примере показано, как создать интерполяционные таблицы COM_AXIS в Simulink, с помощью Simulink.LookupTable и Simulink.Breakpoint объекты, и конфигурируют интерполяционные таблицы для генерации кода AUTOSAR. Пример использует модель mAutosarLutObjs.slx от matlabroot/help/toolbox/autosar/examples. Чтобы скопировать файл модели в вашу рабочую папку, введите эту команду MATLAB:

copyfile(fullfile(matlabroot,'help/toolbox/autosar/examples/mAutosarLutObjs.slx'),'.')

В этом примере, чтобы смоделировать интерполяционную таблицу AUTOSAR в настройке COM_AXIS, вы соединяете AUTOSAR Blockset блоки Prelookup с блоки Map Using Prelookup или Curve Using Prelookup.

  1. Сконфигурируйте блоки Prelookup.

    1. В сопоставленной модели компонента программного обеспечения AUTOSAR добавьте один или несколько AUTOSAR Blockset блоки Prelookup. Этот пример добавляет один блок Prelookup.

    2. Откройте каждый блок и сконфигурируйте его, чтобы сгенерировать стандартную программу от заменяющей библиотеки кода (CRL) AUTOSAR 4.0. Когда вы изменяете настройки блока, блок обновляет имя целенаправленной стандартной программы AUTOSAR.

      В диалоговом окне блока сделайте эти выборы:

      • Чтобы сгенерировать стандартную программу с плавающей точкой, выберите IFL (floating-point).

      • Во вкладке Table Specification, чтобы задать данные о точке останова с помощью объекта точки останова, устанавливают Breakpoints specification на Breakpoint object.

    3. Для каждого вектора точки останова, в рабочем пространстве модели, создают и конфигурируют Simulink.Breakpoint объект.

    4. В диалоговом окне блока Prelookup, вкладке Table Specification, вводят Simulink.Breakpoint имя объекта в поле Name. Можно уменьшать потребление памяти путем совместного использования данных о точке останова между интерполяционными таблицами.

    5. В диалоговом окне блока, вкладке Algorithm, устанавливает Integer Rounding Method на Zero. Оставьте набор Index Search Method Linear search.

  2. Сконфигурируйте блоки Map Using Prelookup и Curve Using Prelookup.

    1. В модели добавьте один или несколько AUTOSAR Blockset блоки Map Using Prelookup или Curve Using Prelookup. Каждый блок сразу следует за блоком Prelookup, с которым он соединяется. Этот пример добавляет один блок Curve Using Prelookup.

    2. Откройте каждый блок Curve Using Prelookup или Map Using Prelookup и сконфигурируйте его, чтобы сгенерировать стандартную программу от заменяющей библиотеки кода (CRL) AUTOSAR 4.0. Когда вы изменяете настройки блока, диалоговое окно блока обновляет имя целенаправленной стандартной программы AUTOSAR.

      В диалоговом окне блока сделайте эти выборы:

      • Чтобы сгенерировать стандартную программу с плавающей точкой, выберите IFL (floating-point).

      • Во вкладке Table Specification, чтобы задать табличные данные с помощью объекта интерполяционной таблицы, устанавливают Data Specification на Lookup table object.

    3. Для каждого набора табличных данных, в рабочем пространстве модели, создают и конфигурируют Simulink.LookupTable объект.

    4. В каждом Curve Using Prelookup или диалоговом окне блока Map Using Prelookup, вкладке Table Specification, вводят Simulink.LookupTable имя объекта в поле Name.

    5. В диалоговом окне блока, вкладке Algorithm, устанавливает Integer Rounding Method на Zero. Оставьте набор Interpolation Method Linear point-slope.

    Каждый набор табличных данных появляется в сгенерированном коде C как переменная отдельного массива. Если табличный размер является настраиваемым, каждый вектор точки останова появляется как структура. Структура содержит поле, чтобы хранить данные о точке останова и, опционально, поле, чтобы сохранить длину вектора. Второе поле позволяет вам настроить эффективный размер таблицы. Если табличный размер не является настраиваемым, каждый вектор точки останова появляется как массив.

  3. Соедините Prelookup, Curve Using Prelookup и блоки Map Using Prelookup.

    • Добавьте рабочие точки AUTOSAR в интерполяционные таблицы. Соедините импорт корневого уровня в блоки Prelookup. В качестве альтернативы сконфигурируйте входные сигналы с блоками Prelookup со статической глобальной памятью.

    • Соедините выходные порты с блоками Map Using Prelookup и Curve Using Prelookup.

    • Соедините каждый блок Prelookup с его совпадающим блоком Curve Using Prelookup или Map Using Prelookup.

  4. В перспективе кода AUTOSAR используйте редактор Отображений Кода, чтобы сопоставить Simulink.LookupTable и Simulink.Breakpoint объекты к внутренним калибровочным параметрам AUTOSAR. Во вкладке Parameters выберите каждый Simulink.LookupTable и Simulink.Breakpoint возразите, что вы создали. Сопоставьте каждый объект с типом параметра AUTOSAR ConstantMemory, SharedParameter, или Auto. Чтобы принять программное обеспечение, сопоставляющее значения по умолчанию, задайте Auto.

    В этом примере COM_AXIS устанавливают точки останова объект Bp_4_single и объект Lcom_4_single интерполяционной таблицы сопоставлены с SharedParameter AUTOSARs. Все экземпляры компонента программного обеспечения AUTOSAR совместно используют параметры COM_AXIS.

  5. Для каждого параметра, если вы выбираете тип параметра кроме Auto, используйте Property Inspector, чтобы просмотреть или изменить другой код и калибровочные атрибуты. Для получения дополнительной информации о свойствах параметра смотрите Параметры Рабочего пространства модели Карты к Параметрам Компонента AUTOSAR.

  6. Сконфигурируйте модель, чтобы сгенерировать код С на основе библиотеки AUTOSAR 4.0. Откройте диалоговое окно Configuration Parameters и выберите Code Generation> Interface. Установите параметр Code replacement library на AUTOSAR 4.0. Для получения дополнительной информации смотрите Генерацию кода с Заменяющей Библиотекой Кода AUTOSAR.

  7. Создайте модель. Сгенерированный код C содержит ожидаемый Ifl и Ifx вызовы функции поиска и Rte вызовы функции доступа к данным. Например, можно искать отчет генерации кода HTML Ifl или Ifx стандартный префикс.

    Сгенерированные файлы ARXML содержат типы данных категории CURVE (1D табличные данные), MAP (2D табличные данные), и COM_AXIS (данные об оси). Типы данных имеют калибровочные свойства данных, которые вы сконфигурировали.

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

Если модель AUTOSAR содержит многомерные интерполяционные таблицы, можно сконфигурировать размещение данных массива интерполяционной таблицы для генерации кода как упорядоченное по столбцам или упорядоченное по строкам. В диалоговом окне Simulink Configuration Parameters, панели Interface, устанавливает размещение Массивов (Simulink Coder) на Column-major (значение по умолчанию) или Row-major. Выбор размещения массивов влияет на генерацию кода, включая код С и экспортируемые описания ARXML.

Если вы выбираете упорядоченное по строкам размещение, перейдите к Math and Data Types, разделяют на области и выбирают алгоритмы Использования параметра конфигурации, оптимизированные для упорядоченного по строкам размещения массивов. Выбор алгоритма влияет на симуляцию и генерацию кода.

Экспорт многомерных интерполяционных таблиц генерирует описания интерполяционной таблицы ARXML с SwRecordLayout набор категории к любому COLUMN_DIR или ROW_DIR. Например, эта распечатка программ показывает SwRecordLayout описания экспортировали для модели AUTOSAR, которая содержит 2-мерную упорядоченную по строкам интерполяционную таблицу. Интерполяционная таблица реализована при помощи блока AUTOSAR Map.

<AR-PACKAGE>
    <SHORT-NAME>SwRecordLayouts</SHORT-NAME>
    <ELEMENTS>
        <SW-RECORD-LAYOUT UUID="...">
            <SHORT-NAME>Map_s16</SHORT-NAME>
            <SW-RECORD-LAYOUT-GROUP>
                <SHORT-LABEL>Val</SHORT-LABEL>
                <CATEGORY>ROW_DIR</CATEGORY>
                <SW-RECORD-LAYOUT-GROUP-AXIS>1</SW-RECORD-LAYOUT-GROUP-AXIS>
                <SW-RECORD-LAYOUT-GROUP-INDEX>X</SW-RECORD-LAYOUT-GROUP-INDEX>
                <SW-RECORD-LAYOUT-GROUP-FROM>1</SW-RECORD-LAYOUT-GROUP-FROM>
                <SW-RECORD-LAYOUT-GROUP-TO>-1</SW-RECORD-LAYOUT-GROUP-TO>
                <SW-RECORD-LAYOUT-GROUP>
                    <SW-RECORD-LAYOUT-GROUP-AXIS>2</SW-RECORD-LAYOUT-GROUP-AXIS>
                    <SW-RECORD-LAYOUT-GROUP-INDEX>Y</SW-RECORD-LAYOUT-GROUP-INDEX>
                    <SW-RECORD-LAYOUT-GROUP-FROM>1</SW-RECORD-LAYOUT-GROUP-FROM>
                    <SW-RECORD-LAYOUT-GROUP-TO>-1</SW-RECORD-LAYOUT-GROUP-TO>
                    <SW-RECORD-LAYOUT-V>
                        <SHORT-LABEL>Val</SHORT-LABEL>
                        <BASE-TYPE-REF DEST="SW-BASE-TYPE">
                          /DataTypes/SwBaseTypes/sint32
                        </BASE-TYPE-REF>
                        <SW-RECORD-LAYOUT-V-AXIS>0</SW-RECORD-LAYOUT-V-AXIS>
                        <SW-RECORD-LAYOUT-V-PROP>VALUE</SW-RECORD-LAYOUT-V-PROP>
                        <SW-RECORD-LAYOUT-V-INDEX>X Y</SW-RECORD-LAYOUT-V-INDEX>
                    </SW-RECORD-LAYOUT-V>
                </SW-RECORD-LAYOUT-GROUP>
            </SW-RECORD-LAYOUT-GROUP>
        </SW-RECORD-LAYOUT>
        <SW-RECORD-LAYOUT UUID="...">
            <SHORT-NAME>Distr_s8_M</SHORT-NAME>
            <SW-RECORD-LAYOUT-GROUP>
                <SHORT-LABEL>Y</SHORT-LABEL>
                <CATEGORY>INDEX_INCR</CATEGORY>
                <SW-RECORD-LAYOUT-GROUP-AXIS>1</SW-RECORD-LAYOUT-GROUP-AXIS>
                <SW-RECORD-LAYOUT-GROUP-FROM>1</SW-RECORD-LAYOUT-GROUP-FROM>
                <SW-RECORD-LAYOUT-GROUP-TO>-1</SW-RECORD-LAYOUT-GROUP-TO>
                <SW-RECORD-LAYOUT-V>
                    <SHORT-LABEL>VALUE</SHORT-LABEL>
                    <BASE-TYPE-REF DEST="SW-BASE-TYPE">
                      /DataTypes/SwBaseTypes/sint32
                    </BASE-TYPE-REF>
                    <SW-RECORD-LAYOUT-V-AXIS>1</SW-RECORD-LAYOUT-V-AXIS>
                    <SW-RECORD-LAYOUT-V-PROP>VALUE</SW-RECORD-LAYOUT-V-PROP>
                </SW-RECORD-LAYOUT-V>
            </SW-RECORD-LAYOUT-GROUP>
        </SW-RECORD-LAYOUT>
    </ELEMENTS>
</AR-PACKAGE>

Импорт файлов ARXML с многомерными описаниями интерполяционной таблицы создает интерполяционные таблицы Simulink с набором Array layout к Column-major или Row-major. Если файлы ARXML содержат только упорядоченные по строкам многомерные описания интерполяционной таблицы, средство импорта ARXML создает интерполяционные таблицы Simulink с набором Array layout к Row-major и Use algorithms optimized for row-major array layout включен.

Смотрите также

| | | | | | | |

Связанные примеры

Больше о