ПИД для квадрокоптеров (перевод)

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

Про настройку ПИД простыми словами

Как я раньше и объяснял, ПИД контроллер или регулятор (Пропорционально-интегрально-дифференцирующий регулятор) это управляющий цикл с обратной связью, который очень часто используется во всевозможных управляющих системах. ПИД регулятор вычисляет значение «ошибки» как разницу между измеренным значением переменной и ее желаемым значением. Он пытается минимизировать ошибку воздействуя на управляемые входы. Серьезно, это определение полностью бесполезно для нас – не ученых :-p

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

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

ПИД еще более простыми словами

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

Что такое P?

P – это основное значение о котором нужно побеспокоиться, это число определяет стабильность. Почему я так говорю? Потому что Вы можете оставить I и D равными 0 и ваш самолет все еще будет удерживать горизонтальное положение. И вот поэтому вы всегда должны настраивать значение P до значений I и D.

Чем больше значение P, тем резче оно пытается стабилизировать коптер. Но если P слишком большое, то коптер становится слишком чувствительным и слишком резко пытается корректировать свое положение, проскакивая требуемое положение (чрезмерно резкая и быстрая реакция), в этом случае вы получите колебания с большой частотой.

Хотя и не все колебания вызываются слишком большим значением P. Вы должны снизить уровень вибраций по максимуму до того как начинать настройку ПИД; например от моторов, жесткости рамы, баланса винтов и т.д. Если коптер сам по себе не вибрирует, то вы можете установить бОльшее значение P и наслаждаться более стабильным и управляемым полетом.

Способ, при помощи которого я настраиваю P: увеличивать значение до тех порка не появятся вибрации (колебания), и затем немного уменьшить.

Что такое I?

Отлично, вы настроили P, оставив I и D значением по умолчанию (прим. переводчика, по идее они должны быть равными 0). Теперь во время полетов вы можете заметить, что должны удерживать стики рола и питча (крен и тангаж) чтобы коптер двигался, как только перестанете двигать стики – коптер сразу останавливается и выравнивается. Эта резкость управления даже может вызвать несколько колебаний или раскачиваний если вы дерните стик быстро.

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

Чтобы понять это подумайте о том, что коптер пытается уменьшить ошибку в положении, но ошибка не уменьшается, она будет только пытаться уменьшиться. Это эффект от параметра I. Технически говоря это интеграл ошибки по времени, чем дольше ошибка присутствует, тем большая сила должна быть приложена. Когда I не равно 0, очень маленькая ошибка присутствует постоянно (это не обязательно плохо в реальном полете!).

Некоторые пилоты используют I чтобы полет был более плавным, в то время как другие – любят вариант поведения «следовать за стиком немедленно». Однако со слишком большим значением I, ваш коптер начнет колебаться с низкой частотой если дать газу. Когда I имеет слишком маленькое значение ваш коптер будет раскачиваться во время снижения.

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

Что такое D?

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

D – это противоположность P. Если P это рука которая продолжает толкать машину в сторону стабильного положения, тогда D – это пружина между рукой и машиной, которая сглаживает резкие удары. Увеличивая D вы как бы смягчаете движения, как бы добавляете пружину в этот процесс управления. Однако слишком большое D – не очень хорошо, потому что может вызвать колебания. А еще коптер будет вялым.

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

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

ПИД для вертикальной оси (рысканье)

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

Заключение

Здесь статья как я настраиваю свой Naze32.

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

 

Оригинал: Understanding PID for Quadcopter RC – Flight behaviour

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.