Физический перевернутый маятник INVERTED PENDULUM

 

 

В интернете есть множество моделей перевернутого маятника(inverted pendulum). Я решил остановиться на обычной тележке с прикрепленным к ней маятником.

Вот что получилось.

pendium_1

pendium_2

pendium_3

pendium_4

pendium_5

pendium_6

 

Задача — при помощи перемещений физической тележки необходимо удерживать физический маятник, на который действует сила притяжения, в вертикальном положении. Маятник нижним концом прикреплен к тележке при помощи шарнира, а тележка может с помощью привода перемещается вдоль прямой, лежащей на горизонтальной плоскости. Удержание в равновесии системы “перевернутый маятник на тележке” является классической задачей теории автоматического управления (система стабилизации). Для решения задачи балансирования маятником система управления должна получать информацию о текущем угле и угловой скорости маятника. Управление построено на Fuzzy Logic ( нечеткой логике). В этом случае одна лингвистическая переменная будет задаваться значениями угла, а другая лингвистическая переменная будет задаваться угловой скоростью маятника. Управление системой системы “перевернутый маятник на тележке” осуществляет нечеткий контроллер. Он реализован в виде системы нечеткого логического вывода типа Сугэно с двумя входами: угол наклона маятника, скорость изменения угла наклона маятника. Для лингвистической оценки входных переменных используется по семь терм с Л-, Z- и S-образными функциями принадлежности. База знаний содержит 49 правил.

Стенд состоит из физического перевернутого маятника, ШИМ-приставки, блока питания и компьютера. Принцип работы: Текущий угол и угловую скорость маятника измеряются с помощью потенциометра, на оси которого  закреплен перевернутый маятник. Сопротивление преобразуем в напряжение и на АЦП. С АЦП в цифре передаем все на компьютер, там обрабатываем, прогоняем через регулятор, и получаем число которое надо выдать исполнительный механизм. В цифре выдаем на ШИМ это число, а с него на двигатель.

 

 

Аппаратная часть лабораторной установки

 

 pendium_7

Рис. 1. Принципиальная схема ШИМ-приставки и измерителя угла маятника

На рис. 1 приведена принципиальная схема ШИМ-приставки и АЦП. ШИМ реализован на базе  микроконтроллера PIC16F84. Если на входа D0…D7 подать все нули, двигатель остановиться, а если на все подать единицу, будет крутиться с максимальной скоростью. С микроконтроллера сигнал ШИМ подается на вход специализированной микросхемы управления двигателем L293. Она преобразовывает управляющие сигналы малой мощности в токи для управления моторами.

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

Измеритель угла собран на десятиразрядном аналого-цифровом преобразователе TLC1549 (рис. 37), источнике опорного напряжения TL431 и переменном резисторе. Потенциометр угла маятника включен по схеме   делителя напряжения. Изменяя положение движка переменного резистора, можно задать любое напряжение от нуля до опорного напряжения АЦП. Подвижный вывод подключен к входу десятиразрядного АЦП последовательного приближения, что позволяет измерять напряжение с дискретностью 0,005 вольта, и частотой 40 кГц. Данные о положении движка потенциометра поступают с АЦП в цифровой форме в компьютер через LPT-порт принтера.

 

Аналого-цифровой преобразователь TLC1549 подключен непосредственно к порту принтера без каких либо коммутирующих устройств, что позволяет проводить сканирование положения и скорость перевернутого маятника с частотой один килогерц. LPT порт управляется с помощью драйвера взятого с  http://progrex.narod.ru.

 

Описание интерфейса ПО

При запуске программы открывается панель регулятора рис.2.

pendium_8

Рис.2. Главное окно САР перевернутого маятника

Вверху слева находятся термы отклонения и скорости отклонений фаззификатора, а так же их степень принадлежности (1). Правее отображена база знаний (панель 4), в которой заданы термы дефаззификатора. Во время работы регулятора ячейки, которые в данный момент используются, подсвечены цветом и в них отображается численные значение степени принадлежности данного терма. Панели (2) отображается выход дефаззификатора, там же задаются числовые значения терм дефаззификатора (2.3), после ввода которых нужно подтвердить нажатием кнопки «ОК» (2.1). При работе регулятора в ячейках (2.2), отображается числовые значения степень принадлежности тех терм, которые активизирован (они подсвечены желтым цветом). Панель (5) «текущие измерения» отображает численные значения текущего угла перевернутого маятника в градусах, а также ошибку отклонения от вертикального положения в текущий  момент времени в градусах и скорость отклонения перевернутого маятника. Там же отображается выход регулятора (управляющее воздействие). На панели (3) находятся кнопки управления. Кнопка «старт» включает питание двигателя тележки. В панели «задание» задаётся угол, который нужно удерживать. Чтобы задать  термы фаззификатора нужно нажать кнопку «настр.терм», при этом откроется панель «термы». Там задаются диапазоны терм (1) и (2). Все изменения нужно подтвердить кнопкой «ОК».

pendium_9

Рис. 3. Панель настройки термов фаззификатора

Для запуска лабораторной установки необходимо:

— найти вертикальное положение маятника, которое не равно нулю и занести его значение  в панель «задание»,  подтвердив кнопкой «ОК».

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

— задать или загрузить из файла термы фаззификатора и дефаззификатора и диапазон их изменения. Любые проведенные изменения предыдущей информации  нужно подтвердить кнопкой «OK»;

— нажать кнопку «старт».

После нажатия кнопки «старт» начнётся регулирование.

Исходники здесь telezhka_5_term

telezhka_7_term

и прога тестирования тележки.  upravlenie

видео   telega_1  telega_2

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *