Образцовый Engine Используя n-D Адаптивную Интерполяционную таблицу

Цели

В этом примере вы изучаете, как получить изменяющееся во времени поведение механизма с помощью n-D адаптивной интерполяционной таблицы. Вы выполняете следующие задачи с помощью программного обеспечения Simulink®:

  • Сконфигурируйте адаптивный блок интерполяционной таблицы, чтобы смоделировать вашу систему.

  • Моделируйте модель, чтобы обновить значения интерполяционной таблицы динамически.

  • Экспортируйте адаптированные значения интерполяционной таблицы в рабочую область MATLAB®.

  • Заблокируйте определенную ячейку в таблице во время адаптации.

  • Отключите процесс адаптации и используйте адаптивную интерполяционную таблицу в качестве статической интерполяционной таблицы.

О данных

В этом примере вы используете данные в vedata.mat, который содержит следующие переменные, измеренные от механизма:

  • Вход X — 10 устанавливает точки останова для давления впускного коллектора в области значений [10,100]

  • Вход Y — 36 устанавливает точки останова для скорости вращения двигателя в области значений [0,7000]

  • Z 10x36 матрица табличных данных для механизма объемная эффективность

    Чтобы узнать больше о точках останова и табличных данных, смотрите Анатомию Интерполяционной таблицы (Simulink).

Вывод объемная эффективность механизма время, отличаясь, и функция двух входных параметров — давление впускного коллектора и скорость вращения двигателя. Данные в MAT-файле используются, чтобы сгенерировать изменяющийся во времени ввод и вывод (ввод-вывод) данные для механизма.

Создание модели Используя адаптивные блоки интерполяционной таблицы

В этом фрагменте примера вы изучаете, как создать модель механизма с помощью блока Adaptive Lookup Table.

  1. Откройте предварительно сконфигурированную модель Simulink путем введения имени модели в посдказке MATLAB:

    enginetable1_data

    Подсистема Экспериментальных данных в модели Simulink генерирует изменяющиеся во времени данные о вводе-выводе во время симуляции.

    Эта команда также загружает переменные X, Y и Z в рабочее пространство MATLAB. Чтобы узнать больше об этих данных, займитесь Данными.

  2. Добавьте блок Adaptive Lookup Table в модель Simulink.

    1. Откройте браузер библиотеки Simulink.

      В посдказке MATLAB введите slLibraryBrowser.

    2. Откройте библиотеку Simulink Design Optimization™.

      В панели Libraries расширьте узел Simulink Design Optimization.

    3. В дереве библиотеки Simulink Design Optimization нажмите Adaptive Lookup Tables.

    4. Перетащите мышью Адаптивную Интерполяционную таблицу (без обозначения даты Подгонка Ступеньки) блок от библиотеки Adaptive Lookup Tables до окна модели Simulink.

  3. Дважды кликните Адаптивную Интерполяционную таблицу (без обозначения даты Подгонка Ступеньки) блок, чтобы открыть Параметры Функционального блока: Адаптивная Интерполяционная таблица (без обозначения даты Подгонка Ступеньки) диалоговое окно.

  4. В диалоговом окне Function Block Parameters:

    1. Задайте следующие параметры блоков:

      • Table breakpoints (cell array) — Введите {[X; 110], [Y; 7200]}, чтобы задать область значений входных точек останова.

      • Table data (initial) — Введите rand(10,36), чтобы задать случайные числа как начальные табличные значения для объемной эффективности.

      • Table numbering data — Введите reshape(1:360,10,36), чтобы задать схему нумерации ячеек таблицы.

    2. Проверьте, что Sample mean (with forgetting) выбран в Adaptation method выпадающий список.

    3. Введите 0.98 в поле Adaptation gain (0 to 1), чтобы задать фактор упущения для алгоритма адаптации Sample mean (with forgetting).

      Усиление адаптации близко к 1 указывает на высокую робастность значений интерполяционной таблицы, чтобы ввести шум. Чтобы узнать больше об усилении адаптации, смотрите Демонстрационное Среднее значение с Упущением в Выборе Adaptation Method.

    4. Установите флажок Make adapted table an output.

      Это действие добавляет новый порт под названием Tout к блоку Adaptive Lookup Table. Вы используете этот порт, чтобы построить табличные значения, когда они адаптируются.

    5. Установите флажок Add adaptation enable/disable/reset port.

      Это действие добавляет новый порт под названием Enable к блоку Adaptive Lookup Table. Вы используете этот порт, чтобы включить или отключить процесс адаптации.

    6. Установите флажок Add cell lock enable/disable port.

      Это действие добавляет новый порт под названием Lock к блоку Adaptive Lookup Table. Вы используете этот порт, чтобы заблокировать ячейку во время процесса адаптации.

    7. Проверьте, что Ignore выбран в Action for out-of-range выпадающий список.

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

      Совет

      Чтобы узнать больше, смотрите Адаптивную Интерполяционную таблицу (без обозначения даты Подгонка Ступеньки) страница с описанием блока.

      После того, как вы сконфигурируете параметры, диалоговое окно параметров блоков похоже на следующую фигуру.

    8. Нажмите OK, чтобы закрыть диалоговое окно Function Block Parameters.

      Модель Simulink теперь выглядит подобной следующей фигуре.

  5. Присвойте входные и выходные данные модели механизма путем соединения портов U и Y блока Experimental Data к портам u и y блока Adaptive Lookup Table, соответственно.

    Совет

    Чтобы изучить, как соединить блоки в окне модели Simulink, смотрите Ярлыки Блока и Сигнальной линии и Действия (Simulink).

  6. Разработайте логику с помощью блоков Simulink, чтобы включить или отключить процесс адаптации. Соедините логику с блоком Adaptive Lookup Table, как показано в следующей фигуре.

    Этот логические выходные параметры начальное значение 1, который включает процесс адаптации.

  7. Разработайте логику, чтобы заблокировать ячейку во время адаптации. Соедините логику с блоком Adaptive Lookup Table, как показано в следующей фигуре.

  8. В Браузере Библиотеки Simulink выберите библиотеку Simulink> Sinks и перетащите блоки Отображения к окну модели. Соедините блоки, как показано в следующей фигуре.

    Во время симуляции блоки Отображения показывают следующее:

    • Блок Display — Показывает значение адаптируемой текущей ячейки.

    • Блок Display1 — Показывает количество адаптируемой текущей ячейки.

  9. Запишите функцию MATLAB, чтобы построить значения интерполяционной таблицы, когда они адаптируются во время симуляции.

    Также введите enginetable в посдказке MATLAB, чтобы открыть предварительно сконфигурированную модель Simulink. Подсистема Efficiency Surface содержит функцию, чтобы построить значения интерполяционной таблицы, как показано в следующей фигуре.

  10. Соедините блок To Workspace, чтобы экспортировать адаптированные табличные значения:

    1. В Браузере Библиотеки Simulink выберите библиотеку Simulink> Sinks и перетащите блок To Workspace к окну модели.

      Чтобы узнать больше об этом блоке, смотрите страницу с описанием блока To Workspace в документации Simulink.

    2. Дважды кликните блок To Workspace, чтобы открыть диалоговое окно Sink Block Parameters и ввести Tout в поле Variable name.

    3. Нажмите OK.

    4. Соедините блок To Workspace с адаптивным выходным сигналом интерполяционной таблицы Tout, как показано в следующей фигуре.

Вы теперь создали модель для обновления и просмотра адаптивных значений интерполяционной таблицы. Необходимо теперь моделировать модель, чтобы запустить адаптацию, как описано в Адаптации Значений Интерполяционной таблицы Используя Изменяющиеся во времени Данные о вводе-выводе.

Адаптация значений интерполяционной таблицы Используя изменяющиеся во времени данные о вводе-выводе

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

Вы, должно быть, уже создали модель Simulink, как описано Создание Модели Используя Адаптивные Блоки Интерполяционной таблицы.

Выполнять адаптацию:

  1. В Редакторе Simulink задайте время симуляции как inf.

    Время симуляции бесконечности указывает, что процесс адаптации продолжается пока значения ввода и вывода изменения механизма.

  2. В Редакторе Simulink выберите Simulation> Run, чтобы запустить процесс адаптации.

    Окно рисунка открывается, который показывает объемную эффективность механизма как функция давления впускного коллектора и скорости вращения двигателя:

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

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

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

    Совет

    Во время симуляции Cell Number и блоки Adaptive Table Outputs в модели Simulink отображают номер ячейки и адаптированное значение интерполяционной таблицы в ячейке, соответственно.

  3. Приостановите симуляцию путем выбора Simulation> Pause.

    Это действие также экспортирует адаптированные табличные значения Tout в рабочее пространство MATLAB.

    Примечание

    После того, как вы приостановите симуляцию, адаптированные табличные значения хранятся в блоке Adaptive Lookup Table.

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

  5. Заблокируйте ячейку таблицы так, чтобы только одна ячейка адаптировалась. Можно найти эту функцию полезной, если фрагмент данных является очень ошибочным или в противном случае трудным для алгоритма обработать.

    1. Выберите Simulation> Run, чтобы перезапустить симуляцию.

    2. Дважды кликните блок Lock. Это действие переключает переключатель и питает вывод блока ON к theLock входному порту блока Adaptive Lookup Table(nD Stair-Fit).

      Можно просмотреть количество заблокированной ячейки в блоке Cell Number в модели Simulink.

  6. После того, как табличные значения адаптируются к изменяющимся во времени данным о вводе-выводе, можно продолжить использовать блок Adaptive Lookup Table в качестве статической интерполяционной таблицы:

    1. В окне модели Simulink дважды кликните блок Enable. Это действие переключает переключатель и отключает адаптацию.

    2. Выберите Simulation> Run, чтобы перезапустить симуляцию, если это уже не запускается.

      Во время симуляции, Адаптивной кладки блоков Интерполяционной таблицы как статическая интерполяционная таблица, и продолжает оценивать выходные значения, когда входные значения изменяются. Вы видите текущее значение интерполяционной таблицы в блоке Adaptive Table Outputs в окне модели Simulink.

    Примечание

    После того, как вы отключаете адаптацию, блок Adaptive Lookup Table не обновляет сохраненные табличные значения, и фигура, которая отображает табличные значения, не обновляет.

Смотрите также

Похожие темы