PID регулятор скорости с коррекцией направления.
Необходимо написать функцию с PID регуляторами для управления работы двигателями для условно-ровного движения «вдоль стены». Коррекция курса осуществляется добавлением скорости либо на левую, либо на правую сторону.
Требование к коэффициентам PID: необходима два набора коэффициентов для «агрессивного» и «нормально» поведения
Условия для «агрессивной» модели:
Скорость меньше целевой на [Константа] либо больше [Константа];
Завал угла от целевого более чем на [Константа] по модулю.
Входные данные:
Скорость – км/ч (м/с).
Угол – 0 -359 градусов
Препятствие Спереди – см.
Препятствие Слева - см.
Препятствие Справа – см.
Целевые данные (будут динамически подаваться на вход функции):
Необходимая скорость – км/ч (м/с);
Необходимо удерживать угол (направление) – 0-359 градусов;
Дополнительно:
- Управление скоростью 8 бит ШИМ.
- Минимальное значение скорости [Константа] меньше которой скорость должна стать 0;
- Препятствие Слева - должно быть больше [Константа] см.
- Препятствие Справа – должно быть больше [Константа] см.
- В случае уменьшения боковых Препятствий – уход от препятствия в сторону обратную от препятствия приоритетней чем выдерживание угла направления, после чего должна быть коррекция УГЛА и СКОРОСТИ;
Команды, которые можно применить:
Forward(SpeedLeft, SpeedRight); - движение вперед с указанием скоростей (SpeedLeft- скорость левой стороны INT от 0 – 256, SpeedRight - скорость правой стороны INT от 0 – 256)
_SoftStop();