Регуляторы для движения по границе черного и белого в TRIK Studio

Содержание

Слайд 2

План занятия Регуляторы Ветвление Задача движения по границе Значение серого Релейные

План занятия

Регуляторы
Ветвление
Задача движения по границе
Значение серого
Релейные регуляторы
Двухпозиционный регулятор
Калибровка датчика
Корректировка скорости
Трехпозиционный регулятор

Слайд 3

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

Регулятор

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

Поплавковый регулятор Ползунова,


1765 г.

Центробежный регулятор Уатта,
1788 г.

Слайд 4

Ветвление Ветвление – часть алгоритма, в которой в зависимости от условия

Ветвление

Ветвление – часть алгоритма, в которой в зависимости от условия выполняется

один или другой набор действий.

Да

Нет

Слайд 5

Движение вдоль границы черного и белого Задача двигаться по границе черного

Движение вдоль границы черного и белого

Задача двигаться по границе черного и

белого с помощью датчика освещенности
Значение серого находится на границе и вычисляется через среднее арифметическое:
grey=(white+black)/2
Для каждого робота свое значение серого, например
grey=25
Калибровка – определение пороговых показаний датчика

25

Слайд 6

Тележка с одним датчиком освещенности 1 B C

Тележка с одним датчиком освещенности

1

B

C

Слайд 7

Двухпозиционный релейный регулятор Двухпозиционный релейный регулятор имеет два состояния: освещенность >

Двухпозиционный релейный регулятор

Двухпозиционный релейный регулятор имеет два состояния:
освещенность > серого,


освещенность ≤ серого.
Двухпозиционный регулятор строится на основе ветвления и выполняет одно из двух действий:
плавный поворот направо,
плавный поворот налево.
Миллисекунда нужна для отдыха контроллера
Слайд 8

Релейный регулятор: движение вдоль границы черного и белого Движение на релейном

Релейный регулятор: движение вдоль границы черного и белого

Движение на релейном регуляторе

слишком неровное: робота заносит
Для стабилизации можно понизить скорость

Или наоборот повысить

Слайд 9

Трехпозиционный релейный регулятор Рассмотрим окрестность вокруг значения серого ±5 процентов свет>30

Трехпозиционный релейный регулятор

Рассмотрим окрестность вокруг значения серого ±5 процентов
свет>30 |

30≥свет>20 | свет≤20
белый | серый | черный
Если показания датчика попадают в окрестность, робот движется прямолинейно – новое действие
Слайд 10

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

Пропорциональный регулятор

В задачах автоматического регулирования управляющее воздействие u обычно является функцией

динамической ошибки – отклонения e регулируемой величины x от ее заданного значения x0:
e =x0 – x
Пропорциональный регулятор – это устройство, оказывающее управляющее воздействие на объект пропорционально его отклонению от заданного состояния.
u = k·e
Здесь k – это коэффициент усиления регулятора.
Слайд 11

Пропорциональный регулятор: движение по линии Также как и в релейном регуляторе,

Пропорциональный регулятор: движение по линии

Также как и в релейном регуляторе, необходимо

определить среднее значение grey между черным и белым. Это будет то состояние датчика освещенности sensor1, к которому должна стремиться система.
e = grey - sensor1
Слайд 12

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

Пропорциональный регулятор: калибровка датчика освещенности

Краткая калибровка с понижением, датчик над белым

полем
grey=sensor1-(white-black)/2
Полная калибровка с определением белого и черного
Ожидание нажатия кнопки
Добавить сигнал с задержкой
Слайд 13

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

Пропорциональный регулятор: калибровка датчика освещенности

Краткая калибровка с понижением, датчик над белым

полем
grey=sensor1-(white-black)/2
Полная калибровка с определением белого и черного
Ожидание нажатия кнопки
Вывод результата на экран
Слайд 14

Движение по линии с двумя датчиками освещенности

Движение по линии с двумя датчиками освещенности

Слайд 15

Релейный регулятор: движение с двумя датчиками освещенности Оба на белом –

Релейный регулятор: движение с двумя датчиками освещенности

Оба на белом – движение

прямо,
левый (sensor1) на черном, правый (sensor2) на белом – движение налево,
левый на белом, правый на черном – движение направо,
оба на черном – движение прямо.
Слайд 16

Релейный четырехпозиционный регулятор: вложенное ветвление На каждой ветви проверки первого датчика

Релейный четырехпозиционный регулятор: вложенное ветвление

На каждой ветви проверки первого датчика идет

проверка второго датчика
Алгоритм выполняется только по одной из ветвей
Для каждого датчика требуется определить свое значение серого (например, 23 или 26)
Слайд 17

Реакция на перекрестки Издать звуковой сигнал на каждом перекрестке При звуковом

Реакция на перекрестки

Издать звуковой сигнал на каждом перекрестке
При звуковом сигнале без

ожидания один перекресток фиксируется несколько раз
При длительном ожидании робот может сойти с линии
Ожидание не должно превышать 200 мс
Слайд 18

Калибровка с понижением для двух датчиков Краткая калибровка Откуда взято вычитаемое

Калибровка с понижением для двух датчиков

Краткая калибровка
Откуда взято вычитаемое число?
Оно определено

заранее как половина разности крайних показаний датчика
grey1=sensor1-(white1-black1)/2
grey2=sensor2-(white2-black2)/2
Для точной калибровки желательно чистое одноцветное поле вне линии
Для надежности следует сделать паузу перед началом движения
Ожидание нажатия кнопки
Слайд 19

Реакция на перекрестки На старте обнулить счетчик перекрестков count=0 Построить цикл

Реакция на перекрестки

На старте обнулить счетчик перекрестков count=0
Построить цикл с условием

по счетчику count
На каждом перекрестке увеличивать счетчик (один раз!)
Слайд 20

Действия на перекрестках На заданном перекрестке count==3 остановиться и издать звуковой

Действия на перекрестках

На заданном перекрестке count==3 остановиться и издать звуковой сигнал
Для

наглядности создать подпрограмму и вызвать ее после увеличения count=count+1
Для действия на другом перекрестке надо добавить в эту программу еще одну проверку условия
Слайд 21

Действия на перекрестках На 5 перекрестке сбить объект (после сигнала на 3 перекрестке)

Действия на перекрестках

На 5 перекрестке сбить объект (после сигнала на 3

перекрестке)
Слайд 22

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

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

Ошибка рассматривается как

разность показаний датчиков
Нет зависимости от показаний на сером
e=sensor1-sensor2
Слайд 23

Пропорциональный регулятор устранение статической ошибки Датчики могут быть изготовлены с отклонениями

Пропорциональный регулятор устранение статической ошибки

Датчики могут быть изготовлены с отклонениями
Разность показаний

на однотонной поверхности - это статическая ошибка
До цикла
est=sensor1-sensor2
В цикле статическая ошибка устраняется:
e=sensor1-sensor2-est
Слайд 24

Подпрограммы Вытащите первый блок «Подпрограмма» на сцену Назовите её. Блок подпрограммы

Подпрограммы

Вытащите первый блок «Подпрограмма» на сцену

Назовите её. Блок подпрограммы появится в

палитре

Двойным щелчком по подпрограмме перейдем к диаграмме её алгоритма

Слайд 25

Реакция на перекрестки Издать звуковой сигнал на перекрестке Из-за задержки во

Реакция на перекрестки

Издать звуковой сигнал на перекрестке
Из-за задержки во время сигнала

робот может сбиться с линии, поскольку он долго едет вслепую
Нужен сигнал без ожидания завершения
Слайд 26

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

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

Для точной калибровки желательно чистое одноцветное

поле вне линии
Для надежности следует сделать паузу перед началом движения
Ожидание нажатия кнопки
Необходимо объявить все переменные в основной программе
Слайд 27

Реакция на перекрестки Сигнал без ожидания «пиликает» постоянно… Почему? Скорость робота

Реакция на перекрестки

Сигнал без ожидания «пиликает» постоянно…
Почему?
Скорость робота – примерно 30

см/с
Ширина линии перекрестка – 3 см
На проезд линии робот тратит примерно 100 мс:
3 см / 30 см/с = 0.1 с
Значит, он успевает получить команду на сигнал около 100 раз
Установим время движения «вслепую» 200 мс – с запасом
Слайд 28

Реакция на перекрестки Вложенное ветвление – еще один способ проверки перекрестка

Реакция на перекрестки

Вложенное ветвление – еще один способ проверки перекрестка

Слайд 29

Полная калибровка для двух датчиков Для точной калибровки отдельно считывается черное,

Полная калибровка для двух датчиков

Для точной калибровки отдельно считывается черное, отдельно

белое поле
Ожидание нажатия кнопки
Слайд 30

Подсчет перекрестков П-регулятор поместить в отдельную подпрограмму Обнуляем счетчик count и

Подсчет перекрестков

П-регулятор поместить в отдельную подпрограмму
Обнуляем счетчик count и задаем все

переменные до программы
Повторяем цикл, пока значение счетчика меньше 5
На каждом перекрестке добавляем в счетчик 1 count=count + 1
Слайд 31

Увеличение счетчика На каждом перекрестке добавляем в счетчик 1 count=count + 1

Увеличение счетчика

На каждом перекрестке добавляем в счетчик 1 count=count + 1

Слайд 32

Усовершенствованный проезд перекрестка В начале запоминаем время На каждом перекрестке обновляем

Усовершенствованный проезд перекрестка

В начале запоминаем время
На каждом перекрестке обновляем время
Засчитываем перекресток

только через 200 мс
Слайд 33

Реакция на объект Подпрограмма «Объект» сдвигает банки на каждом втором перекрестке

Реакция на объект

Подпрограмма «Объект» сдвигает банки на каждом втором перекрестке
Условие четности

перекрестка:
count % 2 == 0