У мене є проста сервосистема, яка використовує контролер PID, реалізований у MCU, для виконання зворотного зв'язку. Однак властивості системи динамічно змінюються, і тому параметри PID ніколи не можуть бути налаштовані за будь-яких обставин.
Мій робот - це легкий кронштейн із зворотними двигунами, подібний до цього:
Рука виконує кілька завдань, серед яких підбирає великі ваги, штовхає та тягне предмети по парті. Кожне з цих завдань вимагає різних параметрів настройки PID, які я не можу легко передбачити.
Мені б дуже хотілося, щоб це функція вищого рівня, яка може ретельно регулювати параметри у відповідь на поведінку руки. Наприклад, якщо він помітить, що рука коливається, вона може зменшити P і збільшити D. Або, якби помітила, що рука не досягає своєї мети, вона може збільшити I.
Чи існують такі алгоритми? Я був би радий, навіть якщо алгоритм не вдосконалив параметри відразу. ЕГ руку може коливатися кілька разів, перш ніж параметри будуть відрегульовані до їх нових значень.