Pull to refresh

Comments 19

Класс, как раз неделю назад захотел сделать такое, спасибо за руководство! :)
Отличная статья! Cделать покрупнее и Segway :-)
Теперь на очереди автопилот для дрона, все таки небо моя страсть. Аспользовать чужие автопилоты не здорово, я же не просто так в институте учусь.
Рискну нарваться на грубость, но зачем изобретать очередной велосипед? Если это был бы достаточно простой проект, то без вопросов, но разработать что-то подобное *Wii или Arducopter совсем не просто. А если ограничиться просто реализацией PID контроллера, то это не интересно.

Может стоит в какой-то развитый проект вложить усилия? А то, я смотрю, это эдакий хеллоу-ворлд в мире UAV :)
*Wii и Arducopter используют PID регулятор, а как я уже сказал, его не всегда быстро и легко можно настроить. Мне хочется попробовать построить систему адаптивной стабилизации. Зачем 2 часа сидеть с этими коэффициентами в наше время?

Да и потом, в интернете куча людей делают балансеры, однако даже эта статья оказалась кому-то полезна. Может и автопилот кому-нибудь пригодится.
> Wii и Arducopter используют PID регулятор, а как я уже сказал, его не всегда быстро и легко можно настроить.
Из своего опыта, если не получается быстро и легко подобрать параметры, значит:
1) выбран не верный тип пид регуля
2) данные на входе регуля имеют задержку выше допустимой и система самовозбуждается. тут порой помогает ослабление коэф-в регулятора, если упр-е воздействие на выходе все еще в состоянии уравновешивать систему…
*Wii и Arducopter используют PID регулятор, а как я уже сказал, его не всегда быстро и легко можно настроить.

Это само собой. А для его настройки как раз ребята пилят AutoTune.

Мне хочется попробовать построить систему адаптивной стабилизации. Зачем 2 часа сидеть с этими коэффициентами в наше время

Вот это дело. Что-то подобное, судя по всему, реализовано в прошивках DJI Naza и выше т.к. они вполне себе могут летать, причем стабильно, будучи прикрученными хоть к табуретке, сам проверял :)

Так что как раз динамической подстройки под параметры дрона опенсурсным прошивкам не хватает (Автотюн, пока что, не на 100% удовлетворяет потребностям), удачи в работе, будет интересно увидеть результаты.
Окончив курс 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.
шумы и задержки эмулировать, конечно же можно, шум так и незывается noise. Задержка тоже есть, называется delay, но я не понял как ей пользоваться, поэтому сделал через triggered subsystem
Модель Simulink в студию!
Отличный задум и реализация!

Если будете развивать идею с адаптивным контроллером для коптера — могу порекомендовать еще использовать кватернионную алгебру. Чтобы разом еще и от карданного замка избавиться. Могу подбросить модель коптера, САУ и материалы, примерно год назад сталкивался с такой задачей.

Насчет адаптивности, было бы крайне интересно выслушать Ваше мнение о том, что считать критерием качества управления ЛА, и как определить момент прекращения тюнинга параметров в процессе полета, ведь так? Или же речь идет о предполетной калибровке и «заморозке» полученных результатов?
Если говорить об офлайн оптимизации управления с классическими целями (rise time, overshoot, settling time...) то рекомендую глянуть вот это занимательное видео:

Я очень долго эксперементировал с подборкой как коэффициентов ПИД, так и пытался модифицировать сам ПИД для самодельного Сегвея. В итоге пришел к тому, что самый лучший вариант — это П-регулятор. Причем у пропорциональной составляющей не линейная зависимость от угла, а в степени >1. Все самодельные Сегвеи далеки от оригинального. Вес человека имеет большие диапазоны и поведение ПИД без нагрузки и с нагрузкой отличается гигантски — при нормальном поведении в нагруженном состоянии, без нагрузки выходит в расколбас. Если делать более мягкие коэффицциенты, то фактически не сегвей самобалансируется, а человек.

Не даром оригинальный Сегвей имеет киловатные движки. ПИД нужен для инерционных систем. В движками с гигантской мощностью достаточно просто П-составляющей.
Это как так? Пропорциональная составляющая по определению не способна погасить ошибку при коэффициентах меньше единицы и приводит к возникновению положительной обратной связи при коэффициентах больше единицы, т.е. истема идет вразнос.
Можно какой-нить график, чтобы понять что она там делает при степенях > 1?
p.s. Скажите в Matlab simulink можно ли эмулировать данные gps модуля и mems сенсоров со всеми необходимыми шумами задержками и т.д., т.е. что бы приблизиться к реальности. Хочу покрутить INS+GPS.


1. Для GPS есть все, что нужно в библиотеке Communication system toolbox, вплоть до модели радиоканала через атмосферу. Смотря насколько глубоко Вы хотите эмулировать. В простейшем случае получение сообщений от GPS можно смоделировать с помощью Trigger Subsystem.

2. Если известна картина шумов МЕМС сенсоров — вполне можно их смоделировать. Далее обработать через Калман, или другой фильтр, и далее зашить готовую прошивку в МК прямо из Simulink не прибегая к перелопачиванию математики вручную на С.
Задержки, в зависимости от природы могут моделироваться разными блоками. Если это инерционная задержка сенсора, и она постоянна — то это решается с помомщью соответствующей переходной функции, или блока Delay. В случае же коммуникационных задержек, работы буфера итд — ситуация будет более интересной. Нужно смотреть в сторону Simevents. Опять же, нужно определитсья, что является системой интереса, связь, или же контроллер коптера. Система операционного окружения должна быть адекватной достаточно, но не избыточно.

Если интересно — обращайтесь.
Постараюсь помочь.
Какое терпение у малютки, человек бы уже давно морду набил за такое обращение с ним!
Автор, поздравляю вас. Только LQR, только хардкор! Несмотря на то, что многие задачи управления удается решить ПИДом, все-таки будущее за более сложными регуляторами, так как даже если с помощью ПИД удается в принципе решить задачу, такое управление будет неоптимальным.
Sign up to leave a comment.

Articles