Настройка усиления контроллера может быть трудной, какие общие стратегии работают хорошо, чтобы получить стабильную систему, которая сходится к правильному решению?
Настройка усиления контроллера может быть трудной, какие общие стратегии работают хорошо, чтобы получить стабильную систему, которая сходится к правильному решению?
Ответы:
Для небольших двигателей с низким крутящим моментом с малым или нулевым зацеплением, одна процедура, которую вы можете использовать, чтобы получить хорошую базовую настройку, состоит в том, чтобы определить ее реакцию на помехи.
Для настройки PID выполните следующие действия:
Какие помехи вы используете, зависит от механизма, к которому подключен контроллер. Обычно достаточно отвести механизм вручную от заданного значения и отпустить. Если колебания растут все больше и больше, вам нужно уменьшить усиление P.
Если вы установите слишком высокое усиление D, система начнет болтать (вибрировать с большей частотой, чем колебания усиления P). Если это произойдет, уменьшите усиление D, пока оно не остановится.
Я считаю, что у этой техники есть имя. Я положу здесь, когда найду.
Метод эксперимента, аналогичный ответу Хауптмеха, которому меня учили в колледже:
Метод Циглера-Николса является более точным, если вы можете получить точное число для периода колебаний. Обычно он вызывает колебания с использованием приведенных «классических ПИД» чисел, поэтому он не всегда оптимален.
Общие правила о влиянии каждого члена на время нарастания, перерегулирование, время установления, погрешность установившегося состояния и стабильность см. В таблице 1 «Анализ и проектирование системы ПИД-управления» , Li, Ang и Chong в IEEE Control Systems. Журнал.
Embedded.com снова переместил мою статью, но сейчас она здесь. Это показывает вам, как написать цикл PID (выяснение того, как сделать это в чем-то ином, чем плавающая точка, оставлено в качестве упражнения для читателя) и как его настроить.
Лучший способ во многом зависит от ваших способностей. Способ получить лучшую настройку , при условии, что вы опытная рука системы управления, обычно состоит в том, чтобы измерить реакцию установки («установка» == «вещь, которую вы контролируете»), затем в зависимости от того, как вы это сделали. измерения извлекают модель завода и проектируют к этому, или просто проектируют непосредственно к измерениям.
Для некоторых сложных растений вы обнаружите, что никогда не сможете выполнить удовлетворительные измерения, и в этом случае вам придется использовать только модели. Это редко, но приятно, когда вы заставляете их работать.
Себастьян Трун представил простой алгоритм настройки PID в своем классе «Как программировать роботизированную машину». Это называется «тиддл», он описывает это здесь .
Twiddle очень склонен к поиску локальных минимумов - это означает, что вы можете придумать набор из трех констант, которые подходят, но не оптимальны для ситуации. Проблема настройки PID-констант является подмножеством более общей задачи поиска, чтобы найти определенные параметры для максимизации полезности (в этом случае минимизация ошибки алгоритма PID). Вы можете найти другие общие решения этой проблемы, такие как восхождение на гору, имитация отжига, генетические алгоритмы и т. Д., Которые могут в конечном итоге найти более оптимальные решения.
В отличие от двух других ответов, я бы сказал, что хорошим ручным способом настройки PID является игнорирование Kd. Поэтому начните с 0 и увеличивайте Kp, пока не достигнете цели, затем увеличьте Ki, чтобы избавиться от ошибки установившегося состояния.
Kd может запутать проблему, так как он плохо реагирует на шум, затем вы начинаете добавлять фильтры на свой аналоговый вход, а затем спрашиваете, что это делает, кроме того, что замедляет ваш контроль и усложняет работу всего этого ...
Еще одна вещь, которая может сбить меня с толку, это то, что уравнение ПИД находится в стандартной форме или в независимой (параллельной в Википедии) форме. Эффект Ки кажется обратным, когда форма неправильна по отношению к тому, что вы думаете. Оба типа используются в автоматизации, иногда с возможностью переключения между ними.
Системное моделирование
Конечно, экспериментальная настройка может быть выполнена, как указано в других ответах, но если вы в состоянии определить разумную динамическую модель для всего, что вы хотите контролировать, и можете определить ее параметры , вы должны быть в состоянии спроектировать свой контроллер на основе хорошо -определенные критерии, такие как перерегулирование , время нарастания , время установления , ошибка установившегося состояния и так далее.
В MATLAB есть даже инструменты , которые могут настроить ваш контроллер для оптимизации в соответствии с комбинацией этих критериев, что делает его еще более удобным в использовании.
Знай своего контроллера
Изучение того, что делает каждый параметр в ПИД-контроллере, также весьма полезно. Все экспериментальные алгоритмы как-то основаны на такого рода знаниях. Если вы не только следуете инструкциям, но и можете сами почувствовать это, вам может оказаться проще настроить контроллер вручную.
Проблемы реального мира
Существует вероятность того, что одна из этих вещей, помимо прочего, встанет на пути при настройке контроллера: windup , неадекватная частота дискретизации , насыщенность .
Заключение
В конце концов, все зависит от того, что вы можете сделать со своей системой, чтобы получить некоторые знания о том, как она работает и какие эксперименты можно провести. Лучше всего на самом деле узнать больше о ПИД-контроллерах и теории управления в целом, IMO, но я пристрастен :)
Я постараюсь немного расширить свой опыт для тех, кому это может быть интересно. Я думаю, проблема в том, что у нас есть много теорий управления, которые в некоторой степени недоступны (а иногда и бесполезны), и затем у нас есть практические правила, которые делают предположения о системах, которые часто являются неточными.
стабильность
Давайте сначала поговорим о том, почему контуры управления становятся нестабильными. Для этого обсуждения я буду предполагать линейную систему. Неформально это означает, что если ваш управляющий сигнал представляет собой синусоидальную волну на данной частоте, то ваш наблюдаемый выходной сигнал находится на той же частоте, а если вы изменяете амплитуду вашей системы управления, ваш выходной сигнал реагирует в том же соотношении. Это предположение является хорошим приближением для многих реальных систем и позволяет нам смотреть на разные частоты изолированно.
Если вы посмотрите на путь управления, у вас есть уставка, ваш ПИД-регулятор, ваша система (также известная как «Завод»), а затем ваш датчик. Представьте себе фиксированную уставку и синусоидальную волну от вашего датчика (это равносильно действительному возмущению на датчике с обратной связью). В нестабильной системе ваша обратная связь заставляет контур управления усиливать ошибку, а не уменьшать ее, так что со временем амплитуда увеличивается. Причина, по которой это происходит, связана с задержкой или для этой конкретной частоты фазовым сдвигом между входом и выходом. Для заданной частоты мы можем посмотреть на это смещение по разомкнутому контуру (т.е. без обратной связи) и амплитуду выходного сигнала, и когда мы рисуем все это на графике, мы получаем что-то вроде графика Боде, Если у нас есть ситуация на этом графике с разомкнутым контуром, где ошибка продолжает усиливаться, то у нас нестабильная система. Если задержка меньше 1/2 длины волны или усиления меньше x1, система будет стабильной . На практике мы хотим получить некоторую маржу от этой точки (маржу усиления и фазовую маржу), поэтому вы увидите это «отступление» во многих ручных / эвристических методах.
Основная проблема с этими ручными методами заключается в том, что вы летите вслепую и гарантированно получаете плохую систему управления.
Также имейте в виду, что значения P, I и D связаны с тем, что измеряет ваш датчик, и какое управление вы применяете. Распространенная ошибка в домашних контроллерах - люди думают, что они применяют P, хотя на самом деле это не так. Контроллеры двигателя часто имеют контур положения, проходящий через контур скорости, проходящий через контур крутящего момента. ( Каскад )
Хорошо, но как это поможет нам?
Первое, что я хотел бы отметить, это то, что, если вы создаете свой собственный ПИД-регулятор, вы должны также разработать способ измерения отклика разомкнутого контура. Выполните развертку частоты на входе вашего контроллера и измерьте выходной сигнал датчика с отключенной обратной связью. Затем вы можете нарисовать график Боде с разомкнутым контуром и увидеть, почему ваша система стабильна и может использовать различные элементы управления. Также полезно измерить реакцию замкнутого контура, и вы можете сделать это с любой системой, выполнив частотную развертку вашего заданного значения, пока контур замкнут. И то, и другое не так сложно и не требует больших теоретических знаний.
Если вы просто настраиваете элементы управления, не понимая, что происходит под капотом, вы не сможете оптимизировать свою систему. Построить некоторую интуицию об этих системах не так сложно. Например, пропорциональное усиление не влияет на фазу, а просто увеличивает усиление в разомкнутом контуре на всех частотах. То, что вы делаете, когда увеличиваете пропорциональный коэффициент усиления всеми этими методами ручной настройки, - это находите частоту, с которой фаза переходит в -180. Смотрите это, чтобы получить больше представления о влиянии различных элементов управления на вашу частотную характеристику.
Довольно часто для достижения наилучшей производительности в замкнутом контуре требуется настройка системы, а не только усиление контроллера. То, что вы хотите, - это сделать систему как можно более жесткой. Это позволит вам увеличить параметры управления и получить наилучшую пропускную способность в разомкнутом и замкнутом контуре. По моему опыту в приложениях управления двигателем пропорциональное усиление - это то, что должно выполнять большую часть «работы», а интегратор - «остальное». Я не думаю, что вам нужен термин D вообще. Наличие фильтра нижних частот и режекторного фильтра очень помогает в ситуациях, когда у вас может быть некоторый механический резонанс, но установить их без графика Боде очень сложно (частота колебаний, которую вы наблюдаете в замкнутом контуре, может отличаться от частоты разомкнутого контура).
Если вас беспокоит безопасность (очень мощные двигатели или система, которая может быть разрушена из-за выхода двигателя из-под контроля), вам необходимо установить некоторые ограничения перед началом настройки (например, ограничение тока, ошибка максимального положения) для защиты системы. Затем вам нужно почувствовать диапазон параметров. Если ваша обратная связь имеет 40 отсчетов за оборот или 4000 отсчетов за оборот, ваши параметры будут иметь коэффициент 100 для данной системы. Мой подход заключается в том, чтобы сначала найти диапазон, в котором у вас есть плохая управляемость, а затем увеличивать оттуда, начиная с P и затем с I (хотя опять вы летите вслепую). Отступление создает этот запас стабильности.
За пределами замкнутого цикла
Замкнутый цикл пытается вывести ошибку из системы. Это всегда будет иметь несколько ограниченную производительность. То, что вы хотите сделать, это минимизировать ошибку, которую видит ваш контроллер замкнутого контура, и один из способов сделать это - через метод прямой связи., В прямой связи вы обходите контроллер и вводите команду непосредственно в систему. Примером этого может быть прямая связь с ускорением. Если вы знаете, что у вас постоянная крутящего момента двигателя, и вы знаете нагрузку, вы в значительной степени можете сказать, какой ток вам нужен, чтобы получить определенное ускорение нагрузки. Вы просто берете ускорение ввода команды, умножаете его на константу и добавляете это к команде привода контроллера. Вы в основном делаете то, что нужно для управления системой, если не было контроллера, и чем ближе вы можете получить, тем меньше ошибок должен вынести ваш цикл и тем лучше будет работать ваша система. Это имеет огромное значение на практике.
Циглер-Николс - это простой ручной метод. Существуют и более надежные методы - обычно они основаны на математических решениях (аналитическая, итеративная оптимизация и т. Д.).
Кроме того, Google "самонастраивающийся PID" для некоторых автоматизированных методов. Мое любимое приложение нейронных сетей для настройки PID.
0.01sec
) времени 20secs
в качестве матрицы 3
x 2000
)Существует более быстрый подход под названием Циглер-Николс :
И на этом изображении демонстрируются эффекты параметров PID :