Использование генетического алгоритма для настройки контроллеров


9

Я читал некоторые статьи для управления нелинейными системами (например, нелинейный маятник). Существует несколько подходов для нацеливания на нелинейные системы. Наиболее распространенными являются контроллеры линеаризации с обратной связью , обратного перехода и скользящего режима .

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

θ¨+(К/м)θ˙+(г/L)грехθзнак равноU

где и g = 9,81 .мзнак равно0,5,Кзнак равно0,0001,Lзнак равно0,2гзнак равно9,81

График 1

График 2

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

До сих пор я разработал простой графический интерфейс на C ++ / Qt, чтобы настроить контроллер вручную. На рисунке ниже показан ответ контроллера на пошаговую функцию.

Снимок экрана графического интерфейса приложения настройки контроллера

Ответы:


1

Использование эволюционных методов (GA является одним из них) для настройки параметров действительно является распространенным методом [1] в области управления. Особенно для нелинейных систем, аналитические решения для оптимальных параметров может быть трудно найти. Эволюционные методы являются одним из способов эффективного поиска почти оптимальных параметров.

Очень успешным и универсальным методом, который широко используется, является CMA-ES . Существует большое количество реализаций , в том числе для MATLAB. Я знаю, что балансировка полюсов в различных формах часто используется в качестве ориентира.

Применение алгоритма обычно не так сложно. Оценка эффективности вашего результата - в EA это называется фитнес-функцией - обычно является наиболее важной частью.

[1] П.Дж. Флеминг, Р.С.Пуршоус, Эволюционные алгоритмы в разработке систем управления: обзор, Практика проектирования систем управления, том 10, выпуск 11, ноябрь 2002 г., страницы 1223-1241, ISSN 0967-0661, http: //dx.doi. org / 10.1016 / S0967-0661 (02) 00081-3 .


Сталкивались ли вы с какой-нибудь хорошей книгой, которую, по вашему мнению, стоит прочитать о ГА?
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 имел в виду, используя генетический алгоритм, то метод настройки Циглера Николса был бы отличным кандидатом для реализации, потому что он приятно процедурный.
SteveO

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

1
Этот ответ по-прежнему является общим процессом для достижения этой цели. Генетические алгоритмы - это целая область исследований, и они очень сложны, но для того, чтобы по-настоящему объяснить их в коротком ответе, я рекомендую прочитать их, однако, если вы заинтересованы в их использовании для настройки ваших моделей!
Би Фед

2
Я представляю плохо ограниченный генетический алгоритм, который довольно радостно перехватывает строку при перестройке.
Рамрод

1
как упоминал @octopus, этого трудно достичь с помощью физического физического оборудования, если вы не хотите в течение длительного периода времени позволять компьютеру физически управлять устройством, которое вы пытаетесь настроить, даже тогда вам нужна какая-то программа-хранитель, которая контролирует и оценивает каждый контроллер на основе производительности и проверяет, что он не повредит машину. В целом, это довольно сложная задача, для реализации которой потребуется много прочтения генетических алгоритмов, это немалая задача.
beeedy

2

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


Я не знаком с генетическим алгоритмом (GA). Я только что видел, как некоторые газеты утверждают, что настройка их контроллеров выполнена с помощью GA. Никаких дополнительных подробностей в их документах по этому вопросу. Я не знаю, что, черт возьми, GA и как я могу его использовать.
CroCo

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