Федосов Борис Трофимович
Рудненский индустриальный институт,
Рудный, Казахстан
Об авторе

УДК 681.51.01
Ф338

4.6. Блок NeuralNet Vissim'а
Управление обратным маятником с помощью нейросети

4.6.1. Понятие о нейросети

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

Нейросети изучаются и применяются уже довольно давно, десятилетия два, но до сих пор их построение относится к области искусства и инженерной интуиции в сочетании с некоторыми техническими приемами [11]. Здесь не ставится задача изложить принципы действия и теоретические основы нейросетей, читатель может познакомиться с ними в литературе [11].

Основные идеи нейросети в кратком изложении состоят в следующем.

Нейросеть структурно имеет не менее двух входов, и один или несколько выходов. Выходной сигнал представляет собой взвешенную сумму входных, причем эта сумма зависит от величин и соотношений между входными сигналами. Структурно в состав нейросети входят две или несколько матриц коэффициентов, которые для наглядности располагают на рисунках в виде слоев. Чем больше слоев и чем больше размерность матриц, тем для большего числа сочетаний значений входных сигналов будет получаться собственное значение выходного сигнала (или каждого из выходных сигналов). Чем больше входных сигналов, тем более сложный объект, в частности регулятор, может быть аппроксимирован нейросетью.

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

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

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

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

Пусть нейросеть предназначена для замены традиционного, например ПИД-регулятора. Тогда она будет иметь несколько входов и один выход.

Во-первых, строится оптимальная в некотором смысле традиционная система управления объектом, например, САР с ПИД - регулятором.

Во-вторых, нейросеть переводится в режим обучения, работая параллельно с регулятором эталонной системы. В этом режиме нейросеть имеет, наряду с теми входами, о которых шла речь выше, для сигналов с "датчиков", характеризующих состояние и поведение объекта управления, еще один вход, куда подается правильное значение управляемой величины (выходной величины регулятора) с традиционной модели системы управления. На выходе нейросети - ошибка, разность подаваемого на вход нейросети правильного значения выходного сигнала ПИД - регулятора системы управления и полученного нейросетью.

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

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

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

Функционирование нейросети.

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

Естественно, чем больше будет таких датчиков, каналов получения информации о состоянии и поведении объекта управления, тем более сложной и более совершенной можно сделать нейросеть.

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

В этом и состоит сущность работы нейросети, заменяющей реальный регулятор.

Выше изложены принципы настройки и применения нейросети, реализованные фирмой Visual Solution в отдельно прилагаемом к программе блоке NeuralNet.

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

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

Проиллюстрировать сказанное можно на примере системы управления процессом окомкования, рассказанном автору его бывшим дипломником, инженером Кузнецовым А.А. Процесс окомкования управляется рядом САР. Но мастер окомкователя периодически наблюдает за процессом, и при необходимости, на его взгляд, что-то подкручивает в регулировках. Он опирается на свой долгий опыт, который и позволяет ему оптимизировать ход процесса. Однако если попытаться спросить, что именно делает мастер, и главное, какими параметрами видимого хода процесса он руководствуется при его оптимизации, то это введет его в затруднение, он не сможет объяснить достаточно четко, чтобы учесть это в регуляторе. И действительно, мастер обеспечивает оптимальность процесса, но не является его исследователем в том смысле, что в состоянии изложить результаты в четкой, м.б. даже аналитической форме. Вот тут-то и могла бы найти применение нейросеть общего вида. Она бы управляла процессом, а когда мастер вмешивался бы в ход управления, училась бы его действиям, опираясь и на информацию от множества датчиков, отображающих ход процесса. Так, в конечном итоге, обучив систему, мастер мог бы отвлечься на более длительный срок от наблюдения за ходом процесса управления.

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

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

4.6.2. Блок neuralNet программы Vissim

Фирма Visual Solution выпустила дополнение к программе Vissim в виде блока, реализующего нейросеть [8]. Правда, последнее время этот блок не рекламируется, но для достижения методических целей данной работы он вполне подходит, поэтому приведем порядок работы с ним.

Итак, прежде всего, кроме 6-й или 7-й версий Vissim'а, можно ознакомительных (setupVisSimWeb60.exe), полноценно работающих 2 месяца, а затем перестающих сохранять построенные модели, нужно обзавестись файлом setupNeuralNet50.exe, полезно также найти описание NeuralNet.pdf.

Некоторое время назад эти файлы, как и ознакомительные версии других программ, в том числе собственно Vissim'а (setupVisSimWeb60.exe), были в свободном доступе на ftp-сервере фирмы Visual Solution: ftp://ftp.vissim.com/pub/software/ . Однако последнее время доступ к этому ресурсу почему-то закрыт. Одна из возможностей, это, по-видимому, обратиться к фирме напрямую: http://vissim.com/downloads/demos.html

Установив Vissim, следует запустить файл установки блока нейросети setupNeuralNet50.exe и после установки убедиться, что блок нейросети присоединен к Vissim'у:

gif-file, 20KB

Рис. 4.6.2.1. Проверка наличия блока нейросети в библиотеке блоков Vissim'а

Если блок neuralNet в библиотеке блоков отсутствует, то следует добавить его вручную:

gif-file, 20KB

Рис. 4.6.2.2. Добавление библиотечного файла NNET32.DLL в состав блоков Vissim'а. При отсутствии строки C\VisSim60\NNET32.DLL, щелкнуть дважды по многоточию и в окне диалога указать путь к файлу NNET32.DLL, который при установке по умолчанию помещается в папку с установленной программой Vissim

gif-file, 20KB

Рис. 4.6.2.3. Свойства блока Neural Net нейросети Vissim'а. В исходном состоянии блок нейросети имеет только один вход, а также вход t1, используемый в режиме обучения. Для настройки нужно, как минимум, задать число входов, и указать путь к созданному заранее пустому файлу Блокнота, в котором расширение заменить с .txt на .net (кнопка Find - окно диалога). Этот файл используется для записи в него значений весовых коэффициентов, вычисляемых в процессе обучения нейросети. Кроме того, в режиме обучения следует установить галочки в полях Save Weight at Sim End (Сохранить весовые коэффициенты после обучения) и Learn (Обучение). А в режиме управления нужно убрать галочки из полей Learn (Обучение) и Save Weight at Sim End и установить галочку в поле Read Weight at Sim Start (Прочитать веса при запуске моделирования). Число Neurons/Layer указывает число слоев (матриц весовых коэффициентов) нейросети. Чем больше слоев, тем сложнее модель, но тем дольше она обучается

Далее можно построить эталонную динамическую модель, например регулятора, поведение которой будет служить эталоном при обучении нейросети. Присоединить выход эталонного объекта к обучающему входу t1 нейросети, подать на вход нейросети входные величины регулятора, а также, что не обязательно, но полезно, значения величин, характеризующих объект управления, например управляемую величину и ее производные, если они вычисляются (определяются в модели). Кроме того, подать на входы нейросети, например, значения параметров модели, постоянных и тех, которые могут изменяться в процессе управления, и сигнал задания для следящих систем, и провести обучение нейросети. Для этого следует задавать различные значения параметров и виды задания как функций времени в во всевозможных комбинациях.

В режиме обучения Vissim подбирает значения весовых коэффициентов, многократно пересчитывая выходной сигнал, с тем, чтобы обеспечить минимум ошибки, расхождения сигнала, получаемого нейросетью с обучающим сигналом. Для этого перед запуском обучения следует установить автозапуск: Simulate - Simulation Properties - Auto Restart.

Проведя обучение, которое может длиться секунды, минуты и даже часы, можно перейти в режим моделирования нейросетью реального устройства, в частности регулятора. Для этого нужно убрать галочки:

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

4.6.3. Пример из приложения программы Vissim
Обучение нейросети и управление с ее помощью
обратным маятником

4.6.3, а. Исходная модель

Один из немногочисленных примеров применения нейросети, появляющихся после установки блока neuralNet в Vissim'е, это нейросеть, управляющая обратным маятником. Такая система управления выводит маятник наверх (файл cartpole.vsm в папке C:\VisSim60\Examples\neural net). Запустив его можно увидеть следующее:

gif-file, 20KB

Рис. 4.6.3.1. Внешний вид модели систем управления обратным маятником. Имеются инструкции по обучению нейросети и запуску управления маятником нейросетью. В качестве эталонной используется система управления маятником на основе ПД - регуляторов, переводящая маятник наверх при начальных его наклонах не более 0.5 рад. Кнопка CtrlSelect выключена (off), что соответствует режиму управления моделью обратного маятника посредством нейросети, исполняющей функции регулятора

Примечание. Кроме названной модели управления обратным мятником в примерах моделей нейросетей в Vissim'е есть еще две замечательных и характерных модели: модель логического блока, отличающаяся своей простотой и прозрачностью, а также восхитительная модель предсказания значений индекса Доу-Джонса, которая, правда, при ближайшем рассмотрении предсказывает последующее значение индекса примерно такое, какое есть сейчас. Так предсказывали погоду метеорологи несколько десятков лет назад, прогнозируя на завтра примерно такую погоду, какая есть сегодня. Поскольку резкие изменения погоды происходят сравнительно редко, то при такой стратегии процент правильных предсказаний достигал 75% и более :-).

Рассмотрим модель и режимы ее работы подробнее.

4.6.3, б. Работа эталонной системы управления

Для начала проверим, как работает эталонная модель САР выведения маятника наверх с помощью динамического ПД - регулятора:

gif-file, 20KB

Рис. 4.6.3.2. Динамическое управление обратным маятником посредством ПД - регулятора. Оригинальная схема дополнена двумя осциллографами и поясняющими надписями. Система управления способна довольно эффективно и плавно выводить маятник наверх за 2 сек и возвращать тележку в начало координат за 10 сек. Основная часть переходного процесса по выводу маятника наверх заканчивается к середине первой секунды, а вывода тележки в начало координат - к четвертой (файл 090718_Dinamic_Contr_cartpole.vsm в папке Neural_Net Приложения)

Судя по структуре модели обратного маятника, она построена на основе уравнений [11,12]:


(4.6.3.1)

gif-file, 20KB

Обозначения в формулах практически те же, что и ранее, угол отклонения маятника отсчитывается от его верхнего положения, по часовой стрелке, l - половина длины стержня, масса которого распределена по нему равномерно, что эквивалентно маятнику такой длины l, с массой, сконцентрированной на его конце.

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

Таким образом, система управления на основе ПД - регулятора работает правильно и поэтому может служить в качестве эталонной при обучении нейросети.

4.6.3, в. Обучение нейросети

Для того, чтобы не запутаться в дальнейшем, имеет смысл сохранить файл предыдущей модели с новым названием (файл Dinamic_Contr_cartpole_Learn.vsm в Приложении), эта модель будет функционировать в режиме обучения.

Настройки свойств нейросети и параметров моделирования следующие:

gif-file, 20KB

Рис. 4.6.3.3. Окно свойств блока нейросети в режиме обучения слева. В качестве весового задан только что созданный пустой текстовый файл My_Weights_NNet.net, в котором расширение с .txt заменено на .net. Путь к файлу указывается нажатием кнопки Find (Найти), посмотреть его содержимое, он на данный момент пустой, можно, щелкнув по кнопке Browse (Просмотр). Справа окно свойств и параметров моделирования в режиме обучения

Сохранить изменения в файле модели Dinamic_Contr_cartpole_Learn.vsm и запустить обучение щелчком по зеленой кнопке Пуск. Прореженная анимация ниже дает представление о работе модели:

gif-file, 20KB

Рис. 4.6.3.4 (прореженная анимация, 16 кадров). Обучение нейросети. Необходимо задавать разные значения начального отклонения маятника и дожидаться, пока ошибка (верхняя осциллограмма) не станет при каждом значении достаточно малой, например, менее 10-8. Обучение нейросети может длиться, в зависимости от ее сложности и сложности моделируемого ей объекта секунды, минуты, часы. В данном случае разработчики рекомендуют обучать нейросеть 20 минут, но на более мощном компьютере это время можно значительно сократить

В результате обучения будет получен файл коэффициентов веса, содержимое которого можно посмотреть, щелкнув по кнопке Browse окна свойств блока нейросети (рис. 4.6.3.3.):

gif-file, 20KB

Рис. 4.6.3.5. Весовые коэффициенты нейросети после некоторого периода ее обучения

Примечание. В папке Приложения Inv_Pend_Model_Archiv\Vissim_6_Trial\Neural_Net помещен архив Исходная_Копия_cp.zip оригинального файла весов cp.net из примера, на случай, если он будет нечаянно испорчен.

4.6.3, г. Управление обратным маятником регулятором на основе нейросети

Чтобы не путать различные режимы работы нейросети, целесообразно сохранить файл с обученной нейросетью с новым названием NNet_Control_cartpole.vsm, с тем, чтобы уже в нем задать настройки для управления маятником посредством нейросети.

Для перевода в режим управления, в котором нейросеть будет использоваться в роли регулятора, аналогичного ПД - регулятору, следует выполнить следующие настройки моделирования:

gif-file, 20KB

Рис. 4.6.3.6. Для перехода из режима обучения нейросети в режим управления следует убрать галочки в полях Learn и Save Weight at Sim End и установить галочку в поле Read Weight at Sim Start

Остается запустить моделирование и посмотреть, что делает нейросеть:

gif-file, 20KB

Рис. 4.6.3.7. Нейросеть в качестве регулятора управляет обратным маятником. Как видно на второй сверху, оригинальной осциллограмме примера, нейросеть вроде бы справляется с задачей: выводит маятник наверх, но при более подробном рассмотрении, на двух осциллограммах внизу видно, что сеть работает правильно только первые три десятых секунды, устремляя маятник наверх, но затем маятник начинает уходить не туда. Увеличение времени моделирования усугубляет ситуацию

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

gif-file, 20KB

Рис. 4.6.3.8. Сеть, обученная на интервале 10 секунд даже при малом начальном угле отклонения маятника дает неустойчивую САР, толкает его не туда (файл NNet_Control_cartpole_10_sec.vsm в Приложении)

Таким образом, пример Vissim'а управления обратным маятником с помощью нейросети показывает, что можно построить нейросеть, которая на протяжении небольшого времени будет правильно осуществлять управление маятником, а с увеличением времени моделирования перестает правильно решать поставленную задачу.

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

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

5. Энергетические характеристики систем управления обратным маятником

5.1. КПД САР

Вопрос эффективности управления далеко не последний при проектировании систем управления. Определим КПД, максимальную мощность и энергию, требуемую для переведения маятника в вертикальное положение той или иной системой.

Минимальная энергия, требуемая для переведения маятника из исходного состояния в вертикальное, а также реально затрачиваемая мощность, энергия и КПД определятся в соответствии с формулами:

gif-file, 20KB

Рис. 5.1.1. Определение КПД системы приведения маятника в вертикальное положение. Если в нулевой момент времени маятник находится справа и движется вправо (угол отклонения и угловая скорость положительны), то источнику силы потребуется затратить энергию на остановку маятника и подъем его наверх. Если же при положительном начальном угле наклона маятника его угловая скорость отрицательная, т.е. он движется влево, то его кинетическая энергия помогает источнику силы в подъеме маятника наверх. Эти обстоятельства учитываются знаками начального угла наклона и начальной угловой скорости в выражении для минимально необходимой энергии. Сопротивление воздуха пропорционально квадрату скорости груза относительно воздуха. Поэтому, прежде чем определить компоненту силы сопротивления, направленную горизонтально приходится учесть и скорость движение груза по окружности, т.е. угловую скорость, поскольку она сказывается на результирующей скорости движения груза относительно воздуха. Результирующая скорость складывается из скорости движения тележки (опоры маятника) и скорости груза относительно воздуха с учетом еще и скорости ветра

Энергия, требуемая для выведения маятника из исходного состояния наверх:


(5.1.1)

gif-file, 20KB

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

Мощность и энергия, вырабатываемые источником силы, например, двигателем постоянного тока:


(5.1.2)

gif-file, 20KB

КПД САР определим только по мощности, требуемой на разгон и м.б. торможение тележки, без учета малых потерь в регуляторе


(5.1.3)

gif-file, 20KB

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


(5.1.4)

gif-file, 20KB

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

Второе слагаемое в идеале дает затраты энергии источника силы на поднятие груза маятника из исходного положения наверх. Это и есть полезная работа источника силы. Она равно m·g·Δh, где Δh это разность высот верхнего и начального положений маятника. Заметим, что поскольку сила прикладывается к тележке горизонтально, то ее работа на подъем груза маятника в основном производится при углах наклона маятника в районе 45 и 135 градусов. Если текущий угол наклона маятника близок к нулю или 90o, то относительная компонента силы, совершающая работу по подъему маятника, существенно уменьшается по сравнению с ее значениями при названных выше углах.

При массе тележки, равной 1 кг и массе груза, равной 1 кг, скорости ветра 10 м/сек, а также при углах, меньших 1 рад, вклад первого слагаемого в общую силу составляет примерно (90 - 95)%, второго порядка 5 % и третьего (1 - 5)%. Другими словами при названных характеристиках маятника преобладают его и тележки инерционные свойства.

5.2. Динамическое торможение

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

gif-file, 20KB

Рис. 5.1.2. Модель позволяет оценить КПД САР, рассматриваемого как отношение минимально необходимой энергии для поднятия вверх из исходного положения и состояния маятника к энергии, затрачиваемой приводом на перемещение тележки (файлы KPD_M11_Inv_Pend_Opt_Control_L_1m.vsm и KPD_M9_Inv_Pend_Control_L_1m_Din_Tormozh.vsm Приложения)

gif-file, 20KB

Рис. 5.1.3. КПД как одной, так и другой САР плавно уменьшается от 25% при малых начальных отклонениях к 1 % при 60 градусах и составляет от 1 до 10% при начальных отклонениях, больших 60 градусов

Как видно, несмотря на примитивность системы подъема маятника, способной перемещать его основание только по одной координате, в некоторых диапазонах начальных углов система позволяет даже в режиме динамического торможения получать довольно высокий КПД в 10 - 20%.

Тем не менее, КПД в один процент не очень впечатляет, это связано с тем, что рассматриваемые САР напрасно гоняют тележку туда-сюда на значительные расстояния и на это бесполезно тратится мощность и энергия. А ведь привод тележки может быть построен и так, что не только на разгон, но и на торможение тележки двигатель будет получать энергию из источника. Предварительная раскачка маятника существенно снижает диапазон и максимальную скорость перемещения тележки, что уменьшает потери энергии на ее перемещение.

Полезно посмотреть на потенциальные возможности САР с идеализированным рекуперативным приводом, который позволяет возвращать в источник кинетическую энергию тележки при ее торможении.

5.3. Рекуперативное торможение

При рекуперативном торможении кинетическая энергия тележки и маятника возвращается обратно в источник энергии, питающий двигатель. Если принять, что возвращение кинетической энергии осуществляется идеально, со 100%-ным КПД, то потери энергии при выводе маятника наверх будут определяться только сопротивлением воздуха. Это обстоятельство позволяет определить КПД САР, осуществляющей вывод маятника наверх, определяемый только внешними факторами, влиянием среды. Такое определение КПД может показать, насколько эффективен алгоритм вывода маятника наверх.

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

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

gif-file, 20KB

Рис. 5.2.1. Определение КПД САР выведения маятника наверх. Учитываются только потери энергии на преодоление сопротивления воздуха (файл KPD_Recuper_Syst_Investig.vsm - блок Определение мощности и КПД в Приложении)

В результате, модель управления обратным маятником с блоком определения КПД пример вид:

gif-file, 20KB

Рис. 5.2.2. Определение КПД САР выведения обратного маятника наверх при начальном отклонении 126 градусов (файл KPD_Recuper_Syst_Investig.vsm в Приложении)

Зависимость КПД от начального угла отклонения маятника может быть получена экспериментально, непосредственными измерениями в схеме модели рис. 5.2.2:

gif-file, 20KB

Рис. 5.2.3. Зависимость КПД САР от начального угла отклонения маятника. На границе 54 и 57 градусов происходит изменение тактики вывода маятника наверх рассматриваемым ПД - регулятором. При относительно малых углах начального отклонения, меньших 57 градусов, маятник предварительно выводится наверх, а потом, имея весьма малый наклон, медленно возвращается системой управления в начало координат. При начальных угловых отклонениях, равных или больших 57 градусов, система управления выводит маятник на угол отклонения, порядка 35 градусов, и удерживает его примерно на таком значении до уменьшения скорости тележки. Это позволяет эффективно тормозить. Затем, система регулирования медленно приводит тележку в начало координат уже при малом значении отклонения маятника. Это позволяет значительно быстрее доставить маятник в начало координат при больших его начальных угловых отклонениях

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

Этого не происходит потому, что рассматриваемая САР использует нелинейный регулятор с фиксированными настройками, такими, которые позволяют САР выводить маятник наверх из любых его положений. Но, при этом, для некоторых начальных углов такие настройки оказываются оптимальными, и КПД оказывается высоким, а для других эти настройки не являются оптимальными и КПД ниже своего потенциального значения. Такова плата, которую приходится платить за применение регулятора с фиксированными настроечными коэффициентами. Использование адаптивных систем регулирования того или иного уровня может позволить повысить КПД там, где он низок.

gif-file, 20KB

gif-file, 20KB

Рис. 5.2.4. Сравнение поведения системы выведения маятника при двух близких его начальных положениях. В первом случае, когда начальный угол отклонения составляет 129.6 градуса, САР выводит маятник наверх сразу, одним движением, и с малым переколебанием всего за 2 сек. Во втором случае, когда начальное отклонение составляет 126 градусов, т.е. изменилось вроде бы совсем не на много, та же САР слегка раскачивает его, предварительно за пару секунд поднимает его наверх до отклонения в 45 градусов, и потом, довольно долго, в течение еще 5 секунд, доводит его в вертикальное положение, поскольку в это время тормозит сильно разогнавшуюся до этого тележку. Эти дополнительные движения происходят в воздушной среде, и на преодоление ее сопротивления требуется затрачивать мощность. Эти потери и уменьшают КПД

6. Управление обратным маятником с перемещением тележки в заданную точку

В программах Mathlab и ПК "МВТУ" модели примеров систем управления, кроме выведения маятника наверх, еще и перемещают тележку в заданную точку, правда, работая в ограниченном диапазоне допустимых начальных углов и без учета сопротивления среды. Перемещение тележки можно выполнить и с помощью предложенных и рассмотренных выше САР:

gif-file, 20KB

Рис. 6.1. САР отслеживает задаваемое требуемое положение тележки (файл Mov_1_Inv_Pend_L_1m.vsm Приложения)

Для переведения опоры маятника (тележки) из исходного положения в требуемое, достаточно вычесть требуемое значение из величины смещения тележки, подаваемого по обратной связи с модели маятника на регулятор. Могло потребоваться инерционное устройство, чтобы замедлить воздействие, однако, как видно, предложенная САР работает и без того. Видно также, что значительный ветер, со скоростью 10 м/сек "сдувает" маятник на 11 см. Для устранения такого влияния, в случае необходимости можно добавить в систему управления ПИ-регулятор, установив его после имеющегося ПД - регулятора.

7. Задания для самостоятельного выполнения

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

Как было показано выше, в п.4.2, анимация поведения системы управления позволяет ясно увидеть неуклюжесть ПИД - и ПД - алгоритмов при управлении обратным маятником. А ведь эти алгоритмы весьма эффективно справляются с управлением многими технологическими объектами. Человек, выводя маятник из нижних положений, поступит вовсе не так прямолинейно как эти регуляторы. Он вначале несколькими движениями раскачает, не сходя с места, а перемещая лишь руку, маятник до таких амплитуд, когда угол отклонения маятника в верхнем положении не будет превышать 10o - 30o, и только затем перейдет к окончательному выравниванию маятника и возвращению его в начало координат. Это позволяет при весьма ограниченных величинах смещения опоры маятника (руки) переводить его в вертикальное положение за минимальное время.

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

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

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

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

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

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

Заключение

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

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

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

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

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

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

В результате проведенного заочного соревнования между примерами (но не между программами и не между разработчиками программ!) систем управления обратным маятником, приведенными в различных программах моделирования, первенство можно отдать SimulationX, второе место делят ПК "МВТУ", Vissim, и Mathlab 7. SimulationX - единственная из перечисленных, дает пример выведения маятника наверх из исходного положения грузом вниз и многих других начальных положений, хотя и эта система управления и не справляется с задачей при начальных положениях маятника, близких к горизонтальным.

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

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

Литература и Интернет

Благодарности

Автор выражает благодарность доценту Клиначеву Н.В (ЮРГУ), к.т.н. Скворцову Л.М. (МГТУ им. Баумана), профессору Колесову Ю.Б. (С-Пб_ГТУ) и профессору Родионову П.В. (Германия, Дрезден, ITI GmbH) за помощь в поиске примеров моделей обратных маятников и обсуждение их свойств.

Кроме того, автор выражает благодарность и своим студентам, толковым и не очень, которые своими затруднениями в освоении ТАУ подвигают к поиску упрощения и улучшения изложения материала.

Приложения (модели, построенные в работе)

Загрузить архив Inv_Pend_Model_Archiv.zip (1.18 МБ) с моделями обратного маятника и систем управления им в составе:

Папка Маткад_10 в составе:

Папка MVS в составе:

Папка Vissim_6 в составе:


28.07.2009