PID Настройки в ручную

Ручная настройка PID

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

Увеличение значения Р:
приводит к большей устойчивости /стабильности до тех пор, пока слишком большое значение Р не приведет к осцилляциям и потере контроля над вертолетом (потере управления).
Вертолет будет больше противодействовать любым попыткам извне к изменению своего пространственного положения .
Уменьшение значения Р:
приведет к дрейфу в управлении. Если Р слишком мал, вертолет становится очень нестабильным. Он будет меньше сопротивляться любым попыткам изменить его положение.

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

D – это скорость, с которой вертолет вернется в его начальное положение. Высокие D означают, что вертолет вернется в первоначальное положение очень быстро.

Увеличение значения D увеличивает скорость, с которой все отклонения будут скомпенсированы. Это означает так же увеличение вероятности появления перерегулирования и осцилляций. Так же увеличивается эффект от изменения Р (влияние Р-компоненты)
Уменьшение значения D уменьшает колебания при возврате в начальное положение. Возврат в начальное положение происходит медленнее. И так же уменьшает эффект от изменения Р.

Условно можно сказать, что акробатический пилотаж требует более высоких значений PID. Что, впрочем и сделал для нас разработчик, заложив некоторые средние значения в готовые пресеты настроек. В большинстве случаев, можно их и оставить по умолчанию. Но для чего тогда нам оставили возможность тонкой настройки PID?
Прежде всего, конечно для удешевления системы, не надо платить проф-пилотам за работу по поиску универсального соотношения параметров PID. Но так же и для того, чтобы пользователь при желании сам мог получить для себя необходимые и удобные характеристики поведения вертолета, что ИМХО хорошо. Ведь модели все разные, весовые, мощностные характеристики, обороты могут сильно отличаться. Сервоприводы АП так-же разные, общие рекомендации применительно к скорости их отработки:
-медленные сервы на голове - большие значения P, I
-быстрые сервы - меньшие значения.

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

  1. Настройка начинается с параметра P. Необходимо его постепенно увеличивать до появления колебаний. После появления колебаний немного уменьшить P (на 5 единиц). В дальнейшем при выполнении переворотов, бочек при появлении звука срыва потока на лопастях ещё уменьшить P.
  2. Настройка параметра I выполняется при выполнении пируэтов при быстром полёте вперёд. Если скорость выполнения пируэта равномерна, настройка завершена.
  3. Если при уже установленных параметрах P и I вертолёт немного подергивает по элеватору, необходимо немного увеличить Pitch D.

При возникновении автоколебаний ротора:

  1. Быстрые колебания – завышено P,
  2. Медленные колебания – завышено I.

Настройки рекомендуется производить грубо с шагом 5 единиц, затем более точно 1-2 единицы.

Для нормального полета , есть действительно только один параметр , о котором бы должны “позаботиться” - это Rate Roll P setting (Rate Pitch по умолчанию связан с ним , если нажата галочка “Lock Pitch and Roll Values” смотрите картинку выше)
Повышая это значение делаете коптер более “агрессивным” в полете . Понижая это значение Вы получаете более "мягкий " отклик.

Вот пример: по умолчанию значение Rate Roll P - 0.14. Это значение оптимально для стандартного Jdrones/3DR квадрокоптера с 850 моторами и 10" (10 дюймовыми) пропеллерами.
Однако если Вы используете большие чем 850 моторы и 12 дюймовые пропеллеры , которые более мощные, то такие значения Rate Roll P будут слишком агрессивные и Ваш квадрик будет казаться довольно неустойчивым. Так в этом случае понизьте ваши значения Rate Roll P до 0.1 или 0.09, и вы должны увидеть более стабильный полет.
То же самое верно и для удержания высоты - Altitude hold. Throttle Rate P нуждается в корректировке, чтобы получить оптимальную производительность по высоте.

Эти 2 параметра нужно подбирать , чтобы заставить ваш коптер хорошо отрабатывать, и сильно зависят от соотношения тяга/вес вашего коптера. Больше тяги - меньше значения.

Мой коптер раскачивается медленно (большие движения) когда стабилизировался : понизьте значение в Stabilize Roll P.

Мой коптер раскачивается быстро (мелкие движения) когда стабилизировался : понизьте значение Rate Roll P.

Мой коптер становится шатким при быстрой посадке . Поднимите значение Rate Roll P. Не всегда получается - зависит от пропов.

Мой коптер слишком вялый : Поднимите значение Stabilize Roll P. Это значение заставляет коптер быстрее реагировать на угловые ошибки.

Мой вертолет крутит вправо или влево на 15 °, когда я взлетаю: Ваши моторы установлены не прямо или Регули не откалиброваны.

За что отвечают Пиды .

STABILIZE_P: скорость поворачивания (реагирования) , с которой Вы хотите, чтобы реагировал коптер. Чем выше тем быстрее коптер будет пытаться достичь желаемой позиции.
STABILIZE_I: Используется для учета изменений CG (кто знает что это такое), слабые двигатели или постоянные внешние силы.
STABILIZE_Imax: Максимальное количество, что коптер может компенсировать эти несбалансированные силы.

RATE_P: самый важный параметр! Его значение контролирует, сколько тяги нужно выводить для достижения желаемой скорости вращения.
Большая тяга (мощные двигатели) или большой вес коптеров потребуется меньшее значение RATE_P, меньшая тяга / вес потребует более высокое значение.
Слишком высокие значения будут вызывать колебания около 5-10Гц. Вам нужно, чтобы это значение было несколько ниже, чем значение, которая вызывает колебание.
Агрессивный тюнинг можно получить вернув ровно на 1 от значения перерегулирования . Используйте CH6 настройки для регулировки в воздухе для лучшей производительности.
RATE_I: Используется, чтобы помочь коптеру достичь желаемого крена . Не используйте значение по умолчанию, как это может быть очень трудно настроиться
должным образом и может ввести в заблуждение.
Если вы только начинаете, установить этот параметр в 0.
RATE_IMAX: максимальное количество Rate_I, которые могут накапливаться. Также не используйте по умолчанию. Имея в 0 IMAX сделает Rate_I совершенно неэффективными,
независимо от того, насколько высок Rate_I .

YAW используется для положения под определенным углом рыскания. Если ваш коптер хочет крутиться, естественно, вы не сможете задать точное направление.
Вы будете дрифтовать, а не поворачивать на несколько градусов, пока P получится значительно высоким, чтобы остановить вращение.

STABILIZE_YAW_P: Заданная скорость, с которой вертолет повернется к нужному направлению. Если он слишком высокой, это может вызвать колебания.
STABILIZE_YAW_I: Действует как триммирование для преодоления плохого баланса коптера. Определяет время, необходимое для достижения максимального значения. Выше = быстрее.
RATE_YAW_P: Используется в качестве контролирующего органа AC2 можно использовать для достижения нулевой скорости рыскания.
Если он слишком низкий, вы никогда не будете в состоянии остановить вращение.
Если он слишком высокий, вызовет колебания рыскания.
RATE_YAW_I: не используется
Throttle Rate используется чтобы ослабить коптер и контролировать скорость подъема.
Throttle Rate P : количество газа на выходе используется для изменения скорости подъема.
THROTTLE_I: компенсирует ошибки в достижении желаемой скорости подъема (ноль по умолчанию. мы используем Alt hold делать большую часть работы.).
THROTTLE_IMAX: Количество Throttle_I мы можем добавить или убрать для достижения желаемой скороподъемности.
Мой вертолет не остается неподвижным в воздухе.
Откалибруйте уровень на плоской поверхности (разоружаться в течение 15 секунд). Вы можете также полететь в AUTO-TRIM в безветрие (важно!).
Любой ветер вызовет изменения, которые Вы вносите, чтобы работать против Вас, когда коптер вращает 180°.
Вы можете использовать триммеры продольного и поперечного крена,
но не забыть отцентровать их, когда будете заново конфигурировать радио. Использование триммеров может иметь отрицательный эффект в SIMPLE MODE, отклоняясь от курса.
Никогда не триммируйте YAW, Ваш вертолет может начать самостоятельно вращаться.

В LOITER мой вертолет постоянно промахивается.
Попытайтесь увеличить Nav_P. Вы можете также понизить I, потому что в некоторых случаях Nav_I или
Loiter_I могут причины промахиваться. Сделайте I равным 0 в безветрие – это лучший способ настроить Nav_P.

Мой вертолет все более и более качается вверх и вниз в ALT HOLD.
Ваш THROTTLE_P слишком высок или низок. Вы не нуждаетесь в высоком P, чтобы удерживать высоту.
Думайте, сколько Вы перемещаете дроссель, чтобы держать высоту отлично. Не очень много! Это – то, что
Вы нуждаетесь в P, чтобы сделать. I будет расти, поскольку Ваша батарея понижается, чтобы составить различие.

Сначала надо крутить Rate_P, добиться того значения, чтобы его не колбасило (лучше в руках, но осторожно)
при этом чтоб rate_D был где то 0.0025, а Rate_I был в 0. А уж потом крутить в Stabilize_P, I, D.

  • 1324
Comments
=Михаил#

Никак не пойму роль параметра I.

Как тут пишется … I – это период времени, в течение которого записываются и усредняются угловые отклонения.

Допустим… получил I-контроллер усреднённое значение углового отклонения за периуд 5 сек по оси Roll, что дальше ??? И допустим за эти 5 секунд квадракоптер шатало порывами ветра по оси Roll ( то в одну сторону наклонит квадр то вдругую на угол в 10 градосов и так продолжается до бесконечности пока дует ветер, а дует ветер совершенно не предсказуемо). И… что дальше то, каким образом I-контроллер будет стабилизировать болтанку ?