В этом примере вы изучаете, как получить изменяющееся во времени поведение механизма с помощью n-D адаптивной интерполяционной таблицы. Вы выполняете следующие задачи с помощью программного обеспечения Simulink®:
Сконфигурируйте адаптивный блок интерполяционной таблицы, чтобы смоделировать вашу систему.
Симулируйте модель, чтобы обновить значения интерполяционной таблицы динамически.
Экспортируйте адаптированные значения интерполяционной таблицы в рабочую область MATLAB®.
Заблокируйте определенную ячейку в таблице во время адаптации.
Отключите процесс адаптации и используйте адаптивную интерполяционную таблицу в качестве статической интерполяционной таблицы.
В этом примере вы используете данные в vedata.mat
который содержит следующие переменные, измеренные от механизма:
X
— 10 входных точек останова при давлении впускного коллектора в области значений [10,100]
Y
— 36 входных точек останова для скорости вращения двигателя в области значений [0,7000]
Z
— 10x36 матрица табличных данных для объемного КПД механизма
Чтобы узнать больше о точках останова и табличных данных, смотрите Анатомию Интерполяционной таблицы.
Выходной объемный КПД механизма время, варьируясь, и функция двух входных параметров — давление впускного коллектора и скорость вращения двигателя. Данные в MAT-файле используются, чтобы сгенерировать изменяющийся во времени ввод и вывод (ввод-вывод) данные для механизма.
В этом фрагменте примера вы изучаете, как создать модель механизма с помощью блока Adaptive Lookup Table.
Откройте предварительно сконфигурированную модель Simulink путем введения имени модели в подсказке MATLAB:
enginetable1_data
Подсистема Экспериментальных данных в модели Simulink генерирует изменяющиеся во времени данные о вводе-выводе в процессе моделирования.
Эта команда также загружает переменные X
Y
и Z
в рабочее пространство MATLAB. Чтобы узнать больше об этих данных, займитесь Данными.
Добавьте блок Adaptive Lookup Table в модель Simulink.
Откройте браузер библиотеки Simulink.
В подсказке MATLAB введите slLibraryBrowser
.
Откройте библиотеку Simulink Design Optimization™.
В панели Libraries расширьте узел Simulink Design Optimization.
В дереве библиотеки Simulink Design Optimization нажмите Adaptive Lookup Tables.
Перетащите мышью Адаптивную Интерполяционную таблицу (без обозначения даты Подгонка Ступеньки) блок от библиотеки Adaptive Lookup Tables до окна модели Simulink.
Дважды кликните Адаптивную Интерполяционную таблицу (без обозначения даты Подгонка Ступеньки) блок, чтобы открыть Параметры Функционального блока: Адаптивная Интерполяционная таблица (без обозначения даты Подгонка Ступеньки) диалоговое окно.
В диалоговом окне Function Block Parameters:
Задайте следующие параметры блоков:
Table breakpoints (cell array) — Введите {[X; 110], [Y; 7200]}
указывать диапазон входных точек останова.
Table data (initial) — Введите rand(10,36)
задавать случайные числа как начальные табличные значения для объемного КПД.
Table numbering data — Введите reshape(1:360,10,36)
задавать схему нумерации ячеек таблицы.
Проверьте тот Sample mean (with forgetting)
выбран в Adaptation method выпадающий список.
Введите 0.98
в поле Adaptation gain (0 to 1), чтобы задать фактор упущения для Sample mean (with forgetting)
алгоритм адаптации.
Усиление адаптации близко к 1 указывает на высокую робастность значений интерполяционной таблицы, чтобы ввести шум. Чтобы узнать больше об усилении адаптации, смотрите Демонстрационное Среднее значение с Упущением в Выборе Adaptation Method.
Установите флажок Make adapted table an output.
Это действие добавляет новый порт под названием Tout
с блоком Adaptive Lookup Table. Вы используете этот порт, чтобы построить табличные значения, когда они адаптируются.
Установите флажок Add adaptation enable/disable/reset port.
Это действие добавляет новый порт под названием Enable
с блоком Adaptive Lookup Table. Вы используете этот порт, чтобы включить или отключить процесс адаптации.
Установите флажок Add cell lock enable/disable port.
Это действие добавляет новый порт под названием Lock
с блоком Adaptive Lookup Table. Вы используете этот порт, чтобы заблокировать ячейку во время процесса адаптации.
Проверьте тот Ignore
выбран в Action for out-of-range выпадающий список.
Этот выбор указывает, что программное обеспечение игнорирует любые изменяющиеся во времени входные параметры вне области значений входных точек останова во время адаптации.
Совет
Чтобы узнать больше, смотрите страницу с описанием блока Adaptive Lookup Table (nD Stair-Fit).
После того, как вы сконфигурируете параметры, диалоговое окно параметров блоков похоже на следующую фигуру.
Нажмите OK, чтобы закрыть диалоговое окно Function Block Parameters.
Модель Simulink теперь выглядит похожей на следующую фигуру.
Присвойте входные и выходные данные модели механизма путем соединения U
и Y
порты блока Experimental Data к u
и y
порты блока Adaptive Lookup Table, соответственно.
Спроектируйте логику с помощью блоков Simulink, чтобы включить или отключить процесс адаптации. Соедините логику с блоком Adaptive Lookup Table как показано в следующем рисунке.
Этот логические выходные параметры начальное значение 1, который включает процесс адаптации.
Спроектируйте логику, чтобы заблокировать ячейку во время адаптации. Соедините логику с блоком Adaptive Lookup Table как показано в следующем рисунке.
В Браузере Библиотеки Simulink выберите библиотеку Simulink> Sinks и перетащите блоки Отображения к окну модели. Соедините блоки как показано в следующем рисунке.
В процессе моделирования блоки Отображения показывают следующее:
Display
блок — Показывает значение адаптируемой текущей ячейки.
Display1
блок — Показывает количество адаптируемой текущей ячейки.
Запишите функцию MATLAB, чтобы построить значения интерполяционной таблицы, когда они адаптируются в процессе моделирования.
В качестве альтернативы введите enginetable
в подсказке MATLAB, чтобы открыть предварительно сконфигурированную модель Simulink. Efficiency Surface
подсистема содержит функцию, чтобы построить значения интерполяционной таблицы, как показано на следующем рисунке.
Соедините блок To Workspace, чтобы экспортировать адаптированные табличные значения:
В Браузере Библиотеки Simulink выберите библиотеку Simulink> Sinks и перетащите блок To Workspace к окну модели.
Чтобы узнать больше об этом блоке, смотрите страницу с описанием блока To Workspace в документации Simulink.
Дважды кликните блок To Workspace, чтобы открыть диалоговое окно Sink Block Parameters и ввести Tout
в поле Variable name.
Нажмите OK.
Соедините блок To Workspace с адаптивным выходным сигналом интерполяционной таблицы Tout
, как показано на следующем рисунке.
Вы теперь создали модель для обновления и просмотра адаптивных значений интерполяционной таблицы. Необходимо теперь симулировать модель, чтобы запустить адаптацию, как описано в Адаптации Значений Интерполяционной таблицы Используя Изменяющиеся во времени Данные о вводе-выводе.
В этом фрагменте примера вы изучаете, как обновить значения интерполяционной таблицы, чтобы адаптироваться к изменяющимся во времени значениям ввода и вывода.
Вы, должно быть, уже создали модель Simulink, аналогичное описанному Создание Модель Используя Адаптивные Блоки Интерполяционной таблицы.
Выполнять адаптацию:
В Редакторе Simulink задайте время симуляции как inf
.
Время симуляции бесконечности указывает, что процесс адаптации продолжается пока значения ввода и вывода изменения механизма.
В Редакторе Simulink нажмите Run под Simulation, чтобы запустить процесс адаптации.
Окно рисунка открывается, который показывает объемный КПД механизма в зависимости от давления впускного коллектора и скорости вращения двигателя:
Левый график показывает измеренный объемный КПД в зависимости от давления впускного коллектора и скорости вращения двигателя.
Правильный график показывает объемный КПД, когда это адаптируется с изменяющимся во времени давлением впускного коллектора и скоростью вращения двигателя.
В процессе моделирования значения интерполяционной таблицы, отображенные на правильном графике, адаптируются к изменениям данных о вводе-выводе. Левые и правые графики напоминают друг друга после нескольких секунд, как показано на следующем рисунке.
Совет
В процессе моделирования, Cell Number
и Adaptive Table Outputs
блоки в модели Simulink отображают номер ячейки и адаптированное значение интерполяционной таблицы в ячейке, соответственно.
Приостановите симуляцию путем нажатия на Pause под Simulation.
Это действие также экспортирует адаптированные табличные значения Tout
к рабочему пространству MATLAB.
Примечание
После того, как вы приостановите симуляцию, адаптированные табличные значения хранятся в блоке Adaptive Lookup Table.
Исследуйте это левое и правое соответствие графиков. Это подобие указывает, что табличные значения адаптировались к изменяющимся во времени данным о вводе-выводе.
Заблокируйте ячейку таблицы так, чтобы только одна ячейка адаптировалась. Можно найти эту функцию полезной, если фрагмент данных является очень ошибочным или в противном случае трудным для алгоритма обработать.
Нажмите Run под Simulation, чтобы перезапустить симуляцию.
Дважды кликните Lock
блок. Это действие переключает переключатель и питает выход ON
блокируйтесь к theLock
входной порт Adaptive Lookup Table(nD Stair-Fit)
блок.
Можно просмотреть количество заблокированной ячейки в Cell Number
блокируйтесь в модели Simulink.
После того, как табличные значения адаптируются к изменяющимся во времени данным о вводе-выводе, можно продолжить использовать блок Adaptive Lookup Table в качестве статической интерполяционной таблицы:
В окне модели Simulink дважды кликните Enable
блок. Это действие переключает переключатель и отключает адаптацию.
Нажмите Run под Simulation, чтобы перезапустить симуляцию, если это уже не запускается.
В процессе моделирования Адаптивная кладка блоков Интерполяционной таблицы как статическая интерполяционная таблица, и продолжает оценивать выходные значения, когда входные значения изменяются. Вы видите текущее значение интерполяционной таблицы в Adaptive Table Outputs
блокируйтесь в окне модели Simulink.
Примечание
После того, как вы отключаете адаптацию, блок Adaptive Lookup Table не обновляет сохраненные табличные значения, и фигура, которая отображает табличные значения, не обновляется.
Adaptive Lookup Table (nD Stair-Fit)