Материал: Разработка автоматизированного мобильного робота

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Статор (англ. stator,от лат. sto -стою) - это неподвижная часть электрической машины, взаимодействующая с подвижной частью - ротором. [10]

Ротор (от лат. roto - вращаться) - это вращающаяся часть электрического двигателя. [10]

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

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

Рисунок 11 - Графитовые щетки

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

Щётка - неподвижный контакт (обычно графитовый или медно-графитовый).

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

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

Основные формулы, используемые при управлении ДПТ:

Скорость двигателя:

 (2.8)

где, U - подводимое к обмотке якоря напряжение,

I - ток обмотки якоря,

R - сопротивление цепи якоря,

C - конструктивная постоянная,

Ф - поток, создаваемый обмоткой возбуждения.

Крутящий момент, развиваемый двигателем с независимым (параллельным) возбуждением, пропорционален току в обмотке якоря (ротора) (для двигателей последовательного возбуждения - момент приближённо пропорционален квадрату тока, так как поток пропорционален почти току):

 (2.9)

Противо ЭДС в обмотках якоря пропорциональна угловой частоте вращения ротора b при постоянном потоке возбуждения Φ:

 (2.10)

где,  - коэффициент ЭДС двигателя,

 - угловая скорость вращения ротора.

Общие способы управления ДПТ:

)        изменение напряжения подводимого к обмотке якоря;

)        введение добавочного сопротивления в цепь якоря;

)        изменение потока. [4]

.2 Принцип действия сервопривода

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

Последовательность действий сервопривода:

)        сервопривод получает на вход значение управляющего параметра (например, угол поворота);

)        блок управления сравнивает это значение со значением на своём датчике;

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

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

Чтобы преобразовать электричество в механический поворот, необходим электромотор. Однако зачастую скорость вращения мотора бывает слишком большой для практического использования. Для понижения скорости используется редуктор: механизм из шестерней, передающий и преобразующий крутящий момент (см. рисунок 12).

Рисунок 12 - Составная часть сервоприводов

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

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

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

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

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

Рисунок 13 - Импульсы постоянной частоты и переменной ширины

Чаще всего в сервомоторах импульсы производятся с частотой 50 Гц. Это значит, что импульс испускается и принимается раз в 20 мс. Обычно при этом длительность импульса в 1520 мкс означает, что сервопривод должен занять среднее положение. Увеличение или уменьшение длины импульса заставит сервопривод повернуться по часовой или против часовой стрелки соответственно. При этом существуют верхняя и нижняя границы длительности импульса. В "библиотеке" "Servo.ch" для программирования по умолчанию выставлены следующие значения длин импульса: 544 мкс - для 0° и 2400 мкс - для 180°.

Для управления сервоприводами используется ШИМ модуляция. В англоязычных странах корректным термином является - "PDM" (Pulse Duration Modulation). В нём крайне важна длина импульсов и не так важна частота их появления. 50 Гц - это норма, но сервопривод будет работать корректно и при 40, и при 60 Гц. Единственное, что нужно при этом иметь в виду - это то, что при сильном уменьшении частоты он может работать рывками и на пониженной мощности, а при сильном завышении частоты (например, 100 Гц) может перегреться и выйти из строя.

Рисунок 14 - Действие сил на плечо сервопривода

Момент силы, или крутящий момент - векторная физическая величина, равная произведению радиус-вектора, проведенного от оси вращения к точке приложения силы, на вектор этой силы (см. рисунок 14). Характеризует вращательное действие силы на твёрдое тело, это показывает насколько тяжёлый груз сервопривод способен удержать в покое на рычаге заданной длины. Если крутящий момент сервопривода равен 5 кг∙см, то это значит, что сервопривод удержит на весу в горизонтальном положении рычаг длины 1 см, на свободный конец которого подвесили 5 кг. Или, что эквивалентно, рычаг длины 5 см, к которому подвесили 1 кг.

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

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

Рисунок 15 - Тип сигнала сервопривода

Вместо специальной микросхемы аналогового сервопривода у цифрового аналога можно заметить на плате микропроцессор, который принимает импульсы, анализирует их и управляет мотором. Таким образом, в физическом исполнении отличие лишь в способе обработки импульсов и управлении мотором. [7]

3. Программирование микроконтроллера

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

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

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

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

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

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

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

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

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

.1 Концепция программирования

Программирование ведется целиком через собственную программную оболочку (IDE), бесплатно доступную с сайта Ардуино. В этой оболочке имеется текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Оболочка написана на "Java" на основе проекта "Processing", работает под "Windows", "Mac OS X" и "Linux". [9]

3.2 Язык программирования


Язык программирования Ардуино является стандартным C++ (используется компилятор "AVR-GCC") с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.

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

Обязательную в C++ функцию "main()" препроцессор Ардуино создает сам, вставляя туда необходимые "черновые" действия. Программист должен написать две обязательные для Ардуино функции "setup()" и "loop()". Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле.

В текст своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых библиотек. Эти заголовочные файлы добавит препроцессор Ардуино в соответствии с конфигурацией проекта. Менеджер проекта "Arduino IDE" имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге "IDE". При этом название библиотеки добавляется в список библиотек в меню "IDE". Программист отмечает нужные библиотеки и они вносятся в список компиляции. "Arduino IDE" не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск проблем.

Простейшый програмный код состоит из двух функций:

а)      "setup()": функция вызывается однократно при старте микроконтроллера.

б)      "loop()": функция вызывается после "setup()" в бесконечном цикле все время работы микроконтроллера.

Все используемые в примере функции являются библиотечными. В комплекте "Arduino IDE" имеется множество примеров программ. Существует перевод документации по "Arduino" на русский язык. Программирование осуществляется на высокоуровневых языках программирования а точнее на языке "Wiring" который обладает нужным набором библиотек для создания программной части большинства устройств основанного на микроконтроллерах "ATmega32u4".

.2.1 Загрузка программы в микроконтроллер

Закачка программы в микроконтроллер Ардуино происходит через предварительно запрограммированный специальный загрузчик (все микроконтроллеры от Ардуино продаются с этим загрузчиком). Загрузчик создан на основе микроконтроллера "Atmel AVR Application Note AN109". Загрузчик может работать через интерфейсы "RS-232", "USB" или "Ethernet" в зависимости от состава периферии конкретной процессорной платы. В некоторых вариантах, таких как "Arduino Mini" или неофициальной "Boarduino", для программирования требуется отдельный переходник.