КУК на mems гироскопах

SergDoc
morion15:

Почему все уперлись в гиры IDG-500, 3200…на них свет клином не сошелся. Буду ставить другие, которые легко доставаемые для обычных юзеров.

программное переделывать, а его в исходниках нет 😦

morion15

не думаю что там програмное надо переделывать, вскрытие покажет)

gena_g

Я еще год назат сделал плату КК на двух LPY550AL (X,Z оси). Прекрасно летает на трикоптере прошивка стоит XXcontroller 1.1 . В ней немного поправил коэффициенты.

morion15

Буду делать плату и свой алгоритм стабилизации, хочу добавить пару фич которых нет в куке. Посмотрим что выйдет)))

Covax

Вы бы хоть обьеденились парни, уже наверное 4й топик за год про свой контроллер и алгоритм стабилизации, а результатов как то не родилось…

morion15

Ура товарищи, лед тронулся! За минувшие дни, по словам разработчика, был написан кусок кода по формированию ШИМа на драйвера, обработка сигналов гироскопа и оцифровка сигналов с приемника 😃 К тому же, уже есть программа со стороны ПК(бегут показания гироскопов), она будет схожа с мультиВийной - показания гироскопов, сигналы аппы, настройка ПИДов и другие вкусняшки.
Пока новая плата разрабатывается, пишется прога под плату КК, но на ней не разгулятся. Нужны будут желающие тестировщики у кого есть КК и трикоптер.

morion15

Привет 😃
Сегодня была завершена первая часть и родился проект с именем 6D.
Был с чистого листа написан алгоритм стабилизации по подобию КК, и пока что на его плате. Отличия 6D от стандартного алгоритма КК:

  • Увеличина дискретность изменения сигнала ручек управления. В КК дискретность 100, это значит если обороты двигателя лежат в диапазоне от 0 до 10 тыс., то КК позволяет изменять обороты с шагом 100. В 6D дискретность 1000, что значит можно менять обороты двигателя с шагом 10. Это значит что обороты двигателя изменяются более плавно;
  • В 6D мат. операции проходят с плавающей точкой, что в отличии от КК с целочисленым мат. апаратом позволяет точнее просчитывать сигналы управления;
  • В КК П регулятор, в 6D ПД регулятор. Пока летал на П, Д составляющая была 0, т.к. не было крутелок чем задать Д составляющую.
    Сегодня вечером был первый полет, что удалось заметить, это то, что уменьшились колебания при снижении. Это связано с первыми двумя пунктами отличий.
    Что планируется далее:
  • Полный ПД регулятор с настройкой с ПК (на плате больше не будет крутелочек);
  • Будет добавлен сигнализатор разряда батареи, можно будет с ПК настроить диапазоны(пищалочка, что бы непокупать отдельно набор);
  • Будет сделана плата на мемс гироскопах, которые проще достать чем мурата;
  • Програмирование по юсб, без стороних програматоров;
  • Думаю на счет автотримирования по ходу проседания батарейки. Т.е. один раз задать положения тримеров при заряженой батарейки и при севшей, потом по мере проседания напряжения на батарейке 6D будет сам работать как тример.

Как думаете стоит делать дальше?

Кто хочет испытать, напишите емейлы, вышлю прошивку для тестирования на трикоптере. Незнаю как сюда выложить файл(((

6D6.zip

devv
morion15:

Незнаю как сюда выложить файл(((

через “Расширенный режим” - “Управление вложениями”

Как будет прошивка для квадрика готов принять участие в испытаниях.

mahowik
morion15:

Как думаете стоит делать дальше?

конечно стоит!
и тогда уж добавьте “И” сюда, т.е. сделайте полный ПИД регулятор… это должно добавить стабилности и уменшить болтанку…

morion15

“И” составляющая она для длительного воздействия, болтанку должна уменьшить “Д” составляющая.

mahowik
morion15:

“И” составляющая она для длительного воздействия, болтанку должна уменьшить “Д” составляющая.

все верно “Д” ускоряет переходные процессы, а “И” как раз помогает в последствии держать систему в равновесии при незначительних отклонениях…

з.ы. Если сказать точнее то “Д” вносит свою значительную лепту (всплеск) в начале переходного процесса и почти не влияет на его завершение, таким образом можно ускорить перходной процес не увиличивая “П” и избежать перерегулирования (болтанки)… а вот “И” это уже стабилизация (компенсация “мелких” отклонений) - поддержка системы в равновесии ближе к концу переходного процесса…

читали доку про ПИД регули на примере сливного бочка? 😃

morion15

Да,было дело с бачком))
На этом примере начал немного проникатся тау, а то от наших горе преподов в универе толку было мало.

mahowik

в общем “И” важный параметр стабилизации системы…
вот легкая коротенькая статейка в помощь pidcontrol.narod.ru

планирую еще вот ету прочитать, все руки не доходят…

morion15

Вот тестовое видео с новой прошивкой. Пока только П регулятор, так что поведение схожее с КК. Но зато теперь возможно дописать полноценный ПИД и другие фишки, ресурсов мк еще много. Пока только использовал один таймер на все.

www.youtube.com/watch?v=D5F2RGA8y2A

mahowik
morion15:

Вот тестовое видео с новой прошивкой. Пока только П регулятор, так что поведение схожее с КК. Но зато теперь возможно дописать полноценный ПИД и другие фишки, ресурсов мк еще много. Пока только использовал один таймер на все.

а в какой cреде разработки под КУК нужно писать?
исходники планируете выкладнвать?
можно сразу на гугл проект завести… быстро найдете соратников по развитию проекта…

morion15
  1. Среда AvrStudio.
  2. Когда проект будет готовый. Будет новая прошивка и новая плата отличная от КК.
  3. Соратник есть.
iBat
morion15:
  • В 6D мат. операции проходят с плавающей точкой, что в отличии от КК с целочисленым мат. апаратом позволяет точнее просчитывать сигналы управления;

Вот это сразу насторожило. Для AVR плавающая точка не есть хорошо. Это раз. С целочисленной арифметикой можно получить результат не хуже плавающей точки. А иногда и лучше. Поначалу у некоторых разрыв шаблона случается, но гуглим “целочисленная арифметика масштаб” и все станет понятно. Это стало быть два.
Могу с этим делом помочь. Если сам вспомню 😃

morion15

Согласен что в авр операции с плавающей точкой не есть хорошо, потому как занимает наверно раз в пять больше тактов процессора чем целочисленные операции. Могу еще добавить, что и с делением в авр туго, нет у нее встроенной функции деления, которая тоже емулируется через ж*.
Но я старался написать код так, что бы все операции вычисления заканчивались вовремя. Распределил функции по времени что бы одни не налазили на другие.
А по поводу получения лучших результатов с целочисленной математикой не совсем согласен, скажем так, мнение может расходится смотря что вас на данный момент больше интересует - быстродействие или точность.
КК - полностью на целочисленной математике.
Мультивий - математики с точкой.

Covax

Не лучше ли сразу ваять код на ARM процессорах? Это был бы прорыв всетаки.

morion15

Прорыв, для меня так точно:) Стм я еще только учу, и тогда проект затянулся бы надолго.
Но я себе не ставил задач подцепить в проект аксель, жпс, бародатчик…Сейчас это будет улучшеный КК. И с этой задачей вполне может справится этот же мк. Зачем применять космический корабль что бы летать на километр в магазин, это бессмысленно(с).
Ну а если будет уже отлаженный алгоритм на авр, потом его будет проще перенести на арм если станет задача еще что то добавить к функционалу. Скорее всего аксель, но тогда уже и так есть замечательные проекты такие как СС и мультивий.