Dec 06, 2018 Оставить сообщение

Проектирование системы управления двигателем для манипулирования роботом

2 дизайн системного программного обеспечения

Архитектура 2.1 мкС / ОС-II

МикроСи / ОС-II - это портативное имплантируемое ПЗУ с возможностью обрезки, вытесняющее, вытесняющее ядро многозадачной операционной системы в реальном времени с высокой эффективностью выполнения, небольшой занимаемой площадью, хорошей производительностью в реальном времени и масштабируемостью Особенности, самое маленькое ядро может быть скомпилировано до 2 КБ. МикроСи / ОС-II написана на С и ассемблере. Большая часть кода написана на C. Лишь немногие из кода, тесно связанные с процессором, написаны на ассемблере. В состав µC / OS-II входят только основные функции, такие как планирование задач, управление задачами, управление временем, управление памятью, обмен данными между задачами и синхронизация.

Распределение задач по системе 2.2μC / OS-II

После успешного переноса системы µC / OS-II на STM32F107 программирование на основе µC / OS-II выполняется путем разделения большого приложения на относительно независимые задачи. Приоритет каждой задачи определен, и ядро µC / OS-II планирует и управляет этими задачами.

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

◆ Верхняя машина показывает скорость двигателя, угол поворота и время действия;

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

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

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

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

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

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

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

4 задачи управления скоростью двигателя. Для регулирования скорости двигателя в замкнутом контуре приоритет задачи устанавливается на уровне 2.

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

2.3 Запустить задачу

В основной программе перед вызовом других задач µC / OS-II сначала вызовите функцию инициализации системы OSInit (), чтобы инициализировать все переменные и структуры данных µC / OS-II; в то же время установите простую задачу OS_TaskIdle (), эта задача всегда находится в состоянии готовности; вызовите функцию OSTaskCreate (), чтобы установить задачу запуска; вызовите OSStart (), передайте управление ядру µC / OS-II, запустите многозадачность.

Задача запуска создается в основной программе, которая имеет три основные функции:

1 для инициализации системы (модуль вывода ШИМ, последовательный порт, модуль АЦП, функция прерывания уровня входного сигнала, таймер).

2 Установите количество сигнала, используемого системой.

3 установить другие задачи системы.

Наконец, вызовите OSTaskDel (OS_PRIO_SELF), чтобы удалить себя и запустить задачу в спящем режиме. Основной поток задач программы показан на рисунке 4.

2.4 Задача управления скоростью двигателя

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

2.5 рулевое управление

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

3 системы электромеханического интерфейса

Рулевой механизм робота состоит из редуктора 30: 1, подключенного к двигателю постоянного тока. Датчик абсолютного положения подключается к рулевому механизму и посылает сигнал угла поворота рулевого механизма на плату управления привода. Два вала переднего колеса робота соединены между собой штоком трансмиссии. Один из валов соединен с рулевым механизмом с помощью приводного ремня, так что, когда рулевое колесо вращается, приводной ремень приводит в движение тягу для обеспечения синхронного вращения двух передних колес. Мотор заднего привода представляет собой двигатель постоянного тока, который напрямую подключен к инкрементальному энкодеру. После уменьшения передаточного числа редуктором 25: 1 заднее колесо приводится в движение механическим дифференциалом. Сигналы от инкрементного датчика также отправляются на плату управления привода. Структура электромеханической системы показана на рисунке 7.

Заключение

В этой статье реализована конструкция оборудования двигателя и сервоконтроллера робота-манипулятора. Операционная система реального времени µC / OS-II успешно встроена в STM32F107, и эксперимент по замкнутому контуру скорости двигателя и рулевого механизма завершен. Используя характеристики многоцелевой производительности в режиме реального времени основного контроллера Cortex-M3 и системы µC / OS-II, он обеспечивает программную и аппаратную основу для последующего захвата видеоизображения робота и отслеживания навигации. Если существующий алгоритм PI будет улучшен, а скорость двигателя и текущее управление с двойным замкнутым контуром могут быть реализованы, характеристики двигателя робота будут лучше, а перспективы применения робота-манипулятора будут шире.



Отправить запрос

whatsapp

teams

Отправить по электронной почте

Запрос