четверг, 7 февраля 2013 г.

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

1. Движение по линии с одним датчиком освещенности на ПД-регуляторе
Задача движения по линии оптимальным образом решается именно с помощью ПД-регулятора. Однако эффект от него проявляется только на больших скоростях, когда робота начинает сносить с линии. Чтобы добиться такой скорости, необходимо увеличить диаметр колес и даже поставить повышенную передачу.
На примере в качестве среднего черного взято число 48. Базовая скорость моторов установлена 80. Пропорциональный коэффициент k1=3, дифференциальный k2=10.

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


2. Кубическая составляющая для движения с двумя датчиками
Глядя на результат применения регулятора при движении по линии с двумя датчиками, можно заметить, что робот показывает лучшее время, если на прямолинейных участках движется с малыми отклонениями, а на изгибах поворачивает резко.
В чем достоинства кубического регулятора? Во-первых, он позволяет "разгрузить" пропорциональную составляющую, понизив ее коэффициент. При малых отклонениях "куб" практически не оказывает влияния на движение. Зато на поворотах кубическая составляющая стремительно вырастает из своего пониженного коэффициента.

понедельник, 4 февраля 2013 г.

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

Пропорциональный регулятор - это устройство, оказывающее управляющее воздействие 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%. Желательно их не ставить в паре на регулятор с большим коэффициентом, поскольку при резком изменении общей освещенности даже на однородном белом поле отклонения могут оказаться различными, что приведет к неожиданным последствиям.