Обратный маятник — различия между версиями
Test (обсуждение | вклад) |
|||
Строка 1: | Строка 1: | ||
− | [[Файл: | + | [[Файл:Inverted_pendulum.png |thumb|250px|right|Обратный маятник на подвижной платформе]] |
===Цель проекта=== | ===Цель проекта=== | ||
Строка 9: | Строка 9: | ||
* [[Поцелуев Павел|Поцелуев Павел]] (разработка алгоритмов балансировки) | * [[Поцелуев Павел|Поцелуев Павел]] (разработка алгоритмов балансировки) | ||
− | === | + | ===Модель=== |
Аналитически обратный маятник описывается следующей системой дифференциальных уравнений | Аналитически обратный маятник описывается следующей системой дифференциальных уравнений | ||
[[Файл:Inverted_pendulum_2.jpg|300px|none]] | [[Файл:Inverted_pendulum_2.jpg|300px|none]] | ||
− | Для изучения обратного маятника была разработана модель в системе Matlab Simulink. На данный момент в модели реализован алгоритм балансировки с помощью ПИД-регуляторов. | + | Для изучения обратного маятника была разработана модель в системе Matlab Simulink. На данный момент в модели реализован алгоритм балансировки с помощью отдельных ПИД-регуляторов для контроля за устойчивостью маятника и положением каретки. |
+ | На рисунке представлена реализация модели в программном пакете simulink. | ||
+ | В схему добавлено запаздывающее звено, которое эмитирует задержку в управлении, вызванной скоростью работы контроллера. | ||
+ | [[File:TSxame.png|600px|none]] | ||
+ | |||
+ | |||
+ | ===Нахождение коэффициентов регулятора методом подбора== | ||
+ | Сначала подбирается коэффициент Kp с тем, чтобы системы выходила на предел устойчивости, | ||
+ | как только значение получено, от него берётся 0,6 и вычисляются остальные значения коэффициентов регулятора. | ||
+ | |||
+ | ===Нахождение коэффициентов регулятора по методу Зиглера и Никольса== | ||
+ | подробно метод изложен на странице 88 документа http://www.cta.ru/cms/f/374303.pdf | ||
+ | система должна быть устойчивой, поэтому сначала коэффициенты подбираются для маятника в нижнем положении | ||
+ | находим коэффициенты a=11.5 L=0.13 T = 0.5c | ||
+ | пользуемся формулой [[File:Image266.gif|none]] находим K_p = 26 отклик на воздействие | ||
+ | |||
+ | |||
+ | [[File:Founda pend.png|300px|none]] [[File:Founda pend.png|300px|none]] | ||
+ | ===Нахождение коэффициентов регулятора с помощью генетического ралгоритма=== | ||
+ | Был реализован алгоритм автоматической настройки ПИД-регулятора с помощью генетических алгоритмов (использовался toolbox gatool в системе Matlab). По [[Медиа:Inverted_pendulum_project.zip|ссылке]] можно скачать архив с файлами, необходимыми для экспериментов с моделью. | ||
Ниже на видео показана реакция системы (с настроенными ПИД-регуляторами) на приложенный импульс, справа изображен график сходимости генетического алгоритма | Ниже на видео показана реакция системы (с настроенными ПИД-регуляторами) на приложенный импульс, справа изображен график сходимости генетического алгоритма | ||
− | [[Файл: | + | |
+ | [[Файл:Inverted pendulum plot.jpg|thumb|525px|right|график сходимости]] | ||
{{#widget:Iframe | {{#widget:Iframe | ||
|url=http://www.youtube.com/embed/7XpFwX1iFn4?rel=0&hd=1 | |url=http://www.youtube.com/embed/7XpFwX1iFn4?rel=0&hd=1 | ||
Строка 22: | Строка 42: | ||
|border=0 | |border=0 | ||
}} | }} | ||
− | + | Пример сохранения устойчивости, при отклонении маятника на 10 градусов от вертикали. | |
− | + | [[Файл:PictOfbalance.png|thumb|525px|right|верхний график--угол отклонения от вертикали. средний положение каретки, нижний-- приложенная сила, Н]] | |
===Планы развития проекта=== | ===Планы развития проекта=== | ||
* Нами также был реализован нейроэволюционный алгоритм на языке Java. В будущем планируется применить его для балансировки обратного маятника (возможно, для этого понадобится реализовать модель маятника на Java) и провести сравнительный анализ различных алгоритмов балансировки | * Нами также был реализован нейроэволюционный алгоритм на языке Java. В будущем планируется применить его для балансировки обратного маятника (возможно, для этого понадобится реализовать модель маятника на Java) и провести сравнительный анализ различных алгоритмов балансировки |
Версия 10:38, 24 ноября 2015
Содержание
Цель проекта
Написание ряда алгоритмов для балансировки обратного маятника
Проектная команда
- Руководитель проекта - Лобода Ольга Сергеевна
- Опочанский Александр (разработка модели обратного маятника)
- Поцелуев Павел (разработка алгоритмов балансировки)
Модель
Аналитически обратный маятник описывается следующей системой дифференциальных уравнений
Для изучения обратного маятника была разработана модель в системе Matlab Simulink. На данный момент в модели реализован алгоритм балансировки с помощью отдельных ПИД-регуляторов для контроля за устойчивостью маятника и положением каретки. На рисунке представлена реализация модели в программном пакете simulink. В схему добавлено запаздывающее звено, которое эмитирует задержку в управлении, вызванной скоростью работы контроллера.
=Нахождение коэффициентов регулятора методом подбора
Сначала подбирается коэффициент Kp с тем, чтобы системы выходила на предел устойчивости, как только значение получено, от него берётся 0,6 и вычисляются остальные значения коэффициентов регулятора.
=Нахождение коэффициентов регулятора по методу Зиглера и Никольса
подробно метод изложен на странице 88 документа http://www.cta.ru/cms/f/374303.pdf система должна быть устойчивой, поэтому сначала коэффициенты подбираются для маятника в нижнем положении находим коэффициенты a=11.5 L=0.13 T = 0.5c
пользуемся формулой находим K_p = 26 отклик на воздействие
Нахождение коэффициентов регулятора с помощью генетического ралгоритма
Был реализован алгоритм автоматической настройки ПИД-регулятора с помощью генетических алгоритмов (использовался toolbox gatool в системе Matlab). По ссылке можно скачать архив с файлами, необходимыми для экспериментов с моделью.
Ниже на видео показана реакция системы (с настроенными ПИД-регуляторами) на приложенный импульс, справа изображен график сходимости генетического алгоритма
Пример сохранения устойчивости, при отклонении маятника на 10 градусов от вертикали.
Планы развития проекта
- Нами также был реализован нейроэволюционный алгоритм на языке Java. В будущем планируется применить его для балансировки обратного маятника (возможно, для этого понадобится реализовать модель маятника на Java) и провести сравнительный анализ различных алгоритмов балансировки
- Реализовать модель обратного маятника в Fablab Политех, проверить работу различных алгоритмов на практике