exponenta event banner

Настройка таблиц поиска для измерений и калибровки 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» или «Карта». В этом примере добавляется блок «Кривая».

    2. Откройте блок Кривая (Curve) и настройте его для создания подпрограммы из библиотеки замены кода (CRL) AUTOSAR 4.0. При изменении параметров блока в диалоговом окне блока обновляется имя целевой подпрограммы AUTOSAR.

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

      • Для создания подпрограммы с плавающей запятой выберите IFL (плавающая точка).

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

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

    4. В диалоговом окне «Блок кривой» на вкладке «Спецификация таблицы» введите Simulink.LookupTable имя объекта в поле Имя.

    5. В диалоговом окне блока на вкладке «Алгоритм» задайте для параметра «Метод округления целых чисел» значение Zero. Оставить значение метода интерполяции равным Linear point-slope и метод индексного поиска имеет значение Linear search.

    Данные таблицы отображаются в сгенерированном коде AUTOSAR C как поля одной структуры. Для управления характеристиками типа структуры, например его именем, используйте свойства объекта.

  2. Соедините блок «Кривая» или «Карта».

    • Добавьте операционные точки AUTOSAR в таблицы подстановки. Подключите вход корневого уровня к блоку «Кривая» или «Карта». Также можно сконфигурировать входной сигнал для блока «Кривая» или «Карта» со статической глобальной памятью.

    • Подключите выезд к блоку «Кривая» или «Карта».

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

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

  4. Для каждого параметра, если выбран тип параметра, отличный от Autoиспользуйте инспектор свойств для просмотра или изменения других атрибутов кода и калибровки. Дополнительные сведения о свойствах параметров см. в разделе Сопоставление параметров рабочего пространства модели с параметрами компонента AUTOSAR.

  5. Настройте модель для создания кода C на основе библиотеки AUTOSAR 4.0. Откройте диалоговое окно «Параметры конфигурации» и выберите «Создание кода» > «Интерфейс». Задайте для параметра библиотеки замены кода значение AUTOSAR 4.0. Дополнительные сведения см. в разделе Создание кода с помощью библиотеки замены кода AUTOSAR.

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

    Произведенные файлы ARXML содержат типы данных категории CURVE (1-D данные о столе) и КАРТА (2-е данные о столе). Типы данных имеют настроенные свойства калибровки данных.

Настройте справочные таблицы 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 конфигурации блоки Prelookup набора блоков AUTOSAR объединяются с блоками Prelookup кривой с использованием Prelookup или Map Using Prelookup.

  1. Настройка блоков Prelookup.

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

    2. Откройте каждый блок и настройте его для создания подпрограммы из библиотеки замены кода AUTOSAR 4.0 (CRL). При изменении настроек блока блок обновляет имя целевой подпрограммы AUTOSAR.

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

      • Для создания подпрограммы с плавающей запятой выберите IFL (плавающая точка).

      • На вкладке Спецификация таблицы (Table Specification) для указания данных точек останова с помощью объекта точки останова задайте значение Спецификация точек останова (Breakpoints specification). Breakpoint object.

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

    4. В диалоговом окне «Блок предварительного вывода» на вкладке «Спецификация таблицы» введите Simulink.Breakpoint имя объекта в поле Имя. Можно уменьшить потребление памяти путем совместного использования данных точек останова между таблицами подстановки.

    5. В диалоговом окне блока на вкладке «Алгоритм» задайте для параметра «Метод округления целых чисел» значение Zero. Оставить для метода поиска индекса значение Linear search.

  2. Настройка кривой с использованием блоков Prelookup и Map Using Prelookup.

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

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

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

      • Для создания подпрограммы с плавающей запятой выберите IFL (плавающая точка).

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

    3. Для каждого набора данных таблицы в рабочей области модели создайте и настройте Simulink.LookupTable объект.

    4. В каждом диалоговом окне «Кривая, использующая предварительное замыкание» или «Карта, использующая предварительное замыкание» на вкладке «Спецификация таблицы» введите Simulink.LookupTable имя объекта в поле Имя.

    5. В диалоговом окне блока на вкладке «Алгоритм» задайте для параметра «Метод округления целых чисел» значение Zero. Оставить значение метода интерполяции равным Linear point-slope.

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

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

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

    • Соедините выходы с кривой с помощью блоков Prelookup и Map Using Prelookup.

    • Подключите каждый блок Prelookup к соответствующей кривой, используя блок Prelookup или Map Using Prelookup.

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

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

  5. Для каждого параметра, если выбран тип параметра, отличный от Autoиспользуйте инспектор свойств для просмотра или изменения других атрибутов кода и калибровки. Дополнительные сведения о свойствах параметров см. в разделе Сопоставление параметров рабочего пространства модели с параметрами компонента AUTOSAR.

  6. Настройте модель для создания кода C на основе библиотеки AUTOSAR 4.0. Откройте диалоговое окно «Параметры конфигурации» и выберите «Создание кода» > «Интерфейс». Задайте для параметра библиотеки замены кода значение AUTOSAR 4.0. Дополнительные сведения см. в разделе Создание кода с помощью библиотеки замены кода AUTOSAR.

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

    Произведенные файлы ARXML содержат типы данных категории CURVE (1-D данные о столе), КАРТА (2-е данные о столе), и COM_AXIS (данные об оси). Типы данных имеют настроенные свойства калибровки данных.

Настройка макета массива для многомерных таблиц подстановки

Если модель AUTOSAR содержит многомерные таблицы поиска, можно настроить компоновку данных массива таблиц поиска для генерации кода как основной столбец или основной строка. В диалоговом окне «Параметры конфигурации Simulink» на панели «Интерфейс» установите для параметра «Макет массива» (кодер Simulink) значение Column-major (значение по умолчанию) или Row-major. Выбор макета массива влияет на создание кода, включая код C и экспортированные описания ARXML.

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

При экспорте многомерных таблиц подстановки создаются описания таблиц подстановки ARXML с помощью SwRecordLayout категория установлена на COLUMN_DIR или ROW_DIR. Например, в этом списке программ отображается SwRecordLayout описания, экспортированные для модели AUTOSAR, которая содержит двумерную основную таблицу поиска строк. Таблица подстановки реализуется с помощью блока 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 с макетом массива, равным Column-major или Row-major. Если ARXML-файлы содержат только описания больших строк многомерных таблиц подстановки, импортер ARXML создает таблицы подстановки Simulink с макетом Array, равным Row-major и Использование алгоритмов, оптимизированных для макета основного массива строк.

См. также

| | | | | | | |

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

Подробнее