Настойка 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. Может быть лучше держать один или другой параметр в нуле.
хорошая тема, сам думал таким заняться. Надеюсь поможет, как раз буду отстраивать свою гексу. СПС
Я тож так думаю. А то просто тыкать PID-в как то неуместно. Во всем должен быть смысл. Сейчас настраиваю свой квадрик, попробую написать что то типа мануала для настройки с нуля. Очень уж интересен Ардукоптер/мегапират.
на мой взгляд немного ошибочное суждение.
что то похожее было в первых версиях коптера,
в крайних по крайней мере там где используется “рэйт контроллер” рэйт - это не угловая ошибка а ошибка угловой скорости -воздействия на управления моторами порождаемого разницей требуемой скорости вращения для устранения ошибки и фактической угловой скоростью.
при этом rate_p это уже ошибка ускорения
а rate_d это ошибка на преодоление инерции раскрутки винтов
что то похожее было в первых версиях коптера,
Вполне возможно. Переводил из официального вики. Неточно перевел, но смылс прост. настраиваем P, подтягиваем D, еще увеличиваем P, и крутим I, далее все по вкусу.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"46a4c2ac3df955007778230a":{"_id":"46a4c2ac3df955007778230a","hid":26272,"name":"fidller","nick":"fidller","avatar_id":null,"css":""},"4e2845ff3df955007775030a":{"_id":"4e2845ff3df955007775030a","hid":94171,"name":"Triumpher","nick":"Triumpher","avatar_id":null,"css":""},"4e71d4e23df955007774e5d8":{"_id":"4e71d4e23df955007774e5d8","hid":99365,"name":"alexeykozin","nick":"alexeykozin","avatar_id":null,"css":""}},"settings":{"blogs_can_create":false,"blogs_mod_can_delete":false,"blogs_mod_can_hard_delete":false,"blogs_mod_can_add_infractions":false,"can_report_abuse":false,"can_vote":false,"can_see_ip":false,"blogs_edit_comments_max_time":30,"blogs_show_ignored":false,"blogs_reply_old_comment_threshold":30,"votes_add_max_time":168},"entry":{"_id":"504063649970730077108af6","hid":15107,"title":"Настойка PID-ов на ArduCopter и MegaPirate","html":"<p>Настойка PID-ов на ArduCopter и MegaPirate<br>\nЯ сам еще только въезжаю, как правильно настраивать PID-ы. Поэтому для себя перевел небольшую выдержку из официального wiki ардукоптера. Может кому то еще пригодится.<br>\nОригинал <a href=\"http://code.google.com/p/arducopter/wiki/AC2_attitude_PID\" class=\"link link-ext link-auto\" data-nd-link-type=\"autolink\" data-nd-link-orig=\"http://code.google.com/p/arducopter/wiki/AC2_attitude_PID\" target=\"_blank\" rel=\"nofollow noopener\">code.google.com/p/arducopter/…/AC2_attitude_PID</a></p>\n<p>Настройка уровня PID<br>\nПараметр: RATE_RLL_P и RATE_PIT_P - пропорциональный ответ, и по умолчанию 0.14. Оно настраивается в зависимости от размера коптера, веса и тяги ваших двигателей. Если Ваш коптер колеблется быстро, понизьте это значение. Если вяло, поднимите значение. Это первый параметр, который нуждается в настройке. Если он не верно настроен, то настройка любого другого параметра - пустая трата времени.</p>\n<p>Параметр: RATE_RLL_I и RATE_PIT_I установлены в 0 по умолчанию. Используйте это значение, чтобы поддержать жесткий контроль скорости вращения коптера. Если коптер не достигает скорости вращения, то этот параметр поможет это исправить.</p>\n<!--cut-->\n<p>Параметр: RATE_RLL_D и RATE_PIT_D.0025 по умолчанию. Это значение создает ускорение к целевому углу. Если значение слишком высоко, вы увидите маленькие, быстрые колебания по тангажу или крену. Вы можете даже временно потерять контроль по тангажу или крену, поскольку значение D перекрывает выходное управление.</p>\n<p>Примечание: Когда настраиваете Ваш коптер, уберите RATE_I и RATE_D в ноль, и только настраивайте RATE_P. Как только Вы настроите это, затем настраиваете RATE_I и RATE_D.</p>\n<p>Параметр: STAB_D.06 по умолчанию. Это компенсирует ускорение вращения коптера и может устранить те маленькие колебания после изменения сетбола (быстрое угловое изменение). Это подобно RATE_RLL_D, но только компенсирует ускорение. STAB_D подобен RATE_RLL_D, но только не фильтровано (быстрее) и имеет гораздо меньше шума, чем RATE_RLL_D. Так же, как RATE_RLL_D высокие значения может вызвать колебания или временно потерю контроля по тангажу или крену, поскольку термин D перекрывает выходное управление.</p>\n<p>Настройка контроля за PI<br>\nПараметр: STB_RLL_P и STB_RLL_P по умолчанию 4.5 или 4.5 ° в секунду вращение для каждого 1 ° ошибки. Если Вы хотите большую или меньшую скорость вращения, основанного на вводе данных пользователем, регулируете это значение. Большие Octo-коптеры должно иметь меньшее число, 3.5, возможно, или Вы получите большие колебания в стиле качелей.</p>\n<p>Параметр: STB_RLL_I и STB_PIT_I используются, чтобы преодолеть неустойчивость в коптере. Если коптер не симметричен, то этот i-параметр приведет коптер, к выравниванию. Большее число, даст коптеру более быструю компенсацию. При низких числах возможны отрицательные воздействия, вызывая очень медленное колебание, измеряемое в секундах. Если Вы используете этот параметр, рассматриваете потенциальные конфликты в выборе времени с Rate_I. Может быть лучше держать один или другой параметр в нуле.</p>\n","user":"4e2845ff3df955007775030a","ts":"2012-08-31T07:10:28.000Z","st":1,"cache":{"comment_count":4,"last_comment":"51d33d5f997073007714f86a","last_comment_hid":4,"last_ts":"2013-07-02T20:51:43.000Z","last_user":"4e2845ff3df955007775030a"},"views":4112,"bookmarks":0,"votes":0},"subscription":null},"locale":"en-US","user_id":"000000000000000000000000","user_hid":0,"user_name":"","user_nick":"","user_avatar":null,"is_member":false,"settings":{"can_access_acp":false,"can_use_dialogs":false,"hide_heavy_content":false},"unread_dialogs":false,"footer":{"rules":{"to":"common.rules"},"contacts":{"to":"rco-nodeca.contacts"}},"navbar":{"tracker":{"to":"users.tracker","autoselect":false,"priority":10},"forum":{"to":"forum.index"},"blogs":{"to":"blogs.index"},"clubs":{"to":"clubs.index"},"market":{"to":"market.index.buy"}},"recaptcha":{"public_key":"6LcyTs0dAAAAADW_1wxPfl0IHuXxBG7vMSSX26Z4"},"layout":"common.layout"}