Что такое ПИД-регулятор

В этом уроке

  • Суть регулирования
  • Составляющие ПИД-регулятора
  • Определение ошибки регулирования

Видео версия урока

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

  • Мы узнавали функцией getLineDigital(), под каким датчиком бампера находится линия;
  • Если линия находилась под центральным датчиком, то левый и правый мотор вращались с одинаковой скоростью, следовательно, машина ехала прямо;
  • Если линия уходила от центрального датчика влево или вправо, то скорость левого и правого мотора начинала отличаться, следовательно, машина поворачивала, следуя за линией;
  • Чем дальше линия уходила от центра бампера, тем сильнее отличалась скорость левого и правого мотора, следовательно, более резким был поворот.

Именно так и работает П-регулятор (пропорциональный регулятор). Разница скоростей моторов пропорциональна величине отклонения линии от центра бампера.

Величина отклонения линии от центра бампера — это ошибка, которую наш регулятор должен исправить, повернув машину так, чтобы линия вновь находилась под центром бампера.

Пропорциональный регулятор справляется со своей задачей на небольших скоростях. Но стоит увеличить скорость или вес машины, и машина начнёт "вилять" после каждого поворота. Дело в том, что пропорциональный регулятор работает в режиме реального времени, он реагирует на текущую ошибку, а машина обладает инерцией. Чем больше вес или скорость, тем выше инерция.

Как ведёт себя машина с П-регулятором на больших скоростях:

  • Предположим, что ровная линия находится левее центра бампера;
  • П-регулятор заставляет машину повернуть влево;
  • В результате поворота центр бампера приближается к линии;
  • П-регулятор выравнивает скорости левого и правого моторов;
  • Линия находится под центром бампера, но машина по инерции ещё поворачивает влево;
  • За доли секунды центр бампера пересекает линию, и теперь машина находится правее;
  • П-регулятор заставляет машину повернуть вправо. И все повторяется;
  • Машина не едет по линии, а виляет по ней, как змея.

Возникшая проблема решается добавлением к П-регулятору Д-регулятора (дифференциальный регулятор).

Д-регулятор оценивает, как быстро меняется ошибка. Другими словами, — как быстро центр бампера приближается к линии или удаляется от неё. Д-регулятор добавляет крутизну поворота при удалении от линии и снижает крутизну поворота при приближении центра бампера к линии. Чем быстрее меняется ошибка, тем сильнее воздействие Д-регулятора. Получается, что Д-регулятор помогает П-регулятору плавнее въехать на линию и быстрее отреагировать на крутой поворот.

Как ведёт себя машина с ПД-регулятором на больших скоростях:

  • Предположим ровная линия находится левее центра бампера;
  • П-регулятор заставляет машину повернуть влево;
  • В результате поворота, центр бампера приближается к линии;
  • П-регулятор выравнивает скорости левого и правого моторов;
  • Д-регулятор не только выравнивает скорости моторов, но и начинает поворот в противоположную сторону;
  • Получается, что машина въезжает на линию под более пологим углом;
  • Если линия круто повернёт, то на высоких скоростях П-регулятор не сможет быстро отреагировать, и бампер машины выйдет за пределы линии, а ПД-регулятор справится с таким поворотом.

Как видно из картинки выше, ПД-регулятор справляется с задачей движения по линии, но у него есть два слабых места. Первое — на прямой линии машина едет с небольшими отклонениями, второе — на повороте заметно отклонение центра бампера от центра линии.

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

Возникшая проблема решается добавлением к ПД-регулятору И-регулятора (интегральный регулятор). В результате получается ПИД-регулятор.

Как ведёт себя машина с ПИД-регулятором на больших скоростях:

И-регулятор накапливает ошибки и оценивает их сумму. Если текущая ошибка слишком мала для ПД-регулятора, то сумма маленьких ошибок достаточна для И-регулятора. Другими словами, И-регулятор способен корректировать даже самые слабые ошибки.

Ошибка, оставляемая П-регулятором на поворотах, также мала, но если поворот долгий (дуга на трассе), то сумма маленьких ошибок, накопленных при движении по дуге или кругу, также достаточна для И-регулятора.

Примечание: В некоторых системах И-регулятор используют для коррекции результата, например, в нагревателях. Предположим, температура котла должна поддерживаться на уровне 95°, но ни при каких обстоятельствах не должна подниматься выше 96°. Тогда ПД-регулятор настраивают на температуру ниже 95°, а интегральной составляющей поднимают её до 95°. Зачем так делают? И-регулятор будет корректировать температуру, оценивая несколько предыдущих значений, а значит, хоть и медленнее, но точнее поднимет температуру до нужного уровня.

Итоговые выводы:

  • П-регулятор оценивает текущую ошибку (ошибку реального времени).
    П-регулятор является основой ПИД-регулятора;
  • И-регулятор оценивает сумму предыдущих ошибок (ошибки прошедшего времени).
    И-регулятор справляется со слабыми ошибками и постоянными ошибками;
  • Д-регулятор оценивает скорость изменения ошибки (анализирует будущую ошибку).
    Д-регулятор незаменим для сильно инерционных систем.

В следующих уроках мы подробнее разберём все составляющие ПИД-регулятора.

Поздравляю с изучением данного урока!
Следующий урок:
№20. П-регулятор.
приступить к изучению

Продукт в магазине

«ROBORACE» — Образовательный набор на базе Arduino

В магазин

Обсуждение

Гарантии и возврат. Используя сайт, Вы соглашаетесь с условиями.