Простейшие регуляторы для управления роботом — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

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

2020-05-07 1457
Простейшие регуляторы для управления роботом 0.00 из 5.00 0 оценок
Заказать работу

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

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

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

· синхронизация моторов;

· управление положение мотора;

· следование вдоль стены;

· следование по заданной траектории;

· удержание груза;

· движение по линии;

и другие.

Рассмотрим пример синхронизации моторов.

Задача 15.1. Синхронизировать моторы при прямолинейном движении.

Значения, возвращаемые двумя датчиками вращения моторов, могут не совпадать, в результате чего движение робота непрямолинейно. В программе используем метод релейного регулирования, суть которого заключается в выработке управляющего воздействия, в данном случае на моторы. Для этого в каждый момент времени вычисляется ошибка (u) – среднее значение показаний датчиков вращения моторов (энкодеров), а результат используется для воздействия на моторы, за счет чего движение робота становится прямолинейным (рисунок 15.1).

 

 


Рис. 15.1: Пример синхронизации моторов.

Задача 15.2. Стабилизировать мотор в положении 45 градусов.

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


Рис. 15.2: Программа к задаче 15.2 на основе релейного регулятора

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

Пропорциональный регулятор (П-регулятор) – это устройство, оказывающее управляющее воздействие на объект пропорционально его отклонению от заданного состояния и выражается формулой:

u = k ‧ e,

где k – коэффициент усиления регулятора, e – динамическая ошибка (отклонение регулируемой величины от ее заданного значения).

    Исправим алгоритм (рисунок 15.2), используя коэффициент усиления 2.5 (его можно подобрать опытным путем). Поправка u =2.5‧(45- encoderB), где (45- encoderB) – отклонение энкодера от положения 45 градусов. Соответственно стабилизация мотора на П-регуляторе будет выглядеть как на рисунке 15.3.


Рис. 15.3: Программа к задаче 15.2 на основе П-регулятора

Задача 15.3. Составить программу движения робота вдоль стены на определенном расстоянии L (рисунок 15.4). S1 – текущее показание датчика.


Рис. 15.4: Положение робота у стены.

Для движения вдоль стены необходимо использовать ультразвуковой датчик (УЗ), который должен быть вынесен вперед и расположен перпендикулярно движению робота и направлен в сторону стены.

Моторы двигаются со средней скоростью 50% от максимума, но при отклонении от заданного курса на них осуществляется управляющее воздействие u (на мотор В 50+u, на мотор С 50-u): u=k*(S1-L), где k - некий усиливающий коэффициент, определяющий воздействие регулятора на систему.

Таким образом, при S1=L робот не меняет курса и едет прямо. В случае отклонения его курс корректируется (рисунок 15.5).


Рис. 15.5: Движение вдоль стены на основе П-регулятора.

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

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

Поправка u=k1*(sensor1-L)+k2*(sensor1-S), где S - расстояние на предыдущем шаге.


Рис. 15.6: Движение вдоль стены на основе ПД-регулятора.

 

В данном примере необходимо подобрать подходящие значения коэффициентов k1 и k2. Обычно подбор начинается с пропорционального коэффициента (k1) при нулевом дифференциальном (k2=0). Когда достигнута некоторая стабильность на небольших отклонениях, добавляется дифференциальная составляющая.

Описанный выше робот может объезжать стены только при малых отклонениях от прямой линии. Рассмотрим вариант, при котором на пути движения будут возникать серьезные повороты, вплоть до прямых углов, например, на поле Лабиринт. Для этого потребуется внести модификацию в конструкцию робота (рисунок 15.7).


Рис. 15.7: Расположение ультразвукового датчика под углом.

Во-первых, робот должен будет смотреть не только направо, но и вперед. Для этого нужно разместить датчик УЗ не перпендикулярно курсу движения, а под острым углом. Таким образом, робот будет видеть препятствия спереди, и более стабильно будет придерживаться курса вдоль стены, постоянно находясь на грани видимости.

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

Задача 15.4. Собрать манипулятор и составить программу для удержания груза.

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

 Итак, манипулятор – управляемое устройство, предназначенное для выполнения сложных действий, аналогичных движениям руки человека, в том числе, для управления положением предметов.

На рисунке 15.8 представлен манипулятор с использованием трех моторов. Первый мотор отвечает за горизонтальное перемещение захвата. Второй мотор отвечает за вертикальные перемещения. Третий – за захват объектов. Инструкцию по сборке данного манипулятора можно найти в среде программирования LEGO MINDSTORMS EV3 в разделе «Инструкции по сборке» – «Рука робота Н25»


Рис. 15.8: Манипулятор «Рука робота Н25».

    Приведем пример программы удержания груза в заданном положении с использованием П-регулятора (рисунок 15.9).


Рис. 15.9: Программа удержания груза.

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

Данная программа может быть использована в качестве подпрограммы. Но тогда необходимо внести некоторые изменения. В представленной выше программе используется бесконечный цикл. А подпрограмма не может быть цикличной, поэтому необходимо добавить условие выхода из цикла (рисунок 15.10), а переменную ug вынести из подпрограммы и расположить в основной программе.


Рис. 15.10: Программа удержания груза для использования в подпрограмме.

На рисунке 15.11 представлена программа с фиксированием мотора в двух положениях – 0 и 230 градусов. Подпрограмма Ungle представлена на рисунке 15.10.


Рис. 15.11: Программа с фиксированием мотора в двух положениях

 


Задания для самостоятельного решения

1. Сделать 5 замеров расстояния до препятствия, вывести значения датчиков на экран контроллера. Сравнить значения и вычислить среднее арифметическое показаний датчика.

2. Роботу требуется повернуть за угол. Составить программу, учитывая, что угол прямой, острый.

3. Препятствие представляет собой прямоугольную коробку. Требуется обойти ее по периметру.

4. Коридор ограничен двумя стенами. Робот должен держаться середины этого коридора. Используется два датчика расстояния.

5. Внутри коридора расположены три стоп-линии, на которых робот должен остановиться и сделать паузу в движении 5 секунд. Задача – пройти коридор.

6. По курсу робота находится препятствие. Ему надо его объехать так, чтобы выдержать заданный курс. Сколько и каких датчиков потребуется?

7. Объект находится перед роботом. Его нужно взять и переместить.

8. Необходимо доехать до объекта и транспортировать его.

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

10. Написать программу для прохождения трассы:


Движение по линии

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

Как правило, в соревнованиях используется белое поле с черной линией, вдоль которой необходимо следовать. Например, поле «Шорт-трек», приведенное на рисунке 16.1.


Рис. 16.1: Поле «Шорт-трек»

    Также могут встретиться и участки черного поля с белой линией (рисунок 16.2), в этом случае говорят об инверсии. Если линии пересекаются, то это перекрестки, которые в задании часто требуется подсчитать.


Рис. 16.2: Поле с участками инверсии и перекрестками.

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


Рис. 16.3: Примеры расположения датчиков относительно линии.

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

Рассмотрим основные алгоритмы движения по линии.

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

Калибровку можно проводить с внесением изменений в программу вручную или в автоматическом режиме (см. задачу 14.3).

Задача 16.1. Алгоритм движения по линии на одном датчике цвета с использованием релейного регулятора.

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

Итак, выполнив калибровку (значение серого равно 45), в цикле выполняем:

• если значение датчика больше среднего (датчик удаляется влево от черной линии), то левый мотор - 100, правый – (-100).

• если значение датчика меньше среднего (датчик оказался над черной линией), то левый мотор - 0, правый – 100 (рисунок17.4).


Рис. 16.4: Программа к задаче 16.1

В данном примере робота расположить нужно так, чтобы датчик находился слева от линии. Если поставить робота справа, то он «потеряет» её, так как первым движением повернет направо и будет крутиться вокруг правого колеса.

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

• если значение датчика больше среднего (датчик удаляется влево от черной линии), то левый мотор - (-100), правый – 100.

• если значение датчика меньше среднего (датчик оказался над черной линией), то левый мотор - 100, правый – 0.

Задача 16.2. Алгоритм движения по линии на одном датчике цвета с использованием П-регулятора.

Движение робота по линии в данном примере будет более плавным и осмысленным.

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

На рисунке 16.5 представлена схема П-регулятора на основе одного датчика цвета.

Воздействие на моторы, возвращающее робота в требуемое состояние
Значение датчика
Требуемое значение

Рис. 16.5: Схема П-регулятора на основе одного датчика цвета

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

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


Рис. 16.6: Программа к задаче 16.2

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

Задача 16.3. Алгоритм движения по линии с двумя датчиками цвета с использованием релейного регулятора.

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

• Если оба датчика над белой поверхностью, то это нормальная ситуация, в которой линия находится между датчиками, поэтому робот должен ехать прямо.

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

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

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

Подключим левый датчик к порту №1, правый – к порту №2. В цикле используем условный оператор, вложенный в другой условный оператор.

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

А) Проводим калибровку одного датчика, определяем среднее значение серого.

Б) Если значение левого датчика (порт 1), больше среднего значения, то анализируем значение правого датчика (порт 2):

o Если значение правого датчика меньше среднего значения, то левый мотор В – 50, правый мотор С – 0 (робот отклонился влево от линии);

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

В) Если значение левого датчика (порт 1), меньше или равно среднему значению, то анализируем значение правого датчика (порт 2):

o Если значение правого датчика меньше среднего значения, то левый мотор В – 50, правый мотор С – 50 (оба датчика находятся на линии, значит впереди перекресток, проезжаем прямо);

o Если значение правого датчика больше или равно среднему значению, то левый мотор В – 0, правый мотор С – 50 (робот отклонился вправо от линии).

На рисунке 16.7 представлен алгоритм движения по линии с двумя датчиками цвета с использованием релейного регулятора.


Рис. 16.7: Программа к задаче 16.3.

Задача 16.4. Алгоритм движения по линии с двумя датчиками цвета с использованием П-регулятора.

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

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

На рисунке 16.8 представлена схема П-регулятора на основе двух датчиков цвета.

Воздействие на моторы, возвращающее робота в требуемое состояние
Значение датчика 1
Значение датчика 2

Рис. 16.8: Схема П-регулятора на основе двух датчиков цвета.

    Важную роль в пропорциональном управлении играет правильный выбор коэффициента (k), используемый при движении. Коэффициент должен быть положительным, его величина подбирается опытным путем или рассчитывается и будет зависеть от конкретной конструкции робота, типа измеряемой величины (свет, ультразвук, угол поворота и т.д.) и внешних условий (освещение, тип покрытия поля, отражающая способность поверхностей и т.п.). Рекомендуется при подборе коэффициента изменять его с дискретностью 0,1, повышая или уменьшая его. Увеличение коэффициента вызывает резкие толчки, но позволяет проезжать крутые повороты, а уменьшение коэффициента приводит к более плавному движению, но есть риск потерять линию при проезде крутых поворотов. Поэтому рекомендуется использовать алгоритм следования по линии с разными коэффициентами на разных участках траектории. Также опытным путем требуется подбирать значение скорости моторов, причем на разных участках траектории она может быть также разной.

Реализуем алгоритм. Для этого в цикле опрашиваем показания датчиков, подключенных к портам 1 и 2. Затем находим их разность, а результат умножаем на коэффициент и полученную ошибку рассогласования подаем на моторы (рисунок 16.9).


Рис. 16.9: Программа к задаче 16.4.

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

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

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

Добавляем блок «Функция», в которой идет вычисление статической ошибки (st), а затем вычитаем ее при вычислении основной ошибки (рисунок 16.10).


Рис. 16.10: Программа к задаче 16.4 с добавлением статической ошибки.

Задача 16.5. Алгоритм движения по линии на основе пропорционального регулятора с поиском и подсчетом перекрестков.

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

Алгоритм реализации следующий:

1. В переменной x будем хранить количество перекрестков, ее начальное значение равно 0.

2. Определим среднее значение серого, его значение будет хранится в переменной m.

3. В цикле опрашиваем датчики цвета и организуем движение по линии.

4. При следовании по линии проверяем, есть перекресток или нет. Наличие перекрестка проверяется условием: sensor1<m && sensor2<m (знак && – логическое и), что означает показания датчиков одновременно должны быть меньше показаний среднего.

5. Если условие принимает истинное значение (робот попал на перекресток), то увеличиваем значение переменной x на 1 и результат выводим на экран.

Чтобы робот не подсчитал перекресток несколько раз, необходимо подобрать значение таймера, расположенного после блока «Напечатать текст», но при этом не съезжал с линии (рисунок 16.11), либо организовать проезд вперед на ширину линии.


Рис. 16.11: Программа к задаче 16.5.

Задача 16.6. Составить программу движения по линии с переходом на инверсную линию.

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

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

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

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

На рисунке 16.12 представлена программа проезда инверсной траектории. Приведем описание алгоритма.

1. В цикле организуем стандартный алгоритм пропорционального управления с обнаружением перекрестков (условие sensor1<m && sensor2<m).

2. Когда робот обнаружит инверсию (перекресток), первый цикл завершается.

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


Рис. 16.12: Программа к задаче 16.6.

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

Задания для самостоятельного решения

1. Отработать на поле движение робота по линии на основе одного и двух датчиков цвета, подобрать коэффициент и скорость движения.

2. Составить программу остановки робота на ближайшем перекрестке.

3. Составить программу остановки робота на 4-м перекрестке.

4. Сделав остановку на 4-м перекрестке, робот должен развернуться на 180 градусов и вернуться к месту, с которого начал движение.

5. Составить программы следования по линии на следующих полигонах:


Пропорциональный интегральный дифференциальный (ПИД) регулятор

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

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

Рассмотрим интегральную составляющую. Уравнение интегральной составляющей имеет вид:

u = ki ‧ Integral,

где ki интегральный коэффициент, Integral – интегральная (суммарная) составляющая ошибок, которую можно вычислить следующим образом:

Integral =0,5 ‧ Integral (на предыдущем шаге) + ошибка (на текущем шаге).

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

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

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

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

u = kd ‧ Differ,

где kd – дифференциальный коэффициент, Differ – дифференциальная составляющая управления или скорость изменения ошибки, которую можно вычислить по формуле:

Differ = ошибка (на текущем шаге) - ошибка (на предыдущем шаге).

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

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

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

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

Рассмотрим алгоритм создания ПИД-регулятора.

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

Далее организуем цикл.

2. В переменную u 1 запишем разность текущих показаний датчиков цвета (при движении по линии на основе двух датчиков цвета) или разность между средним значением серого и текущим значением датчика цвета (при движении по линии на основе одного датчика цвета).

3. Вычисляем интегральную (Integral=0.5*Integral+u1) и дифференциальную (LastError=u1-LastError) составляющие.

4. Суммируем все составляющие:

a. пропорциональное управление, равное значению текущей ошибки, умноженной на пропорциональный коэффициент;

b. интегральное управление, равное сумме ошибок, умноженной на интегральный коэффициент;

c. дифференциальное управление, равное изменению ошибки, умноженному на дифференциальный коэффициент.

Формула имеет вид: u=1.5*u1+0.2*Integral+10*LastError (рисунок 17.1).

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


Рис. 17.1: Реализация ПИД-регулятора для движения по линии


Задания для самостоятельного решения

1. Составить программы следования по линии на следующих полигонах:

 


Литература

1.  Киселев, М. М. Робототехника в примерах и задачах. Курс программирования механизмов и роботов [Текст] / М. М. Киселев. – Москва: СОЛОН-Пресс, 2017. - 136 с.

2. Мордвинов, Д. А. Среда программирования роботов TRIK Studio. [Текст] / Д. А. Мордвинов; Санкт-Петербургский государственный университет. Кафедра системного программирования.- СПб, 2017 – 31 с.

3. Овсяницкая, Л. Ю. Алгоритмы и программы движения по линии робота Lego Mindstorms EV3 [Текст] / Л. Ю. Овсяницкая, Д. Н. Овсяницкий, А. Д. Овсяницкий. – Москва: Перо, 2015. – 168 с.

4.  Овсяницкая, Л. Ю. Курс программирования робота Lego Mindstorms EV3 в среде EV3: основные подходы, практические примеры, секреты мастерства [Текст] / Л. Ю. Овсяницкая, Д. Н. Овсяницкий, А. Д. Овсяницкий. - Челябинск: ИП Мякотин И. В., 2014 - 204 с.

5. Овсяницкая, Л. Ю. Пропорциональное управление роботом Lego Mindstorms EV3 [Текст] / Л. Ю. Овсяницкая, Д. Н. Овсяницкий, А. Д. Овсяницкий – Москва: Перо, 2015. – 188 с.

6. Терехов, А. Н. Среда визуального программирования роботов QReal:Robots [Текст] // Терехов, А. Н., Брыксин, Т. А., Литвинов, Ю. В.III Всероссийская конференция «Современное технологическое обучение: от компьютера к роботу» (сборник тезисов). СПб., 2013. С. 2–5.

7. Филиппов, С. А. Робототехника для детей и их родителей [Текст] / С. А. Филипов. - 3 - изд.- СПб.: Наука.- 2013, 319 с.

Интернет-ресурсы

1. LEGO® MINDSTORMS® EV3. Руководство пользователя. [Электронный ресурс]: сайт / The LEGO Group. – Режим доступа: https://www.lego.com/

2. TRIK [Электронный ресурс]: кибернетический конструктор / ООО «КиберТех».- Режим доступа: http://www.trikset.com/

3. TRIK Studio: среда обучения основам программирования и кибернетики [Электронный ресурс]: сайт / ООО «КиберТех». - Режим доступа: http://robots.qreal.ru/

4. Международный фестиваль робототехники «РобоФинист». [Электронный ресурс]: сайт / Благотворительный фонд
Темура Аминджанова и Сергея Вильского «Финист». - Режим доступа: https://robofinist.ru/

5. Монахова, О. А. Программирование робота в визуальной среде TRIK Studio [Электронный ресурс]: видео / О. А. Монахова. - Режим доступа: https://www.youtube.com/watch?v=vvnT9bWr7SE

6. Робототехника: инженерно-технические кадры инновационной России. Программа [Электронный ресурс]: сайт / Фонд «Вольное Дело». - Режим доступа: http://www.russianrobotics.ru

7. Солуянов, Е. А. ПО TRIK Studio для EV3: движение робота вперед-назад, энкодеры [Электронный ресурс] / Е. А. Солуянов. - Режим доступа: http://mosmetod.ru/metodicheskoe-prostranstvo/robototekhnika/uchebno-metodicheskie-materialy/lego-konstruirovanie-i-robototekhnika/dvizhenie-robota-vpered-nazad-enkodory-algoritm-na-baze-trik-studio.html

8.  Солуянов, Е. А. Учимся программировать EV3 в TRIK Studio. Основы работы со средой TRIK Studio [Электронный ресурс] / Солуянов, Е. А. - Режим доступа: http://mosmetod.ru/metodicheskoe-prostranstvo/robototekhnika/uchebno-metodicheskie-materialy/lego-konstruirovanie-i-robototekhnika/uchimsya-programmirovat-ev3-v-trik-studio.html

9. Справочная система TRIK Studio 3.2.0  [Электронный ресурс] // TRIK Studio 3.2.0: программа.- – Систем. требования: Microsoft Ⓡ Windows, macOS 10.9 Mavericks; 4 ГБ или больше ОЗУ; монитор; мышь. – Загл. с экрана.

10.  Широколобов, И. Ю. Первый шаг в робототехнику (демо-курс) [Электронный ресурс] / И. Ю. Широколобов. - Режим доступа: https://stepik.org/course/462/


 


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.114 с.