У меня есть простая сервосистема, которая использует ПИД-контроллер, реализованный в MCU для выполнения обратной связи. Однако свойства системы изменяются динамически, и поэтому параметры PID никогда не могут быть настроены для всех обстоятельств.
Мой робот - это легкая рука с задним приводом электродвигателей, похожая на эту:
Рука выполняет несколько задач, в том числе поднимает тяжелые грузы, толкает и тянет предметы через стол. Каждая из этих задач требует различных параметров настройки ПИД-регулятора, которые я не могу легко предсказать.
То, что я действительно хотел бы, для некоторой функции более высокого уровня, которая может тщательно отрегулировать параметры в ответ на поведение руки. Например, если он заметит, что рука колеблется, он может уменьшить P и увеличить D. Или, если он заметит, что рука не достигает своей цели, он может увеличить I.
Существуют ли такие алгоритмы? Я был бы счастлив, даже если алгоритм не совершенствовал параметры сразу. Например, рука могла колебаться несколько раз, прежде чем параметры были настроены на новые значения.