Интерполяция с подтабличным алгоритмом выбора для размещения главного массива строки

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

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

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

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

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

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

1. Открытая модель rtwdemo_col_interpselsubtable и rtwdemo_row_interpselsubtable в качестве примера.

open_system('rtwdemo_col_interpselsubtable');
open_system('rtwdemo_row_interpselsubtable');

2. По умолчанию Simulink конфигурирует модель с главным столбцом алгоритмом и размещением главного массива столбца. Модель rtwdemo_col_interpselsubtable сконфигурирована, чтобы использовать главный столбцом алгоритм. Запустите модель и наблюдайте выходной сигнал, сохраненный в переменной yout рабочей области.

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

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

4. Моделируйте модель и наблюдайте ошибку.

Главные столбцом и главные строкой алгоритмы отличаются с точки зрения подтабличного порядка выбора и интерполяции. Подтабличный выбор выполняется в исходной таблице. Никакая дополнительная память не выделяется для подтаблицы. Выбранная подтаблица непрерывна в памяти. Порядок интерполяции благоприятен для кэша для главных столбцом алгоритмов с размещениями главного массива столбца и главных строкой алгоритмов с размещениями главного массива строки. Этот рисунок сравнивает главные строкой и главные столбцом интерполяции с подтабличным выбором.

Из-за изменения в семантике, главные столбцом и главные строкой интерполяции выполняются на различных подтаблицах или наборах данных. Эта интерполяция приводит к различным числовым выходным параметрам или ошибке.

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

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

1. Блоку rtwdemo_col_interpselsubtable/Interp дали 3-D табличные данные, когда T3d = изменяются ([1:24], 3,2,4) и один порт выбора с входом 2 (индекс на основе 0). Выбранная подтаблица является T3d (:: 3) (индекс на основе 1 в MATLAB) для главного столбцом алгоритма. Чтобы сохранить семантику для главного строкой алгоритма на той же модели, то есть, выбирают ту же подтаблицу с тем же индексом и входными параметрами порта выбора, переставляют таблицу, как T3d_p = переставляют (T3d, [3,1,2]). Выбранная подтаблица является T3d_p (3: :) (индекс на основе 1) для главного строкой алгоритма.

T3d_str = get_param('rtwdemo_col_interpselsubtable/Interp','Table');
set_param('rtwdemo_col_interpselsubtable/Interp','Table', ...
    ['permute(',T3d_str,',[3,1,2])']);

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

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

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

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

set_param('rtwdemo_col_interpselsubtable', 'ArrayLayout','Row-major');

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

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

close_system('rtwdemo_col_interpselsubtable',0);

Похожие темы