exponenta event banner

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

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

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

Идентификация системы

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

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

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

Предиктивный контроль

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

J=∑j=N1N2 (yr (t + j) ym (t + j)) 2+ρ∑j=1Nu (u (t + j − 1) − u ′ (t + j − 2)) 2

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

Следующая блок-схема иллюстрирует процесс прогнозирующего управления моделью. Контроллер состоит из модели нейронной сети и блока оптимизации. Блок оптимизации определяет значения 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 = (Cb1 Cb (t)) w1 (t) h (t) + (Cb2 Cb (t)) w2 (t) h (t) − k1Cb (t) (1 + k2Cb (t)) 2

где h (t) - уровень жидкости, Cb (t) - концентрация продукта на выходе процесса, w1 (t) - скорость потока концентрированного исходного Cb1 и w2 (t) - скорость потока разбавленного исходного Cb2. Входные концентрации устанавливают равными   Cb1 = 24,9 и   Cb2 = 0,1. Константы, связанные со скоростью потребления, k1   = 1 и   k2 = 1.

Задачей регулятора является поддержание концентрации продукта путем регулирования расхода w1 (t). Чтобы упростить пример, задайте w2 ( t) = 0,1. Уровень в резервуаре h (t) не контролируется для данного эксперимента.

Для выполнения этого примера:

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

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

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

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

    • Выходной сигнал установки подключен к выходу блока установки.

    • Опорный сигнал подключается к случайному опорному сигналу.

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

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

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

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

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

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

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

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