Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Скачиваний:
857
Добавлен:
07.03.2016
Размер:
15.55 Mб
Скачать

9.3.2. Регулятор narma-l2

Нейросетевой регулятор, описанный в этом разделе, использует в качестве модели управляемого процесса модель нелинейной авторегрессии со скользящим средним (NonlinearAutoregressive-MovingAverage–NARMA-L2). Схема демонстрационного примера управления магнитной подушкой показана на рис. 9.42.

Рис. 9.42

Окно Model Browserв левой части рисунка содержит перечень всех блоков, входящих в состав системы управления, представленной в виде модели системыSimulink.

Управляемым объектом является магнит, который движется только в вертикальном направлении в электромагнитном поле, как это схематично показано на рис. 9.43.

Рис. 9.43

Уравнение движения этой системы имеет вид:

(9.6)

где y(t) – расстояние движущегося магнита от электромагнита;g– ускорение силы тяжести;– постоянная магнитного поля, зависящая от числа витков обмотки и намагниченности электромагнита;i(t) – управляющий ток электромагнита;M– масса магнита;– коэффициент вязкого трения.

Соответствующая динамическая модель, реализованная в системе Simulink, показана на рис. 9.44. Точно такую же модель, но с конкретными числовыми данными вы сможете увидеть на экране терминала, если активизируете блокPlant (Magnet Levitation)в окнеModel Browser.

Рис. 9.44

Заметим, что рассматриваемая динамическая система является нелинейной, и мы будем строить ее дискретную нелинейную модель как авторегрессионную модель со скользящим средним, или NARMA-модель, в форме

, (9.7)

где y(k) – выход модели;d– число тактов предсказания;u(k) – вход модели.

На этапе идентификации необходимо построить нейронную сеть для NARMA-модели вида (9.7). Эта процедура аналогична описанной выше процедуре идентификации для регулятора с предсказанием.

Если требуется спроектировать следящую систему, которая обеспечивает движение по заданной траектории

y(k+d) =yr(k+d), (9.8)

то это означает, что необходимо сформировать нелинейный регулятор следующего общего вида:

. (9.9)

Хотя такой регулятор с помощью нейронной сети и может быть сформирован, однако в процессе минимизации среднеквадратичной ошибки он требует чрезмерных вычислений, поскольку использует динамический вариант метода обратного распространения ошибки [16]. Для практического решения задачи слежения Нарендра (Narendra) и Макхопадхаи (Mukho­padhyay) [31] предложили приближенную NARMA-модель с выделенной составляющей управления. Такая модель регулятора, именуемая моделью NARMA-L2, имеет вид:

(9.10)

Преимущество этой формы состоит в том, что теперь текущее управление можно непосредственно вычислить, если известна желаемая траектория yr, предыстория управления {u(– 1), …,u(– + 1)}, а также предшествующие и текущее значения выхода {y(k), …,y(k n + 1)}:

. (9.11)

Непосредственное применение этого соотношения для реализации регулятора затруднительно, поскольку управление u(k) зависит от текущего значения выходаy(k). Поэтому управление (9.11) модифицируется следующим образом:

, (9.12)

но при этом параметр предсказания должен удовлетворять условию d2.

На рис. 9.45 показана структура соответствующего регулятора в виде нейронной сети.

Рис. 9.45

Здесь следует обратить внимание на участки сети, которые выполняют аппроксимацию нелинейных операторов gиfв виде выходови. Входами регулятора являются сигналыy(t+1) иu(t+1), последний реализован в виде обратной связи, а также эталонный сигналyr(t+2). Блоки задержки осуществляют запоминание соответствующих последовательностей входа и выхода, а затем используются двухслойные нейронные сети, которые формируют оценки нелинейных операторов и вычисляют сигнал управления в форме (9.12).

Общая структурная схема системы с регулятором NARMA-L2 показана на рис. 9.46.

Рис. 9.46

На схеме явным образом выделена эталонная модель, которая задает желаемую траекторию для выхода управляемого процесса.

Демонстрационный пример NARMA-L2Controllerиспользует следующие файлы, размещенные в каталогеtoolbox\nnet\nncontrol.

MAT-файлы данных:

ball1– данные для обучения нейросетевой модели магнитной подушки.

Функции активации, используемые в нейронной сети контроллера NARMA-L2:

netinv– функция активации (1/n);

dnetinv– производная функции активации (1/n).

Модели Simulink:

ballrepel0 – модель магнитной подушки;

narmamaglev–GUI-приложение для контроллераNARMA-L2.

Вспомогательные функции:

sfunxy2 –S-функция для вывода графиков;

nncontrolutil– утилита, обеспечивающая возможность обращения к частным функциям из системыSimulink.

Выполнить запуск демонстрационного примера можно несколькими способами:

  • в окне запуска приложений Launch Padвыбрать опциюDemos для ППП Neural Network Toolbox;

  • ввести команду narmamaglevв командном окне системыMATLAB.

Для того чтобы начать работу, необходимо активизировать блок NARMA-L2Controllerдвойным щелчком левой кнопки мыши. Появится окно, показанное на рис. 9.47.

Рис. 9.47

Обратите внимание, что это окно дает возможность обучить модель NARMA-L2. Отдельного окна для обучения регулятора нет, так как регуляторNARMA-L2, в отличие от регулятора с предсказанием, определяется непосредственно по модели.

Это окно работает так же, как и другие окна идентификации объекта управления, поэтому повторно подробно процесс обучения рассматривать не будем.

После окончания обучения нажать на клавишу OK для ввода данных регулятора в мо­дель Simulink. Возвращаемся к модели Simulink (см. рис. 9.34) и начинаем моделиро­вание, выбрав опциюStart из меню Simulation. Графики задающего сигнала и выхода системы приведены на рис. 9.48.

Рис. 9.48

Из анализа полученных данных следует, что реакция системы на ступенчатые воздействия со случайной амплитудой вполне удовлетворительна, имеет колебательный характер с достаточно быстрым затуханием; на интервале 5 с все уставки эффективно отрабатываются. Таким образом, регулятор NARMA-L2, реализованный в виде нейронной сети, можно использовать для управления магнитной подушкой.