Настойка PID-ов на ArduCopter и MegaPirate

Настойка PID-ов на ArduCopter и MegaPirate
Я сам еще только въезжаю, как правильно настраивать PID-ы. Поэтому для себя перевел небольшую выдержку из официального wiki ардукоптера. Может кому то еще пригодится.
Оригинал code.google.com/p/arducopter/…/AC2_attitude_PID

Настройка уровня PID
Параметр: RATE_RLL_P и RATE_PIT_P - пропорциональный ответ, и по умолчанию 0.14. Оно настраивается в зависимости от размера коптера, веса и тяги ваших двигателей. Если Ваш коптер колеблется быстро, понизьте это значение. Если вяло, поднимите значение. Это  первый параметр, который нуждается в настройке. Если он не верно настроен, то настройка любого другого параметра - пустая трата времени.

Параметр: RATE_RLL_I и RATE_PIT_I установлены в 0 по умолчанию. Используйте это значение, чтобы поддержать жесткий контроль скорости вращения коптера. Если коптер не достигает скорости вращения, то этот параметр поможет это исправить.

Параметр: RATE_RLL_D и RATE_PIT_D.0025 по умолчанию. Это значение создает ускорение к целевому углу. Если значение слишком высоко, вы увидите маленькие, быстрые колебания по тангажу или крену. Вы можете даже временно потерять контроль по тангажу или крену, поскольку значение D  перекрывает выходное управление.

Примечание: Когда настраиваете Ваш коптер, уберите RATE_I и RATE_D в ноль, и только настраивайте RATE_P. Как только Вы настроите это, затем настраиваете RATE_I и RATE_D.

Параметр: STAB_D.06 по умолчанию. Это компенсирует ускорение вращения коптера и может устранить те маленькие колебания после изменения сетбола (быстрое угловое изменение). Это подобно RATE_RLL_D, но только компенсирует ускорение. STAB_D подобен RATE_RLL_D, но только не фильтровано  (быстрее) и имеет гораздо меньше шума, чем RATE_RLL_D. Так же, как RATE_RLL_D высокие значения может вызвать колебания или временно потерю контроля по тангажу или крену, поскольку термин D перекрывает выходное управление.

Настройка контроля за PI
Параметр: STB_RLL_P и STB_RLL_P по умолчанию 4.5 или 4.5 ° в секунду вращение для каждого 1 ° ошибки. Если Вы хотите большую или меньшую скорость вращения, основанного на вводе данных пользователем, регулируете это значение. Большие Octo-коптеры должно иметь меньшее число, 3.5, возможно, или Вы получите большие колебания  в стиле качелей.

Параметр: STB_RLL_I и STB_PIT_I используются, чтобы преодолеть неустойчивость в коптере. Если коптер не симметричен, то этот i-параметр приведет коптер, к выравниванию. Большее число, даст коптеру более быструю компенсацию. При низких числах возможны отрицательные воздействия, вызывая очень медленное колебание, измеряемое в секундах. Если Вы используете этот параметр, рассматриваете потенциальные конфликты в выборе времени с Rate_I. Может быть лучше держать один или другой параметр в нуле.

  • 4106
Comments
fidller

хорошая тема, сам думал таким заняться. Надеюсь поможет, как раз буду отстраивать свою гексу. СПС

Triumpher

Я тож так думаю. А то просто тыкать PID-в как то неуместно. Во всем должен быть смысл. Сейчас настраиваю свой квадрик, попробую написать что то типа мануала для настройки с нуля. Очень уж интересен Ардукоптер/мегапират.

alexeykozin

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

Triumpher

что то похожее было в первых версиях коптера,

Вполне возможно. Переводил из официального вики. Неточно перевел, но смылс прост. настраиваем P, подтягиваем D, еще увеличиваем P, и крутим I, далее все по вкусу.