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

Simulink® Coder™ поддерживает размещение главного массива строки для генерации кода. Можно интегрировать существующие приложения, которые используют размещение главного массива строки со сгенерированным кодом в размещении главного массива строки. Когда вы переключаете существующую модель с интерполяционной таблицей (LUT) блоки от размещения главного массива столбца до размещения главного массива строки, рекомендуется преобразовать блоки LUT от главного столбцом алгоритма до главного строкой алгоритма. Код, сгенерированный при помощи главного строкой алгоритма, выполняет с лучшей скоростью и использованием памяти при работе с табличными данными с размещением главного массива строки. Код, сгенерированный при помощи главного столбцом алгоритма, выполняет лучше всего с размещением главного массива столбца.

Этот пример показывает рабочий процесс преобразования модели с блоками LUT от главного столбцом размещения до главного строкой размещения, чтобы достигнуть лучшей производительности на размещении главного массива строки.

В этом примере, вас:

  • Идентифицируйте размещение массивов и выберите оптимизированный алгоритм.

  • Сохраните семантику посредством табличной перестановки.

  • Сгенерируйте код при помощи главного строкой алгоритма и размещения массивов.

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

1. Откройте модель rtwdemo_row_lutcol2row_workflow в качестве примера.

open_system('rtwdemo_row_lutcol2row_workflow');

По умолчанию Simulink конфигурирует модель, чтобы использовать главные столбцом алгоритмы и размещение главного массива столбца. Эти параметры являются параметрами конфигурации в диалоговом окне Model Configuration Parameters.

  • Математика и Типы данных> алгоритмы Использования, оптимизированные для размещения главного массива строки — Этот параметр, влияют на симуляцию и генерацию кода.

  • Генерация кода> Интерфейс> размещение Массивов — Этот параметр влияет только на генерацию кода.

2. На образцовой панели инструментов нажмите, Run, чтобы моделировать модель и наблюдать выходной сигнал вошел в систему переменная yout рабочей области.

3. Измените свою текущую папку в MATLAB® к перезаписываемой папке. Щелкните создают модель, чтобы сгенерировать код С.

Выберите Optimized Algorithms for Row-Major Layout

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

Используйте алгоритм, который оптимизирован для заданного размещения массивов, чтобы достигнуть лучшей производительности. Например, используйте главные строкой алгоритмы, когда размещение Массивов будет установлено как Row-major во время генерации кода.

1. Чтобы включить главные строкой алгоритмы, откройте диалоговое окно Model Configuration Parameters. На Математике и панели Типов данных, выберите алгоритмы Использования параметра конфигурации, оптимизированные для размещения главного массива строки. Также в Окне Команды MATLAB, введите:

set_param('rtwdemo_row_lutcol2row_workflow','UseRowMajorAlgorithm','on');

2. Нажмите Run, чтобы моделировать модель. Simulink сообщает об ошибках, потому что он сталкивается с противоречивой точкой останова и табличными данными между блоками предварительного поиска и интерполяции. Причинами этой ошибки являются два семантических изменения, которые происходят, когда вы переключаетесь от главных столбцом алгоритмов до главных строкой алгоритмов, то есть, когда вы:

  • Выберите плоскость из 3-D таблицы в блоке интерполяции.

  • Выберите плоскость от 4-D таблицы до прямого блока интерполяционной таблицы.

Сохраните семантику при помощи табличной перестановки

1. Для подтабличного выбора перед интерполяцией или прямым поиском, который выводит векторную или 2D матрицу, образцовое изменение семантики, когда вы переключаетесь от главного столбцом алгоритма до главного строкой алгоритма путем выбора алгоритмов Использования параметра конфигурации, оптимизированных для размещения главного массива строки. Чтобы сохранить семантику и зафиксировать предыдущие ошибки, переставьте табличные данные при помощи этих команд:

T4d_str = get_param('rtwdemo_row_lutcol2row_workflow/Direct LUT','Table');
set_param('rtwdemo_row_lutcol2row_workflow/Direct LUT','Table',...
['permute(',T4d_str,',[3,4,1,2])']);
T3d_str = get_param('rtwdemo_row_lutcol2row_workflow/Interp2','Table');
set_param('rtwdemo_row_lutcol2row_workflow/Interp2','Table',...
['permute(',T3d_str,',[3,1,2])']);

2. Перед вами данные о таблице импорта из файла необходимо переставить табличные данные в файле. Эта перестановка сохраняет таблицу настраиваемой в рабочем процессе генерации кода и симуляции.

Генерация кода при помощи главного строкой размещения алгоритма и массива

После перестановки табличных данных Simulink конфигурирует модель rtwdemo_row_lutcol2row_workflow для главной строкой симуляции. Модель эквивалентна предварительно сконфигурированной модели rtwdemo_row_lutcol2row_workflow_rowrow, которая переставила табличные данные и использует главный строкой алгоритм.

1. Откройте модель rtwdemo_row_lutcol2row_workflow_rowrow в качестве примера.

open_system('rtwdemo_row_lutcol2row_workflow_rowrow');

2. Чтобы настроить эти модели для главной строкой генерации кода, откройте диалоговое окно Model Configuration Parameters. В дополнение к включению алгоритмов Использования, оптимизированных для параметра конфигурации размещения главного массива строки, на Генерации кода> Интерфейсная панель, устанавливает Размещение параметра конфигурации Массивов на опцию Row-Major. Параметр Размещения Массивов включает модель для главной строкой генерации кода. Также в Окне Команды MATLAB, введите:

% For model 'rtwdemo_row_lutcol2row_workflow_rowrow'
set_param('rtwdemo_row_lutcol2row_workflow_rowrow', 'ArrayLayout','Row-major');
% For model 'rtwdemo_row_lutcol2row_workflow'
set_param('rtwdemo_row_lutcol2row_workflow', 'ArrayLayout','Row-major');

3. В диалоговых окнах блока исследуйте переставленную 3-D таблицу.

4. Измените свою текущую папку в MATLAB к перезаписываемой папке. На образцовой панели инструментов нажатие кнопки создает модель, чтобы сгенерировать код С. В сгенерированном коде наблюдайте табличные данные с размещением главного массива строки

В сгенерированном коде функция memcpy заменяет циклы for. Используя memcpy уменьшает объем памяти для того, чтобы хранить данные. Эта оптимизация улучшает скорость выполнения.

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

close_system('rtwdemo_row_lutcol2row_workflow',0);
close_system('rtwdemo_row_lutcol2row_workflow_rowrow',0);

Похожие темы