В этом примере показано, как фиксировать изменяющееся во времени поведение механизма с помощью n-D таблицы адаптивного поиска. С помощью программного обеспечения Simulink ® выполняются следующие задачи:
Настройте блок таблицы адаптивного поиска для моделирования системы.
Моделирование модели для динамического обновления значений таблицы подстановки.
Экспортируйте адаптированные значения таблицы поиска в рабочую область MATLAB ®.
Заблокируйте определенную ячейку в таблице во время адаптации.
Отключите процесс адаптации и используйте таблицу адаптивного поиска в качестве статической таблицы поиска.
В этом примере используются данные в vedata.mat который содержит следующие переменные, измеренные из двигателя:
X - 10 входных точек останова давления во впускном коллекторе в диапазоне [10 100]
Y - 36 входных точек останова для частоты вращения двигателя в диапазоне [0,7000]
Z - матрица данных таблицы объемного КПД двигателя 10x36
Дополнительные сведения о точках останова и данных таблицы см. в разделе Анатомия таблицы подстановки.
Выходной объемный КПД двигателя изменяется во времени, и функция двух входов - давления во впускном коллекторе и частоты вращения двигателя. Данные в MAT-файле используются для генерации изменяющихся во времени входных и выходных (I/O) данных для механизма.
В этой части учебного пособия рассматривается построение модели движка с использованием блока «Таблица адаптивного поиска».
Откройте предварительно настроенную модель Simulink, введя имя модели в подсказке MATLAB:
enginetable1_data
Подсистема экспериментальных данных в модели Simulink генерирует изменяющиеся во времени данные ввода-вывода во время моделирования.

Эта команда также загружает переменные X, Y и Z в рабочую область MATLAB. Дополнительные сведения об этих данных см. в разделе Сведения о данных.
Добавьте блок «Таблица адаптивного поиска» в модель Simulink.
Откройте обозреватель библиотеки Simulink.
В ответ на запрос MATLAB введите slLibraryBrowser.
Откройте библиотеку Optimization™ Simulink Design.
На панели «Библиотеки» разверните узел «Оптимизация проекта Simulink».
В дереве библиотеки Simulink Design Optimization выберите Adaptive Lookup Tables.

Перетащите блок «Таблица адаптивного поиска» (nD Stair-Fit) из библиотеки «Таблицы адаптивного поиска» в окно модели Simulink.

Дважды щелкните блок «Таблица адаптивного поиска» (nD Stair-Fit), чтобы открыть диалоговое окно «Параметры функционального блока: Таблица адаптивного поиска» (nD Stair-Fit).

В диалоговом окне Параметры функционального блока:
Задайте следующие параметры блока:
Табличные точки останова (массив ячеек) - Enter {[X; 110], [Y; 7200]} для указания диапазона входных точек останова.
Данные таблицы (исходные) - Enter rand(10,36) для задания случайных чисел в качестве исходных значений таблицы для объемной эффективности.
Данные нумерации таблиц - Enter reshape(1:360,10,36) для указания схемы нумерации ячеек таблицы.
Убедитесь, что Sample mean (with forgetting) выбран в раскрывающемся списке Метод адаптации.
Войти 0.98 в поле Adaptation gain (0-1) для указания коэффициента забывания для Sample mean (with forgetting) алгоритм адаптации.
Коэффициент усиления адаптации, близкий к 1, указывает на высокую устойчивость значений таблицы поиска к входному шуму. Дополнительные сведения об усилении адаптации см. в разделе Выборка среднего с забыванием при выборе метода адаптации.
Установите флажок Сделать адаптированную таблицу выводом (Make adapted table an output).
Это действие добавляет новый порт с именем Tout в блок «Таблица адаптивного поиска». Этот порт используется для печати значений таблицы по мере их адаптации.
Установите флажок Add Adaptation enable/disable/reset port (Добавить порт включения/отключения/сброса адаптации).
Это действие добавляет новый порт с именем Enable в блок «Таблица адаптивного поиска». Этот порт используется для включения или отключения процесса адаптации.
Установите флажок Add cell lock enable/disable port (Добавить порт блокировки ячеек).
Это действие добавляет новый порт с именем Lock в блок «Таблица адаптивного поиска». Этот порт используется для блокировки ячейки во время процесса адаптации.
Убедитесь, что Ignore выбран в выпадающем списке Действие за пределами диапазона.
Этот выбор указывает на то, что программа игнорирует любые изменяющиеся во времени входные сигналы вне диапазона входных точек останова во время адаптации.
Совет
Дополнительные сведения см. в разделе Страница ссылок на блоки таблицы адаптивного поиска (nD Stir-Fit).
После настройки параметров диалоговое окно параметров блока выглядит следующим образом.

Нажмите кнопку ОК, чтобы закрыть диалоговое окно Параметры функционального блока (Function Block Parameters).
Модель Simulink теперь выглядит аналогично следующему рисунку.

Назначьте входные и выходные данные модели двигателя, подключив U и Y порты блока экспериментальных данных u и y порты блока «Таблица адаптивного поиска» соответственно.

Разработка логики с использованием блоков Simulink для включения или отключения процесса адаптации. Подключите логику к блоку «Таблица адаптивного поиска», как показано на следующем рисунке.

Эта логика выводит начальное значение 1, которое обеспечивает процесс адаптации.
Создайте логику для блокировки ячейки во время адаптации. Подключите логику к блоку «Таблица адаптивного поиска», как показано на следующем рисунке.

В браузере библиотеки Simulink выберите «Simulink» > «Sinks library» и перетащите блоки отображения в окно модели. Подключите блоки, как показано на следующем рисунке.

Во время моделирования блоки отображения показывают следующее:
Display block - показывает значение текущей настраиваемой ячейки.
Display1 block - показывает номер текущей настраиваемой ячейки.
Запишите функцию MATLAB для печати значений таблицы поиска по мере их адаптации во время моделирования.
В качестве альтернативы введите enginetable по запросу MATLAB откройте предварительно настроенную модель Simulink. Efficiency Surface подсистема содержит функцию для печати значений таблицы поиска, как показано на следующем рисунке.

Подключите блок «К рабочей области» для экспорта адаптированных значений таблицы:
В браузере библиотеки Simulink выберите «Simulink» > «Sinks library» и перетащите блок «To Workspace» в окно модели.
Дополнительные сведения об этом блоке см. на странице ссылки на блок в рабочую область в документации Simulink.
Дважды щелкните блок «В рабочее пространство», чтобы открыть диалоговое окно «Параметры блока раковины», и введите Tout в поле Имя переменной.

Нажмите кнопку ОК.
Подключение блока «К рабочей области» к выходному сигналу таблицы адаптивного поиска Tout, как показано на следующем рисунке.

Создана модель для обновления и просмотра значений таблицы адаптивного поиска. Теперь необходимо смоделировать модель для запуска адаптации, как описано в разделе Адаптация значений таблицы подстановки с использованием изменяющихся во времени данных ввода-вывода.
В этой части учебного пособия рассматривается обновление значений таблицы поиска для адаптации к изменяющимся во времени входным и выходным значениям.
Необходимо создать модель Simulink, как описано в разделе Построение модели с использованием блоков таблицы адаптивного поиска.
Для выполнения адаптации:
В редакторе Simulink укажите время моделирования как inf.
Время моделирования бесконечности указывает, что процесс адаптации продолжается до тех пор, пока изменяются входные и выходные значения двигателя.
В редакторе Simulink нажмите кнопку Выполнить в разделе Моделирование, чтобы запустить процесс адаптации.
Откроется окно, показывающее объемную эффективность двигателя как функцию давления во впускном коллекторе и частоты вращения двигателя:
На левом графике показана измеренная объемная эффективность в зависимости от давления во впускном коллекторе и частоты вращения двигателя.
Правый график показывает объемную эффективность по мере ее адаптации к изменяющемуся во времени давлению во впускном коллекторе и частоте вращения двигателя.

Во время моделирования значения таблицы поиска, отображаемые на правом графике, адаптируются к изменениям данных ввода-вывода. Левый и правый графики напоминают друг друга через несколько секунд, как показано на следующем рисунке.

Совет
Во время моделирования Cell Number и Adaptive Table Outputs блоки в модели Simulink отображают номер ячейки и адаптированное значение таблицы поиска в ячейке соответственно.
Приостановите моделирование, щелкнув Пауза (Pause) в разделе Моделирование (Simulation).
Это действие также экспортирует адаптированные значения таблицы. Tout в рабочую область MATLAB.
Примечание
После приостановки моделирования адаптированные значения таблицы сохраняются в блоке «Таблица адаптивного поиска».
Проверьте, совпадают ли левый и правый графики. Это сходство указывает на то, что значения таблицы адаптированы к изменяющимся во времени данным ввода-вывода.
Заблокируйте ячейку таблицы так, чтобы адаптировалась только одна ячейка. Эта функция может оказаться полезной, если часть данных является крайне неустойчивой или трудно обрабатываемой алгоритмом.
Щелкните Выполнить (Run) в разделе Моделирование (Simulation), чтобы перезапустить моделирование.
Дважды щелкните значок Lock блок. Это действие переключает коммутатор и подает выходной сигнал ON блок кLock входной порт Adaptive Lookup Table(nD Stair-Fit) блок.
Можно просмотреть номер заблокированной ячейки в Cell Number блок в модели Simulink.
После адаптации значений таблицы к изменяющимся во времени данным ввода-вывода можно продолжить использование блока «Таблица адаптивного поиска» в качестве статической таблицы поиска:
В окне модели Simulink дважды щелкните значок Enable блок. Это действие переключает коммутатор и отключает адаптацию.
Щелкните Выполнить (Run) в разделе Моделирование (Simulation), чтобы перезапустить моделирование, если оно еще не запущено.
Во время моделирования блок «Таблица адаптивного поиска» работает как статическая таблица поиска и продолжает оценивать выходные значения при изменении входных значений. Текущее значение таблицы подстановки можно увидеть в Adaptive Table Outputs блок в окне модели Simulink.
Примечание
После отключения адаптации блок «Таблица адаптивного поиска» не обновляет сохраненные значения таблицы, а рисунок, на котором отображаются значения таблицы, не обновляется.
Таблица адаптивной подстановки (nD лестничная посадка)