Разработайте нейронную сеть прогнозирующий контроллер в Simulink

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

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

System Identification

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

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

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

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

Образцовый прогнозирующий метод управления основан на отступающем методе горизонта [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, как описано в следующем разделе.

Используйте нейронную сеть прогнозирующий блок контроллера

Этот раздел показывает, как блок 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 (t) является уровнем жидкости, Cb (t) является концентрацией продукта при выводе процесса, w 1 (t) является скоростью потока жидкости сконцентрированного канала Cb 1, и w 2 (t) является скоростью потока жидкости разбавленного канала Cb 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 содержит модель объекта управления CSTR Simulink. Прогнозирующие блоки-сигналы Контроллера NN соединяются можно следующим образом:

    • Управляющий сигнал соединяется с входом Модели объекта управления.

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

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

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

  4. Выберите Plant Identification. Это открывает следующее окно. Необходимо разработать модель объекта управления нейронной сети, прежде чем можно будет использовать контроллер. Модель объекта управления предсказывает будущий объект выходные параметры. Алгоритм оптимизации использует эти прогнозы, чтобы определить входные параметры управления, которые оптимизируют будущую производительность. Нейронная сеть модели объекта управления имеет один скрытый слой, как показано ранее. Вы выбираете размер того слоя, количество задержанных входных параметров и задержали выходные параметры и учебную функцию в этом окне. Можно выбрать любую из учебных функций, описанных в Многоуровневых Мелких Нейронных сетях и Обучении Обратной связи обучить модель объекта управления нейронной сети.

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

  6. Нажмите кнопку Принять Данные, и затем нажмите Train Network в окне Plant Identification. Обучение модели объекта управления начинается. Обучение продолжает согласно учебному алгоритму (trainlm в этом случае), вы выбрали. Это - прямое приложение пакетного обучения, как описано в Многоуровневых Мелких Нейронных сетях и Обучении Обратной связи. После того, как обучение завершено, ответ получившейся модели объекта управления отображен, как в следующей фигуре. (Существуют также отдельные графики для данных о валидации и тестировании, если они существуют.)

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

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

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

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