Проект "Трикоптер" — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
 
(не показано 10 промежуточных версий 5 участников)
Строка 1: Строка 1:
 
Проект, осуществляемый [[Клуб технического творчества|Клубом технического творчества]] при поддержке кафедры [["Теоретическая Механика"]].
 
Проект, осуществляемый [[Клуб технического творчества|Клубом технического творчества]] при поддержке кафедры [["Теоретическая Механика"]].
 +
 
== Участники ==
 
== Участники ==
*[[Веренинов Игорь]]
 
*[[Верховых Михаил]]
 
 
=Трикоптер v1.0=
 
  
== Оборудование ==
+
* [[Веренинов Игорь]]
 +
* [[Верховых Михаил]]
 +
* [[Кузькин Виталий]]
 +
* [[Пшенов Антон]]
 +
 
 +
== Трикоптер v1.0 ==
 +
 
 +
=== Оборудование ===
 
*Платформа сборки: Arduino
 
*Платформа сборки: Arduino
 
*Гироскопы: Melexis MLX90609 типа MEMS, 300 deg/sec
 
*Гироскопы: Melexis MLX90609 типа MEMS, 300 deg/sec
Строка 14: Строка 18:
 
*Двигатели: 200Вт 1000kv бесколлекторные
 
*Двигатели: 200Вт 1000kv бесколлекторные
  
+
=== Рама ===
== Рама ==
 
Самое начало проекта, установлен только один мотор.
 
  
[[Файл:Cptr1.JPG|400px]]
+
<gallery widths=300px heights=210px perrow = 2>
 +
Файл:Cptr1.JPG|Самое начало проекта, установлен только один мотор
 +
Файл:Cptr3.JPG|Поворотный механизм
 +
Файл:Cptr2 1749.JPG|Полностью собранный коптер установлен на стенд для настройки ПИД коэффициентов
 +
Файл:Cptr4.JPG
 +
</gallery>
  
Поворотный механизм.
+
=== Структурная схема ===
  
[[Файл:Cptr3.JPG|400px]]
+
[[Файл:3copter_scheme.jpg‎]]
 
 
Полностью собранный коптер установлен на стенд для настройки ПИД коэффициентов.
 
 
 
[[Файл:Cptr2 1749.JPG|400px]]
 
 
 
[[Файл:Cptr4.JPG|400px]]
 
 
 
 
 
== Структурная схема ==
 
  
[[Файл: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++)
Строка 57: Строка 52:
 
  }
 
  }
  
 +
Использование оверсэмплинга, то есть многократного повторного чтения входа, позволяет увеличить разрешение на бит.
  
Использование оверсэмплинга, тоесть многократного повторного чтения входа, позволяет увеличить разрешение  на бит.
+
==== Задание угловой скорости ====
 
 
=== задание угловой скорости ===
 
  
 
На данном этапе, управление аппаратом организовано посредством задания угловой скорости вокруг каждой оси с пульта управления.  Данные о положении джойстиков кодируются и передаются на приемник,  находящийся на коптере. Микроконтроллер получает информацию с приемника и  приводит ее к формату удобному для вычисления.
 
На данном этапе, управление аппаратом организовано посредством задания угловой скорости вокруг каждой оси с пульта управления.  Данные о положении джойстиков кодируются и передаются на приемник,  находящийся на коптере. Микроконтроллер получает информацию с приемника и  приводит ее к формату удобному для вычисления.
Строка 66: Строка 60:
 
[[Файл:futaba.JPG‎|400px]]
 
[[Файл:futaba.JPG‎|400px]]
  
=== ПИД-регулятор ===
+
==== ПИД-регулятор ====
 +
 
 +
Пропорционально-интегрально-дифференциальный (ПИД) регулятор — устройство в цепи обратной связи, используемое в системах автоматического управления для формирования управляющего сигнала. ПИД-регулятор формирует управляющий сигнал, являющийся суммой трёх слагаемых, первое из которых пропорционально входному сигналу, второе — интеграл входного сигнала, третье — производная входного сигнала. [http://ru.wikipedia.org/wiki/%D0%9F%D0%98%D0%94-%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80 Подробнее...]
  
 
В каноническом виде уравнение ПИД-регулятора выглядит так:
 
В каноническом виде уравнение ПИД-регулятора выглядит так:
Строка 73: Строка 69:
  
 
Программная реализация. Входом регулятора служит разность желаемой и текущей угловых скоростей.
 
Программная реализация. Входом регулятора служит разность желаемой и текущей угловых скоростей.
 
  
 
       error = RCToDeg(RC[i+1]) - omega[i];
 
       error = RCToDeg(RC[i+1]) - omega[i];
Строка 80: Строка 75:
 
       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=
+
== Трикоптер v1.1 ==
  
 
После отладки алгоритма и тестовых полетов, рама коптера пришла в полную негодность, появились трещины и люфты. Для продолжения работы понадобился новый трикоптер. Версия 1.1 почти в два раза больше первой, лучи подросли до 30см, увеличилась и площадка под электронику .Новые шасси должны хорошо аммортизировать жесткие посадки и обеспечивать более стабильный взлет. Электроника осталась прежней.
 
После отладки алгоритма и тестовых полетов, рама коптера пришла в полную негодность, появились трещины и люфты. Для продолжения работы понадобился новый трикоптер. Версия 1.1 почти в два раза больше первой, лучи подросли до 30см, увеличилась и площадка под электронику .Новые шасси должны хорошо аммортизировать жесткие посадки и обеспечивать более стабильный взлет. Электроника осталась прежней.
  
Рама собрана, начинается разводка проводов.
+
<gallery widths=300px heights=210px perrow = 2>
 +
Файл:wiring.JPG|Рама собрана, начинается разводка проводов
 +
Файл:wiring1.JPG|Почти вся электроника  на своих местах
 +
Файл:copter.JPG|Коптер - первые минуты на ногах
 +
Файл:DSC05675.JPG|Облетал v1.1  - [http://www.youtube.com/watch?v=bNR5G9Fad5g видео]
 +
</gallery>
  
[[Файл:wiring.JPG‎|400px]]
+
== Создание адаптивного регулятора ==
  
Почти вся электроника  на своих местах
+
=== Моделирование ===
  
[[Файл:wiring1.JPG|400px]]
+
Важной задачей для разработки эффективной системы управления является создание виртуальной модели коптера. На ней можно провести все испытания, не подвергая при этом опасности реальный аппарат.
 +
Модель была запрограммирована в среде [http://www.mathworks.com/products/simulink/ SIMULINK], управлять ей можно, как и настоящим коптером — при помощи пульта.
 +
[http://www.youtube.com/watch?v=qhvg1urI5EY Первые виртуальные полеты]  
  
Коптер - первые минуты на ногах.
+
Программа пока работает не очень точно, это связано с тем что не вводились параметры реального аппарата.
  
[[Файл:copter.JPG|400px]]
+
=== Регулятор ===
  
Облетал v1.1  - [http://www.youtube.com/watch?v=bNR5G9Fad5g видео]
+
''Здесь будет про фази-ПИД...''
  
[[Файл:DSC05675.JPG|400px]]
+
=== Алгоритм оптимизации ===
  
=создание адаптивного регулятора=
+
Алгоритм swarm был написан [[Пшенов Антон|Антоном Пшеновым]].
  
==моделирование==
+
== Результаты ==
Важной задачей для разработки эффективной системы управления является создание модели коптера. На ней можно провести  все испытания, не подвергая при этом опасности реальный аппарат.
 
Модель была запрограммирована в среде SIMULINK, управлять ей можно, как и настоящим коптером  - при помощи пульта.
 
[http://www.youtube.com/watch?v=qhvg1urI5EY первые  виртуальные полеты]
 
  
Программа пока работает не очень точно, это связано с тем что не вводились параметры реального аппарата.
+
# Данный проект был представлен на международной конференции школьников [http://www.school.ioffe.ru/readings/2011/meeting.html Сахаровские Чтения 2011], где удостоился специального диплома "за успешное продвижение в работе над перспективной темой".
==регулятор==
+
# 15 Июня 2011г. трикоптер, совершил свой [http://www.youtube.com/watch?v=5WGxiVSGcUY&feature=player_embedded первый полет]
здесь будет про фази-пид
+
# Первые фотографии с борта
 +
<gallery widths=220px heights=200px perrow = 3>
 +
Файл:Height.jpg
 +
Файл:Tree.jpg
 +
Файл:House2.jpg
 +
</gallery>
 +
 
 +
== Планы ==
 +
 
 +
В дальнейшем планируется создать адаптивный (самонастраивающийся) ПИД-регулятор.
 +
 
 +
== Публикации по теме проекта ==
  
==алгоритм оптимизации==
+
*  Веренинов И.А., Кузькин В.А. Разработка математической модели и прототипа трикоптера // Сборник трудов конференции "Неделя науки СПбГПУ", 2011 [направлено в печать] ([[Медиа: Vereninov_2011_SW_05.pdf |prerint_v.01]], [[Медиа: Vereninov_2011_SW_04.pdf | prerint_v.02]])
  
Алгоритм swarm был написан Антоном Пшеновым.
+
== См. также ==
  
=== Результаты ===
+
* [[Беспилотный летательный аппарат]]
# Данный проект был представлен на международной конференции школьников [http://www.school.ioffe.ru/readings/2011/meeting.html Сахаровские Чтения 2011], где удостоился специального диплома "за успешное продвижение в работе над перспективной темой".
+
* [[Клуб технического творчества]]
# 15 Июня 2011г. трикоптер, совершил свой [http://www.youtube.com/watch?v=5WGxiVSGcUY&feature=player_embedded первый полет]
 
  
== Планы ==
 
В дальнейшем планируется создать адаптивный (самонастраивающийся) PID-регулятор.
 
  
 
[[Category: Студенческие проекты]]
 
[[Category: Студенческие проекты]]
 +
[[Category: Проект "Трикоптер"]]

Текущая версия на 17:09, 25 декабря 2011

Проект, осуществляемый Клубом технического творчества при поддержке кафедры "Теоретическая Механика".

Участники[править]

Трикоптер v1.0[править]

Оборудование[править]

  • Платформа сборки: Arduino
  • Гироскопы: Melexis MLX90609 типа MEMS, 300 deg/sec
  • Радиолинк: Spektrum DSM2 FHSS-технология. Аппаратура все время меняет частоту передачи, обеспечивая надежную связь в радиусе до 1км.
  • Серво поворотного механизма: Hitec HS-81MG , с металлическим редуктором.
  • Аккумулятор: Li-Po 2.2Ah 25C 11.1V
  • Двигатели: 200Вт 1000kv бесколлекторные

Рама[править]



Структурная схема[править]

3copter scheme.jpg

Программирование[править]

Программирование осуществлялось на языке/диалекте Wiring-C++ в среде Arduino. Первым делом надо было просто заставить коптер полететь, поэтому алгоритмы обработки датчиков и управления предельно простые.

Вычисление угловой скорости[править]

В этом проекте использованы три гироскопа MLX90609 , они имеют аналоговые выходы для данных о угловой скорости и встроенный температурный датчик для устранения дрифта. Микроконтроллер получает от гироскопа значения в диапазоне 0-1024, затем с учетом чувствительности 300 градусов в секунду производит расчет угловой скорости. Кроме того вычитается байес - значение которое показывает сенсор при отсутствии вращения. Таким образом окончательная формула выглядит так:

 for( int i=0; i<3; i++)
 {
   float tmp=0;
     for(int j=0;j<10;j++)
     {
         tmp+=analogRead(pin[i]);// oversampling
     }
  tmp/=10.0;
  omega[i]=(tmp-bias[i])*gain[i]; 
}

Использование оверсэмплинга, то есть многократного повторного чтения входа, позволяет увеличить разрешение на бит.

Задание угловой скорости[править]

На данном этапе, управление аппаратом организовано посредством задания угловой скорости вокруг каждой оси с пульта управления. Данные о положении джойстиков кодируются и передаются на приемник, находящийся на коптере. Микроконтроллер получает информацию с приемника и приводит ее к формату удобному для вычисления.

Futaba.JPG

ПИД-регулятор[править]

Пропорционально-интегрально-дифференциальный (ПИД) регулятор — устройство в цепи обратной связи, используемое в системах автоматического управления для формирования управляющего сигнала. ПИД-регулятор формирует управляющий сигнал, являющийся суммой трёх слагаемых, первое из которых пропорционально входному сигналу, второе — интеграл входного сигнала, третье — производная входного сигнала. Подробнее...

В каноническом виде уравнение ПИД-регулятора выглядит так:

[math]u(t) = P + I + D = K_p\,{e(t)} + K_i\int\limits_{0}^{t}{e(\tau)}\,{d\tau} + K_d\frac{de}{dt}[/math]

Программная реализация. Входом регулятора служит разность желаемой и текущей угловых скоростей.

     error = RCToDeg(RC[i+1]) - omega[i];
     Ipart+= error*Dt;
     Ipart= constrain(Ipart,-20,20); 
     Dpart = (omega - oldomega)/float(Dt);
     oldomega =omega;
     axisPID = Pgain*error + Dgain*Dpart + Igain*Ipart;

Трикоптер v1.1[править]

После отладки алгоритма и тестовых полетов, рама коптера пришла в полную негодность, появились трещины и люфты. Для продолжения работы понадобился новый трикоптер. Версия 1.1 почти в два раза больше первой, лучи подросли до 30см, увеличилась и площадка под электронику .Новые шасси должны хорошо аммортизировать жесткие посадки и обеспечивать более стабильный взлет. Электроника осталась прежней.



Создание адаптивного регулятора[править]

Моделирование[править]

Важной задачей для разработки эффективной системы управления является создание виртуальной модели коптера. На ней можно провести все испытания, не подвергая при этом опасности реальный аппарат. Модель была запрограммирована в среде SIMULINK, управлять ей можно, как и настоящим коптером — при помощи пульта. Первые виртуальные полеты

Программа пока работает не очень точно, это связано с тем что не вводились параметры реального аппарата.

Регулятор[править]

Здесь будет про фази-ПИД...

Алгоритм оптимизации[править]

Алгоритм swarm был написан Антоном Пшеновым.

Результаты[править]

  1. Данный проект был представлен на международной конференции школьников Сахаровские Чтения 2011, где удостоился специального диплома "за успешное продвижение в работе над перспективной темой".
  2. 15 Июня 2011г. трикоптер, совершил свой первый полет
  3. Первые фотографии с борта


Планы[править]

В дальнейшем планируется создать адаптивный (самонастраивающийся) ПИД-регулятор.

Публикации по теме проекта[править]

  • Веренинов И.А., Кузькин В.А. Разработка математической модели и прототипа трикоптера // Сборник трудов конференции "Неделя науки СПбГПУ", 2011 [направлено в печать] (prerint_v.01, prerint_v.02)

См. также[править]