Енциклопедія пожежної безпеки

Пропорційний регулятор.  Пропорційний інтегральний диференціальний ПІД-регулятор у робототехніці Lego Mindstorms. Пропорційний регулятор Управління роботом із двома датчиками освітленості

Подробиці Автор: Коновалов Ігор Пропорційний регулятор є удосконаленням. Головний мінус релейного в тому, що йому байдуже, наскільки поточні значення відрізняються від нормального значення датчика. У нього тільки два стани - або спробувати підвищити значення датчика на певне постійне число, якщо вони менші за нормальне значення, або підвищити. Через це відбуваються коливання із постійною амплітудою, що дуже неефективно.
Набагато логічніше визначати, наскільки "далеко" знаходяться поточні свідчення від нормальних, і залежно від цього змінювати амплітуду. Щоб стало зрозуміліше, розберемо з прикладу. Приклад, як і в минулій статті, той самий: робот з Lego Mindstorms EV3 їде чорною лінією за допомогою одного датчика кольору в режимі освітленості.

Робот намагається їхати вздовж кордону між білим та чорним, а там датчик показує приблизно 50% освітленості. І що далі він від нормального становища, то більше зусиль докладає робот, щоб повернутися до 50%.
Для написання програми скористаємося термінами "помилка", "керівна дія". Помилка – різниця поточного показання датчика та нормального. У разі, якщо сьогодні робот бачить 20 % освітленості, то помилка дорівнює 20-50= -30 %. Знак помилки вказує, в який бік роботу варто повернути, щоб позбавитися помилки. Тепер ми повинні вказати моторам, у який бік роботу повертати, з якою швидкістю і як різко. Потрібно вплинути на мотори, під яким мається на увазі, наскільки різко йому варто повертатися до нормального становища. Керуюча дія (UP) розраховується як помилка (error) помножена на коефіцієнт пропорційності (k). Цей коефіцієнт використовується для посилення або зменшення впливу помилки на вплив, що управляє. Керуюча дія подається в кермо, де встановлюється середня швидкість робота.
Як же настроїти коефіцієнт пропорційності? Досвідченим шляхом підбирати значення, для проїзду траєкторії може бути, наприклад, від 0,2 до 1,5 в залежності від швидкості і конструкції робота. Якщо коефіцієнт занадто великий, то робот сильно вилятиме, якщо маленький - їхати плавно, але в якийсь момент на повороті з'їхати через недостатню величину керуючого впливу. Напишемо дві версії програми – зі змінними (для тих, хто їх уже вивчав) та без.


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

Пропорційний регулятор - це пристрій, що чинить вплив u(t) на об'єкт пропорційно його лінійному відхиленню e(t) від заданого стану x0(t);

e(t)=x0(t)-x(t), де x(t) - стан Наразічасу;

u(t)=ke(t), де k - підсилюючий коефіцієнт.
Тобто чим далі робот відхиляється від заданого курсу, тим активніше повинні працювати мотори, вирівнюючи його.

Рух по лінії з одним датчиком освітленості за допомогою П-регулятора

Рух по межі чорного та білого також можна побудувати на П-регуляторі. Хоча зовні завдання представляється вирішуваною лише за допомогою релейного регулятора, оскільки в системі присутні лише два видимих ​​людському оку стану: чорний і білий. Але робот все бачить інакше, для нього немає різкої межі між цими квітами. Можна сказати, він короткозорий і бачить градієнтний перехід відтінків сірого.

Ось це і допоможе збудувати П-регулятор.
Визначаючи стан роботи як показання датчика освітленості, навчимося надавати пропорційний керуючий вплив на мотори за наступним законом:
e=s1-grey, де s1 – поточні показання датчика, а grey – задане значення.

Коефіцієнт k (рівний у даному прикладі 2) має бути досить малий (від 1 до 3). Такий регулятор ефективно працює тільки для малих кутів відхилення, тому робота треба ставити у напрямку руху так, щоб датчик виявився ліворуч від чорної лінії. Неважко помітити, що рух лінії на П-регуляторі відрізняється плавність. і на деяких ділянках робіт рухається практично прямолінійно або точно повторюючи вигин лінії.

Калібрування датчика

Звернемося до 48, використаному у формулі. Це середнє арифметичне показання датчика освітленості на чорному та білому, наприклад (40+56)/2=48. Однак показання датчиків часто змінюються по різних причин: інша поверхня, зміна загального освітлення в приміщенні, невелика модифікація конструкції і т.п. Тому проведемо калібрування робота вручну, визначивши показання датчика освітленості на білому та чорному.

Рух по лінії з двома датчиками освітленості за допомогою П-регулятора
Правильно проїхати перехрестя з одним датчиком освітленості досить складно. Якщо потрібно зробити це з досить високою швидкістю, потрібно хоча б два датчики, поставлені на відстані дві ширини лінії (або ширше).
При русі можливі чотири стани датчика:

  • обидва білому - рух прямо;
  • лівий (s1) не чорному, правий (s2) на білому - рух ліворуч;
  • лівий на білому, правий на чорному - рух праворуч;
  • обидва на чорному – рух прямо.
Т.о. при рівних показаннях датчика (обидва білі або обидва чорні) робот їде прямо. Перед запуском робота проведемо автокалібрування обох датчиків. Тоді алгоритм руху по лінії з П-регулятором виглядатиме в.о.:

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


І ще зауваження. Трапляються датчики, показання яких розходяться на 10-20%. Бажано їх не ставити в парі на регулятор з великим коефіцієнтом, оскільки при різкій зміні загальної освітленості навіть на білому однорідному полі відхилення можуть виявитися різними, що призведе до несподіваних наслідків.

Робототехніка — новий цікавий напрямок, який, мабуть, далі розвиватиметься в рамках шкільних курсівінформатики та технології. Бум робототехніки багато в чому пов'язаний з тим, що вона дозволяє відповісти на запитання: А навіщо ж ми, власне, вчимо програмування? З іншого боку, у курсі робототехніки можна ознайомитися з елементарними поняттями теорії автоматичного управління.

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

Тренажери використовують можливості HTML5, тому працюватимуть тільки в сучасних браузерах(найкраще використовувати Google Chrome або Mozilla Firefox).

Новини тепер і в Telegram-каналі

27 листопада 2015 р.
У тренажери додано трасу «зародок» ( М.В. Лазарєв, м. Оріхово-Зуєво).

13 жовтня 2015 р.
Тепер у тренажерах для LEGO-робота можна завантажувати свої траси (поля для робота). Як це зробити? Дивіться.
Додані нові тренажери - LEGO-роботи з двома, трьома, чотирма датчиками освітленості.

Мова керування роботами

Для управління роботами в тренажерах використовується проста мова програмування, яка отримала робочу назву SiRoP (Simple Robot Programming).

Управління роботом з датчиком освітлення

Датчик освітленості дозволяє роботу орієнтуватися на поверхні столу, наприклад, їхати вздовж кордону між білою та чорною областями (краєм чорної лінії). Фотодіод підсвічує поверхню, фотоприймач «ловить» відбиті промені та вимірює їх інтенсивність.

Найбільш популярним завданням цього є рух по лінії. За допомогою тренажера можна вивчити різні закони управління — релейний, пропорційний і навіть ПІД-управління (пропорційно-інтегрально-диференціальне).

Приклади програм для робота з датчиком освітлення

Поки 1 ( якщо датчик > 128 ( мотор = 100 мотор = 0 ) інакше ( мотор = 0 мотор = 100 ) чекати(10) )

KP = 0.2 поки 1 ( u = kP * (датчик-128) мотор = 50 + u мотор = 50 - u чекати (20) )

Main ( поки 1 ( поки датчик > 128 ( мотор = 100 мотор = 100 чекати(10) ) назад() поворот() ) ) назад ( мотор = -100 мотор = -100 чекати(260) ) поворот ( мотор = -50 мотор = 50 чекати(50) )

Управління роботом із двома датчиками освітленості

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

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

Управління роботом із чотирма датчиками освітленості

Чотири датчики освітленості дозволяють роботу краще визначати круті повороти. Внутрішні датчики служать для тонкого регулювання, використовується пропорційне регулювання. Два зовнішніх датчиківвинесені трохи вперед і розведені убік. Вони використовуються тоді, коли трапляється крутий поворот. Коефіцієнт посилення керування за показаннями датчиків зовнішньої пари вибирається більше, ніж для внутрішньої пари (див. Л.Ю. Овсяницька та ін., Алгоритми та програми руху робота Lego Mindstorms EV3 по лінії, М.: "Перо", 2015).

Приклади програм для робота з чотирма датчиками освітлення

Поки 1 ( d0 = датчик > 128 d1 = датчик > 128 d2 = датчик > 128 d3 = датчик > 128 якщо d1 & !d2 ( мотор = 100 мотор = 0 ) якщо! d1 & d2 ( мотор = 0 мотор = 100 ) якщо d1 == d2 ( мотор = 100 мотор = 100 ) якщо d0 & !d3 ( мотор = 30 мотор = 0 ) якщо!d0 & d3 ( мотор = 0 мотор = 30 ) чекати(10) )

K1 = 0.2 k2 = 0.4 поки 1 (u1 = датчик - датчик u2 = датчик - датчик мотор = 50+k1*u1+k2*u2 мотор = 50-k1*u1-k2*u2 чекати(10) )

Управління роботом із датчиком відстані (сонаром)

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

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

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

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

У прикладі буде розібрано три приклади робота на основі основної навчальної моделі Robot Educator.

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

Так само, для прикладів нам знадобляться датчики світла-кольору EV3. Ці датчики світла, як інші, найкращим чиномпідходять для нашого завдання, при роботі з ними, нам не доведеться боїться про інтенсивність навколишнього світла. Для цього датчика в програмах ми будемо використовувати режим відбитого світла, при якому оцінюється кількість відбитого світла червоного підсвічування датчика. Кордони показань датчика 0 - 100 одиниць, для «відсутності відображення» та « повного відображення» відповідно.

Для прикладу ми розберемо 3 приклади програм для руху по чорній траєкторії зображеної на рівному світлому тлі:

· Один датчик, з П регулятором.

· Один датчик, з ПK регулятором.

· Два датчики.

Приклад 1. Один датчик з П регулятором.

Конструкція

Датчик світла встановлюється на балку зручно розташовану на моделі.


Алгоритм

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


Так як на реальній траєкторії датчик формує значення у всьому своєму робочому діапазоні (0-100), то значенням якого прагнути робот, вибрано 50. У цьому випадку значення передані функції повороту формуються в діапазоні -50 - 50, але цих значень недостатньо для крутого повороту траєкторії. Тому слід розширити діапазон у півтора рази до -75 - 75.

У результаті, у програмі, функція калькулятора є простим пропорційним регулятором. Функція якого ( (a-50)*1.5 ) у робочому діапазоні датчика світла формує значення повороту відповідно до графіка:

Приклад роботи алгоритму

Приклад 2. Один датчик з ПK регулятором.

Цей приклад складено тієї ж конструкції.

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

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

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

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

Опишу, як ми це реалізуємо в середовищі EV3, оскільки є відмінності.

Перше, що потрібно знати роботу – значення “ідеальної точки”, розташованої на межі чорного та білого.

Розташування червоної точки на малюнку якраз відповідає цій позиції.

Ідеальний варіант розрахунку – виміряти значення чорного та білого та взяти середнє арифметичне.

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

Отже, можна змусити це робити робота.

У ході експериментів ми з'ясували, що вимірювати і чорне, і біле необов'язково. Можна виміряти лише біле. А значення ідеальної точки розраховується як значення білого, ділене на 1,2 (1,15), залежно від ширини чорної лінії та швидкості руху робота.

Розраховане значення слід записати в змінну, щоб потім звертатися до нього.

Розрахунок "ідеальної точки"

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

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

Для зручності ці параметри теж можна записати в змінні.

Коефіцієнт повороту та базова потужність

Логіка руху чорною лінією така: вимірюється відхилення від ідеальної точки. Чим воно більше, тим більше робот повинен прагнути повернутися до неї.

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

У вигляді формул це виглядає так:

Де Isens – значення показань датчика освітлення.

Нарешті, реалізація у EV3. Найзручніше оформити у вигляді окремого блоку.

Реалізація алгоритму

Саме такий алгоритм було реалізовано у роботі для середньої категорії WRO 2015

Подібні публікації