- •В. Г. Потемкин
- •Предисловие
- •Введение
- •Используемые обозначения
- •Часть 1. Ппп Neural Network Toolbox
- •1. Система matlab 6
- •1.1. Операционная среда matlab 6
- •Командное окно
- •Окно предыстории
- •Окно запуска
- •Окно текущего каталога
- •Окно рабочей области
- •Справочная подсистема
- •1.3. Демонстрационные примеры ппп nnt
- •2. Модель нейрона и архитектура сети
- •2.1. Модель нейрона
- •2.1.1. Простой нейрон
- •2.1.2. Функция активации
- •2.1.3. Нейрон с векторным входом
- •2.2. Архитектура нейронных сетей
- •2.2.1. Однослойные сети
- •2.2.2. Многослойные сети
- •2.2.3. Сети с прямой передачей сигнала
- •2.3. Создание, инициализация и моделирование сети Формирование архитектуры сети
- •Инициализация сети
- •Моделирование сети
- •3. Обучение нейронных сетей
- •3.1. Процедуры адаптации и обучения
- •Явление переобучения
- •Свойство обобщения
- •3.1.1. Способы адаптации и обучения
- •Адаптация нейронных сетей
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel(' Циклы'), ylabel('Ошибка'),grid
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel('Циклы'), ylabel('Ошибка'),grid
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel('Циклы'), ylabel('Ошибка'),grid
- •Обучение нейронных сетей
- •3.2. Методы обучения
- •3.2.1. Обучение однослойной сети
- •3.2.2. Обучение многослойной сети
- •Метод обратного распространения ошибки
- •Характеристика методов обучения
- •3.3. Алгоритмы обучения
- •3.3.1. Градиентные алгоритмы обучения Алгоритм gd
- •Алгоритм gdm
- •Алгоритм gda
- •Алгоритм Rprop
- •3.3.2. Алгоритмы метода сопряженных градиентов
- •Алгоритм cgf
- •Алгоритм cgp
- •Алгоритм cgb
- •Алгоритм scg
- •3.3.3. Квазиньютоновы алгоритмы Алгоритм bfgs
- •Алгоритм oss
- •Алгоритм lm
- •3.3.4. Алгоритмы одномерного поиска
- •Алгоритм gol
- •Алгоритм bre
- •Алгоритм hyb
- •Алгоритм cha
- •Алгоритм bac
- •3.3.5. Расширение возможностей процедур обучения
- •Переобучение
- •Метод регуляризации
- •Формирование представительной выборки
- •Предварительная обработка и восстановление данных
- •Пример процедуры обучения
- •4. Персептроны
- •4.1. Архитектура персептрона
- •4.2. Модель персептрона
- •Моделирование персептрона
- •Инициализация параметров
- •4.3. Процедуры настройки параметров
- •Правила настройки
- •Процедура адаптации
- •5. Линейные сети
- •5.1. Архитектура линейной сети
- •5.2. Создание модели линейной сети
- •5.3. Обучение линейной сети
- •Процедура настройки
- •Процедура обучения
- •5.4. Применение линейных сетей Задача классификации векторов
- •Фильтрация сигнала
- •Предсказание сигнала
- •Подавление шумов
- •Многомерные цифровые фильтры
- •6. Радиальные базисные сети
- •Модель нейрона и архитектура сети
- •Создание сети
- •Радиальная базисная сеть с нулевой ошибкой
- •Итерационная процедура формирования сети
- •Примеры радиальных базисных сетей
- •6.1. Сети grnn
- •Архитектура сети
- •Синтез сети
- •6.2. Сети pnn
- •Архитектура сети
- •Синтез сети
- •7. Сети кластеризации и классификации данных
- •7.1. Самоорганизующиеся нейронные сети
- •7.1.1. Слой Кохонена
- •Архитектура сети
- •Создание сети
- •Правило обучения слоя Кохонена
- •Правило настройки смещений
- •Обучение сети
- •7.1.2. Карта Кохонена
- •Топология карты
- •Функции для расчета расстояний
- •Архитектура сети
- •Создание сети
- •Обучение сети
- •Одномерная карта Кохонена
- •Двумерная карта Кохонена
- •Архитектура сети
- •Создание сети
- •Обучение сети Правила настройки параметров
- •Процедура обучения
- •8. Рекуррентные сети
- •8.1. Сети Элмана
- •Архитектура
- •Создание сети
- •Обучение сети
- •Проверка сети
- •8.2. Сети Хопфилда
- •Архитектура сети
- •Синтез сети
- •9. Применение нейронных сетей
- •9.1. Аппроксимация и фильтрация сигналов
- •9.1.1. Предсказание стационарного сигнала Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.2. Слежение за нестационарным сигналом
- •Инициализация сети
- •Проверка сети
- •9.1.3. Моделирование стационарного фильтра
- •Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.4. Моделирование нестационарного фильтра
- •Постановка задачи
- •Инициализация сети
- •Проверка сети
- •9.2. Распознавание образов
- •Постановка задачи
- •Нейронная сеть
- •Архитектура сети
- •Инициализация сети
- •Обучение
- •Обучение в отсутствие шума
- •Обучение в присутствии шума
- •Повторное обучение в отсутствие шума
- •Эффективность функционирования системы
- •9.3. Нейронные сети и системы управления
- •9.3.1. Регулятор с предсказанием
- •9.3.2. Регулятор narma-l2
- •9.3.3. Регулятор на основе эталонной модели
- •Часть2. Операторы, функции и команды
- •10. Вычислительная модель нейронной сети
- •10.1. Описание сети Описание архитектуры
- •Функции инициализации, адаптации и обучения
- •10.2. Описание элементов сети
- •Описание входов
- •Описание слоев
- •Описание выходов
- •Описание целей
- •Описание смещений
- •Описание весов входа
- •Описание весов слоя
- •Матрицы весов и векторы смещений
- •Информационные поля
- •11. Формирование моделей нейронных сетей
- •11.1. Модели сетей
- •11.1.1. Однослойные сети Персептрон
- •Линейные сети
- •11.1.2. Многослойные сети
- •Радиальные базисные сети
- •Самоорганизующиеся сети
- •Сети – классификаторы входных векторов
- •Рекуррентные сети
- •11.2. Функции активации
- •Персептрон
- •Линейные сети
- •Радиальные базисные сети
- •Самоорганизующиеся сети
- •Рекуррентные сети
- •11.3. Синаптические функции
- •Функции взвешивания и расстояний
- •Функции накопления
- •11.4. Функции инициализации
- •11.5. Функции адаптации и обучения Функции адаптации
- •Функции обучения
- •Градиентные алгоритмы обучения
- •Алгоритмы метода сопряженных градиентов
- •Квазиньютоновы алгоритмы обучения
- •11.5.1. Функции оценки качества обучения
- •11.6. Функции настройки параметров
- •11.6.1. Функции одномерного поиска
- •11.7. Масштабирование и восстановление данных
- •11.8. Вспомогательные функции
- •Утилиты вычислений
- •Операции с массивами данных
- •Графические утилиты
- •Информация о сети и ее топологии
- •11.9. Моделирование нейронных сетей и система Simulink Функции моделирования сети
- •11.9.1. Применение системы Simulink
- •Библиотеки блоков для моделирования нейронных сетей
- •Построение моделей нейронных сетей
- •Индексный указатель Команды, функции и операторы ппп Neural Network Toolbox
- •Предметный указатель
- •Литература Книги на английском языке:
- •Книги на русском языке:
- •Оглавление
9.3.1. Регулятор с предсказанием
Регулятор с предсказанием, реализованный в ППП NeuralNetworkToolbox, использует модель нелинейного управляемого процесса в виде нейронной сети для того, чтобы предсказывать его будущее поведение. Кроме того, регулятор вычисляет сигнал управления, который оптимизирует поведение объекта на заданном интервале времени.
Идентификация управляемого процесса.Схема подсистемы идентификации показана на рис. 9.29. Она включает модель управляемого процесса в виде нейронной сети, которая должна быть обучена в автономном режиме так, чтобы минимизировать ошибку между реакциями процесса и моделиe = yp – ymна последовательность пробных сигналовu.
Рис. 9.29
Нейронная сеть регулятора управляемого процесса представлена на рис. 9.30; она име- ет 2 слоя нейронов и использует линии задержки (ЛЗ), чтобы запомнить предшествующие значения входов и выходов процесса с целью предсказать будущие значения выхода.
Рис. 9.30
Настройка параметров этой сети выполняется автономно методом группового обучения, используя данные, полученные при испытаниях реального объекта. Для обучения сети может быть использован любой из обучающих алгоритмов для нейронных сетей.
Принцип управления с предсказанием. Управление с предсказанием использует принцип удаляющегося горизонта [40], когда нейросетевая модель управляемого процесса предсказывает реакцию объекта управления на определенном интервале времени в будущем. Предсказания используются программой численной оптимизации для того, чтобы вычислить управляющий сигнал, который минимизирует следующий критерий качества управления:
, (9.4)
где константы N1,N2иNuзадают пределы, внутри которых вычисляются ошибка слежения и мощность управляющего сигнала. Переменнаяu' описывает пробный управляющий сигнал,yr– желаемая, аym– истинная реакция модели управляемого процесса. Величинаопределяет вклад, который вносит мощность управления в критерий качества.
Структурная схема на рис. 9.31 иллюстрирует процесс управления с предсказанием. Регулятор состоит из нейросетевой модели управляемого процесса и блока оптимизации. Блок оптимизации определяет значения u', которые минимизируют критерий качества управления, а соответствующий управляющий сигнал управляет процессом.
Рис. 9.31
Реализация регулятора с предсказанием.В качестве примера исследуется процесс управления каталитическим реактором с непрерывным перемешиванием (ContinousStirredTankReactor–CSTR), схема которого показана на рис. 9.32.
Рис. 9.32
Динамическая модель управляемого процесса описывается следующими обыкновенными нелинейными дифференциальными уравнениями:
(9.5)
где h– уровень жидкости в резервуаре;w1(t) – скорость потока продукта с концентрациейCb1;w2(t) – скорость потока разбавленного продукта с концентрациейCb2;Cb– концентрация продукта на выходе объекта.
Исходные концентрации приняты равными Cb1 = 29.4 иCb2 = 0.1. Константы скорости расхода равныk1=k2= 1.
Цель регулирования состоит в поддержании концентрации продукта путем регулирования скорости потока w2(t). Для простоты принятоw1(t) = 0.1. В этом примере уровень раствора в резервуаре не регулируется.
Нелинейная динамическая модель каталитического реактора, соответствующая уравнениям (9.5), показана на рис. 9.33
Рис. 9.33
Чтобы разобрать этот достаточно сложный демонстрационный пример, следует сделать ряд предварительных замечаний.
Описываемые ниже приложения нейронных сетей реализованы только в рамках системы MATLAB6. Демонстрационный примерNNPredictiveControllerиспользует следующие файлы, размещенные в каталогеtoolbox\nnet\nncontrol.
MAT-файлы данных:
cstr1, cstr2, cstr3 – данные для обучения нейросетевой модели каталитического реактора.
Функции одномерной оптимизации:
csrchbac– поиск с обратной прогонкой;
csrchbre– метод Брента (Brent), объединяющий методы золотого сечения и квадратичной интерполяции;
csrchcha– метод кубической интерполяции Чараламбуса;
csrchgol– метод золотого сечения;
csrchhyb– гибридный метод бисекции и кубической интерполяции.
Функции для синтеза управления с предсказанием:
calcjjdjj– вычисление функционала качества и его градиента;
predopt– оптимизация регулятора с предсказанием;
dyduvar– вычисление частных производных выхода по входу.
Модели Simulink:
cstr– модель каталитического реактора;
predcstr–GUI-приложение для контроллера с предсказанием;
ptest3sim2 – нейросетевая модель управляемого процесса, используемая М-функциейpredoptдля предсказания процесса в будущем.
Вспомогательные функции:
sfunxy2 –S-функция для вывода графиков;
nncontrolutil– поддержка, обеспечивающая возможность обращения к частным функциям из системыSimulink.
Выполнить запуск демонстрационного примера можно несколькими способами:
в окне запуска приложений Launch Padвыбрать опциюDemos для ППП Neural Network Toolbox;
ввести команду predcstr, используя командное окно системыMATLAB.
В любом случае открывается окно системы Simulinkсо следующей структурой системы управления (рис. 9.34).
Рис. 9.34
Эта структура включает блок управляемого процесса Plantи блок контроллераNN Predictive Controller, а также блоки генерации эталонного ступенчатого сигнала со случайной амплитудойRandom Reference, отсчета времениClock, построения графиковGraph. Особенность этой структуры заключается в том, что она выполняет не только функции блок-схемы системыSimulink, но и функции графического интерфейса пользователяGUI[53].
Для того чтобы начать работу, необходимо активизировать блок NN Predictive Controllerдвойным щелчком левой кнопки мыши. Появится окно, показанное на рис. 9.35.
Рис. 9.35
Оно выполняет функции графического интерфейса пользователя. Обратите внимание на информацию, которая руководит вашими действиями и указана в области фрейма в виде сообщения Прежде чем установить параметры контроллера, постройте модель управляемого процесса. Это означает, что прежде всего необходимо выполнить идентификацию управляемого процесса, т. е. построить его нейросетевую модель, воспользовавшись специальной процедуройPlant Identification.
Вид окна Plant Identificationприведен на рис. 9.36. Это окно универсально и может быть использовано для построения нейросетевых моделей для любого динамического объекта, который описан модельюSimulink. В рассматриваемом случае такой моделью является нелинейная динамическая модель каталитического реактораCSTR.
Процедура идентификации позволяет построить нейронную сеть, которая будет моделировать динамику управляемого процесса. Если модель должна использоваться при настройке контроллера, то ее следует создать прежде, чем начнется расчет контроллера. Кроме того, вам может потребоваться создание новой модели объекта, если спроектированный контроллер будет функционировать неудовлетворительно.
Рис. 9.36
Процедура идентификации требует задания следующих параметров:
параметры архитектуры:
Size of the Hidden Layer. Размер скрытого слоя определяется количеством используемых нейронов;
Sampling Interval.Такт дискретности в секундах определяет интервал между двумя последовательными моментами съема данных;
No. Delayed Plant Inputs. Количество элементов запаздывания на входе модели;
No. Delayed Plant Outputs. Количество элементов запаздывания на выходе модели;
Normalize Training Data. Окно контроля нормирования обучающих данных к диапазону [0 1];
параметры обучающей последовательности:
Training samples.Длина обучающей выборки (количество точек съема информации);
Maximum Plant Input. Максимальное значение входного сигнала;
Minimum Plant Input. Минимальное значение входного сигнала;
Maximum Interval Value (sec). Максимальный интервал идентификации в секундах;
Minimum Interval Value (sec). Минимальный интервал идентификации в секундах;
Limit Output Data. Окно контроля, позволяющее ограничить объем выходных данных; только при включенном окне контроля будут доступны 2 следующих окна редактирования текста;
Maximum Plant Output. Максимальное значение выходного сигнала;
Minimum Plant Input. Минимальное значение выходного сигнала;
Simulink Plant Model. Задание моделиSimulinkс указанием входных и выходных портов, используемых при построении нейросетевой модели управляемого процесса. С помощью кнопкиBrowseвы можете выбрать любую модель из числа доступных; в рассматриваемом случае это модель каталитического реактораCSTR(рис. 9.33);
Generate Training Data. Кнопка запуска процесса генерации обучающей последовательности;
Import Data. Импорт обучающей последовательности из рабочей области или файла данных. Для рассматриваемого примера эти данные накоплены в MAT-файлах cstr1, cstr2, cstr3;
Export Data.Экспорт сгенерированных данных в рабочую область илиMAT-файл;
параметры обучения:
Training Epochs.Количество циклов обучения;
Training function.Задание обучающей функции;
Use Current Weights. Окно контроля, позволяющее подтвердить использование текущих весов нейронной сети;
Use Validation/Testing for Training. Выбор этих окон контроля будет означать, что по 25 % данных из обучающей последовательности будет использовано для формирования контрольного и тестового подмножеств соответственно.
Итак, выбор процедуры Generate Training Data приведет к тому, что будет запущена программа генерации обучающей последовательности на интервале 1600 с для модели каталитического реактора cstr.mdl. Программа генерирует обучающие данные путем воздействия ряда случайных ступенчатых сигналов на модель Simulink управляемого процесса. Графики входного и выходного сигналов объекта управления выводятся на экран (рис. 9.37).
Рис. 9.37
По завершении генерации обучающей последовательности пользователю предлагается либо принять сгенерированные данные (Accept Data), либо отказаться от них (Reject Data).
Если вы принимаете данные, приложение возвращает вас к несколько измененному окну Plant Identification (рис. 9.38). Здесь часть окон недоступны, а кнопкаGenerate Training Dataзаменена на кнопкуErase Generated Data, что позволяет удалить сгенерированные данные.
Рис. 9.38
В окне фрейма содержится сообщение Обучающая последовательность состоит из 8000 замеров. Можно начинать обучение нейронной сети.
Для этого следует воспользоваться кнопкой Train Network(Обучить сеть). Начнется обучение нейросетевой модели. После завершения обучения его результаты отображаются на графиках, как это показано на рис. 9.39,аиб, где построены соответственно результаты обучения и тестирования на контрольном множестве.
-
а
б
Рис. 9.39
Текущее состояние отмечено в окне Plant Identification (рис. 9.40) сообщениемОбучение завершено. Вы можете сгенерировать или импортировать новые данные, продолжить обучение или сохранить полученные результаты, выбрав кнопки OK или Apply. В результате параметры нейросетевой модели управляемого процесса будут введены в блокNN Predictive ControllerсистемыSimulink.
Рис. 9.40
После этого мы вновь возвращаемся к окну Neural Network Predictive Control (рис. 9.35) и можем установить параметры оптимизации:
Cost Horizon (N2). Верхний предел суммирования в показателе качестваN2 = 7, нижний предел N1 фиксирован и равен 1;
Control Horizon (Nu). Верхний предел суммирования при оценке мощности управленияNu= 2;
Control Weighting Factor (). Коэффициент веса для составляющей мощности управления= 0.05;
Search parameter ().Параметр одномерного поиска, задающий порог уменьшения показателя качества,= 0.001;
Minimization Routine.Выбор процедуры одномерного поиска; выбрана процедураcsrchbac;
Iterations Per Sample Time. Число итераций на 1 такт дискретности равно 2.
Как только параметры оптимизации установлены, следует подтвердить это нажатием кнопок OKилиApply. В результате параметры регулятора будут введены в блокNN Predictive ControllerсистемыSimulink.
Возвращаемся к модели Simulink (рис. 9.34) и начинаем моделирование, выбрав опцию Start из меню Simulation. В процессе моделирования выводятся графики входа и выхода управляемого процесса (рис. 9.41).
Рис. 9.41
Из анализа полученных данных следует, что реакция системы на ступенчатые воздействия со случайной амплитудой вполне удовлетворительна, имеет колебательный характер с достаточно быстрым затуханием; на интервале 20 с все воздействия эффективно отрабатываются. Таким образом, регулятор с предсказанием, реализованный в виде нейронной сети, можно использовать для управления каталитическим реактором с непрерывным перемешиванием.