Алгоритмы: черно-белое движение. Часть IV Следы NiNoXT в Галактике / 28.10.2012 Четвертая часть заметок об алгоритмах движения вдоль линии является промежуточным звеном при переходе от релейного регулятора к ПИД регулятору.В прошлой заметке алгоритм движения вдоль линии был усовершенствован таким образом, что позволял на прямых участках двигаться роботу-тележке двумя колесами одновременно - для этого в базовый алгоритм, состоящий из двух состояний - поворот влево и поворот вправо, было введено третье состояние - движение прямо.Можно продолжить улучшение и разбить каждый из поворотов на два - в первом случае тележка двигается только одним колесом, а другое стоит; во втором случае оба колеса двигаются, но только скорость одного выше скорости другого.Таким образом, диапазон всех возможных показаний сенсора разбивается теперь не на три, как в прошлый раз, а на пять участков.Следующая диаграмма показывает, что будет происходить с мощностью двигателей в алгоритме, диапазон которого разбивается на семь участков.И ведь так можно продолжать довольно долго - разбивать диапазон все на более мелкие участки: на 9, 11, 13 и т.п. Во всех этих случаях будет наблюдаться следующая тенденция: на одном из моторов мощность будет расти с увеличением показаний на световом сенсоре, в то время, как на другом моторе мощность будет уменьшаться.Иными словами: Чем больше освещенность, тем больше мощность на моторе X, но меньше - на моторе Y. Чем меньше освещенность, тем меньше мощность на моторе X, но больше - на моторе Y. Причем, мощность все время увеличивается (или уменьшается) на одинаковые пропорции: При освещенности 10, мощность будет V, а при освещенности 20, мощность будет 2V. Т.е. мощность ПРОПОРЦИОНАЛЬНО зависит от освещенности.Как на предыдущих диаграммах, где были явно показаны мощности, так и на графике выше видно, что существует некоторая средняя освещенность (LA), при которой на оба мотора подается одинаковая мощность - 50%, т.е. оба колеса едут с одинаковой скоростью. Отклонение от этой средней освещенности (LA - L, где L - текущее показание освещенности) будет приводить к изменению мощности на обоих моторах. И как это видно из графиков, чем больше это отклонение, тем больше отличаются мощности моторов от 50%. Именно поэтому данное отклонение и используется, чтобы определять, с какой мощностью должны вращаться моторы.Вот, например, пусть показание на сенсоре фиксирует освещенность чуть меньше средней.Тогда мощность на моторе B возрастет на соответствующую величину, а мощность на моторе C, наоборот, на эту величину уменьшится.Теперь рассмотрим отклонение в другую сторону - показание на сенсоре больше средней освещенности. Формула вычисления отклонения не изменяется.При использовании такого же подхода, как и в предыдущем случае, будет видно, что здесь мощность на моторе B упадет, а на моторе С увеличится.В итоге получаются следующие формулы, которые позволяют в математической форме записать отношение между освещенностью и мощностью на моторах тележки.Программа на языке NXT-G будет выглядеть следующим образом:Сначала необходимо посчитать отклонение от средней освещенности.Следует напомнить, что средняя освещенность - это разность показаний на самом темном и самом светлом участках поля. Она будет индивидуальная для каждого робота и каждого поля - это нужно замерять для каждых новых условий освещенности заново.Теперь посчитаем мощность для каждого мотора: в одном случае вычтем из 50, в другом прибавим к 50. 50 в данном случае мощность, при которой колеса двигаются с одинаковой скоростью - тележка едет прямо.Остается подать вычисленную мощность на каждый из моторов. Вся программа теперь выглядит следующим образом. алгоритмы датчики робототехника