Упрощение процесса настройки пид-регулятора

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

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

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

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

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

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

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

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

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

K_п = 0.6\cdot K

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

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

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

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

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

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

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

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

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

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

Кто использовал файл в Linux

Узнать процесс, который сейчас занимает файл, достаточно просто. Но как узнать, какой процесс обращается к файлу не надолго, например, выполняет его как программу или читает оттуда данные? Эта задача уже труднее, но вполне решаема с помощью подсистемы ядра auditd. В CentOS набор программ для работы с этой подсистемой поставляется по умолчанию, в Ubuntu же его придётся установить командой:

Теперь создаём правило для мониторинга. Например, отследим, кто запускает утилиту who:

Здесь -w — адрес файла, который мы будем отслеживать, -p — действие, которое нужно отслеживать, -k — произвольное имя для правила. В качестве действия могут использоваться такие варианты:

  • x — выполнение;
  • w — запись;
  • r — чтение;
  • a — изменение атрибутов.

Теперь выполним один раз who и посмотрим, что происходит в логе с помощью команды ausearch:

Здесь в секции SYSCALL есть PID процесса, под которым была запущена программа, а также PPID — программа, которая запустила нашу who. Копируем этот PID и смотрим информацию о нём с помощью ps:

Становиться понятно, что это bash.

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

Настройка параметров регулятора осуществляется с помощью инструмента 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.

Основные показатели качества регулирования

К автоматическим системам регулирования предъявляются требования не только по устойчивости процессов регулирования во всем диапазоне нагрузок на объект, но и по обеспечению определенных качественных показателей процесса автоматического регулирования.Ими являются:

  • Ошибка регулирования (статистическая или среднеквадратическая составляющие).
  • Время регулирования.
  • Перерегулирование.
  • Показатель колебательности.

Динамический коэффициент регулирования R d , который определяется из формулы

где смысл величин Y 0 и Y 1 ясен из рис.3.

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

Величина перерегулирования зависит от вида отрабатываемого сигнала. При отработке ступенчатого воздействия по сигналу задания величина перерегулирования определяется по формуле

где значения величин X m и X y показаны на рис.4.

При отработке возмущающего воздействия величина перерегулирования определяется из соотношения

где значения величин X m и X y показаны на рис.5

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

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

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

Показатель колебательности M характеризует величину максимума модуля частотной передаточной функции замкнутой системы (на частоте резонанса)и, тем самым, характеризует колебательные свойства системы. Показатель колебательности наглядно иллюстрируется на графике рис.6.

Условно считается,что значение М=1,5 ё1,6 является оптимальным для промышленных систем, так как в этом случае s обеспечивается в пределах от 20 до 40%. При увеличении M колебательность в системе возрастает.

В некоторых случаях нормируется полоса пропускания системы w п , которая соответствует уровню усиления в замкнутой системе 0,05. Чем больше полоса пропускания, тем больше быстродействие замкнутой системы. Однако при этом повышается чувствительность системы к шумам в канале измерения и возрастает дисперсия ошибки регулирования.

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

Выделяют три типовых процесса:

  1. Апериодический процесс с минимальным временем регулирования (рис.7). Этот типовой процесс предполагает, что отрабатывается возмущение F (система автоматической стабилизации). В данном случае настройки подбираются так, чтобы время регулирования t p было минимальным. Данный вид типового процесса широко используется для настройки систем, не допускающих колебаний в замкнутой системе регулирования.
  2. Процесс с 20-процентным перерегулированием и минимальным временем первого полупериода (рис.8). Такой процесс применяется для настройки большинства промышленных САР, так как он соединяет в себе достаточно высокое быстродействие (t1=min) при ограниченной колебательности ( s=20%).
  3. Процесс, обеспечивающий минимум интегрального критерия качества (рис.9). Интегральный критерий качества выражается формулой

где e — ошибка регулирования.

К достоинствам этого процесса можно отнести высокое быстродействие (1-й полуволны) при довольно значительной колебательности. Кроме этого, оптимизация этого критерия по параметрам настройки регулятора может быть выполнена аналитически, численно или путем моделирования (на АВМ).

Задача настройки

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

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

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

Чёрным цветом показан график изменения температуры в том случае, если коэффициенты подобраны совсем плохо. Система теряет устойчивость. Регулятор при этом идёт «в разнос» и температура «уходит» от заданного значения.

Рассмотрим более благоприятные случаи.

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

А вот и приемлемые кривые:

Данные кривые тоже не идеальны, но могут быть сочтены за удовлетворительные.

В процессе настройки регулятора, пользователю необходимо стремиться получить кривую, близкую к идеальной. Однако, в реальных условиях сделать это не так-то просто — приходится долго и мучительно подбирать коэффициенты. Поэтому зачастую останавливаются на «приемлемой» кривой регулирования. Например, в нашем примере нас могли бы устроить коэффициенты регулятора, при которых заданная температура достигалась бы за 15-20 минут с максимальным перерегулированием (максимальными «скачками» температуры) 2 °С. А вот время достижение уставки более часа и максимальные «скачки» температуры 5 °С — нас бы не устроили.

Далее поговорим о том, как подобрать коэффициенты для достижения оптимального регулирования. Рекомендуется настраивать коэффициенты в том же порядке, в котором это описано.

Синтаксис формул PID

Ответ ЭБУ обычно состоит из нескольких байт. Для обращения к определенному байту ответа используется буквенная адресация.
A-1 байт ответа, B-2, C-3, …, Z-26, AA-27,AB-28,…
Для составления формулы используются следующие операции:

  • A*10 — умножение.
  • A/2.5 — деление.
  • A+B — сложение.
  • B-10 — вычитание.
  • A<8 — двоичный сдвиг влево.
  • A&4 – побитовое И.
  • () — порядок действий, (A<8)+B.
  • {A:x} — x-тый бит первого байта. A = 00001010b = 09h, {A:0} = 0; {A:1} = 1.
  • – значение PID, где XX — идентификатор PID, т.е. -скорость, -скорость по GPS.
  • Baro() — значение внешнего давления или с PID – от двигателя, или – с датчика телефона.
  • A^B – А в степени B.
  • Log10(A) – Десятичный логарифм из А.
  • SIGNED(A) — воспринимается как байт со знаком, где старший бит — знаковый.
  • ABS(A) — модуль из А.
  • VAL{имя PID} — значение датчика с заданным именем.

Разделителем целой и десятичной части коэффициента является знак точки «.»

Предыдущая запись DashCommand full версия 4.6.20 от 24.03.2018
Следующая запись Тестер ECU (TECU-2). Версия 2.3.2.9c

FAQ [править]

Можно ли использовать «чужие» настройки PID

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

  • рама — вес/размер/материал/жесткость;
  • двигатели – мощность/крутящий момент;
  • расположение двигателей и расстояние между ними;
  • контроллеры двигателей и передатчик – кривые мощности;
  • винты (пропеллеры) – диаметр/шаг/материал;
  • БАЛАНСИРОВКА
  • и, конечно, навыки пилота.

Пиды лучше регулировать сразу с подвесом/камерой или можно после прицепить

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

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

Примечания и советы

В логах черного ящика высокие колебания P не выглядят как острые пики или большие волны. Эти колебания сначала проявляются в самом верху диапазона газа и выглядят как узкие синусоидные волны. Когда они появляются в логах, их еще не видно визуально или на слух, поэтому при начальной настройке (визуально и на слух) рекомендуется сначала достичь точки визуальных и звуковых колебаний, а затем снизить значения до 70%. К моменту, когда все колебания будут видны визуально или на слух, то в логах это тоже будет отчетливо отображаться.

Death Rolls (крен смерти)

Наиболее частой причиной, по которой квадрокоптер переворачивается и не останавливает двигатели — слишком низкое минимальное значение газа (throttle). Регулятор оборотов не может запустить двигатель после команды с низким значением газа (газ был какое-то время на 0). В журнале черного ящика, это отображается, как-будто двигатель управляется полным газом, но дрон продолжает крутиться. Первое, что нужно сделать, это увеличить настройку min_throttle (значение параметра Idle % при работе протокола DSHOT).

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

Третья причина — неудачная комбинация ESC\мотор. Некоторые регуляторы оборотов просто не могут работать с современными двигателями. Здесь поможет только замена ESC на другой.

Дополнительная информация для версии BetaFlight 3 (3.0 и 3.1)

  1. PID-настройки по умолчанию очень хорошо настроены и работают на большинстве квадрокоптеров и для них требуется лишь незначительная настройка.
  2. Параметр Р у Roll и Pitch могут быть довольно высокими без возникновения дополнительных колебаний, поэтому их можно увеличивать до тех пор, пока не пропадут эти самые колебания при их присутствии. Этот параметр можно увеличить под самый потолок, пока у вас D на минималках и вы не получите новые колебания при резком управлении стиками.
  3. Настройка Yaw может потребовать настройки нижнего предела yaw_accel_limit и yaw_p_limit, особенно для двигателей большой мощности и высокого рейтинга KV.
  4. Некоторые мощные системы и сборки не работают с PID по умолчанию и требуют настройки с нуля, как написано выше по шагам, например, система гоночных двигателей DJI Snail System:

Общие сведения о ПИД-регуляторе

Аббревиатура ПИД происходит от английского понятия PID, и расшифровывается как Proportional, Integral, Derivative. На русском языке это сокращение включает в себя три компонента или составляющие: пропорциональную, интегрирующую, дифференцирующую.

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

  • Первый – с сигналом рассогласования.
  • Второй – с интегралом сигнала рассогласования.
  • Третий – с производной сигнала рассогласования.

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

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

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

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

Три коэффициента ПИД регулятора и принцип работы

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

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

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

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

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

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

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

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