Разработайте нейроконтроллер модели - ссылки в Simulink

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

Следующие данные показывают детали модели объекта управления нейронной сети и контроллера нейронной сети, когда они реализованы в программном обеспечении Deep Learning Toolbox™. Каждая сеть имеет два слоя, и можно выбрать количество нейронов, чтобы использовать в скрытых слоях. Существует три набора входных параметров контроллера:

  • Задержанные ссылочные входные параметры

  • Задержанный контроллер выходные параметры

  • Задержанный объект выходные параметры

Для каждых из этих входных параметров можно выбрать количество задержанных значений, чтобы использовать. Как правило, количество задержек увеличивается с порядком объекта. Существует два набора входных параметров к модели объекта управления нейронной сети:

  • Задержанный контроллер выходные параметры

  • Задержанный объект выходные параметры

Как с контроллером, можно определить номер задержек. Следующий раздел показывает, как можно установить параметры.

Используйте контроллер модели - ссылки блок

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

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

Уравнение движения для руки

d2ϕdt2=10sinϕ2dϕdt+u

где ϕ является углом руки, и u является крутящим моментом, предоставленным двигателем постоянного тока.

Цель состоит в том, чтобы обучить диспетчера так, чтобы рука отследила эталонную модель

d2yrdt2=9yr6dyrdt+9r

где yr является вывод эталонной модели, и r является входным сигналом ссылки.

Этот пример использует контроллер нейронной сети с 5-13-1 архитектурой. Входные параметры контроллеру состоят из двух задержанных ссылочных входных параметров, два задержанных объекта выходные параметры, и один задержанный контроллер вывел. Интервал выборки 0,05 секунд используется.

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

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

  2. Введите mrefrobotarm в Окне Команды MATLAB. Эта команда открывает Редактор Simulink с Блоком управления Модели - ссылки уже в модели.

  3. Дважды кликните Блок управления Модели - ссылки. Это открывает следующее окно для обучения контроллер модели - ссылки.

  4. Следующий шаг должен был бы обычно нажимать Plant Identification, который открывает окно Plant Identification. Вы затем обучили бы модель объекта управления. Поскольку окно Plant Identification идентично тому, используемому с предыдущими контроллерами, тот процесс не использован здесь.

  5. Нажмите Generate Training Data. Программа начинает генерировать данные для обучения контроллер. После того, как данные сгенерированы, следующее окно появляется.

  6. Нажмите кнопку Принять Данные. Возвратитесь к окну Model Reference Control и нажмите Train Controller. Программа представляет один сегмент данных к сети и обучает сеть для конкретного количества итераций (пять в этом случае). Этот процесс продолжается, один сегмент за один раз, пока целый набор обучающих данных не был представлен сети. Обучение контроллера может быть значительно более трудоемким, чем обучение модели объекта управления. Это вызвано тем, что диспетчер должен быть обучен с помощью динамической обратной связи (см. [HaJe99]). После того, как обучение завершено, ответ получившейся системы замкнутого цикла отображен, как в следующей фигуре.

  7. Вернитесь к окну Model Reference Control. Если производительность контроллера не точна, то можно выбрать Train Controller снова, который продолжает обучение контроллера с тем же набором данных. Если требуется использовать новый набор данных, чтобы продолжить обучение, выберите Generate Data или Import Data, прежде чем вы выберете Train Controller. (Убедитесь, что Использование, Текущие Веса выбраны, если вы хотите продолжить обучение с теми же весами.) Может также быть необходимо переобучить модель объекта управления. Если модель объекта управления не точна, она может влиять на обучение контроллера. В данном примере контроллер должен быть достаточно точным, поэтому выберите OK. Это загружает веса контроллера в модель Simulink.

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