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


Рис. 5.7.

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


Рис. 5.8.

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

где - текущее расстояние до стенки, - расстояние на предыдущем шаге.

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

Таким образом, ПД-регулятор описывается формулой из двух слагаемых

Можно показать, что для устойчивого достижения цели коэффициент при дифференциальной составляющей должен превышать (см. ниже статью "Элементы теории автоматического управления в школе").

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

Sold=L=S1; while(true) { upd= k1*(S1-L) + k2*(S1-Sold); Motor[MotorB]=50+upd; Motor[MotorC]=50-upd; Sold=S1; wait1msec(1); }

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