У меня есть простая сервосистема, которая использует ПИД-контроллер, реализованный в MCU для выполнения обратной связи. Однако свойства системы изменяются динамически, и поэтому параметры PID никогда не могут быть настроены для всех обстоятельств.
Мой робот - это легкая рука с задним приводом электродвигателей, похожая на эту:
Рука выполняет несколько задач, в том числе поднимает тяжелые грузы, толкает и тянет предметы через стол. Каждая из этих задач требует различных параметров настройки ПИД-регулятора, которые я не могу легко предсказать.
То, что я действительно хотел бы, для некоторой функции более высокого уровня, которая может тщательно отрегулировать параметры в ответ на поведение руки. Например, если он заметит, что рука колеблется, он может уменьшить P и увеличить D. Или, если он заметит, что рука не достигает своей цели, он может увеличить I.
Существуют ли такие алгоритмы? Я был бы счастлив, даже если алгоритм не совершенствовал параметры сразу. Например, рука могла колебаться несколько раз, прежде чем параметры были настроены на новые значения.
Хороший подход к такой проблеме называется адаптивным управлением. Короче говоря, это методология контроля, которая предполагает, что модель известна, а параметры модели (масса, инерция и т. Д.) Не известны. Его задача - оценить неизвестные параметры. Краткое введение можно найти в Википедии . Текст Robotics: Моделирование, планирование и контроль Siciliano et al. осветить тему более тщательно.
Отредактируйте в ответ на запрос @Rocketmagnets:
Короче говоря, у вас должна быть математическая модель вашей системы, то есть уравнения, которые описывают, как ваша система развивается с течением времени, когда она вынуждена или нет, но вам не нужно знать динамические параметры, такие как масса различных компонентов, их инерция и т. Д. .. Адаптивный контроллер должен оценивать эти параметры. Однако вы должны дать ему начальное предположение для каждого из неизвестных параметров. Затем, когда система работает, она использует управляющие сигналы, выходные сигналы и метод, такой как линейная регрессия или градиентный спуск, для обновления неизвестных значений параметров. Со временем параметры будут сходиться к значениям, которые приведут к установившемуся состоянию, хотя они могут не соответствовать реальным параметрам, то есть это может привести к неправильной массе, но значение все равно будет работать.
Отсюда я бы посоветовал обратиться к тексту, в котором обсуждается метод. Я только что заметил, например, что доктор Марк Бодсон предлагает копию своего текста «Адаптивное управление: стабильность, устойчивость и сходимость» в формате PDF на своем веб-сайте .
источник
Процесс, который вы описываете, известен как адаптивный PID.
Хотя это кажется излишним. Я обнаружил, что PID достаточно эффективен при работе с внешними помехами, и задачи, которые вы описываете, не выходят за пределы возможностей одного набора коэффициентов.
источник