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