Как я могу автоматически настроить параметры PID на лету?

15

У меня есть простая сервосистема, которая использует ПИД-контроллер, реализованный в MCU для выполнения обратной связи. Однако свойства системы изменяются динамически, и поэтому параметры PID никогда не могут быть настроены для всех обстоятельств.

Мой робот - это легкая рука с задним приводом электродвигателей, похожая на эту:

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

Рука выполняет несколько задач, в том числе поднимает тяжелые грузы, толкает и тянет предметы через стол. Каждая из этих задач требует различных параметров настройки ПИД-регулятора, которые я не могу легко предсказать.

То, что я действительно хотел бы, для некоторой функции более высокого уровня, которая может тщательно отрегулировать параметры в ответ на поведение руки. Например, если он заметит, что рука колеблется, он может уменьшить P и увеличить D. Или, если он заметит, что рука не достигает своей цели, он может увеличить I.

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

Rocketmagnet
источник

Ответы:

10

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

Или в википедии говорят:

Пусть линейная программа задана канонической таблицей. Симплексный алгоритм работает, выполняя последовательные операции поворота, каждая из которых дает улучшенное базовое выполнимое решение; выбор поворотного элемента на каждом этапе в значительной степени определяется требованием, чтобы этот поворот улучшал решение.

Технически мы использовали метод Нелдера-Мида, который является разновидностью симплекса. Он также может быть описан как алгоритм восхождения на гору, если вы посмотрите, как он изменяет свои входные параметры при поиске оптимального выходного параметра.

Nelder-Mead анимация

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

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

embedded.kyle
источник
Не могли бы вы связать свой подход и результаты, если они доступны?
SPRajagopal
@SPRajagopal Извините, но нет. Я больше не работаю в этой компании и не имею доступа ни к каким данным.
embedded.kyle
4

Хороший подход к такой проблеме называется адаптивным управлением. Короче говоря, это методология контроля, которая предполагает, что модель известна, а параметры модели (масса, инерция и т. Д.) Не известны. Его задача - оценить неизвестные параметры. Краткое введение можно найти в Википедии . Текст Robotics: Моделирование, планирование и контроль Siciliano et al. осветить тему более тщательно.

Отредактируйте в ответ на запрос @Rocketmagnets:

Короче говоря, у вас должна быть математическая модель вашей системы, то есть уравнения, которые описывают, как ваша система развивается с течением времени, когда она вынуждена или нет, но вам не нужно знать динамические параметры, такие как масса различных компонентов, их инерция и т. Д. .. Адаптивный контроллер должен оценивать эти параметры. Однако вы должны дать ему начальное предположение для каждого из неизвестных параметров. Затем, когда система работает, она использует управляющие сигналы, выходные сигналы и метод, такой как линейная регрессия или градиентный спуск, для обновления неизвестных значений параметров. Со временем параметры будут сходиться к значениям, которые приведут к установившемуся состоянию, хотя они могут не соответствовать реальным параметрам, то есть это может привести к неправильной массе, но значение все равно будет работать.

Отсюда я бы посоветовал обратиться к тексту, в котором обсуждается метод. Я только что заметил, например, что доктор Марк Бодсон предлагает копию своего текста «Адаптивное управление: стабильность, устойчивость и сходимость» в формате PDF на своем веб-сайте .

DaemonMaker
источник
Можете ли вы дать объяснение метода?
Ракетный магнит
1
Я сомневаюсь, что мог бы сделать это справедливо, учитывая, что я только недавно узнал о методе. Более того, это не единственный метод, а набор методов, которые были разработаны за последние 50 лет или около того. Однако я отредактирую свой ответ, чтобы уточнить немного.
DaemonMaker
2

Процесс, который вы описываете, известен как адаптивный PID.

Хотя это кажется излишним. Я обнаружил, что PID достаточно эффективен при работе с внешними помехами, и задачи, которые вы описываете, не выходят за пределы возможностей одного набора коэффициентов.

user65
источник
Это больше, чем просто внешние помехи. Это изменения в характеристиках сустава. Например, удвоение массы робота приводит к перерегулированию.
Ракетный магнит