Редактирование: Проект "Трикоптер"
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
Проект, осуществляемый [[Клуб технического творчества|Клубом технического творчества]] при поддержке кафедры [["Теоретическая Механика"]]. | Проект, осуществляемый [[Клуб технического творчества|Клубом технического творчества]] при поддержке кафедры [["Теоретическая Механика"]]. | ||
− | |||
== Участники == | == Участники == | ||
+ | *[[Веренинов Игорь]] | ||
+ | *[[Верховых Михаил]] | ||
+ | |||
+ | =Трикоптер v1.0= | ||
− | + | == Оборудование == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
*Платформа сборки: Arduino | *Платформа сборки: Arduino | ||
*Гироскопы: Melexis MLX90609 типа MEMS, 300 deg/sec | *Гироскопы: Melexis MLX90609 типа MEMS, 300 deg/sec | ||
Строка 18: | Строка 14: | ||
*Двигатели: 200Вт 1000kv бесколлекторные | *Двигатели: 200Вт 1000kv бесколлекторные | ||
− | + | ||
+ | == Рама == | ||
+ | Самое начало проекта, установлен только один мотор. | ||
+ | |||
+ | [[Файл:Cptr1.JPG|400px]] | ||
+ | |||
+ | Поворотный механизм. | ||
+ | |||
+ | [[Файл:Cptr3.JPG|400px]] | ||
+ | |||
+ | Полностью собранный коптер установлен на стенд для настройки ПИД коэффициентов. | ||
+ | |||
+ | [[Файл:Cptr2 1749.JPG|400px]] | ||
+ | |||
+ | [[Файл:Cptr4.JPG|400px]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == Структурная схема == | |
[[Файл:3copter_scheme.jpg]] | [[Файл:3copter_scheme.jpg]] | ||
− | + | == Программирование == | |
− | |||
Программирование осуществлялось на языке/диалекте Wiring-C++ в среде Arduino. | Программирование осуществлялось на языке/диалекте Wiring-C++ в среде Arduino. | ||
Первым делом надо было просто заставить коптер полететь, поэтому алгоритмы обработки датчиков и управления предельно простые. | Первым делом надо было просто заставить коптер полететь, поэтому алгоритмы обработки датчиков и управления предельно простые. | ||
− | === | + | === вычисление угловой скорости === |
В этом проекте использованы три гироскопа MLX90609 , они имеют аналоговые выходы для данных о угловой скорости и встроенный температурный датчик для устранения дрифта. | В этом проекте использованы три гироскопа MLX90609 , они имеют аналоговые выходы для данных о угловой скорости и встроенный температурный датчик для устранения дрифта. | ||
Микроконтроллер получает от гироскопа значения в диапазоне 0-1024, затем с учетом чувствительности 300 градусов в секунду производит расчет угловой скорости. Кроме того вычитается байес - значение которое показывает сенсор при отсутствии вращения. Таким образом окончательная формула выглядит так: | Микроконтроллер получает от гироскопа значения в диапазоне 0-1024, затем с учетом чувствительности 300 градусов в секунду производит расчет угловой скорости. Кроме того вычитается байес - значение которое показывает сенсор при отсутствии вращения. Таким образом окончательная формула выглядит так: | ||
+ | |||
+ | |||
for( int i=0; i<3; i++) | for( int i=0; i<3; i++) | ||
Строка 52: | Строка 57: | ||
} | } | ||
− | |||
− | === | + | Использование оверсэмплинга, тоесть многократного повторного чтения входа, позволяет увеличить разрешение на бит. |
+ | |||
+ | === задание угловой скорости === | ||
На данном этапе, управление аппаратом организовано посредством задания угловой скорости вокруг каждой оси с пульта управления. Данные о положении джойстиков кодируются и передаются на приемник, находящийся на коптере. Микроконтроллер получает информацию с приемника и приводит ее к формату удобному для вычисления. | На данном этапе, управление аппаратом организовано посредством задания угловой скорости вокруг каждой оси с пульта управления. Данные о положении джойстиков кодируются и передаются на приемник, находящийся на коптере. Микроконтроллер получает информацию с приемника и приводит ее к формату удобному для вычисления. | ||
Строка 60: | Строка 66: | ||
[[Файл:futaba.JPG|400px]] | [[Файл:futaba.JPG|400px]] | ||
− | + | === ПИД-регулятор === | |
− | |||
− | |||
В каноническом виде уравнение ПИД-регулятора выглядит так: | В каноническом виде уравнение ПИД-регулятора выглядит так: | ||
Строка 69: | Строка 73: | ||
Программная реализация. Входом регулятора служит разность желаемой и текущей угловых скоростей. | Программная реализация. Входом регулятора служит разность желаемой и текущей угловых скоростей. | ||
+ | |||
error = RCToDeg(RC[i+1]) - omega[i]; | error = RCToDeg(RC[i+1]) - omega[i]; | ||
Строка 75: | Строка 80: | ||
Dpart = (omega - oldomega)/float(Dt); | Dpart = (omega - oldomega)/float(Dt); | ||
oldomega =omega; | oldomega =omega; | ||
− | axisPID = Pgain*error + Dgain*Dpart + Igain*Ipart; | + | axisPID = Pgain*error + Dgain*Dpart + Igain*Ipart; |
+ | |||
+ | |||
− | = | + | =трикоптер v1.1= |
После отладки алгоритма и тестовых полетов, рама коптера пришла в полную негодность, появились трещины и люфты. Для продолжения работы понадобился новый трикоптер. Версия 1.1 почти в два раза больше первой, лучи подросли до 30см, увеличилась и площадка под электронику .Новые шасси должны хорошо аммортизировать жесткие посадки и обеспечивать более стабильный взлет. Электроника осталась прежней. | После отладки алгоритма и тестовых полетов, рама коптера пришла в полную негодность, появились трещины и люфты. Для продолжения работы понадобился новый трикоптер. Версия 1.1 почти в два раза больше первой, лучи подросли до 30см, увеличилась и площадка под электронику .Новые шасси должны хорошо аммортизировать жесткие посадки и обеспечивать более стабильный взлет. Электроника осталась прежней. | ||
− | + | Рама собрана, начинается разводка проводов. | |
− | + | ||
− | + | [[Файл:wiring.JPG|400px]] | |
− | |||
− | Файл: | ||
− | |||
− | + | Почти вся электроника на своих местах | |
− | + | [[Файл:wiring1.JPG|400px]] | |
− | + | Коптер - первые минуты на ногах. | |
− | |||
− | |||
− | + | [[Файл:copter.JPG|400px]] | |
+ | |||
+ | Облетал v1.1 - [http://www.youtube.com/watch?v=bNR5G9Fad5g видео] | ||
− | + | [[Файл:DSC05675.JPG|400px]] | |
− | + | =создание адаптивного регулятора= | |
− | == | + | ==моделирование== |
+ | Важной задачей для разработки эффективной системы управления является создание модели коптера. На ней можно провести все испытания, не подвергая при этом опасности реальный аппарат. | ||
+ | Модель была запрограммирована в среде SIMULINK, управлять ей можно, как и настоящим коптером - при помощи пульта. | ||
+ | [http://www.youtube.com/watch?v=qhvg1urI5EY первые виртуальные полеты] | ||
− | + | Программа пока работает не очень точно, это связано с тем что не вводились параметры реального аппарата. | |
+ | ==регулятор== | ||
+ | здесь будет про фази-пид | ||
− | == | + | ==алгоритм оптимизации== |
+ | Алгоритм swarm был написан Антоном Пшеновым. | ||
+ | |||
+ | === Результаты === | ||
# Данный проект был представлен на международной конференции школьников [http://www.school.ioffe.ru/readings/2011/meeting.html Сахаровские Чтения 2011], где удостоился специального диплома "за успешное продвижение в работе над перспективной темой". | # Данный проект был представлен на международной конференции школьников [http://www.school.ioffe.ru/readings/2011/meeting.html Сахаровские Чтения 2011], где удостоился специального диплома "за успешное продвижение в работе над перспективной темой". | ||
# 15 Июня 2011г. трикоптер, совершил свой [http://www.youtube.com/watch?v=5WGxiVSGcUY&feature=player_embedded первый полет] | # 15 Июня 2011г. трикоптер, совершил свой [http://www.youtube.com/watch?v=5WGxiVSGcUY&feature=player_embedded первый полет] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Планы == | == Планы == | ||
− | + | В дальнейшем планируется создать адаптивный (самонастраивающийся) PID-регулятор. | |
− | В дальнейшем планируется создать адаптивный (самонастраивающийся) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category: Студенческие проекты]] | [[Category: Студенческие проекты]] | ||
− |