Алгоритмы движения робота Lego Mindstorms NXT по черной линии с использованием пропорционально дифференциального регулятора

Разработка концепции экстремальной нечеткой системы автоматической... Андреев С.М., Парсункин Б.Н., Головко Н.А. идр.

но уменьшается, чтобы дать установиться предыдущему заданию).

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

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

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

Из графиков на рис. 5 видно, что в течение 10 с после зажигания дуги система вышла в оптимум. После 25 с начался дрейф статической характеристики. Система эффективно отработала данную ситуацию и опять вышла в новое положение оптимального значения тока дуги.

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

Данную систему можно рекомендовать к приме-

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

Список литературы

1. Казакевич В.В., Родов А.Б. Системы автоматической оптимизации. М.: Энергия, 1977. 288 с.

2. Электрические промышленные печи. Д/говыепечи и установки специального нагрева / под ред. А.Д. Свенчанский. М.: Энергоиздат, 1981. 296 с.

3. Лапшин И. В. Автоматизация технологических процессов ду говой сталеплавильной печи. М.: МИСиС, 2002. 157 с.

4. Парсунк^н Б. Н., Бушманова М. В., Андреев С. М. Расчеты систем автоматической оптимизации управлениятехнологическими процессами в металлургии Магнитогорск: МГТУ им. Г. И. Носова, 2003. 267 с.

5. Kecman V. Learning and Soft Computing: support vector machines, neural networks and fuzzy logic models. The MIT Press, 2001. P. 567.

6. Passino K. M., Yurkovich S. Fuzzy Control Addison-Wesley. 1997. P. 522.

7. РутковскаяД., Пилиньский М., РутковскийЛ. Нейронные сети, генетические алгоритмы и нечеткие системы. М.: «Горячая линия Телеком», 2004. 452 с.

8. Прикладные нечеткие системы / псдред. Т. Тэрано, К. Асаи. К. Сугена М.: Мир, 1993. 368 с.

Bibliography

1. Kazakevich V.V., Rodov A.B. Autimatic optimization systems. M.: Energy 1977. 288 p.

2. Industrial electric furnaces. Arc furnances and special heatings installations / ed. Svenchansky. M.: Energoizdat 1981. 296 p.

3. Lapshin I. V. Arc furnance technological process automation. M.: MISIS, 2002. 157 p.

4. Parsunkin B.N., Bushmanova M.V., Andreev S.M. Metallurgiacal process automatic optimization system consideration. Magnitogorsk: MGTU of G.I. Nosov 2003. 267 p.

5. Kecman V. Learning and Soft Computing: support vector machines, neural networks and fuzzy logic models. The MIT Press, 2001. 567 p.

6. Passino K. M., Yurkovich S. Fuzzy Control. Addison-Wesley. 1997. 522 p.

7. Rutkovskaya D., Pilinsky M., Rutkovsky L. Neural nets, genetic algorithms and fuzzy sustems. M.: «Goryachaya liniya - Telecom». 2004. 452 p.

8. Applied fuzzy systems / ed. T. Terano, KAsai, KSugena M: Mir, 1993. 368 p.

УДК 621.865.8 Литвин A.B.

АЛГОРИТМЫ ДВИЖЕНИЯ РОБОТА LEGO MINDSTORMS NXT ПО ЧЕРНОЙ ЛИНИИ С ИСПОЛЬЗОВАНИЕМ ПРОПОРЦИОНАЛЬНО-ДИФФЕРЕНЦИАЛЬНОГО РЕГУЛЯТОРА

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

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

технике. Мы остановим свое внимание на модели робота Lego Mindstorms NXT и попробуем описать возможные алгоритмы и инструкции по выполнению этого задания. Данные алгоритмы также подойдут и к более устаревшей модели роботов Lego Mindstorms RCX, но в силу высокой погрешности используемых в наборах датчиков алгоритмы не дадут такого эффекта, как при использовании оборудования NXT. Как известно, каждый набор Lego Mindstorms NXT оснащен специальным датчиком освещенности, который заменяет роботу «глаза». Имеет смысл немного подробнее остановиться на принципе работы данного датчика (см. рисунок). Датчик работает в двух режимах

1. Фиксирует общую освещенность (окружающей обстановки). Используя шины данных, блок может передавать текущие параметры освещенности и логическую команду («истина»/«ложь») в зависимости от того,

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

Точка запуска задается бегунком или вводом числового значения в окно ввода. Чтобы указать диапазон (выше или ниже точки запуска), в котором будет генерироваться сигнал «истина», используются селективные кнопки или выпадающее меню.

2. Регистрация фотоэлементом собственного отраженного света. При установке параметра опции «Включить освещение» («Generate Light») датчик освещенности включит свой собственный небольшой источник света и обнаружит свет при его отражении. Эта функция оказывается крайне полезной в сложных условиях освещенности, например в комнатах с очень ярким освещением. Эта функция также позволяет использовать фотоэлемент в качестве дальномера на небольших расстояниях

Существует несколько подждов к решению поставленной нами задачи:

1. Линейные алгоритмы, задания векгорадвижения робота без использования памяти самого процессора.

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

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

Р = D2+

Видит человек

Видит робот Особенности датчика освещения

где 01 - показания датчика освещения на белой поверхности, 02 - показания датчика освещения на черной поверхности.

Иными словами, мы фиксируем середину между черным и белым, которой, как правило, является граница черной и белой линии. В том случае, если порог будет задан в программе как константное значение, мы получаем невыполнение поставленной намизадачи приусловии изменения освещенности в помещении после того, как были произведены замеры показаний датчика. Для устранения данной проблемы рекомендуется задавать порогкакпеременноезначения, которое сможет перезаписать сам процессор в ну жный момент, т.е. при запуске соответствующей программы необждимо установить датчик освещения таким образом, чтобы его луч был направлен в центр черной линии. Смысл алгоритма заключается в том, что при включении процессор снимает показания с датчика освещения (который в этот момент направлен на черную линию) и записывает показания в переменную Ро1^. Как доказано лабораторным экспериментом, разница в показаниях датчика освещения на черной поверхности и на белой отличается в среднем на 16% (01-02). Зная это, из формулы (1) можно вывести, что порогравенсуммезначенияпеременной Ро1^ и половине разности между показаниями, т.е. 8%.

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

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

1. Метод избегания линии.

2. Метод избегания белого цвета.

В основе первого метода лежит идея расположения датчиков освещения таким образом, чтобы черная линия прождала между датчиков, не пересекая луч определения светимости. Соответственно в случае срабатывания порога светимости правым датчиком выравниваем робота вправо до тех пор, пока он не зафиксирует светимость белого цвета. Аналогичная ситуация применима и для срабатывания левого датчика. В зависимости от показаний датчика при помощи алгоритмической структуры ветвления получаем 4 возможные ситуации (см. таблицу).

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

Алгоритмы движения робота Lego Mindstorms NXT по черной линии с использованием.

Литвин А.В.

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

Все вышеперечисленные способы имеют общие недостатки:

1. За счет частых виляний робота увеличивается время выполнения задания.

2. При внезапном изменении освещенности в помещении возникает вероятность сбоя робота.

3. Данные алгоритмы, в принципе, не применимы к сложным траекториям, таким как угол меньший 90°, спираль, неполные перекрестки и т.д.

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

Движение по черной линии с одним датчиком освещения

Релейный регулятор

Определить среднее значение grey между черным и белым. Это будет то состояние датчика освещенности s1, к которому должна стремиться система. Если значение датчика s1 больше, чем grey, то мы на белом и надо двигаться вправо. Иначе надо двигаться влево.

Пропорциональный регулятор

Управляющее воздействие - отклонение изменяемой величины от ее «нормального» значения. Для черной линии это разница (s1 - grey).

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

UP = k * (s1 - grey).

Здесь k - коэффициент усиления регулятора.

Алгоритм

1. Определить среднее значение grey между черным и белым. Это будет то состояние датчика освещенности s1, к которому должна стремиться система.

2. while

{up=k*(s1-grey);

motor[MotorB]=50+up;

motor[MotorC]=50-up;

wait1msec(1);}

Движение по границе черного и белого с помо-щью ПД-регулятора

• ud=k*(S1-Sold)/At,

где S1 - текущие показания датчика; Sold - показания на предыдущем шаге.

• Дифференциальная составляющая компенсирует пропорциональную upd = up+ud

upd = k1*

Можно показать, что для устойчивого достижения цели коэффициент k2 при дифференциальной составляющей должен превышать k1.

Кубический регулятор:

• Рассчитывается отклонение

е=81^геу

• Возводится в куб ик=к2*(е*е*е), где к2к0.01

• Управляющее воздействие: пропорциональное + кубическое

ирк= к1*е + к2*е*е*е

Коэффициент к2 при кубической составляющей должен быть такой, чтобы при максимальном отклонении получать величину, сравнимую с мощностью моторов (100). Коэффициент к1 может быть невелик.

Пропорциональный регулятор: движение по линии с двумя датчиками:

• при двух белых едет прямо,

• при одном черном поворачивает в сторону черного,

• при двух черных едет прямо.

• Используем разность показаний.

• Датчики могут быть откалиброваны по-разному.

• Рассчитывается разность отклонений.

• Начальные значения на одноцветной поверхности.

Алгоритм:

1ей=з1;

^1§Ь1=82;

%Ме

{ ир=к1*(^1-1ей)-^2^М)); Мо1:ог[Мо1:огВ]=50+ир;

Мо1:ог[Мо1:огС]=50-ир;

%^ай1т8ес(1);}

ПД-регулятор: движение по линии с двумя датчиками.

Идея: Запоминаем отклонение в переменной е, предыдущее в переменной еоИ Алгоритм:

1ей=з1; right=s2; еоЫ=0;

%Ме

{ е=^1-1ей)-^2^М); и=к1*е+к2*(е-еоЫ); еоИ=е; Мо1ог[Мо1огВ]=50+и; Мо1ог[Мо1огС]=50-и; %^ай1т8ес(1);}

Задание следования робота на двух датчиках освещения

Возможная ситуация Программное воздействие на поведение робота

Оба датчика фиксируют значение выше порога срабатывания Оба мотора прямо

Левыйдатчик фиксирует значение выше порога срабатывания, а правый ниже Левый мотор вперед, правый назад

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

Оба датчика фиксируют значение ниже порога срабатывания Оба мотора прямо

Движение по черной линии с тремя датчиками освещения:

• Плавающий коэффициент: Центральный датчик «предсказывает будущее»

• Центральный датчик калибруется на черном сеЩег=83

• Пропорциональный коэффициент зависит от его отклонения с линии к1=1+(83-сеЩег)/3

и=к1*е

Алгоритм:

1ей^1; right=s2; сеЩег^3;

%Ме

{ е=^1-1ей)-^2^М);

к1=1+^3-сеп1ег)/10;

и=к1*е;

Мо1ог[Мо1огВ]=50+и; Мо1ог[Мо1огС]=50-и; wait1msec(1);}

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

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

Список литературы

1. ГОСТ Р 51086-97. Датчики и преобразователи физических величин электронные. Термины и определения.

2. Котюк А.Ф. Датчики в современных измерениях. М.: Радио и связь. 2006.

3. ДональдКнут. Искусство программирования. Т. 1: Основные алгоритмы = The Art of Computer Programming. Vol. 1. Fundamental Algorithms. 3-е изд. М.: Вильямс, 2006. С. 720.

4. Иан Грэхем. Объектно-ориентированные методы. Принципы и практика: пер. с англ. 3-е изд. М.: Вильямс, 2004. 880 с.

5. Простой Пего - робот, следу ющий по линии. Роботы, робототех ника, микроконтроллеры. U RL:http://w w w .my robot. ru/articles/lego_line. php (дата обращения: 03.04.2011).

6. Фрайден Дж. Современные датчики: справочник / пер с англ. Ю.А. Заболотной; под ред. Е.Л. Свинцова. М.: Техносфера, 2005.

7. Типы регуляторов и законы регулирования, ПИД регуляторы. Информационный портал по АСУ ТП. URL:http://automation-system.ru/ regulyator/ty pe-of-control.html (дата обращения: 03.04.2011).

8. Алгоритмы: построение и анализ = INTRODUCTION TO ALGORITHMS / Томас X. Кормен, Чарльз И. Лейзерсон, РоналвдЛ. Ривест, Клиффорд Штайн. 2-е изд. М.: Вильямс, 2006. С. 1296.

Bibliography

1. GOST R 51086-97. Sensors and transducers of physical quantities electric. Terms and definitions. section 3 «Terms and definitions».

2. Sensors in modern measurements. Котюк A. F. Moscow. Radio and communication. 2006

3. Donald Knuth the Art of computer programming. Vol. 1. The basic algorithms = The Art of Computer Programming. Vol. 1. Fundamental Algorithms. 3-e izd. M.: Williams, 2006. WITH. 720.

4. Ian Graham. Object-oriented methods. Principles and practice / per. s angl. 3rd edition. M.: Williams, 2004. 880.

5. A Simple Lego robot, the next in line. Robots, robotics, microcontrollers. U RL: tttp://www.myrobotriVarticles/legoJine.php (date of access: 03.04.2011).

6. Modern sensors. Handbook J. Friden Translation from English YU.A. Za-bolotnoy edited by JE.L. Svintsova TECHNOSPHERE. Moscow: Technosphere, 2005.

7. Types of controllers and the laws of control, PID controllers. Information portal for the PROCESS CONTROL system. URL:http://automation-system.ru/regulyator/type-of-control.html (date of access: 03.04.2011).

8. Thomas H. Кормен, Charles I. Layzerson, Ronald L. Ривест, Clifford Stein Algorithms: construction and analysis of = INTRODUCTION TO ALGORITHMS. 2-e izd. M.: «Williams», 2006. WITH. 1296.