Комментарии 19
Класс, как раз неделю назад захотел сделать такое, спасибо за руководство! :)
0
Отличная статья! Cделать покрупнее и Segway :-)
+1
Теперь на очереди сегвей?
![image](https://habrastorage.org/r/w780q1/getpro/habr/comment_images/346/5de/a9f/3465dea9f9ceef9ffc22da431d7bec80.jpg)
![image](https://habrastorage.org/getpro/habr/comment_images/346/5de/a9f/3465dea9f9ceef9ffc22da431d7bec80.jpg)
+5
Теперь на очереди автопилот для дрона, все таки небо моя страсть. Аспользовать чужие автопилоты не здорово, я же не просто так в институте учусь.
+4
Рискну нарваться на грубость, но зачем изобретать очередной велосипед? Если это был бы достаточно простой проект, то без вопросов, но разработать что-то подобное *Wii или Arducopter совсем не просто. А если ограничиться просто реализацией PID контроллера, то это не интересно.
Может стоит в какой-то развитый проект вложить усилия? А то, я смотрю, это эдакий хеллоу-ворлд в мире UAV :)
Может стоит в какой-то развитый проект вложить усилия? А то, я смотрю, это эдакий хеллоу-ворлд в мире UAV :)
0
*Wii и Arducopter используют PID регулятор, а как я уже сказал, его не всегда быстро и легко можно настроить. Мне хочется попробовать построить систему адаптивной стабилизации. Зачем 2 часа сидеть с этими коэффициентами в наше время?
Да и потом, в интернете куча людей делают балансеры, однако даже эта статья оказалась кому-то полезна. Может и автопилот кому-нибудь пригодится.
Да и потом, в интернете куча людей делают балансеры, однако даже эта статья оказалась кому-то полезна. Может и автопилот кому-нибудь пригодится.
+3
> Wii и Arducopter используют PID регулятор, а как я уже сказал, его не всегда быстро и легко можно настроить.
Из своего опыта, если не получается быстро и легко подобрать параметры, значит:
1) выбран не верный тип пид регуля
2) данные на входе регуля имеют задержку выше допустимой и система самовозбуждается. тут порой помогает ослабление коэф-в регулятора, если упр-е воздействие на выходе все еще в состоянии уравновешивать систему…
Из своего опыта, если не получается быстро и легко подобрать параметры, значит:
1) выбран не верный тип пид регуля
2) данные на входе регуля имеют задержку выше допустимой и система самовозбуждается. тут порой помогает ослабление коэф-в регулятора, если упр-е воздействие на выходе все еще в состоянии уравновешивать систему…
0
*Wii и Arducopter используют PID регулятор, а как я уже сказал, его не всегда быстро и легко можно настроить.
Это само собой. А для его настройки как раз ребята пилят AutoTune.
Мне хочется попробовать построить систему адаптивной стабилизации. Зачем 2 часа сидеть с этими коэффициентами в наше время
Вот это дело. Что-то подобное, судя по всему, реализовано в прошивках DJI Naza и выше т.к. они вполне себе могут летать, причем стабильно, будучи прикрученными хоть к табуретке, сам проверял :)
Так что как раз динамической подстройки под параметры дрона опенсурсным прошивкам не хватает (Автотюн, пока что, не на 100% удовлетворяет потребностям), удачи в работе, будет интересно увидеть результаты.
+1
Окончив курс Control of Mobile Robots, тоже сперва хотел сделать все по науке, но видимо от лени переписал конечный ПИД-регулятор MultiWii проекта и получил довольно таки стабильную модель forum.rcdesign.ru/blogs/83206/blog18515.html
Сейчас перекидываю все на «прочную макетку». Руки ни как не дойдут закончить + выложить на github.
ПИД-регуль вышел следующий:
ПИ (по скорости, с углом на выходе) => ПД (по углу, с ускорением на выходе) => интегратор в скорость
где выход интегратора подается на вход ПИ регулятора в инверсии
В данный момент модель стала еще стабильней, т.к. на демо (видео выше) не было инверсии с выхода интегратора…
Вот еще первая проба из подвеса бесколлекторниках forum.rcdesign.ru/blogs/83206/blog18134.html
А по науке, да, это то что хотелось бы уметь. Спасибо за статью! :)
p.s. Скажите в Matlab simulink можно ли эмулировать данные gps модуля и mems сенсоров со всеми необходимыми шумами задержками и т.д., т.е. что бы приблизиться к реальности. Хочу покрутить INS+GPS.
Сейчас перекидываю все на «прочную макетку». Руки ни как не дойдут закончить + выложить на github.
ПИД-регуль вышел следующий:
ПИ (по скорости, с углом на выходе) => ПД (по углу, с ускорением на выходе) => интегратор в скорость
где выход интегратора подается на вход ПИ регулятора в инверсии
В данный момент модель стала еще стабильней, т.к. на демо (видео выше) не было инверсии с выхода интегратора…
Вот еще первая проба из подвеса бесколлекторниках forum.rcdesign.ru/blogs/83206/blog18134.html
А по науке, да, это то что хотелось бы уметь. Спасибо за статью! :)
p.s. Скажите в Matlab simulink можно ли эмулировать данные gps модуля и mems сенсоров со всеми необходимыми шумами задержками и т.д., т.е. что бы приблизиться к реальности. Хочу покрутить INS+GPS.
+1
шумы и задержки эмулировать, конечно же можно, шум так и незывается noise. Задержка тоже есть, называется delay, но я не понял как ей пользоваться, поэтому сделал через triggered subsystem
0
Модель Simulink в студию!
Отличный задум и реализация!
Если будете развивать идею с адаптивным контроллером для коптера — могу порекомендовать еще использовать кватернионную алгебру. Чтобы разом еще и от карданного замка избавиться. Могу подбросить модель коптера, САУ и материалы, примерно год назад сталкивался с такой задачей.
Насчет адаптивности, было бы крайне интересно выслушать Ваше мнение о том, что считать критерием качества управления ЛА, и как определить момент прекращения тюнинга параметров в процессе полета, ведь так? Или же речь идет о предполетной калибровке и «заморозке» полученных результатов?
Если говорить об офлайн оптимизации управления с классическими целями (rise time, overshoot, settling time...) то рекомендую глянуть вот это занимательное видео:
Отличный задум и реализация!
Если будете развивать идею с адаптивным контроллером для коптера — могу порекомендовать еще использовать кватернионную алгебру. Чтобы разом еще и от карданного замка избавиться. Могу подбросить модель коптера, САУ и материалы, примерно год назад сталкивался с такой задачей.
Насчет адаптивности, было бы крайне интересно выслушать Ваше мнение о том, что считать критерием качества управления ЛА, и как определить момент прекращения тюнинга параметров в процессе полета, ведь так? Или же речь идет о предполетной калибровке и «заморозке» полученных результатов?
Если говорить об офлайн оптимизации управления с классическими целями (rise time, overshoot, settling time...) то рекомендую глянуть вот это занимательное видео:
+1
По поводу автонастройки ПИД параметров, кому интересно, можно глянуть проект BradWii forum.rcdesign.ru/f123/thread343484.html
По заявлениям автора алгоритм уже облетанный…
По заявлениям автора алгоритм уже облетанный…
0
Я очень долго эксперементировал с подборкой как коэффициентов ПИД, так и пытался модифицировать сам ПИД для самодельного Сегвея. В итоге пришел к тому, что самый лучший вариант — это П-регулятор. Причем у пропорциональной составляющей не линейная зависимость от угла, а в степени >1. Все самодельные Сегвеи далеки от оригинального. Вес человека имеет большие диапазоны и поведение ПИД без нагрузки и с нагрузкой отличается гигантски — при нормальном поведении в нагруженном состоянии, без нагрузки выходит в расколбас. Если делать более мягкие коэффицциенты, то фактически не сегвей самобалансируется, а человек.
Не даром оригинальный Сегвей имеет киловатные движки. ПИД нужен для инерционных систем. В движками с гигантской мощностью достаточно просто П-составляющей.
Не даром оригинальный Сегвей имеет киловатные движки. ПИД нужен для инерционных систем. В движками с гигантской мощностью достаточно просто П-составляющей.
0
Это как так? Пропорциональная составляющая по определению не способна погасить ошибку при коэффициентах меньше единицы и приводит к возникновению положительной обратной связи при коэффициентах больше единицы, т.е. истема идет вразнос.
Можно какой-нить график, чтобы понять что она там делает при степенях > 1?
Можно какой-нить график, чтобы понять что она там делает при степенях > 1?
0
p.s. Скажите в Matlab simulink можно ли эмулировать данные gps модуля и mems сенсоров со всеми необходимыми шумами задержками и т.д., т.е. что бы приблизиться к реальности. Хочу покрутить INS+GPS.
1. Для GPS есть все, что нужно в библиотеке Communication system toolbox, вплоть до модели радиоканала через атмосферу. Смотря насколько глубоко Вы хотите эмулировать. В простейшем случае получение сообщений от GPS можно смоделировать с помощью Trigger Subsystem.
2. Если известна картина шумов МЕМС сенсоров — вполне можно их смоделировать. Далее обработать через Калман, или другой фильтр, и далее зашить готовую прошивку в МК прямо из Simulink не прибегая к перелопачиванию математики вручную на С.
Задержки, в зависимости от природы могут моделироваться разными блоками. Если это инерционная задержка сенсора, и она постоянна — то это решается с помомщью соответствующей переходной функции, или блока Delay. В случае же коммуникационных задержек, работы буфера итд — ситуация будет более интересной. Нужно смотреть в сторону Simevents. Опять же, нужно определитсья, что является системой интереса, связь, или же контроллер коптера. Система операционного окружения должна быть адекватной достаточно, но не избыточно.
Если интересно — обращайтесь.
Постараюсь помочь.
0
выложил на github
github.com/mahowik/BalancingWii
github.com/mahowik/BalancingWii
0
Какое терпение у малютки, человек бы уже давно морду набил за такое обращение с ним!
+2
Автор, поздравляю вас. Только LQR, только хардкор! Несмотря на то, что многие задачи управления удается решить ПИДом, все-таки будущее за более сложными регуляторами, так как даже если с помощью ПИД удается в принципе решить задачу, такое управление будет неоптимальным.
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Создание робота балансера на arduino