Проект NARMA-L2 Нейроконтроллер в Simulink

Нейроконтроллер, описанный в этом разделе, упомянут двумя различными именами: управление линеаризацией обратной связи и управление NARMA-L2. Это упоминается как линеаризация обратной связи, когда модель объекта управления имеет конкретную форму (сопутствующая форма). Это упоминается как управление NARMA-L2, когда модель объекта управления может быть аппроксимирована той же формой. Центральная идея этого типа управления состоит в том, чтобы преобразовать нелинейную системную динамику в линейную динамику путем отмены нелинейности. Этот раздел начинается путем представления сопутствующей системной модели формы и показа, как можно использовать нейронную сеть, чтобы идентифицировать эту модель. Затем это описывает, как идентифицированная модель нейронной сети может использоваться, чтобы разработать контроллер. Это сопровождается примером того, как использовать Блок управления NARMA-L2, который содержится в Deep Learning Toolbox™ blockset.

Идентификация модели NARMA-L2

Как с образцовым прогнозирующим управлением, первым шагом в использовании линеаризации обратной связи (или NARMA-L2) управление должно идентифицировать систему, которой будут управлять. Вы обучаете нейронную сеть, чтобы представлять прямую динамику системы. Первый шаг должен выбрать образцовую структуру, чтобы использовать. Одна стандартная модель, которая используется, чтобы представлять общее дискретное время нелинейные системы, является нелинейной моделью (NARMA) авторегрессивного скользящего среднего значения:

y(k+d)=N[y(k),y(k1),,y(kn+1),u(k),u(k1),,u(kn+1)]

где u (k) является системным входом, и y (k) является системой вывод. Для идентификационной фазы вы могли обучить нейронную сеть, чтобы аппроксимировать нелинейный функциональный N. Это - идентификационная процедура, используемая для Прогнозирующего Контроллера NN.

Если вы хотите, чтобы система вывод следовала за некоторой ссылочной траекторией
y (k + d) = yr (k + d), следующий шаг должен разработать нелинейный контроллер формы:

u(k)=G[y(k),y(k1),,y(kn+1),yr(k+d),u(k1),,u(km+1)]

Проблема с использованием этого контроллера состоит в том, что, если вы хотите обучить нейронную сеть, чтобы создать функциональный G, чтобы минимизировать среднеквадратичную погрешность, необходимо использовать динамическую обратную связь ([NaPa91] или [HaJe99]). Это может быть довольно медленно. Одно решение, предложенное Нарендрой и Махопэдхьяи [NaMu97], состоит в том, чтобы использовать аппроксимированные модели, чтобы представлять систему. Контроллер, используемый в этом разделе, основан на NARMA-L2 аппроксимированная модель:

y^(k+d)=f[y(k),y(k1),,y(kn+1),u(k1),,u(km+1)]+g[y(k),y(k1),,y(kn+1),u(k1),,u(km+1)]u(k)

Эта модель находится в сопутствующей форме, где следующий вход u контроллера (k) не содержится в нелинейности. Преимущество этой формы состоит в том, что можно решить для входа управления, который заставляет систему вывод следовать за ссылочным y (k + d) = yr (k + d). У получившегося контроллера была бы форма

u(k)=yr(k+d)f[y(k),y(k1),,y(kn+1),u(k1),,u(kn+1)]g[y(k),y(k1),,y(kn+1),u(k1),,u(kn+1)]

Используя это уравнение непосредственно может вызвать проблемы реализации, потому что необходимо определить вход u управления (k) на основе вывода одновременно, y (k). Так, вместо этого, используйте модель

y(k+d)=f[y(k),y(k1),,y(kn+1),u(k),u(k1),,u(kn+1)]+g[y(k),,y(kn+1),u(k),,u(kn+1)]u(k+1)

где d ≥ 2. Следующие данные показывают структуру представления нейронной сети.

Контроллер NARMA-L2

Используя модель NARMA-L2, можно получить контроллер

u(k+1)=yr(k+d)f[y(k),,y(kn+1),u(k),,u(kn+1)]g[y(k),,y(kn+1),u(k),,u(kn+1)]

который осуществим для d ≥ 2. Следующая фигура является блок-схемой контроллера NARMA-L2.

Этот контроллер может быть реализован с ранее идентифицированной моделью объекта управления NARMA-L2, как показано в следующей фигуре.

Используйте блок контроллера NARMA-L2

Этот раздел показывает, как диспетчер NARMA-L2 обучен. Первый шаг должен скопировать блок NARMA-L2 Controller от библиотеки блоков Deep Learning Toolbox до Редактора Simulink®. См. документацию Simulink, если вы не уверены, как сделать это. Этот шаг пропущен в следующем примере.

Модели в качестве примера предоставляют программное обеспечение Deep Learning Toolbox, чтобы показать использование контроллера NARMA-L2. В этом примере цель состоит в том, чтобы управлять положением магнита, приостановленного выше электромагнита, где магнит ограничивается так, чтобы это могло только переместиться в вертикальное направление, как в следующей фигуре.

Уравнение движения для этой системы

d2y(t)dt2=g+αMi2(t)y(t)βMdy(t)dt

где y (t) является расстоянием магнита выше электромагнита, i (t) является текущим течением в электромагните, M является массой магнита, и g является гравитационной константой. Параметр β является вязким коэффициентом трения, который определяется материалом, в который перемещается магнит, и α является полевой силой, постоянной, который определяется количеством поворотов провода на электромагните и силе магнита.

Запускать этот пример:

  1. Запустите MATLAB®.

  2. Введите narmamaglev в Окне Команды MATLAB. Эта команда открывает Редактор Simulink со следующей моделью. Блок управления NARMA-L2 уже находится в модели.

  3. Дважды кликните блок NARMA-L2 Controller. Это открывает следующее окно. Это окно позволяет вам обучить модель NARMA-L2. Нет никакого отдельного окна для контроллера, потому что контроллер определяется непосредственно из модели, в отличие от образцового прогнозирующего контроллера.

  4. Это окно работает то же самое другими окнами Plant Identification, таким образом, учебный процесс не повторяется. Вместо этого моделируйте контроллер NARMA-L2.

  5. Возвратитесь к Редактору Simulink и запустите симуляцию путем выбора пункта меню Simulation> Run. Когда симуляция запускается, объект, вывод и ссылочный сигнал отображены, как в следующей фигуре.