Проектируйте нейронный сетевой прогнозирующий контроллер в Simulink

Прогнозирующий контроллер нейронной сети, который реализован в программном обеспечении Deep Learning Toolbox™, использует модель нейронной сети нелинейного объекта, чтобы предсказать эффективность объекта. Затем контроллер вычисляет вход управления, который оптимизирует эффективность объекта в течение заданного будущего временного горизонта. Первым шагом в модели прогнозирующего управления является определение модели объекта управления нейронной сети (системы идентификации). Затем модель объекта управления используется контроллером для прогнозирования эффективности в будущем. (Смотрите документацию Model Predictive Control Toolbox™ для полного охвата применения различных стратегий прогнозирующего управления для линейных систем.)

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

Система идентификации

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

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

Эта сеть может быть обучена в автономном режиме в пакетном режиме с использованием данных, собранных от операции объекта. Для сетевого обучения можно использовать любой из алгоритмов настройки, обсуждаемых в Multilayer Shallow Neural Networks и Backpropagation Training. Этот процесс обсуждается более подробно в следующих разделах.

Прогнозирующее управление

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

J=j=N1N2(yr(t+j)ym(t+j))2+ρj=1Nu(u(t+j1)u(t+j2))2

где N 1, N 2 и Nu задают горизонты, по которым вычисляются ошибка отслеживания и шаги управления. Переменная u ′ является предварительным управляющим сигналом, yr является желаемым ответом, и ym является ответом сетевой модели. Значение и определяет вклад, который сумма квадратов шагов управления имеет в индексе эффективности.

Следующий блок иллюстрирует процесс прогнозирующего управления модели. Контроллер состоит из модели объекта управления нейронной сети и блока оптимизации. Блок оптимизации определяет значения u ′, которые минимизируют J, и затем оптимальный u является входом к объекту. Блок контроллера реализован в Simulink, как описано в следующем разделе.

Используйте блок Neural Network Predictive Controller

В этом разделе показано, как используется блок NN Predictive Controller. Первым шагом является копирование блока NN Predictive Controller из библиотеки блоков Deep Learning Toolbox в Редактор Simulink. Смотрите документацию Simulink, если вы не уверены, как это сделать. Этот шаг пропущен в следующем примере.

Пример модели обеспечивается программным обеспечением Deep Learning Toolbox, чтобы показать использование прогнозирующего контроллера. Этот пример использует каталитический непрерывный реактор с баком (CSTR). Схема процесса показана на следующем рисунке.

Динамическая модель системы

dh(t)dt=w1(t)+w2(t)0.2h(t)dCb(t)dt=(Cb1Cb(t))w1(t)h(t)+(Cb2Cb(t))w2(t)h(t)k1Cb(t)(1+k2Cb(t))2

где h (<reservedrangesplaceholder12>) является уровнем жидкости, Cb (<reservedrangesplaceholder10>) - концентрация продукта в выходе процесса, <reservedrangesplaceholder9> 1 (<reservedrangesplaceholder8>) - скорость потока жидкости сконцентрированного    <reservedrangesplaceholder7> 1 подачи, и <reservedrangesplaceholder6> 2 (<reservedrangesplaceholder5>)    является скоростью потока жидкости разбавленного <reservedrangesplaceholder4> 2 подачи. Концентрации входа устанавливаются равными Cb 1 = 24,9 и Cb 2 = 0,1. Константы, связанные со скоростью потребления, k 1 = 1 и k 2 = 1.

Цель контроллера состоит в том, чтобы поддерживать концентрацию продукта путем регулировки w потока 1 (t). Чтобы упростить пример, установите w 2 ( t) = 0,1. Уровень h бака (t) не контролируется для этого эксперимента.

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

  1. Запуск MATLAB®.

  2. Тип predcstr в Командном Окне MATLAB. Эта команда открывает Редактор Simulink со следующей моделью.

    Блок Plant содержит модель объекта управления Simulink CSTR. Сигналы блока NN Predictive Controller соединяются следующим образом:

    • Сигнал управления соединяется с входом модели объекта управления.

    • Сигнал Выхода объекта соединяется с блоком выхода Plant.

    • Ссылка соединяется с сигналом случайной уставки.

  3. Дважды кликните блок NN Predictive Controller. Это открывает следующее окно для разработки прогнозирующего контроллера модели. Это окно позволяет вам изменить горизонты контроллера N 2 и Nu. (N 1 фиксируется на 1.) Весовой параметр, описанный ранее, также задан в этом окне. Параметр α используется для управления оптимизацией. Это определяет, сколько снижения эффективности требуется для успешного шага оптимизации. Можно выбрать, какая стандартная программа линейной минимизации используется алгоритмом оптимизации, и можно решить, сколько итераций алгоритма оптимизации выполняется в каждом шаге расчета. Линейные стандартные программы минимизации являются небольшими модификациями тех, которые обсуждаются в Multilayer Shallow Neural Networks и Backpropagation Training.

  4. Выберите «Идентификация объекта». Откроется следующее окно. Вы должны разработать модель объекта управления нейронной сети, прежде чем вы сможете использовать контроллер. Модель объекта управления прогнозирует будущие выходы объекта. Алгоритм оптимизации использует эти предсказания, чтобы определить входы управления, которые оптимизируют будущую эффективность. Нейронная сеть модели объекта управления имеет один скрытый слой, как показано ранее. Вы выбираете размер этого слоя, количество отложенных входов и отложенных выходов и функцию обучения в этом окне. Можно выбрать любую из функций обучения, описанных в Multilayer Shallow Neural Networks and Backpropagation Training, чтобы обучить модель объекта управления нейронной сети.

  5. Щелкните Сгенерировать обучающие данные. Программа генерирует обучающие данные путем применения ряда случайных шаговых входов к модели объекта управления Simulink. Затем потенциальные обучающие данные отображаются на рисунке, подобном следующему.

  6. Нажмите Accept Data, а затем Train Network в окне Plant Identification. Начинается обучение модели объекта управления. Обучение протекает согласно алгоритму настройки (trainlm в этом случае) вы выбрали. Это простое применение пакетного обучения, как описано в Multilayer Shallow Neural Networks and Backpropagation Training. После завершения обучения отображается реакция полученной модели объекта управления, как на следующем рисунке. (Существуют также отдельные графики для валидации и проверки данных, если они существуют.)

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

  7. Выберите OK в окне Plant Identification. Это загружает обученную модель объекта управления нейронной сети в блок NN Predictive Controller.

  8. Выберите OK в окне Neural Network Predictive Control. Это загружает параметры контроллера в блок NN Predictive Controller.

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