Використання генетичного алгоритму налаштування контролерів


9

Я прочитав деякі документи для управління нелінійними системами (наприклад, нелінійний маятник). Існує кілька підходів до орієнтації на нелінійні системи. Найпоширенішими з них є регулятори лінійного зворотного зв’язку , регулювання зворотного кроку та ковзання .

У моєму випадку я зробив теоретичні та практичні частини управління нелінійною моделлю простого маятника плюс інші проблеми маніпуляторів в C ++. Для маятника я використав резервний контролер для вирішення задачі відстеження кутового переміщення та швидкості. Результати є

θ¨+(k/m)θ˙+(g/L)sinθ=u

де m=0.5,k=0.0001,L=.2 і g=9.81.

Графік 1

Графік 2

Результати хороші. Однак налаштування контролера забирає багато часу. Більшість статей використовують генетичні алгоритми для настройки своїх контролерів, таких як PD, PID та резервні контролери. Я не знаю в цій галузі, і я сподіваюся, що хтось пролиє трохи світла на цю концепцію, бажано, якщо є зразок MATLAB, принаймні для контролю простого маятника.

Поки я розробив простий графічний інтерфейс в C ++ / Qt, щоб настроїти контролер вручну. На малюнку нижче відповідь контролера для крокової функції.

Знімок екрана графічного інтерфейсу програми налаштування контролера

Відповіді:


1

Використання еволюційних методів (GA є одним з них) для настройки параметрів - це справді поширений метод [1] в області управління. Особливо для нелінійних систем аналітичні рішення для оптимальних параметрів важко знайти. Еволюційні методи - це один із способів ефективного пошуку майже оптимальних параметрів.

Дуже успішним і універсальним методом, який широко використовується, є CMA-ES . Існує велика кількість реалізацій , в тому числі для MATLAB. Я знаю, що балансування полюсів у різних його формах часто використовується як орієнтир.

Застосувати алгоритм, як правило, не так складно. Оцінюйте результативність свого результату - це називається функція фітнесу в EA - зазвичай це найбільше участь.

[1] PJ Флемінг, RC Purshouse, Еволюційні алгоритми в інженерії систем управління: опитування, Управління інженерними методами, Том 10, Випуск 11, листопад 2002, Сторінки 1223-1241, ISSN 0967-0661, http: //dx.doi. org / 10.1016 / S0967-0661 (02) 00081-3 .


Ви натрапили на якусь хорошу книгу, яку, на вашу думку, варто прочитати про GA?
CroCo

8

Генетичні алгоритми - це технологія машинного навчання, щоб усунути потребу користувача в «тонкій настройці» системи, а натомість дозволяти комп’ютеру розібратися, як налаштувати систему. Переваги цього підходу полягають у тому, що він звільняє дослідників / користувачів час і часто може призвести до налаштування системи, яка краще налаштована, ніж те, що дослідник / користувач міг би досягти самостійно.

Загальна ідея використання генетичного алгоритму випливала б з деякого базового потоку контролю:

Create_X_Number_Of_Random_Controllers()
while (Not_Yet_Satisfied_With_tuning)
    Score_Each_Controller_Based_On_Performance()
    Remove_Lowest_Performing_Controllers()
    Create_New_Controllers_By_Mixing_Best_Performers()
    Add_Slight_Randomness_For_Evolution()
Display_Top_Performer()

Найкращий приклад, який я легко можу показати на цьому принципі на практиці - це ця «гра», яка використовує генетичну еволюцію для проектування транспортних засобів, здатних проїхати курс. Ця ж ідея стосується будь-якої системи, яку ви хочете налагодити без необхідності робити будь-яку настройку самостійно. Приклад: http://rednuht.org/genetic_cars_2/


Якщо це означає @CroCo, використовуючи генетичний алгоритм, то метод налаштування Зіглера Нікольса був би чудовим кандидатом для впровадження, оскільки він є цілком процедурним.
СтівО

Я не можу зрозуміти, що ще означало б @CroCo, але проблема з Циглером Ніколсом полягає в тому, що він все ще вимагає від вас налаштувати один із компонентів, коли, як і з генетичним альго, ви можете змінити будь-який аспект системи, і він буде «розвиватися» щоб відповідати без проявник того , щоб зробити якийсь - або грубої роботи
beeedy

1
Ця відповідь як і раніше є загальним процесом досягнення цього. Генетичні алгоритми - це ціла область дослідження і далеко не складна, однак по-справжньому пояснити в короткій відповіді, я рекомендую ознайомитись з ними, проте якщо вам цікаво їх використовувати для налаштування своїх моделей!
пчела

2
Я зображую погано обмежений генетичний алгоритм, який цілком щасливо перехоплює рядок під час налаштування.
Рамрод

1
як згадував @octopus, цього важко досягти за допомогою фактичного обладнання для фізики, якщо ви не готові дозволити довгий період часу, щоб комп'ютер фізично керував пристроєм, який ви намагаєтесь настроїти, навіть тоді вам потрібна якась програма "опікун", яка контролює і оцінює кожен контролер на основі продуктивності та перевіряє, що він не пошкодить машину. Загалом, це відносно складна задача, яка потребує багато читання генетичних алгоритмів для реалізації, це не маленьке завдання.
бджола

2

Мене бентежить те, що ви називаєте генетичним алгоритмом. Контролери PD, PID тощо не є евристичними і не стохастичними методами, і вони не ґрунтуються на еволюційних алгоритмах. Натомість вони є детермінованими алгоритмами, призначеними для того, щоб дозволити розміщення полюсів і нулів системної відповіді для забезпечення бажаної продуктивності (мінімізація помилок, швидкість реакції, час відстоювання, стабільність та відхилення порушення). На мою думку, хорошим посиланням на навчання є книга автоматичних систем управління Kuo . Ви можете знайти менш жорстке лікування в книзі " Автоматичне управління технікою управління" Рейвена .


Я не знайомий з генетичним алгоритмом (GA). Я щойно бачив, як деякі документи стверджують, що настройка частини їх контролерів здійснюється за допомогою GA. Більше жодних деталей у своїх документах щодо цього питання немає. Я не знаю, що це за пекло GA і як я можу це використати.
CroCo

Використання еволюційних методів для настройки параметрів є дуже поширеною методикою. Я вважаю це альтернативним методом аналітичних підходів, які ви описуєте.
Якоб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.