Проектирование модели-ссылки нейронного контроллера в Simulink

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

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

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

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

  • Задержка выходов объекта управления

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

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

  • Задержка выходов объекта управления

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

Используйте блок Модель-ссылка Controller

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

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

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

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

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

Цель состоит в том, чтобы обучить контроллер, чтобы рука отслеживала образец модели

d2yrdt2=9yr6dyrdt+9r

где yr - выход опорной модели, а r - входной сигнал уставки.

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

Чтобы запустить этот пример:

  1. Запуск MATLAB®.

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

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

  4. Как правило, на следующем этапе необходимо щелкнуть Идентификация объекта (Plant Identification), которая открывает окно Идентификация объекта (Plant Identification). Затем вы обучите модель объекта управления. Поскольку окно Plant Identification идентично тому, которое использовалось с предыдущими контроллерами, этот процесс здесь опущен.

  5. Щелкните Сгенерировать обучающие данные. Программа начинает генерировать данные для настройки контроллера. После создания данных появится следующее окно.

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

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

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