Во-первых, для чего нам нужен какой-то регулятор?
Допустим, у нас есть некоторый объект, который приводится в движение электродвигателем, и мы хотим управлять скоростью движения этого объекта. В радиоуправляемых моделях скоростью вращения двигателя управляет специальное устройство ESC. Внутреннее устройство последнего темы данной статьи не касается, поэтому будем считать двигатель вместе с регулятором неким «черным ящиком», управляемым ШИМ-сигналом. Таким образом, длина импульса 1000мкс соответствует нулевой мощности на валу, а 2000мкс – максимальной. С системы радиоуправления приходит как раз такой сигнал и в простейшем случае нам никакой ПИД-регулятор и не нужен. А вот если наш объект(например, квадрокоптер) управляется несколькими двигателями и результирующее движение создается разностью мощностей на них? В этом случае появляется вопрос: какой сигнал надо передать каждому из двигателей, чтоб получить желаемый вектор перемещения? Можно конечно рассчитывать мощность пропорционально исходя из конструкции аппарата. Но при этом наш объект слушаться нас будет очень плохо. Во-первых, двигатель не передаст мощность на вал моментально – ввиду инерции мы получим некую кривую разгона/торможения. Во-вторых, наш объект так же обладает инерцией и не изменит свою скорость мгновенно. Т.е. между изменением управляющего сигнала и реальным изменением движения объекта будет некоторый интервал времени. И в-третьих, на наш объект действуют различные внешние силы, которые необходимо компенсировать.
Первое, что нам нужно для решения такой задачи – это обратная связь. Т.е. мы должны знать реальное состояние/положение объекта в пространстве. Эта тема обсуждалась ранее. Складывая эти векторы, получим результирующий вектор. Из него уже, зная алгоритм управления объектом и коэффициент пропорционального усиления, легко получить необходимый сигнал для каждого двигателя. Но до конца это проблему не решит. При малом коэффициенте достижения результата придется ждать слишком долго, а при большом – наш объект будет совершать колебания во все стороны около нужного нам вектора. При этом поведение объекта в целом будет непредсказуемым. Виной тому инерция.