P-регулятор
Трудности использования релейного регулятора, о которых говорилось в п. 9.1, требуют поиска более приемлемого решения задачи управления. Одним из вариантов является пропорциональный регулятор (или P-регулятор). В этом случае управляющее воздействие на моторы робота не постоянно, как в релейном регуляторе, а изменяется пропорционально отклонению от заданного расстояния до стены. Другими словами, чем больше отклонение, тем активнее должны работать моторы, выравнивая траекторию робота. В идеале робот должен ехать прямо, если датчик регистрирует заданное расстояние. При небольшом отклонении следует небольшое подруливание. Если отклонение больше, то и подруливание больше. Алгоритм P-регулятора является классическим в теории систем автоматического управления.
![]() |
( 9.1) |
где
- отклонение робота от заданного положения (другими словами, ошибка, Error, или ещё говорят невязка);
- заданное расстояние до стены (у нас 20 см);
- текущее показание датчика;
- усиливающий коэффициент (коэффициент пропорциональности). Всегда положительный.
Из графика очень просто определить коэффициент . Выберем произвольную точку на графике. В нашем случае это точка A(1; 2). Тогда

Ошибка может быть как положительная (если мы ближе к стене, чем надо), так и отрицательная (если мы отъехали от стены дальше, чем необходимо). Таким образом, управляющее воздействие U(t) тоже может быть как положительным, так и отрицательным.
![]() |
( 9.2) |
![]() |
( 9.3) |
где
- Nm - нормальная мощность моторов: мощность, с которой должны крутиться оба двигателя, если отклонение от курса равно нулю. В нашей программе можно положить Nm = 50;
- U(t) - управляющее воздействие на моторы, вычисляемое по формуле (9.1).
Рассмотрим смысл коэффициента пропорциональности . Как видно, поворот производится в силу того, что от мощности одного мотора управляющее воздействие вычитается, тогда как к другому - прибавляется. Таким образом коэффициент
может усиливать или ослаблять воздействие регулятора на моторы: если он больше единицы, то происходит усиление, а если меньше - ослабление. Большой
сделает робот очень чутким к ошибкам, что приведёт к резким рывкам для исправления траектории. Малый
сделает движения робота плавнее, но на крутых поворотах робот может потерять стену и сойти с траектории. Конкретные значения коэффициента
, наиболее подходящие в каждом конкретном случае, будут зависеть от конструктивных особенностей робота, скорости движения (нормальной мощности), сложности трассы, используемых датчиков. Величины PowerB(t) и PowerC(t) должны лежать в диапазоне [0; 100]. Поэтому при больших ошибках (и, соответственно, больших управляющих сигналах) мощность моторов будет ограничиваться так, чтобы она не выходила из указанного диапазона. В этом случае пропорциональный регулятор не будет работать корректно, поскольку не сможет скомпенсировать большие ошибки. Таким образом, одной из особенностей P-регулятора является адекватная работа только при небольших ошибках. Для того, чтобы учесть это в нашей задаче нужно иметь стену без резких поворотов и двигаться с небольшой скоростью.
Реализуем алгоритм P-регулятора согласно приведённым формулам при помощи вложенных процедур (My blocks) на языке NXT-G.
- входные - текущее показание датчика расстояния X(t);
- выходные - ошибка E(t)).

Мы используем его в подпрограмме для вычисления управляющего воздействия U(t). Она имеет следующие параметры:
- входные - текущее показание датчика X(t);
- выходные - управляющее воздействие на моторы.

Этот блок мы используем для разработки блока P-регулятора. Он будет иметь следующие параметры:
- входные - текущее показание датчика;
- выходные - мощность моторов B и C.

Наконец, полная программа, реализующая бесконечное движение вдоль стены, получается с использованием блока P-регулятора и формул (9.2) и (9.3):
Задание 9.4. Реализуйте предложенный алгоритм движения вдоль стены с использованием P-регулятора. Проверьте его работу. Настройте регулятор при помощи подбора коэффициента .
Задание 9.5. Реализуйте алгоритм следования по линии с использованием P-регулятора. Настройте регулятор, добиваясь наиболее уверенного прохождения роботом крутых поворотов.

