pid что это такое
PID — что это такое, как работает и принципы настройки
В этой статье рассмотрим главную и актуальную информацию о PID — тонкой настройке, которую не понимают многие пилоты. Если вы не знаете что делать и что означают цифры на вкладке PID, то читаем эту статью и начинаем понимать, как работает эта магия.
Статья переведена с ГитХаба, я тоже летаю и настраиваю частично ПИДы на своих дронах, поэтому постарался перевести доступным языком. Если знаете как описать какой-либо момент более понятно, пишите в комментариях. Сама статья здесь: https://github.com/betaflight/betaflight/wiki/PID-Tuning-Guide
Примечание: данная инструкция актуальна при настройке PID в прошивках BetaFlight 2.X и более новых. Для настройки более старых прошивок, просьба ознакомиться с дополнительной информацией по ссылке выше.
Теория о PID, параметры и как это работает
PID — это аббревиатура из 3 слов:
PID — это такая функция в полетном контроллере, которая считывает информацию с датчиков (как правило это гироскоп и акселерометр), обрабатывает и вносит корректировки, а затем отправляет команды регуляторам оборотов (ESC), а они в свою очередь управляют двигателями (быстрее или медленнее им крутиться).
Так вот, самый главный параметр в PID это Proportional. С помощью этого параметра (буду называть параметром) колебания при полете снижаются до минимума.
Колебания — внешние факторы, которые влияют на квадрокоптер в полете (ветер, притяжение и так далее), а также вибрация и дрожание.
В некотором смысле, P пропорциональна степени контроля над осью (под осью понимается PITCH или ROLL или YAW).
Чем меньше Р, тем меньше контроля над осями, чем больше Р, тем больше контроля со стороны этой функции.
Проблема при завышенном параметре Р в том, что он начинает перевыполнять ожидаемый контроль и это начинает приводить к колебаниям.
Качественные регуляторы оборотов (ESC), а также большая скорость вычисления PID-контуров (скрин ниже, помните же такую настройку?) помогает полетному контроллеру гораздо быстрее и эффективнее вносить корректировки в полет для избавления от колебаний.
А вот I и D участвуют только для исправления оставшихся кусочков ошибок, с которыми не смог или не успел справиться параметр P:
I собирает за Р накопленные ошибки (дрифт), с которыми не справился вовремя Р и исправляет их. Поэтому, если ваш дрон меняет угол наклона после резкой смены положения стика газа (дали резко газ или сбросили), то следует увеличить параметр I. НО, сначала попробуйте увеличить сам Р, вдруг он для вашего дрона слишком низкий и по этому не выполняет свою работу.
D контролирует насколько быстро ось достигает нужного значения. Например, если вы дали квадрокоптеру команду очень быстро остановить двигатели (газ в 0), значение Р при корректировке может проскочить и не внести корректировки. Если вы замечаете такие «симптомы» после резкой смены уровня газа, то увеличение D может помочь снизить колебания, которые возникают сразу после резкой смены уровня газа.
Важно не увеличивать слишком сильно параметр D! Чрезмерное увеличение D приводит к увеличению шума и перегреву двигателей и возможному их возгоранию.
Как настроить PID по шагам
Примечание: слишком высокое значение параметра D может привести к нагреву двигателей. Чтобы проверить нагрев, нужно полетать 20-30 секунд, приземлиться и проверить руками двигатели. Если сможете держать пальцы на моторах, то они не будут сильно нагреваться.
Примечание: поскольку yaw по своей природе имеет меньший контроль, нежели pitch и roll, то для этой оси допустимы широкие диапазоны значений. P и I могут быть высокие, а D — низким, это нормально.
Помните, что не нужно слишком глубоко зарываться в изучение логов Blackbox для настройки идеальных PID. Если квадрокоптер летает хорошо и вас все устраивает, просто идите и летайте
Примечания и советы
В логах черного ящика высокие колебания P не выглядят как острые пики или большие волны. Эти колебания сначала проявляются в самом верху диапазона газа и выглядят как узкие синусоидные волны. Когда они появляются в логах, их еще не видно визуально или на слух, поэтому при начальной настройке (визуально и на слух) рекомендуется сначала достичь точки визуальных и звуковых колебаний, а затем снизить значения до 70%. К моменту, когда все колебания будут видны визуально или на слух, то в логах это тоже будет отчетливо отображаться.
Death Rolls (крен смерти)
Наиболее частой причиной, по которой квадрокоптер переворачивается и не останавливает двигатели — слишком низкое минимальное значение газа (throttle). Регулятор оборотов не может запустить двигатель после команды с низким значением газа (газ был какое-то время на 0). В журнале черного ящика, это отображается, как-будто двигатель управляется полным газом, но дрон продолжает крутиться. Первое, что нужно сделать, это увеличить настройку min_throttle (значение параметра Idle % при работе протокола DSHOT).
Вторая причина — либо плохой двигатель, либо плохой ESC, либо даже ослабленное крепление луча рамы. В этом случае, вы увидите в логах Blackbox, что двигатель как бы на полном газе, но луч рамы опускается (если включен акселерометр), что указывает на то, что двигатель не имеет тяги. Для проверки замените двигатель или регулятор оборотов.
Третья причина — неудачная комбинация ESC\мотор. Некоторые регуляторы оборотов просто не могут работать с современными двигателями. Здесь поможет только замена ESC на другой.
Дополнительная информация для версии BetaFlight 3 (3.0 и 3.1)
Еще у нас есть старая статья, может быть, вы также почерпнете там что-нибудь полезное для себя: Что такое PID, на что влияет и как настроить
Что такое PID, на что влияет и как настроить
Многие прошивки для квадрокоптеров, такие как Betaflight и KISS, позволяют пилотам настраивать значения PID для повышения эффективности полета. В этой статье я расскажу, что такое PID, как это влияет на стабильность и обработку полёта. Также расскажу о некоторых простых методах настройки PID квадрокоптера.
Что такое PID в квадрокоптерах
К сожалению, в этом мире не все идеально, поэтому были придуманы PID (далее по тексту ПИД), чтобы приблизиться к идеалам.
PID — это функция в полетном контроллере. Эта функция считывает данные с датчиков и передает двигателям, как быстро им нужно вращаться. В конечном итоге, именно так достигается стабильность и идеальность полета квадрокоптера.
PID обозначает производную пропорционального интеграла. ПИД-регулятор представляет собой замкнутую систему управления, которая пытается получить фактический результат ближе к желаемому результату, внеся коррективы в выходные данные, которые отправляются двигателям. Если происходит ошибка, она возвращается в начало и цикл повторяется.
ПИД-регулятор вычисляет значение «ошибка» как разность между измеряемой величиной и желаемой величиной. Контроллер пытается свести к минимуму ошибку, отрегулировав поступающие значения управления.
Работает это так: в квадрокоптере PID получает данные с датчиков и сравнивает их с поступившими данными. Разница между этими данные называется «ошибка» или «error» по-английски и старается уменьшить в последующем эту ошибку. Посмотрите на схему, чтобы понять, как PID стабилизирует квадрокоптер:
В ПИД-регуляторе есть три функции: P, I и D. Эти значения могут быть интерпретированы с точки зрения времени:
Если вы сейчас ничего не поняли, то это нормально! Вам не обязательно понимать теорию работы PID и уметь отлично настраивать PID квадрокоптера. Можете сразу перейти к главе «Простая настройка PID значений», а если все же хотите узнать подробнее о ПИДах, то читайте дальше
Чтобы был какой-либо контроль над квадрокоптером:
Повторюсь, не обязательно полностью понимать как работает PID, чтобы нормально летать, однако, если вам интересна более глубокая теория, то далее будет интересное объяснение, постараюсь изложить все как можно в более легкой форме.
Как работают значения PID, их изменение
Как правило, изменение значений ПИД (усиления) оказывает влияние на поведение квадрокоптера:
Усиление P
P определяет, насколько жестко контроллер полета исправляет погрешности, чтобы достичь желаемой траектории полета. Этот параметр регулирует чувствительность и отзывчивость на изменения положения стиков. Чем выше это число, тем выше чувствительность и отзывчивость.
Более высокий коэффициент Р, означает более четкое управление, в то время как низкий Р — более мягкое и плавное управление. Но если это значение слишком большое, дрон станет слишком чувствительным и начнет сам себя корректировать, а также начнутся колебания значений положения стиков.
Можно снизить P, чтобы уменьшить колебания, но тогда дрон будет нечетко выполнять ваши команды, поэтому нужно будет поиграть с I и D, чтобы это компенсировать.
Усиление I
Значение I определяет, насколько сильно он будет поддерживать квадрокоптер при воздействии внешних факторов, таких как ветер и смещение центра тяжести, например.
Это настройка жесткости при поворотах квадрокоптера.
Обычно, настройки по умолчанию вполне хорошо справляются с этим, но если вы заметили некоторый дрейф дрона без вашей команды, то увеличьте немного значение I. Если значение будет слишком низкое, вам часто придется исправлять траекторию полета дроном, особенно, если вы часто меняете уровень газа.
Если значение I будет слишком высокое, то поведение квадрокоптера будет «деревянным», он будет слабо реагировать на ваши изменения положения стика на пульте. Никакие регуляторы оборотов, двигатели и пропеллеры не одинаковы, каждый на какую-то часть, но работает по-своему, поэтому когда вы даете резкий газ, а потом резко опускаете стик газа, один двигатель будет останавливаться быстрее другого и наоборот, все это вызывает провалы в положении квадрокоптера в воздухе, один двигатель еще имеет тягу, а другой уже нет.
Таким образом, I используется для исправления таких мелких проблем.
Усиление D
D работает как демпфер (глушитель, гаситель) и уменьшает чрезмерную коррекцию и регулирование коэффициента P. Увеличивая значение D, вы смягчаете воздействие Р, как бы добавляя «пружину» и также минимизирует вибрацию пропеллеров.
Если D будет слишком маленьким, то дрон будет как бы «отскакивать» назад в конце флипов и кренов, а также у вас будет сильная вибрация, вызванная вертикальным снижением.
Слишком большое значение тоже приводит к вибрациям. В попытке стабилизировать квадркоптер, полетный контроллер будет командовать регуляторам оборотов, чтобы те то прибавляли обороты двигателям, то уменьшали с такой скоростью (в смысле быстрее-медленнее), что из-за этого двигатели перегреются и сгорят. Вибрация также будет действовать на контроллер полета и со временем ситуация будет ухудшаться.
Еще одним побочным эффектом от D является то, что квадрокоптер становится «мягким», то есть реакция на команды слишком вялая.
Нужно ли настраивать PID?
На сегодня программное обеспечение для квадрокоптеров имеет сложную фильтрацию шумов и оптимизированные алгоритмы для полетов. Квадрокоптер может хорошо летать прямо из коробки на основе стандартных значений PID, если, конечно вы не используете некачественные детали или квадрокоптер очень плохо настроен.
Сделаем вывод, что в эти значения в большинстве своем лезть не требуется, разница будет между «хорошо летающий квадрокоптер» и «идеально летающий квадрокоптер».
Настройка PID квадрокоптера
Нет правильного или неправильного способа настройки PID, все, что хорошо работает для вас — и есть правильная настройка. PID настраиваются индивидуально под каждого пилота.
Обычно я всегда начинаю летать на стандартных настройках, а настройки в прошивках Betaflight и KISS хорошо работают для большинства квадрокоптеров.
Когда я летаю и замечаю какое-нибудь нежелательное поведение, я настраиваю конкретное значение и снова проверяю в полете. Если у квадрокоптера много вибраций, можно поиграть со значением PID, предварительно уменьшив все значения до половины или более, чтобы убедиться, что они не слишком высоки для начала.
Каждый раз, когда изменяете значения ПИД, задавайтесь вопросом: «Стало лучше или хуже». Найдите значение, на котором характеристика полета будет наилучшей.
За один раз настраивайте одну ось, сначала крен, потом высоту и затем рыскание. На каждой оси я настраиваю одно значение за раз, начиная с коэффициента усиления P, затем усиления D и, наконец I. Также вам нужно будет постоянно возвращаться к тонкой настройке, потому что одно значение может влиять на другое.
Yaw (рыскание) и PID
Самая сложная часть для понимания при настройке ПИДов — ось рыскания. Но это также самая легкая часть, потому что вы можете оставить ее по умолчанию в Betaflight, и ваш квадрокоптер будет летать просто отлично.
PID могут помочь с улучшением рыскания дрона, но вы должны учитывать и многие другие факторы, которые могут привести к дестабилизация рыскания.
Одним из симптомов плохого рыскания: вы делаете быстрое рыскание и в этот момент даете резкий газ, а дрон по оси (yaw) рыскания не остается на этом же уровне.
Хорошая работа по этой оси также зависит от качества оборудования: двигателей, пропеллеров и регуляторов оборотов. Ими определяется, на сколько быстро дрон сможет перемещаться по оси рыскания (yaw).
Чтобы улучшить рыскание, вы можете попробовать следующее:
P на Roll (крен)
С хорошими настройками P квадрокоптер будет очень точно реагировать по крену на положение стика.
Попытайтесь сделать резкий поворот, если Р слишком маленький, то дрон накренится в одну сторону, если слишком большой, вы получите сильную вибрацию и дёрганье. Если Р настроен правильно, то при совершении резких кренов — никаких вибраций и дёрганья не будет.
P на Pitch ( высотa)
Наберите высоту и опустите стик газа до конца вниз, после чего начните набирать газ, обратите внимание на набор высоты. Если квадрокоптер поднимается больше, чем нужно, то вероятно, что Р слишком мал, а если слишком быстрый набор, то Р нужно уменьшить.
Настраивайте до тех пор, пока дрон не станет отзывчивым и проворным с минимальной вибрацией. Также присматривайтесь к двигателям если они дергаются, то это означает, что Р завышен и следует его немного понизить.
TPA
ТРА — это настройка для снижения эффективности усиления P при увеличении дросселя (газа). Сделайте резкий газ и посмотрите, есть ли какие-либо колебания и вибрация, если да, то увеличьте ТРА. Хорошо настроенный ТРА даст вам очень гладкий газ. Лично я не использую ТРА выше 0,4.
D на Roll и Pitch (на крен и высоту)
Когда вы делаете трюки, такие как сальто и перевороты, вы наверняка замечали своеобразные отскоки в конце. Увеличение D может помочь в уменьшении этой проблемы. Будьте осторожны, так как большие значения D могут начать перегревать двигатели, поэтому регулируйте параметр с умом, ровно до того, чтобы проблемы исчезла, не больше. Также слишком большое значение D будет вызывать колебания и вибрацию в конце этих трюков.
I на Roll (на крен)
Наклоните (в полете, естественно) свой дрон вправо и влево и посмотрите, держит ли он этот наклон после того, как вы отпустили стик (напомню, все манипуляции в АКРО режиме), если он не держит угол наклона, то увеличьте значение I на Roll.
Сделайте тоже самое для наклона вперед и назад. Это также будет зависеть и от силы ветра.
Anti Gravity Gain
Летите по прямой и дайте пару раз (быстро) газа и посмотрите, сохраняет ли дрон положение. Если он опускается, то увеличьте это значение. Для меня идеальное значение было 3.
Yaw P (Рыскание Р)
Yaw PID необходимо настроить отдельно. Значения по умолчанию обычно хорошо работают на всех дронах.
Выполните резкое и быстрое рыскание, если после остановки квадрокоптер дрожит или вибрирует — уменьшите значение Р, если он опустится на одну сторону — увеличьте Р.
Когда Р по рысканию слишком высок, то при рыскании квадрокоптер будет набирать высоту, в таком случае, Р следует уменьшить.
Yaw I (Рыскание I)
Как говорилось выше, I используется для предотвращения дрейфа, но чрезмерное рыскание по I может привести к нестабильности и фактически уменьшить отзывчивость. Yaw I никогда не должен быть выше, чем необходимое значение для предотвращения дрейфа. Если ничего не случилось, просто оставьте значение по умолчанию.
D-Term Set Point Weight
Если это значение слишком высокое, дрон будет менее отзывчивым и вести себя будет как робот, т.е. отвечать будет резко. Если значение будет низким, то отвечать на ваши действия будет более гладко и медленно. Я считаю, что хорошим значением будет 0,6.
Не все проблемы из-за плохих настроек PID
Перед настройкой PID, вы должны изучить и другие данные:
Вибрация
Не все колебания вызваны высоким значением P. Перед настройкой PID вам необходимо максимально устранить источники вибрации на вашем дроне. Например, балансировка двигателей и пропеллеров, жесткость рамы и т. д.
Центр тяжести (CG)
Центр тяжести должен быть ровно посередине, между всеми 4-мя двигателями. Плохая центровка приведет к тому, что одни двигатели будут работать больше, чем другие, отсюда перегрев моторов и плохая стабильность полета. Например, аккумулятор находится в задней части, вместо расположение по-середине и поэтому задние моторы будут работать на 100%, а передние на 80%. Вся масса на квадрокоптере должна быть отцентрована и расположена равномерно. По этой причине Х-образные рамы самые популярные.
Вопрос: «Какие у тебя ПИДы?» — неправильный вопрос!
Довольно бессмысленно использовать чужие ПИДы на своем квадрокоптере. Каждый дрон уникален, его оборудование, да даже ветер и климат влияют на корректировку PID.
Когда нужно перенастраивать PID?
Почти все компоненты квадрокоптера влияют на PID, поэтому когда вы меняете какой-нибудь компонент, проведите и настройку PID. Если в Betaflight и Cleanflight вы меняли Looptime, то тоже нужно будет подкорректировать PID.
Что такое ПИД регулятор для чайников?
Дифференциальный пропорционально-интегральный регулятор — устройство, которое устанавливают в автоматизированных системах для поддержания заданного параметра, способного к изменениям.
На первый взгляд все запутанно, но можно объяснить ПИД регулирование и для чайников, т.е. людей, не совсем знакомых с электронными системами и приборами.
Что такое ПИД регулятор?
ПИД регулятор — прибор, встроенный в управляющий контур, с обязательной обратной связью. Он предназначен для поддержания установленных уровней задаваемых величин, например, температуры воздуха.
Устройство подает управляющий или выходной сигнал на устройство регулирования, на основании полученных данных от датчиков или сенсоров. Контроллеры обладают высокими показателями точности переходных процессов и качеством выполнения поставленной задачи.
Три коэффициента ПИД регулятора и принцип работы
Работа ПИД-регулятора заключается в подаче выходного сигнала о силе мощности, необходимой для поддержания регулируемого параметра на заданном уровне. Для вычисления показателя используют сложную математическую формулу, в составе которой есть 3 коэффициента — пропорциональный, интегральный, дифференциальный.
Возьмем в качестве объекта регулирования ёмкость с водой, в которой необходимо поддерживать температуру на заданном уровне с помощью регулирования степени открытия клапана с паром.
Пропорциональная составляющая появляется в момент рассогласования с вводными данными. Простыми словами это звучит так — берется разница между фактической температурой и желаемой, умножается на настраиваемый коэффициент и получается выходной сигнал, который должен подаваться на клапан. Т.е. как только градусы упали, запускается процесс нагрева, поднялись выше желаемой отметки — происходит выключение или даже охлаждение.
Дальше вступает интегральная составляющая, которая предназначена для того, чтобы компенсировать воздействие окружающей среды или других возмущающих воздействий на поддержание нашей температуры на заданном уровне. Поскольку всегда присутствуют дополнительные факторы, влияющие на управляемые приборы, в момент поступления данных для вычисления пропорциональной составляющей, цифра уже меняется. И чем больше внешнее воздействие, тем сильнее происходят колебания показателя. Происходят скачки подаваемой мощности.
Интегральная составляющая пытается на основе прошлых значений температуры, вернуть её значение, если оно поменялось. Подробнее процесс описан в видео ниже.
А дальше выходной сигнал регулятора, согласно коэффициенту, подается для повышения или понижения температуры. Со временем подбирается та величина, которая компенсирует внешние факторы, и скачки исчезают.
Интеграл используется для исключения ошибок путем расчета статической погрешности. Главное в этом процессе — подобрать правильный коэффициент, иначе ошибка (рассогласование) будет влиять и на интегральную составляющую.
ПИД регулирование — что такое, формула, принцип действия
Что такое ПИД регулятор?
ПИД регулятор — прибор, встроенный в управляющий контур, с обязательной обратной связью. Он предназначен для поддержания установленных уровней задаваемых величин, например, температуры воздуха.
Устройство подает управляющий или выходной сигнал на устройство регулирования, на основании полученных данных от датчиков или сенсоров. Контроллеры обладают высокими показателями точности переходных процессов и качеством выполнения поставленной задачи.
Как работают значения PID, их изменение
Как правило, изменение значений ПИД (усиления) оказывает влияние на поведение квадрокоптера:
Усиление P
P определяет, насколько жестко контроллер полета исправляет погрешности, чтобы достичь желаемой траектории полета. Этот параметр регулирует чувствительность и отзывчивость на изменения положения стиков. Чем выше это число, тем выше чувствительность и отзывчивость.
Более высокий коэффициент Р, означает более четкое управление, в то время как низкий Р — более мягкое и плавное управление. Но если это значение слишком большое, дрон станет слишком чувствительным и начнет сам себя корректировать, а также начнутся колебания значений положения стиков.
Можно снизить P, чтобы уменьшить колебания, но тогда дрон будет нечетко выполнять ваши команды, поэтому нужно будет поиграть с I и D, чтобы это компенсировать.
Усиление I
Значение I определяет, насколько сильно он будет поддерживать квадрокоптер при воздействии внешних факторов, таких как ветер и смещение центра тяжести, например.
Это настройка жесткости при поворотах квадрокоптера.
Обычно, настройки по умолчанию вполне хорошо справляются с этим, но если вы заметили некоторый дрейф дрона без вашей команды, то увеличьте немного значение I. Если значение будет слишком низкое, вам часто придется исправлять траекторию полета дроном, особенно, если вы часто меняете уровень газа.
Если значение I будет слишком высокое, то поведение квадрокоптера будет «деревянным», он будет слабо реагировать на ваши изменения положения стика на пульте. Никакие регуляторы оборотов, двигатели и пропеллеры не одинаковы, каждый на какую-то часть, но работает по-своему, поэтому когда вы даете резкий газ, а потом резко опускаете стик газа, один двигатель будет останавливаться быстрее другого и наоборот, все это вызывает провалы в положении квадрокоптера в воздухе, один двигатель еще имеет тягу, а другой уже нет.
Таким образом, I используется для исправления таких мелких проблем.
Усиление D
D работает как демпфер (глушитель, гаситель) и уменьшает чрезмерную коррекцию и регулирование коэффициента P. Увеличивая значение D, вы смягчаете воздействие Р, как бы добавляя «пружину» и также минимизирует вибрацию пропеллеров.
Если D будет слишком маленьким, то дрон будет как бы «отскакивать» назад в конце флипов и кренов, а также у вас будет сильная вибрация, вызванная вертикальным снижением.
Слишком большое значение тоже приводит к вибрациям. В попытке стабилизировать квадркоптер, полетный контроллер будет командовать регуляторам оборотов, чтобы те то прибавляли обороты двигателям, то уменьшали с такой скоростью (в смысле быстрее-медленнее), что из-за этого двигатели перегреются и сгорят. Вибрация также будет действовать на контроллер полета и со временем ситуация будет ухудшаться.
Еще одним побочным эффектом от D является то, что квадрокоптер становится «мягким», то есть реакция на команды слишком вялая.
Назначение ПИД регулятора
ПИД регулятор предназначен для поддержания на требуемом уровне некой величины — температуры, давления, уровня в резервуаре, расхода в трубопроводе, концентрации чего-либо и т.д., изменением управляющего воздействия на исполнительные механизмы, такие как автоматические регулирующие клапана, используя для этого пропорциональную, интегрирующую, дифференцирующую величины для своей настройки.
Целью использования является получение точного управляющего сигнала, который способен контролировать большие производства и даже реакторы электростанций.
Пример схемы регулирования температуры
Часто ПИД регуляторы используются при регулировке температуры, давайте на простом примере подогрева воды в ёмкости рассмотрим данный автоматический процесс.
В емкости налита жидкость, которую нужно подогреть до нужной температуры и поддерживать её на заданном уровне. Внутри бака установлен датчик измерения температуры — термопара или термометр сопротивления и напрямую связан с ПИД-регулятором.
Для подогрева жидкости будем подавать пар, как показано ниже на рисунке, с клапаном автоматического регулирования. Сам клапан получает сигнал от регулятора. Оператор вводит значение температурной уставки в ПИД-регуляторе, которую необходимо поддерживать в ёмкости.
Если настройки коэффициентов регулятора неверны, будут происходить скачки температуры воды, при этом клапан будет то полностью открыт, то полностью закрыт. В этом случае необходимо рассчитать коэффициенты ПИД регулятора и ввести их заново. Если все сделано правильно, через небольшой промежуток времени система выровняет процесс и температура в ёмкости будет поддерживаться на заданной отметке, при этом степень открытия регулирующего клапана будет находиться в среднем положении.
Три коэффициента ПИД регулятора и принцип работы
Работа ПИД-регулятора заключается в подаче выходного сигнала о силе мощности, необходимой для поддержания регулируемого параметра на заданном уровне. Для вычисления показателя используют сложную математическую формулу, в составе которой есть 3 коэффициента — пропорциональный, интегральный, дифференциальный.
Возьмем в качестве объекта регулирования ёмкость с водой, в которой необходимо поддерживать температуру на заданном уровне с помощью регулирования степени открытия клапана с паром.
Пропорциональная составляющая появляется в момент рассогласования с вводными данными. Простыми словами это звучит так — берется разница между фактической температурой и желаемой, умножается на настраиваемый коэффициент и получается выходной сигнал, который должен подаваться на клапан. Т.е. как только градусы упали, запускается процесс нагрева, поднялись выше желаемой отметки — происходит выключение или даже охлаждение.
Дальше вступает интегральная составляющая, которая предназначена для того, чтобы компенсировать воздействие окружающей среды или других возмущающих воздействий на поддержание нашей температуры на заданном уровне. Поскольку всегда присутствуют дополнительные факторы, влияющие на управляемые приборы, в момент поступления данных для вычисления пропорциональной составляющей, цифра уже меняется. И чем больше внешнее воздействие, тем сильнее происходят колебания показателя. Происходят скачки подаваемой мощности.
Интегральная составляющая пытается на основе прошлых значений температуры, вернуть её значение, если оно поменялось. Подробнее процесс описан в видео ниже.
А дальше выходной сигнал регулятора, согласно коэффициенту, подается для повышения или понижения температуры. Со временем подбирается та величина, которая компенсирует внешние факторы, и скачки исчезают.
Интеграл используется для исключения ошибок путем расчета статической погрешности. Главное в этом процессе — подобрать правильный коэффициент, иначе ошибка (рассогласование) будет влиять и на интегральную составляющую.
Третий компонент ПИД — дифференцирующий. Он предназначен для компенсации влияния задержек, возникающих между воздействием на систему и обратной реакцией. Пропорциональный регулятор подает мощность до тех пор, пока температура не достигнет нужной отметки, но при прохождении информации к прибору, особенно при больших значениях, ошибки всегда возникают. Это может привести к перегреву. Дифференциал прогнозирует отклонения, вызванные задержками или воздействием внешней среды, и снижает подаваемую мощность заранее.
Не все проблемы из-за плохих настроек PID
Перед настройкой PID, вы должны изучить и другие данные:
Вибрация
Не все колебания вызваны высоким значением P. Перед настройкой PID вам необходимо максимально устранить источники вибрации на вашем дроне. Например, балансировка двигателей и пропеллеров, жесткость рамы и т. д.
Центр тяжести (CG)
Центр тяжести должен быть ровно посередине, между всеми 4-мя двигателями. Плохая центровка приведет к тому, что одни двигатели будут работать больше, чем другие, отсюда перегрев моторов и плохая стабильность полета. Например, аккумулятор находится в задней части, вместо расположение по-середине и поэтому задние моторы будут работать на 100%, а передние на 80%. Вся масса на квадрокоптере должна быть отцентрована и расположена равномерно. По этой причине Х-образные рамы самые популярные.
Настраивание ПИД-регулятора общего вида
Для такого поддержания давления существует прибор, который называется регулятором задания. Давление в трубах на датчике идет в сравнение с параметром заданного давления. Регулятор сравнивает системное давление с давлением задания, определяет задачу скорости для двигателя для изменения ошибки. Простой вид регулятора применяет план действий ПИД-регулирования. В нем применяются три составляющие типа регуляторов для удаления ошибки: дифференциальный, интегральный и пропорциональный регулятор.
Регулятор пропорционального типа
Такой регулятор – главный, скорость задается в прямой зависимости от ошибки. При применении пропорционального регулятора система будет иметь ошибку. Малые значения коэффициента регулятора пропорционального типа дают вялость системы, а высокие параметры к колебаниям и нестабильности системы.
Регулятор интегрального типа
Такой регулятор применяется для удаления ошибки. Скорость увеличится до удаления ошибки (снизится при негативной ошибке). Небольшие значения суммирующей составляющей слишком оказывают влияние на деятельность регулятора в общем. При установлении больших значений происходит промахивание системы, она функционирует с перерегулированием.
Регулятор дифференциального типа
Такой регулятор измеряет скорость корректировки ошибки, применяет для повышения системного быстродействия, увеличивает регуляторное быстродействие в общем. Во время увеличения быстродействия регулятора повышается перерегулирование. Это обуславливает к системной нестабильности. Во многих случаях составляющая дифференциальная становится равной нулю или близкой к наименьшему значению для того, чтобы предотвратить это состояние. Она бывает полезной в позиционирующей системе.
ПИД-регулятор
С помощью настройки ПИД-регулятора (PID-controller) мы можем скорректировать переходный процесс так, как нам нужно для решения своей задачи.
Хзад – заданное (желаемое) значение выходной переменной
Xmax – верхний допустимый предел выходной переменной
Xmin – нижний допустимый предел выходной переменной
Т – период колебаний
Тн – время нарастания
Тр – время переходного процесса (последняя точка пересечения кривой с Xmin или Xmax)
А1 – первое перерегулирование
А2 – второе перерегулирование
d=А1/A2 — степень (декремент) затухания переходного процесса (отношение первого перерегулирования ко второму)
Рассогласование, перерегулирование, время нарастания, время переходного процесса, степень затухания характеризуют качество регулирования.
Пример
ПИД-регулятор открывает и закрывает регулирующий вентиль на горячей трубе так, чтобы из крана текла вода с температурой +40°С с погрешностью плюс-минус 2 градуса. Регулятор вычисляет рассогласование (ошибку) — отклонение реальной температуры (например, +20°С) от заданного значения (+40°С) и решает – когда и насколько необходимо приоткрыть горячий вентиль, чтобы температура повысилась на 20С. Реальную (фактическую) температуру регулятор узнаёт с помощью датчика температуры (обратная связь), а заданную температуру (уставку) ему сообщает оператор, например, набирая число «40» на своём ПК.
Чтобы настроить ПИД-регулятор, необходимо подобрать правильную комбинацию трёх коэффициентов:
Могут использоваться и более простые — П и ПИ-регуляторы.
Формула ПИД-регулятора
где e(t) — ошибка (рассогласование), u(t) — выходной сигнал регулятора (управляющее воздействие).
Чем больше Пропорциональный коэффициент, тем выше быстродействие, но меньше запас устойчивости. Но! простой П-регулятор не может полностью отработать рассогласование, т.е. всегда работает с ошибкой.
ПИ-регулятор позволяет избавиться от статической (установившейся) ошибки, но, чем больше Интегральный коэффициент, тем больше перерегулирование (динамическая ошибка).
ПИД-регулятор позволяет нам уменьшить перерегулирование, но, чем больше Дифференциальный коэффициент, тем больше погрешность из-за влияния шумов.
Если шумы идут по каналу обратной связи, то мы можем их отфильтровать с помощью фильтра низкой частоты, но чем больше постоянная этого фильтра, тем медленнее регулятор будет отрабатывать возмущения.
Настройка ПИД регулятора
Настройка ПИД-регулятора осуществляется 2 методами:
Теоретический метод анализа и настройки на практике применяются крайне редко, что связано с незнанием характеристик объекта управления и кучей возможных возмущающих воздействий. Более распространены экспериментальные методы на основе наблюдения за системой.
Современные автоматизированные процессы реализуются как специализированные модули под управлением программ для настройки коэффициентов регулятора.
Как настроить PID по шагам
Примечание: слишком высокое значение параметра D может привести к нагреву двигателей. Чтобы проверить нагрев, нужно полетать 20-30 секунд, приземлиться и проверить руками двигатели. Если сможете держать пальцы на моторах, то они не будут сильно нагреваться.
Примечание: поскольку yaw по своей природе имеет меньший контроль, нежели pitch и roll, то для этой оси допустимы широкие диапазоны значений. P и I могут быть высокие, а D — низким, это нормально.
Помните, что не нужно слишком глубоко зарываться в изучение логов Blackbox для настройки идеальных PID. Если квадрокоптер летает хорошо и вас все устраивает, просто идите и летайте
Составляющие сигнала ПИД-регулятора
Управляющий сигнал, формируемый ПИД-регулятором, сумма трех составляющих:
Пропорциональная составляющая формируется исходя из разницы заданной величины параметра и его фактического значения. Чем больше отклонение характеристики, тем выше уровень пропорционального сигнала. Устройства, управляющие системой, только по пропорциональному закону называются П-регуляторы.
Основной недостаток такого регулирования – статическая ошибка, которая указывает на величину остаточного отклонения параметра. Пропорциональные регуляторы имеют ограниченную точность.
Для ее устранения введена интегральная составляющая. Она пропорциональна интегралу по времени от отклонения величины контролируемой характеристики.
При отклонении параметра, пропорциональная составляющая возвращает его к прежнему значению. Уровень сигнала на выходе стремится к нулю, однако благодаря статической ошибке, регулируемый параметр не достигает заданной величины. Интегральная компонента обеспечивает компенсацию ошибки и позволяет возвращать характеристику к заданным значениям.
Пропорционально-интегральное управление обладает невысоким быстродействием и не подходит для регулирования динамичных систем. Накопление и суммирование ошибок приводит к росту управляющего сигнала. Система может «пойти в разнос».
Для увеличения быстродействия в конструкцию регулятора введена дифференциальная составляющая. Она увеличивается и уменьшается пропорционально скорости изменения контролируемого параметра.
Таким образом, результирующий сигнал на выходе ПИД-регулятора можно определить из выражения:
где Kp, Ki, Kd – пропорциональный, интегральный, дифференциальный коэффициенты соответственно, e(t) – ошибка рассогласования.
Настройки ПИД-регулятора
Наладка ПИД-регулятора сводится к определению коэффициентов Kp, Ki, Kd. Компоненты определяются из формулы:
По ним определяются передаточные функции системы автоматического регулирования и вычисляются ее параметры:
Математическая модель САР не может дать полного представления о работе системы. Расчеты выполняются для «идеального регулятора». Нелинейность контролируемых параметров, внешние возмущения, помехи на объекте управления не позволяют применять данные расчетов для построения системы автоматического регулирования на практике. Результаты математических расчетов используют как вспомогательные данные.
При разработке ПИД-регуляторов и САР используют оборудование, имитирующее изменение контролируемых характеристик, измерительные приборы и ПК. Устройства позволяют определить и анализировать реакцию системы на воздействия и более точно подобрать коэффициенты.
На практике применяется опытный подбор коэффициентов. ПИД-регуляторы устанавливают на объекте, вводят коэффициенты, полученные при расчете или стендовых испытаниях, настраивают параметры на месте.
Пример применения ПИД-регулятора в частотно-регулируемом приводе насоса
Схемы преобразователей частоты содержат управляющие контроллеры, которые могут обеспечить работу устройства в режиме ПИ или ПИД-регулятора. Специализированные частотники часто уже имеют предустановленные настройки, которые корректируют после установки оборудования.
На рисунке представлена простейшая ПИД схема управления насосом по давлению. К аналоговым входам подключены датчик, установленный на напорном трубопроводе, и внешнее задающее устройство. Требуемое значение давления также можно задавать в настройках регулятора. При изменении регулируемого параметра на контроллере, сравнивающим сигнал обратной связи с заданным значением, формируется управляющий сигнал.
Преобразователь изменяет производительность насоса путем увеличения или снижения частоты питающего напряжения электродвигателя до тех пор, пока давление в системе не достигнет заданного значения. Таким образом, давление в системе не зависит от расхода.
Приведенная схема сильно упрощена. Частотные преобразователи с ПИД-регулятором могут управлять производительностью по нескольким параметрам. Например, насосы в отопительных системах могут регулироваться по температуре теплоносителя и тепловому режиму на улице и в помещении и давлению.
Преобразователи частоты с функциями ПИД-регулятора применяют также в сложных системах регулирования тягодутьевых систем и других АСУТП.
Вопрос: «Какие у тебя ПИДы?» — неправильный вопрос!
Довольно бессмысленно использовать чужие ПИДы на своем квадрокоптере. Каждый дрон уникален, его оборудование, да даже ветер и климат влияют на корректировку PID.
Примечания и советы
В логах черного ящика высокие колебания P не выглядят как острые пики или большие волны. Эти колебания сначала проявляются в самом верху диапазона газа и выглядят как узкие синусоидные волны. Когда они появляются в логах, их еще не видно визуально или на слух, поэтому при начальной настройке (визуально и на слух) рекомендуется сначала достичь точки визуальных и звуковых колебаний, а затем снизить значения до 70%. К моменту, когда все колебания будут видны визуально или на слух, то в логах это тоже будет отчетливо отображаться.
Death Rolls (крен смерти)
Наиболее частой причиной, по которой квадрокоптер переворачивается и не останавливает двигатели — слишком низкое минимальное значение газа (throttle). Регулятор оборотов не может запустить двигатель после команды с низким значением газа (газ был какое-то время на 0). В журнале черного ящика, это отображается, как-будто двигатель управляется полным газом, но дрон продолжает крутиться. Первое, что нужно сделать, это увеличить настройку min_throttle (значение параметра Idle % при работе протокола DSHOT).
Вторая причина — либо плохой двигатель, либо плохой ESC, либо даже ослабленное крепление луча рамы. В этом случае, вы увидите в логах Blackbox, что двигатель как бы на полном газе, но луч рамы опускается (если включен акселерометр), что указывает на то, что двигатель не имеет тяги. Для проверки замените двигатель или регулятор оборотов.
Третья причина — неудачная комбинация ESCмотор. Некоторые регуляторы оборотов просто не могут работать с современными двигателями. Здесь поможет только замена ESC на другой.
Дополнительная информация для версии BetaFlight 3 (3.0 и 3.1)
Еще у нас есть старая статья, может быть, вы также почерпнете там что-нибудь полезное для себя: Что такое PID, на что влияет и как настроить.
Формула ПИД-регулятора
Как я и обещал, формул тут не будет… ну, почти не будет. И этот раздел – как раз и будет формулой. Обещаю – больше формул не будет! Так что потерпите!
Итак, формула ПИД-регулятора:
(навеяно Википедией)
Тут у нас следующие буковки (разъясним чуть ниже):
Все, расслабились – больше эта формула нам в работе не понадобится, она для пояснения сути.
А суть тут такая.
У нас есть воздействие, наша Функция (u (t) ). Она состоит из трех составляющих – Пропорциональной, Интегральной и Дифференциальной (отсюда и ПИД-регулятор).
Формула в вышеприведенном виде хороша для изучения, но неудобна для расчетов (хотя бы потому, что в вычислительной технике надо переходить к численным методам). В программной реализации, если верить этой статье, переходят к дискретной реализации:
u(t) = P (t) + I (t) + D (t);
P (t) = Kp * e (t);
I (t) = I (t — 1) + Ki * e (t);
D (t) = Kd *
Вот это уже выглядит куда реальнее и понятнее! Мы вычисляем сумму трех составляющих. Каждая из них определяется своими коэффициентами. Если данный коэффициент нулевой, то составляющая в вычислении не участвует. С этой формулой мы и будем работать далее, ее я и реализую.
Впрочем, есть еще и другая, рекуррентная реализация:
u(t) = u(t — 1) + P (t) + I (t) + D (t);
P (t) = Kp *
I (t) = I * e (t);
D (t) = Kd *
Какая из них лучше/правильней? Математика, в общем-то, одинаковая. Коэффициенты тоже. Говорят, что есть разные подводные булыжники при реализации.
Обратите внимание! Коэффициенты тут – обязательно дробные числа! В языке программирования Си – как минимум float, а лучше бы и double.
Вся магия ПИД-регуляторов – именно в этих коэффициентах. Как их подбирать – посмотрим в конце. А сейчас переведем дух от математики и поедем к изучению поведения этой формулы.
Все расчеты и моделирование я проводил на модели в Excel. Он – файл – приложен внизу, с ним можно поиграться самостоятельно. Модель – сугубо для ознакомления с идеей! Т. е. не надо ее стараться привести к какому-то реальному процессу, искать в ней научный смысл и т. п. Там все цифры слегка «отфонарные». Но зато и файл простенький и несложный. И моделируется быстро. И дает возможность понять суть ПИД-регулятора. Пару слов по файлу я дам в конце.
Когда нужно перенастраивать PID?
Почти все компоненты квадрокоптера влияют на PID, поэтому когда вы меняете какой-нибудь компонент, проведите и настройку PID. Если в Betaflight и Cleanflight вы меняли Looptime, то тоже нужно будет подкорректировать PID.