Продолжу!
Часть вторая ...но не про I и не про D компоненты, а про реалии создания регуляторов в целом.
Чем, собственно, отличается реальный регулятор то идеального регулятора "
на вход регулятора мы подаем "расстояние" до нужного значения, а на выход подаём силу, пропорционально этому значению"? А отличается тем, что в регуляторах есть
задержка. Т.е. то, что идёт на "выход" - зависит от "входа", но в предыдущий момент времени ...Т.е. есть задержка, ( условно) в целый "тик". Длина этой задержки - как повезёт, и определяется конкретной конструкцией. Может надо много времени для вычисления, а может- для "срабатывания", но это задержка практически неустранима (с рядом оговорок на экзотические конструкции).
К чему ведёт эта задержка... Если посмотреть вот сюда
http://ru.wikipedia.org/wiki/%D0%92%D1%8B%D0%BD%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BB%D0%B5%D0%B1%D0%B0%D0%BD%D0%B8%D1%8F , и немного покрутить уравнения то будет видно, что "запаздывание" эквивалентно введению "вынуждающей силы", со всеми приключениями, которые это даёт. Но, чтобы не мучать формулы, просто посмотрим что происходит... В момент, когда наша система оказывается в точке 0, сила тоже должна была бы быть тоже 0...но она не 0, а некоторое значение, которое соответсвовало ненулевому значению координаты. Т.е. в этот момент задержка "добавляет" энергии системы и система начинает "разгоняться". Т.е. мечты о том, что P регулятор даст гармоническое колебание - несбыточны. Эти колебания идут вразнос, постоянно увеличивая амплитуду.
Но, для регулятора, который вечно стремился к нужной точке - ситуация становится интереснее...Задержка даёт "лишнюю" скорость в данной точке, т.к. эта скорость была вычислена для предыдущей точки, где расстояние было БОЛЬШЕ. Т.е. такой регулятор успешно дойдет до точки..перевалится через неё и начнёт возвращаться обратно... и будет с небольшой амплитудой болтаться рядом с целевой точкой..и мы снова получаем колебательную систему!
А теперь - начинаем фокусничать. Конечно, задержки - это плохо...Но!!! у нас система то колебательная...и... если нельзя задержку обнулить, то можно её еще увеличить..Что будет происходить? Очевидно - будет увеличиваться "разгон"...Но! Система то циклическая и задержка на целый "оборот"- это и есть нулевая задержка...а если теперь чуть чуть "недокрутить до "полного обортоа", то получим не задержку, а "опережение". А как мы помним - задержки давали "разгон"...А опережение, ( при определённом везении и ряде оговорок) даёт - ТОРМОЖЕНИЕ!!!
И это очень важный момент, что играя с задержкой можно "запаздывание+разгон" превращать в "опережение и торможение". И именно эта богатая идея лежит в основе этих регуляторов.
Единственное, почему это недостижимо в практическом применении - это то, что хороший регулятор выводит систему в нужную точку "за один оборот" - т.е. колебаний мало, и "крутить фазу на ходу" - дело весьма интеллектуальное и чреватое ошибкой и разгоном. А хочется получить "дубовый" алгоритм, в котором надо задать несколько констант и он сам выведет систему в нужную точку.
Собственно, именно про это и расскажу в продолжении.