Моделируйте Engine с помощью n-D адаптивной интерполяционной таблицы

Цели

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

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

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

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

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

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

Сведения о данных

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

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

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

  • Z - 10x36 матрица табличных данных для объемного КПД двигателя

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

Объемный КПД выхода двигателя изменяется во времени, и функция от двух входов - давления и скорость вращения двигателя впускного коллектора. Данные в 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. Перетащите блок Адаптивная интерполяционная таблица (nD Stair-Fit) из библиотеки Адаптивные интерполяционные таблицы в окно Модели Simulink.

  3. Дважды кликните блок Adaptive Lookup Table (nD Stair-Fit), чтобы открыть диалоговое окно Function Block Parameters: Adaptive Lookup Table (nD Stair-Fit).

  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, указывает на высокую робастность значений интерполяционной таблицы для входного шума. Чтобы узнать больше об усилении адаптации, см. Sample Mean with Formetting in Selecting a Adaptation Method.

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

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

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

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

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

      Это действие добавляет новый порт с именем Lock в блок Адаптивная интерполяционная таблица. Этот порт используется для блокировки камеры в процессе адаптации.

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

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

      Совет

      Дополнительные сведения см. Adaptive Lookup Table (nD Stair-Fit) разделе страницы с описанием блоков.

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

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

      Модель Simulink теперь выглядит аналогично следующему рисунку.

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

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

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

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

  8. В браузере библиотеки Simulink выберите библиотеку Simulink > Sinks и перетащите блоки Display в окно модели. Соедините блоки, как показано на следующем рисунке.

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

    • Display блок - Показывает значение текущей камеры.

    • Display1 блок - Показывает номер адаптируемой текущей камеры.

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

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

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

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

      Дополнительные сведения об этом блоке см. в страницу с описанием блоков To Рабочей области в документации Simulink.

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

    3. Нажмите OK.

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

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

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

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

Вы, должно быть, уже построили модель Simulink, как описано как Создание модели с использованием блоков Adaptive Lookup Table.

Для выполнения адаптации:

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

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

  2. В редакторе Simulink Editor щелкните Run под Simulation, чтобы начать процесс адаптации.

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

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

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

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

    Совет

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

  3. Приостановите симуляцию, нажав Pause под Simulation.

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

    Примечание

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

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

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

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

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

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

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

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

    2. Щелкните Run под Simulation, чтобы перезапустить симуляцию, если она еще не запущена.

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

    Примечание

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

См. также

Похожие темы