Русский   English
ДонНТУ   Портал магістрів

Реферат за темою випускної роботи

Зміст

Вступ

За останні кілька років дуже стрімко розвивається мікропроцесорна техніка, з'являються нові рішення, що дозволяють розробляти більш ефективні системи управління. Крім цього, відбувається здешевлення силової електроніки і мікроконтролерів, вони стають більш доступними для застосування в різних проектах, відкриваються великі можливості для розробки нових систем управління електроприводом, а також для удосконалення та автоматизації вже існуючих систем.

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

Прикладом сучасної автоматичної системи є роботи–маніпулятори, які знайшли широке застосування в промисловості, а також в небезпечних або недоступних для людини місцях.

У даній роботі розглядається триланковий робот–маніпулятор, встановлений на рухому основу, що дає йому ряд переваг.

Проектування робота здійснювалося за допомогою програми SolidWorks, що дозволяє створювати збірки і розраховувати масогабаритні показники з урахуванням матеріалу, з якого виготовлені деталі. Моделювання рухів маніпулятора з метою отримання даних про необхідні моменти, що діють в зчленуваннях, проводилося в програмному пакеті MATLAB в додатку SimMechanics.

Управління роботом здійснюється за допомогою плати STM32F4. Система управління була побудована в додатку Waijung Blockset, що дозволяє створювати і перетворювати моделі, зроблені за допомогою звичайних Simulink–блоків в програмний код, що працює на мікроконтролері STM32.

У даній роботі буде також розглянута операційна система реального часу MBED OS, призначена для створення багатопотокових програм на 32–бітних мікроконтролерах.

1. Актуальність теми

На даний момент наземні мобільні роботи–маніпулятори є дуже затребуваними в різних сферах діяльності. Будучи, по суті, приймачами електричної енергії вони дозволяють проводити різноманітні види робіт в небезпечних або важкодоступних для людини місцях. При цьому маніпулятори є найважливішими частинами подібних мобільних платформ.

2. Мета і задачі дослідження та заплановані результати

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

3. Маніпулятор. Загальні відомості

До недавнього часу безліч виробничих робіт здійснювалося за допомогою спеціальних машин, сконструйованих для виконання тільки одного конкретного завдання, в зв'язку з чим змінити технологію виробництва було досить складно і дорого. Рішенням стало впровадження програмованих багатофункціональних маніпуляторів, які призначені для відпрацювання заздалегідь заданої послідовності переміщень, яку можна змінити за короткий термін[1-3].

Сучасний робот-маніпулятор складається з декількох твердих ланок, які з'єднані різними типами зчленувань (обертальними або поступальними), як це показано на малюнку 3.1.

Конструкція типового робота–маніпулятора

Рисунок 3.1 — Конструкція типового робота–маніпулятора

Дана конструкція з одного боку жорстко пов'язана з підставою (воно може бути нерухомим або рухомим), а з іншого боку до неї прикріплений робочий інструмент (схват), який необхідний для взаємодії з об'єктами. Цей вузол зап'ястя в ідеалі здатний здійснювати три кутових переміщення, які називають тангажем, рисканням і креном.

Така конструкція дозволяє за допомогою руки маніпулятора забезпечити бажане положення в просторі, а за допомогою зап'ястя — необхідну орієнтацію.

4. Конструкція робота–маніпулятора

Перш ніж збирати конструкцію маніпулятора в реальності, вона була спроектована в програмному пакеті твердотільного моделювання SolidWorks. Ця програма дозволяє проводити складання окремих деталей і враховує матеріал, з якого будуть виготовлятися окремі елементи, що робить можливим автоматично розраховувати масові характеристики окремих деталей і збірок в цілому[4-5].

Розміри всіх частин конструкції маніпулятора вибираються виходячи з можливості нормальної його установки на платформу з гусеничної тягою. Габаритні розміри платформи відомі. При побудові збірки також були враховані розміри і вага встановлюваних двигунів.

Загальний вигляд отриманого маніпулятора представлений на малюнку 4.1.

Загальний вигляд маніпулятора (збірка В SolidWorks)

Рисунок 4.1 — Загальний вигляд маніпулятора (збірка В SolidWorks)

Після розробки проекту в SolidWorks маніпулятор був зібраний наживо. Більшість деталей були надруковані на 3D-принтері.

5. Визначення параметрів для вибору двигунів

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

Для цього була побудована модель маніпулятора в бібліотеці SimMechanics пакету Simulink середовища розробки Matlab. Ця бібліотека дозволяє створювати моделі різних об'єктів з урахуванням їх розмірів і фізичних властивостей, що сильно спрощує створення і моделювання складних механічних систем, так як не потрібно їх математичного опису. У роботі було використано друге покоління програми SimMechanics[6-7].

Моделювання руху маніпулятора

Рисунок 5.1 — Моделювання руху маніпулятора
(анімація: 8 кадрів, 6 циклів повторення, 147 кілобайт)

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

Структурна схема задатчика положення

Рисунок 5.2 — Структурна схема задатчика положення

В результаті моделювання вдалося отримати графіки положення, швидкості і діючих в зчленуваннях моментів.

Отримані графіки

Рисунок 5.3 — Отримані графіки

6. Кінематика робота

Завданням є визначення необхідних переміщень робота в просторі для захоплення об'єкта при відомих координатах маніпулятора і об'єкта.

Для цього необхідно вирішити пряму і зворотню задачi кінематики. Ланки маніпулятора здійснюють обертальні рухи щодо нерухомої системи координат[8].

Пряма задача кінематики зводиться до визначення координат і положення робочого інструменту в тривимірному просторі знаючи кути повороту кожного зчленування. Для опису обертального руху ланок відносно один одного існують матриці поворотів.

Зворотня задача кінематики полягає в знаходженні кутів повороту в кожному зчленуванні виходячи із заданого положення і координат робочого інструменту.

Для цього була складена матриця повороту, з якої була отримана система рівнянь.

Рішення знаходилося за допомогою пакету Matlab, зокрема функції fsolve, яка дозволяє вирішувати систему рівнянь в якій кількість змінних більша, ніж кількість самих рівнянь.

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

7. Система управління маніпулятором

Для управління маніпулятором для кожного зчленування була використана одноконтурна система регулювання положення.

Одноконтурна система регулювання положення

Рисунок 7.1 — Одноконтурна система регулювання положення

ЗП — задатчик положення, РП — регулятор положення, ШИМ — широтно–iмпульсная модуляцiя, ДП — датчик положення


Система управління була розроблена в програмному пакеті MatLab версії 2014а.Для взаємодії з контролером STM32F4 була задіяна бібліотека Waijung, яка містить безліч блоків, що дозволяють використовувати різні внутрішні функції контролера.

Управління пристроєм відбувається за допомогою смартфона на базі Android, на якому встановлений розроблений додаток. Зв'язок з пристроєм здійснюється бездротовим способом по bluetooth. Для цього на роботі встановлений bluetooth–приймач HC–05.

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

Загальна структура програми

Рисунок 7.2 — Загальна структура програми

Внутрішня будова програми буде розглянута на прикладі системи регулювання для одного зi зчленувань.

Для третього зчленування була побудована одноконтурна система регулювання положення[9]. Для відстеження кута повороту використовується резистивний датчик. Оскільки дані про положення вала не обнуляються при відключенні контролера, немає необхідності в початковому позиціонуванні. Тому в підсистемах задатчика положення і формування сигналу зворотного зв'язку відсутня можливість скидання.

Структура контуру регулювання

Рисунок 7.3 — Структура контуру регулювання

В даному контурі використовується ПI–регулятор положення, так як з–за перешкод, що наводяться в сигналі зворотного зв'язку, використовуючи тільки пропорційний регулятор не вдалося досягти прийнятної точності при стійкій роботі.

Зворотній зв'язок забезпечується за допомогою потенціометра. При обертанні вала двигуна, движок потенціометра також обертається, змінюючи падіння напруги на своїх висновках. Це падіння напруги заводиться на АЦП контролера. Для роботи з АЦП використовується блок Regular ADC, в параметрах якого потрібно вказати номер виводу, до якого підключен датчик.

Сигнал з виходу блоку Regular ADC масштабується в радіани за допомогою блоку Lookup Table. Потім проходить через фільтр, щоб прибрати високочастотні перешкоди, наведені магнітними полями. Роль фільтра грає апериодична ланка.

Графіки відпрацювання завдання для цієї ланки представлені на рисунку 7.4.

Відпрацювання завдання третім двигуном

Рисунок 7.4 — Відпрацювання завдання третім двигуном

Таким чином, використовуючи ПІ–регулятор положення вдалося домогтися бажаної точності відпрацювання завдання.

8. Огляд операційної системи реального часу MBED OS

MBED OS є операційною системою реального часу (RTOS), а значить дозволяє створювати в програмі безліч різних потоків, які будуть виконуватися квазіодновременно[10]. Дуже часто в розробці програм існує необхідність виконання декількох завдань паралельно один одному. Ці завдання можуть як не мати між собою ніякого зв'язку, так і залежати один від одного. Наприклад, коли необхідно, щоб певна функція виконалася тільки за умови, що інша функція закінчила своє виконання.

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

В операційній системі MBED для створення багатопотокової програми користувач повинен лише створити потрібну кількість потоків, вказати умови їх виконання і написати функції, що виконуються в кожному потоці. Все інше виконає обробник потоків, вбудований в операційну систему. Користувачеві буде здаватися, що написані ним функції виконуються одночасно (насправді це не зовсім так, тому що в контролері присутній тільки одне ядро, яке фізично не може виконувати більше однієї операції за одиницю часу).

Ще однією перевагою такого підходу є те, що бібліотека Mbed написана на C++, створення програми можливе як на мові C, так і на C++, а значить можна писати код в об'єктно-орієнтованій парадигмі.

Створити програму за допомогою фреймворку Mbed можна різними способами. Найпростіший — це зареєструватися на офіційному сайті ARM Mbed, після чого буде доступний онлайн редактор коду.

Таким чином, написання найпростіших програм можливо прямо в браузері. Компіляція коду відбувається в онлайн режимі. Після завершення процесу компіляції буде сформований файл прошивки в форматі bin, який можна завантажити в контролер.

Даний спосіб має низку істотних недоліків. Список запропонованих налагоджувальних плат невеликий. У ньому перераховані тільки плати, які офіційно підтримують Mbed. У користувача немає можливості редагувати внутрішні бібліотеки фреймворку, змінювати вихідні файли Mbed. У деяких проектах це необхідно. Крім цього, в онлайн редакторі доступні не всі функції, які є в Mbed.

Для того, щоб уникнути цих недоліків необхідно використовувати оффлайн компілятор і середовище розробки (IDE).

На відміну від інших операційних систем, Mbed знаходиться на стадії активного розвитку. На офіційному сайті присутня детальна інформація за всіма доступними функціями системи з прикладами їх використання. Вже сформувалося досить велика спільнота, через що у відкритому доступі є величезна кількість різних написаних бібліотек під всілякі пристрої.

Висновки

В ході виконання роботи була розроблена конструкція маніпулятора з розрахунком його подальшої установки на рухому платформу. З метою вибору необхідних двигунів було здiйснено моделювання маніпулятора в пакеті Matlab.

У роботі була розглянута кінематика маніпулятора з урахуванням рухомої платформи.

Була зібрана механічна модель маніпулятора, для якої, на базі мікроконтролера серії STM32F4 була розроблена система управління. Проведена настройка контурів регулювання. Отримано графіки роботи електроприводу.

В результаті досліджень отримані практичні навички і знання в області розробки системи для спільного управління декількома приводами.

При написанні даного реферату магістерська робота ще не завершена. Остаточне завершення: червень 2021 року. Повний текст роботи і матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.

Список джерел

  1. Москвичев А. А., Кварталов А. Р., Устинов Б. В.Захватные устройства промышленных роботов и манипуляторов.-М.:Форум, Инфра-М, 2015. — 176 c.
  2. Sam Cubero Industrial Robotics. Theory, Modelling and Control / Pro Literatur Verlag, 2006. – 964 pp.
  3. Lorenzo Sciavicco, Bruno Siciliano Modelling and Control of Robot Manipulators / CreateSpace Independent Publishing Platform, 2001. — 371 pp.
  4. Matt Lombard Mastering SolidWorks / Sybex, 2018. — 1248 pp.
  5. David Planchard Official Certified SOLIDWORKS Professional (CSWP) Certification Guide / SDC Publicaations, 2017. — 192pp.
  6. MatLab. Руководство для начинающих. Основные матричные операции [Електронный ресурс]. — Режим доступу: https://rcs.chemometri...
  7. SimMechanics: Matlab как средство моделирования робототехнических систем [Електронный ресурс]. — Режим доступу: http://trudymai.ru...
  8. Фу К., Гонсалес Р., Ли К. Робототехника.-М.: Мир, 1989. — 624 с.
  9. Анучин А.С. Системы управления электроприводов: учебник для вузов. — М.: Издательский дом МЭИ, 2015. — 373 с.
  10. MBED OS. APIs [Електронный ресурс]. — Режим доступу: https://os.mbed...