Як я можу автоматично налаштувати параметри PID під час руху?


15

У мене є проста сервосистема, яка використовує контролер PID, реалізований у MCU, для виконання зворотного зв'язку. Однак властивості системи динамічно змінюються, і тому параметри PID ніколи не можуть бути налаштовані за будь-яких обставин.

Мій робот - це легкий кронштейн із зворотними двигунами, подібний до цього:

Легка рука робота

Рука виконує кілька завдань, серед яких підбирає великі ваги, штовхає та тягне предмети по парті. Кожне з цих завдань вимагає різних параметрів настройки PID, які я не можу легко передбачити.

Мені б дуже хотілося, щоб це функція вищого рівня, яка може ретельно регулювати параметри у відповідь на поведінку руки. Наприклад, якщо він помітить, що рука коливається, вона може зменшити P і збільшити D. Або, якби помітила, що рука не досягає своєї мети, вона може збільшити I.

Чи існують такі алгоритми? Я був би радий, навіть якщо алгоритм не вдосконалив параметри відразу. ЕГ руку може коливатися кілька разів, перш ніж параметри будуть відрегульовані до їх нових значень.

Відповіді:


10

Колись ми з колегою реалізували симплекс-алгоритм для настільної настройки параметрів PID поточного контуру управління для двигуна. По суті, алгоритм міняв би один параметр одночасно, а потім збирав дані про деякий параметр зворотного зв'язку, який був нашим показником корисності. Наше було відсоткове відхилення від поточного цільового значення. Виходячи з того, покращився чи гірший параметр зворотного зв’язку, наступний параметр був відповідно змінений.

Або у Вікіпедії говорять:

Нехай лінійну програму задає канонічна таблиця. Алгоритм симплексу відбувається шляхом виконання послідовних операцій повороту, кожен з яких дає покращене базове можливе рішення; вибір елемента шарніра на кожному кроці багато в чому визначається вимогою, щоб цей шарнір вдосконалював рішення.

Технічно ми використовували метод Нелдера-Мід, який є типом симплексу. Це також можна охарактеризувати як алгоритм сходження на гірку, якщо ви спостерігаєте, як він змінює вхідні параметри, шукаючи оптимальний вихідний параметр.

Анімація Нелдер-Мід

Недлер-Мід найкраще працював у нашому випадку, оскільки він може переслідувати встановлене значення. Це було важливо, оскільки наша поточна цільова температура змінювалася зі збільшенням попиту на крутний момент.

методика Нельдера-Мід - це евристичний метод пошуку, який може сходитися до нестаціонарних точок


чи можете ви пов’язати свій підхід та результати, якщо вони доступні?
SPRajagopal

@SPRajagopal Вибачте, але ні. Я більше не працюю в цій компанії і не маю доступу до жодної інформації.
embedded.kyle

4

Хороший підхід до такої проблеми називається адаптивним контролем. Коротше кажучи, це методологія управління, яка передбачає, що модель відома, але параметри моделі (маса, інерція тощо) не є. Його завдання полягає в оцінці невідомих параметрів. Короткий вступ можна знайти на wikipedia . Текст робототехніки: моделювання, планування та управління від Siciliano et al. докладніше висвітліть тему.

Редагувати у відповідь на запит @Rocketmagnets:

Коротше кажучи, ви повинні мати математичну модель вашої системи, тобто рівняння, які описують, як ваша система розвивається з часом, коли вимушене чи іншим чином, але вам не потрібно знати динамічні параметри, такі як маса різних компонентів, їх інерційність тощо .. Оцінка цих параметрів - завдання адаптивного контролера. Ви повинні дати йому початкову здогадку для кожного з невідомих параметрів. Тоді, коли система працює, вона використовує керуючі сигнали, вихідні сигнали та такий метод, як лінійна регресія або спуск градієнта для оновлення невідомих значень параметрів. З часом параметри перейдуть до значень, що призведе до стаціонарного стану, хоча вони можуть не відповідати реальним параметрам, тобто вони можуть отримати неправильну масу, але значення все одно буде працювати.

Звідси я б порадив звернутися до тексту, який обговорює метод. Я щойно помітив, наприклад, що доктор Марк Бодсон пропонує копію свого тексту Адаптивний контроль: Стабільність, стійкість та конвергенція у формі PDF на своєму веб-сайті .


Чи можете ви дати пояснення методу?
Rocketmagnet

1
Я сумніваюся, що міг би це зробити справедливим, враховуючи, що я лише нещодавно дізнався про метод. Фуртермор - це не єдиний метод, а сукупність методик, розроблених протягом останніх 50 років. Однак я відредагую свою відповідь, щоб детальніше розглянути.
DaemonMaker

2

Процес, який ви описуєте, відомий як адаптивний PID.

Здається, це щось надмірне. Я виявив, що PID є досить надійним у роботі із зовнішніми порушеннями, а описані вами завдання не здаються виходячи з можливостей одного набору виграшів.


Це більше, ніж просто зовнішні порушення. Це зміни в характеристиках суглоба. Подвоєння маси робота, наприклад, призводить до перевищення.
Rocketmagnet
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.