Методы настройки пид-регулятора

Содержание

Скачать PIDы

Скачать PID для Torque Pro можно из представленной таблицы.

Имя Размер Скачиваний
BMW 320 E91 AT 1 KiB 792
BYD F3 ABS 2 KiB 2022
BYD F3 Delphi MT20U 1 KiB 1794
Chery Tiggo Delphi System 2.0L-2.4L 4G63-4G64 2 KiB 2514
Chevrolet Aveo Lacetti Daewoo Nexia SiriusD42 5 KiB 7561
Chevrolet Aveo Sedan 2011 SiriusD42 1CCU 1 KiB 2773
Citroen C4 2014 7 KiB 917
Citroen C5 5FN 2011 7 KiB 663
Fiat Doblo 2 KiB 656
Ford Focus II топливо пробег 296 B 1096
Ford Fusion Restyle 2006 Benzin 1.4L 3 KiB 2283
Geely ABS MK70 419 B 1976
Geely Delphi MT20U2 2 KiB 1983
GreatWall Delphi MT20U2 EOBD 3 KiB 2036
Gybrid Vehicle Toyota PRIUS MHW11 4 KiB 1665
Honda Accord 2009 2 KiB 2443
Honda FIT GK3 2014 1 KiB 521
Honda Insight 2014 2 KiB 502
Hyundai Elantra 2003 3 KiB 2512
Hyundai HD Coupe 1 KiB 2120
Hyundai I30 1.6 CRDI DPF 2016 1 KiB 765
Jeep Wrangler TPMS 2016 605 B 511
Kia Sorento 660 B 2982
Kyron D20DT 1 KiB 1949
Largus ABS 1 KiB 2166
Largus SRS 2 KiB 1952
Lexus RX330 4WD 4 KiB 583
Lifan Solano ABS Mando 2 KiB 1642
Lifan Solano ABS Wanxiang 1 KiB 1590
Micas 11.4 EURO 3 2 KiB 517
Mikas 10.3 ZAZ Sens 3 KiB 2032
Mikas 11 1 KiB 1806
Mitsubishi L200 NMPS 4D56 New Pajero Sport 8 KiB 2907
Mitsubishi Outlander 2008-2015 6 KiB 3863
Mitsubishi Pajero-4 3.0 V93W 10 KiB 2230
MUT Plugin Import 5 KiB 2701
Opel Astra K 1.6 2016 1 KiB 2312
Opel Astra-G 2002 Y17DT 3 KiB 2598
Opel Astra-J 1.3 2012 сажевый фильтр 1 KiB 741
Opel Combo C 1.3 CDTi 3 KiB 594
OPEL MERIVA B Benzin A14XER 6 KiB 1995
Opel Vectra B X18XE 2 KiB 2469
Peugeot 307 SW ME744 3 KiB 695
Peugeot 307 АКПП AL4 3 KiB 683
Peugeot 308 2010 SL4 2 KiB 727
Renault Fluence Megane 4 KiB 6120
Renault Fluence Megane Kontrol Raboty Ustrojs 1 KiB 4879
Renault K9K 832 And 836 6 KiB 6979
Renault Kangoo ECU DCM12 1.5l DCI 2 KiB 3200
Renault Scenic RX4 2002 Diesel 2 KiB 2869
Renault Trafic 1 KiB 2559
Reno Trafic II Diesel 2500 2 KiB 2025
Sagem2000 2 KiB 1457
Siemens ACR167 KWP 1 KiB 1720
Skoda Kodiag 4WD Haldex 2 KiB 755
SsangYong Kyron Rexton Action Musso Korando Benzin 2.3 MSE 3 KiB 2780
Subaru Forester 2011 ABS 784 B 680
Suzuki Swift 2005 2 KiB 1696
Toyota AXIO 2ZR 2006 3 KiB 1790
Toyota Corolla 2002 1CD-FTV 2 KiB 2607
Toyota Corolla Verso 2.2 D-cat 2006 1 KiB 639
Toyota Kami Terios K3-VE Toyota Duet EJ DE TeriosKid EF-DEM 3 KiB 1822
Toyota Passo 1KR-FE 4 KiB 1649
Toyota PRIUS NHW10 3 KiB 1920
Toyota Sienta 1NZ-FE CVT 3 KiB 1776
Toyota Sienta ABS 1NZ-FE CVT 2 KiB 1743
Toyota Sienta EMPS 1NZ-FE CVT 2 KiB 1708
Toyota Vitz 1KRFE 2009 1 KiB 1887
UAZ Patrion M17 2 KiB 2339
VAZ Itelma Avtel M73 4 KiB 3436
VAZ Yanvar 7.2 EURO2 2 KiB 3819
Volkswagen Caravelle 2.5 TDI 1 KiB 601
Volkswagen Caravelle 2.5 TDI Rus 2 KiB 785
Volvo XC70 D5 2008 929 B 2259
Yanvar 2 KiB 2472
Yanvar 5 1 1 KiB 2702
Yanvar 5.1.1 R83 2 KiB 2609
Yanvar 7.2 EURO2 2 KiB 3055
ВАЗ M74CAN 3 KiB 1515
Микас 7.6 ZAZ Sens 3 KiB 726

Настраиваем контроллер

Настройка параметров регулятора осуществляется с помощью инструмента PID Tuner, который доступен непосредственно в окне параметров блока PID Controller.

Приложение запускается нажатием на кнопку Tune…, расположенную на панели Automated tuning. Стоит отметить, что до выполнения этапа настройки параметров контроллера необходимо выбрать его вид (П, ПИ, ПД и др.), а также его тип (аналоговый или дискретный).

Поскольку одним из требований является ограничение его выходной координаты (напряжения на обмотке двигателя), то следует задать допустимый диапазон напряжений. Для этого:

  1. Переходим во вкладку Output Saturation.
  2. Нажимаем на флаговую кнопку Limit output, в результате чего активируются поля для задания верхней (Upper limit) и нижней (Lower limit) границы диапазона выходной величины.
  3. Устанавливаем границы диапазона.

Корректная работа блока регулятора в составе системы предполагает использования методов, направленных на борьбу с интегральным насыщением. В блоке реализованы два метода: back-calculation и clamping. Подробная информация о данных методах располагается здесь. Выпадающее меню выбора метода расположено на панели Anti-windup.

В рассматриваемом случае запишем значения 24 и -24 в поля Upper limit и Lower limit соответственно, а также используем метод clamping для исключения интегрального насыщения.

Можно заметить, что внешний вид блока регулятора изменился: появился знак насыщения рядом с выходным портом блока.

Далее, приняв все изменения нажатием кнопки Apply, возвращаемся во вкладку Main и нажимаем кнопку Tune…, в результате чего откроется новое окно приложения PIDTuner.

В графической области окна отображаются два переходных процесса: при текущих параметрах регулятора, т.е. для ненастроенного регулятора, и при значениях, подобранных автоматически. Новые значения параметров можно посмотреть, нажав на кнопку Show Parameters, расположенную на панели инструментов. При нажатии на кнопку появятся две таблицы: подобранные параметры регулятора (Controller Parameters) и произведенные оценки характеристик переходного процесса при подобранных параметрах (Performance and Robustness).

Как видно из значений второй таблицы, автоматически рассчитанные коэффициенты регулятора удовлетворяют всем требованиям.

Настройка регулятора завершается нажатием на кнопку с зеленым треугольником, расположенной справа от кнопки Show Parameters, после чего новые значения параметров автоматически изменятся в соответствующих полях в окне настройки параметров блока PID Controller.

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

Отметим, что инструмент PID Tuner подбирает коэффициенты регулятора по линеаризованной модели, поэтому при переходе к нелинейной модели требуется уточнять его параметры. В этом случае можно воспользоваться приложением Response Optimizer.

Пример использования

Допустим, необходимо реализовать проветривание помещения следующим образом: чем больше температура внутри, тем больше нужно открыть окно. Для этого установим на окно привод, который будет плавно поворачиваться на заданный угол, а управляться будет сигналом тока 4…20 мА (такой управляющий сигнал поддерживают практически все подобные приводы). То есть, если подать на привод сигнал 4 мА — он полностью закроет окно, а 20 мА — полностью его откроет.

Для измерения температуры можно взять любой из поддерживаемых ТРМ210 — это практически любые термопары и любые датчики имеющие унифицированные выходы 0…10 В и 4…20 мА.

Пример применения ПИД-регулятора в частотно-регулируемом приводе насоса

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

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

Преобразователь изменяет производительность насоса путем увеличения или снижения частоты питающего напряжения электродвигателя до тех пор, пока давление в системе не достигнет заданного значения. Таким образом, давление в системе не зависит от расхода.

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

Преобразователи частоты с функциями ПИД-регулятора применяют также в сложных системах регулирования тягодутьевых систем и других АСУТП.

Работа регулятора в обратном и прямом действии

Множество регуляторов имеют принцип прямого действия. Повышение скорости двигателя приводит к повышению переменной величины процесса. Это случай в системе насосов, давление это величина переменная процесса. Повышение скорости двигателя обуславливает повышение давления. Во многих системах повышение скорости двигателя обуславливает к снижению параметра переменной процесса. Температура вещества, которое обдувается вентиляционной системой теплообменника – процессная переменная величина: при повышении скорости вентиляционной системы температура вещества снижается. В этом разе нужно применить регулятор действия обратного вида.

Настраивание датчика на 20 миллиампер ПИД-регулированием

1. Действия в программном меню

Управляющая панель частотного преобразователя А300 состоит из 3-уровневой структуры:

  1. Группы опциональных значений (1 уровень).
  2. Опциональные значения (2 уровень).
  3. Параметр опционального значения.

2. Настраивание характеристик электромотора и определение направления момента

Установить метод управления частотником в значении Р0-02:

  1. Р0-02=0 (настройка завода, пульт преобразователя).
  2. Р0-02=1 (входные команды внешнего управления D1-D7).

Установить характеристики номинального значения электромотора (применяйте параметры с таблички и паспорта электромотора):

  1. Мощность номинала Р1-01= установите значения.
  2. Напряжение номинала Р1-02= установите значения (по заводским настройкам 380 вольт).
  3. Ток номинала Р1-03= установите значения.
  4. Частота номинала Р1-04= установите значения (по заводским настройкам 50 герц).
  5. Обороты номинального значения Р1-05= установите значения.

После подсоединения и введения параметров нужно проконтролировать направление вращающего момента электромотора. После отключения меню программы на экране покажется 50 герц, клавишей «вниз» установите наименьшую частоту для задания направления вращающего момента. Для пуска мотора нажмите клавишу «пуск» (параметр Р0-02=0), определите направление момента вращения, затормозите мотор, нажав клавишу «стоп».

Если вращение не совпадает с направлением, то измените две любые фазы питания мотора (замену фаз производить при отключенном частотнике) или поменяйте параметр настройки Р0-09= (0-вперед, 1-назад). Еще раз проконтролируйте момент вращения, нажав клавишу «пуск», если направление момента вращения совпадает, то затормозите мотор, нажав клавишу «стоп». Нажмите клавишу «вверх» и возвратите настроенную частоту 50 герц.

3. Подсоединение датчика (выход на 20 миллиампер)

  1. Установку производить при выключенном питании частотного преобразователя.
  2. Напряжение датчика подсоединить к контакту «+24В», сигнал соединить с контактом «AI1», установить перемычку на контакты «COM» и «GND».

Переставить соединение «J1» в состояние «I».

4. Контроль обратной связи

  1. Подключите напряжение на частотный преобразователь, на экране возникнет подсветка 50 герц.
  2. Нажмите клавишу «сдвиг» 2 раза.
  3. На экране будет параметр обратной связи в интервале 0-10 (0-20 мА), зависит от настраиваемого параметра.

Связь обратного вида (4 мА).

  1. После подтверждения обратной связи нажмите три раза клавишу «сдвиг», появится на экране 50 герц.
  2. Установите наименьшее значение сигнала входа в величине Р4-13=2.00 (4 мА).

5.Как настраивать значение параметра ПИД-регулирования.

  1. Установите источник основной частоты Р0-03=8 (частоту определяет ПИД-регулятор).
  2. Поставьте значение ПИД-регулятора в значение РА-01= результат поддерживаемой величины в процентах (от 0 до 100%) от интервала датчика, РА-01= (результат поддерживаемого параметра/интервал датчика)*100%.

Пример установки значения:

Подсоединен датчик давления на 16 бар с сигналом выхода от 4 до 20 мА. Для давления в 10 бар нужно установить значение

РА-01=(10/16)*100%=62,5%

Произведите тестовый пуск. Проверяйте поддерживаемое значение параметра по приборам, дублирующим измерения (ротаметр, термометр, манометр). Если система регулировки функционирует нестабильно или долгий отклик на замену проверяемого параметра, то применяйте настройки значений РА-05, -06, -07. Эти значения предназначены для точной настройки ПИД-регулятора.

Транскрипт

1 ПИД-регулирование давления: настройка преобразователей частоты ATV31/ ATV312 28/01/2014

2 СОДЕРЖАНИЕ Назначение… 3 Предварительные настройки… 4 Автоподстройка… 6 Выбор закона управления двигателем… 7 Конфигурирование канала управления… 8 Настройка авторестарта при пропадании и восстановлении напряжения питания… 8 Обратная связь… 9 Назначение обратной связи Задание давления Инверсия ПИД-регулятора Реакция на аварию датчика обратной связи Настройка ПЧ Настройка спящего режима Подключение датчика

4 Предварительные настройки Сброс на заводские наст ройки: Меню Drc ПРИВОД: CFG = Std FCS = InI 4

5 Ввод параметров двигателя: Если входное напряжение ПЧ = 3 ф/ в, то соедините обмотки двигателя звездой. Параметр UnS = 380 В Параметр ncr = 0.7 A Если входное напряжение ПЧ = 1 ф/ В, то соедините обмотки двигателя треугольником. Параметр UnS = 220 В Параметр ncr = 1.21 A 5

6 Автоподстройка Параметр tun = Yes: 6

7 Выбор закона управления двигателем Параметр Uft = P, если механизм насос или вентилятор. 7

8 Конфигурирование канала управления Меню Ctl- Параметр LAC = L3 Параметр CHCF = SEP Параметр Cd1 = Ter Меню I_O Параметр tcc = 2C Кнопка СТАРТ (с фиксацией) подключается к LI1 и 24В. Настройка авторестарта при пропадании и восстановлении напряжения питания Настройте параметр tct: Меню I_O Параметр tct = LEL 8

9 Обратная связь Датчик обратной связи (давления) с токовым выходом 4..20мА должен быть присоединен к входу AI3. Аналоговый вход AI3 должен быть сконфигурирован с диапазоном 4..20мА: Конфигурация входа: Меню I_O Параметр CrL3 = 4 Параметр CrH3 = 20 9

10 Назначение обратной связи Внимание: несовместимость функций! Необходимо отменить SA2 (SA2 = No) и PS2/PS4 (PS2 = No, PS4 = No). Меню Прикладные функции Подменю PI-/ ПИД-регулятор Параметр PIF = AI3 10

11 Задание давления Внутреннее задание ПЧ (если задание не нужно изменять в процессе работы например, ночная/дневная уставка давления): Подменю PI-/ ПИД-регулятор PII = Yes Параметр rpi Параметр rpi изменяется в пределах . 100% соответствует диапазону измерения датчика с учетом коэффициента масштабирования Fbs. 11

12 Инверсия ПИД-регулятора Реакция на аварию датчика обратной связи В случае отказа датчика давления сигнал обратной связи становится равным нулю. На выходе ПИД-регулятора в этом случае появится максимальный сигнал задания частоты. Скорость вращения двигателя насоса станет максимальной и давление в системе может превысить максимально допустимое

Поэтому очень важно настроить реакцию ПЧ на отказ датчика давления. Меню Flt Можно задать тип реакции ПЧ на аварию датчика: стоп выбегом, стоп по рампе либо работу на выбранной скорости. LFL = rnp (торможение по рампе, чтобы не было гидроудара) Либо LFL =LFF работа в случае аварии на скорости, заданной параметром LFF

12

LFL = rnp (торможение по рампе, чтобы не было гидроудара) Либо LFL =LFF работа в случае аварии на скорости, заданной параметром LFF. 12

13 Настройка ПЧ Если кто-то уже настраивал ПЧ и вводил куда-то какие-то значения и неизвестно какие значения, то произведите сброс параметров ПЧ на заводские настройки. 1) Ввод параметров двигателя меню Drc. (Обязательно, иначе возможен выход двигателя из строя!) 2) Настройка параметров рампы ускорения/торможения: ОБЯЗАТЕЛЬНО для насосов необходимо задать время рампы для исключения гидроударов в системе! Конкретные значения определяются системой. Меню Set Параметр ACC, DEC 3) Закон управления двигателем 4) Автонастройка 5) Настройка пределов изменения частоты ПЧ Меню Set/ параметр LSP: 0 Гц (установите минимальную частоту, требуемую для поддержания насосом минимального давления в системе). Меню Set/ параметр HSP: 50 Гц 13

14 Настройка спящего режима См. описание параметров rsl и tls (Руководство по программированию). 14

15 Подключение датчика По вопросам подключения датчика давления просьба обращаться к документации на датчик давления! Ниже приведен пример подключения: Двухпроводное подключение Клемма 3: «+» Клемма 1: «-» Аналоговый вход ПЧ AI3: + COM: — Не забудьте объединить COM-клемму ПЧ и «минус» внешнего источника питания (если используется внешний источник питания). 15

Советуем изучить — Схемы электрических исполнительных механизмов с электродвигателем

Метод Циглера-Никольса.

  • Для начала обнуляем все коэффициенты регулятора (пропорциональный, интегральный и дифференциальный)
  • Постепенно начинаем увеличивать пропорциональный коэффициент и следим за реакцией системы. При определенном значении возникнут незатухающие колебания регулируемой величины.
  • Фиксируем коэффициент  K, при котором это произошло. Кроме того, замеряем период колебаний системы T.

Собственно, на этом практическая часть метода заканчивается. Из полученного коэффициента K рассчитываем пропорциональный коэффициент ПИД-регулятора:

K_п = 0.6\cdot K

А из него получаем и остальные:

K_и = (2\cdot K_п)\medspace/\medspace T
K_д = (K_п\cdot T)\medspace/\medspace 8

Метод довольно прост, но применить его можно далеко не всегда. Если честно, мне еще ни разу не приходилось настраивать регулятор таким образом. Но тем не менее, этот метод является основным и, по большому счету, единственным широко известным. Просто подходит не всем и не всегда.

Что же делать, если метод Циглера-Никольса не сработал? Тут придет на помощь “аналитический” метод настройки

Опять же обнуляем все коэффициенты и начинаем увеличивать пропорциональный. Но теперь не ждем появления колебаний, а просто фиксируем поведение системы для каждого значения коэффициента (отличным вариантом будет построение графика величины, которую необходимо стабилизировать, для каждого значения коэффициента). Если видим, что, например, система очень медленно выходит на нужное значение, увеличиваем пропорциональный коэффициент. Система начинает сильно колебаться относительно нужной величины? Значит, коэффициент слишком велик, уменьшаем и переходим к настройке других составляющих.

Понимая, как работает ПИД-регулятор в целом, и представляя, как должна работать настраиваемая система, можно довольно-таки быстро и точно настроить коэффициенты регулятора. Особенно, если есть возможность построить графические зависимости и визуально следить за поведением системы.

Вот некоторые правила, которые могут помочь при настройке ПИД-регулятора:

  • Увеличение пропорционального коэффициента приводит к увеличению быстродействия, но снижению устойчивости системы.
  • Увеличение дифференциальной составляющей также приводит к значительному увеличению быстродействия.
  • Дифференциальная составляющая призвана устранить затухающие колебания, возникающие при использовании только пропорциональной составляющей.
  • Интегральная составляющая должна устранять остаточное рассогласование системы при настроенных пропорциональной и дифференциальной составляющих.

Кстати, стоит добавить, что не всегда необходимо использовать все три составляющие ПИД-регулятора, порой хватает пропорциональной и дифференциальной, например (ПД-регулятор). В общем, все сводится к тому, что для каждой системы необходим свой собственный подход при настройке и использовании ПИД-регулятора.

На этом на сегодня все, возможно, как-нибудь рассмотрим практическую реализацию ПИД-регулятора!

Описание работы ПИД-регулятора

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

ПИД-регулятор состоит из трех составляющих: пропорциональной, интегральной, дифференциальной.

Интегральная и дифференциальная составляющие могут отсутствовать.

Пропорциональная, интегральная и дифференциальная составляющие ПИД-регулятора рассчитываются по следующим формулам на основе заданных пользователем значений соответствующих параметров:

Где P, I, D — параметры, задаваемые пользователем.

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

Мгновенное значение управляющего воздействия представляет собой сумму составляющих и определяется по формуле:

Мгновенные значения пропорциональной, интегральной и дифференциальной составляющих рассчитываются по формулам:

  • Ii−1 предыдущее значение интегральной составляющей;
  • ei−1 предыдущее значение ошибки;
  • dt постоянная времени.

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

Как видно из формулы расчета пропорциональной составляющей, чем больше значение параметра P, тем меньше ее вклад в управляющее воздействие ПИД-регулятора.

С увеличением P снижается реакция ПИД-регулятора на ошибку.

Чем больше значение параметра I , тем больше вклад интегральной составляющей в управляющее значение ПИД-регулятора.

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

Чем больше значение параметра D, тем больший вклад в результирующее значение вносится дифференциальной составляющей.

С увеличением D система будет сильнее реагировать на изменение ошибки.

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

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

, , .

ПД-регулятор

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

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

Д-регулятор (дифференциальный регулятор) работает таким образом — считается изменение рассогласования за некоторый промежуток времени, а дальше необходимое управление считается как произведение этого изменения на некий коэффициент, который мы обозначим kD. Мы получим ПД-регулятор добавив Д-регулятор к уже имеющемуся П-регулятору.

int prev_error; void loop(void) { int avgSpeed = 150; // средняя скорость моторов int kP = 10; // коэффициент пропорциональной обратной связи int kD = 1; // коэффициент дифференциальной обратной связи int error; // Это ошибка положения error = bot_position(); correction = kP * error + kD * (error-prev_error); prev_error = error; motor1.move(avgSpeed*(1+correction)); motor2.move(avgSpeed*(1-correction)); delay(10); }

Мы добавили здесь переменную prev_error, расчёт дифференциальной коррекции kD * (error-prev_error), а также задержку в цикле — delay(10). Д-регулятор как видно из формулы, борется с высокой скоростью изменений ошибки. Т.е. он борется с инерцией и с колебаниями, и является обязательным для роботов, которые двигаются с высокими скоростями.

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

Второй недостаток Д-регулятора — подверженность шумам. Случайные скачки освещенности могут привести к неожиданному его срабатыванию.

Давайте рассмотрим более профессиональный код ПД-регулятора для нашего робота: int avgSpeed = 150; // средняя скорость моторов int kP = 10; // коэффициент пропорциональной обратной связи int kD = 5; // коэффициент дифференциальной обратной связи int correction; int err; int err_arr[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; int err_p = -1; prevErr = bot_position(); void loop(void) { err = bot_position(); err_p = (err_p + 1) % 10; err_arr = err; P = err * KP; D = (err_arr — err_arr)*KD; correction = P + D; motor1.move(avgSpeed*(1+correction)); motor2.move(avgSpeed*(1-correction)); delay(2); } В данном примере последние десять ошибок хранятся в массиве err_arr и Д-регулятор берет за основу вычисления коррекции разницу между текущим значением ошибки и значением ошибки 20 миллисекунд назад (время цикла 2мс * 10, где 10 — количество элементов в массиве). Д-регулятор позволяет значительно повысить скорость движения робота.

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

Давайте уменьшим коэффициент kD и мы увидим, что робот стал идти намного ровнее, чем на П-контроллере, более того, теперь мы можем даже уменьшить коэффициент kP и робот все-равно будет успешно проходить трассу. Этот робот может на ПД-контроллере идти более чем вдвое быстрее, чем на П-контроллере.

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