Crius Hobby MultiWii

alexmos
Mihbay:

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

Такая тонкая настройка сильно завсисит от регулей. У меня стояли RC Timer 10A, коптер вел себя очень четко, и пиды настроить было вообще не проблема (коптер отлично висел с ПИД в очень широком диапазоне). Но т.к. они сбоили часто, поменял их на регули HK BluSeries 12A - началсь вот такие подергивания как у вас, и пидами не убирается. Проблема в том, что для преодоления LPF-фильтра в регулях, надо повышать D-часть. Но при этом мозг становится очень чувствителен к вибрациям и высокий D работает во вред. По опыту людей, перепрошивка регулей кардинально меняет их работу, может и вам поможет.

VitaliyRU
alexmos:

надо повышать D-часть

А она же отрициательная в ВИЙ и наоборот “успокаивает”, в чем наколка?

Flutter:

По сути, Вы копеечным криусом утерли нос амбициозным NAZA`м и проч.

Давайте не будем сравнивать назу и вий… две большие разнины 😃

alexmos
VitaliyRU:

А она же отрициательная в ВИЙ и наоборот “успокаивает”, в чем наколка?

Ну в идеальном мире так и было бы. Но в реальности - D-часть это производная показаний гироскопа, и если он шумит - то его производная шумит на порядок сильнее. В итоге этот шум становится больше полезного вклада D-части, и моторы дергает сильнее чем стабилизирует. Почитайте про ПИД-регулирование, там это все описано.

VitaliyRU
mahowik:

ндаа… иногда печальна… upd: по поводу 2.0_а0

А что печально то?

Вчера исправил все выкосы моторов(в мелко размере это все же проблема). И идеально точно развесил коптер. На гирике висел в комнате 4х4(не трогая стика) пол минуты(даже с P 4.5 всего), я был уверен, что это с включенным акселем, а оказывается он не включился.
Еще раз понаблюдал подвешивая монетки, что бы его перевешивало. В итоге всегда занимает положение такое если б к центру давлений(если такой термин применим в данном случае) сделать жесткий кранштейн и за это место подвесить, что в общем - то логично. Т.е. подвесил 3 грамма, с пелечем 5 см. Он наклоняется на пару градусов и так и висит(с горизонтальной скоростью конечно) всегда. В общем накскоком это конечно не вылечить.

alexmos:

Но в реальности - D-часть это производная показаний гироскопа,

Это очевидно. Я не понял фразы - “увеличть D” что бы преодолеть LPF регуля.

mahowik
alexmos:

Но при этом мозг становится очень чувствителен к вибрациям и высокий D работает во вред.

alexmos:

Ну в идеальном мире так и было бы. Но в реальности - D-часть это производная показаний гироскопа, и если он шумит - то его производная шумит на порядок сильнее. В итоге этот шум становится больше полезного вклада D-части, и моторы дергает сильнее чем стабилизирует. Почитайте про ПИД-регулирование, там это все описано.

Алексей совершенно прав, Д часть преумножает шум и так уже шумного сенсора, если мы имеем классик ПИД регуль с одинокой производной. Это ее свойство - т.е. возьмите разность шумных данных и на выходе получите белый шум 😃.
НО в частном случае (давайте на примере 2.0 версии) все чутка иначе и Д работает практически как в идеальном мире 😃 Дело не в какой нить одной феньке, а выстраданном практикой комплексном решении разработчиков вия:

  1. внутренний НЧ фильтр гиры 20/42/98гц режет паразитные вибрации моторов и шум самой гиры.
    • НЧ фильтр на данные гиры в ИМУ
for (axis = 0; axis < 3; axis++)
      gyroADCp[axis] =  gyroADC[axis];
    timeInterleave=micros();
    annexCode();
    if ((micros()-timeInterleave)>650) {
       annex650_overrun_count++;
    } else {
       while((micros()-timeInterleave)<650) ; //empirical, interleaving delay between 2 consecutive reads
    }
    #if GYRO
      Gyro_getADC();
    #else
      WMP_getRawADC();
    #endif
    for (axis = 0; axis < 3; axis++) {
      gyroADCinter[axis] =  gyroADC[axis]+gyroADCp[axis];
      // empirical, we take a weighted value of the current and the previous values
      gyroData[axis] = (gyroADCinter[axis]+gyroADCprevious[axis]+1)/3;
      gyroADCprevious[axis] = gyroADCinter[axis]/2;
      if (!ACC) accADC[axis]=0;
    }
  1. в конечном ПИД регуле берется не просто производная, а усреднение последних 3-х производных, т.е. считай еще + один НЧ фильтр
delta          = gyroData[axis] - lastGyro[axis];                               // 16 bits is ok here, the dif between 2 consecutive gyro reads is limited to 800
    lastGyro[axis] = gyroData[axis];
    deltaSum       = delta1[axis]+delta2[axis]+delta;
    delta2[axis]   = delta1[axis];
    delta1[axis]   = delta;

    if (abs(deltaSum)<640) DTerm = (deltaSum*dynD8[axis])>>5;                       // 16 bits is needed for calculation 640*50 = 32000           16 bits is ok for result
                      else DTerm = ((int32_t)deltaSum*dynD8[axis])>>5;              // 32 bits is needed for calculation

Таким образом Д часть по гиро получается довольно чистой и совсем не шумной. И я получал только пользу от высокого Д в виде уменьшения скорости работы системы (добавления плавности), в диапазоне до 50-ти… 100-ню как Михаил не пробовал, т.к. на моем конфиге при Д=50 это уже даже не субмарина получалась, а жук в сметане 😃

alexmos:

Проблема в том, что для преодоления LPF-фильтра в регулях, надо повышать D-часть.

VitaliyRU:

Я не понял фразы - “увеличть D” что бы преодолеть LPF регуля.

Я так понял Алексей говорил про синхронизацию скорости системы (посредством регулирования Д части) со скоростью отработки регулей, иначе будут осцилляции…

VitaliyRU
mahowik:

Таким образом Д часть по гиро получается довольно чистой и совсем не шумной. И я получал только пользу от высокого Д в виде уменьшения скорости работы системы (добавления плавности), в диапазоне до 50-ти… 100-ню как Михаил не пробовал, т.к. на моем конфиге при Д=50 это уже даже не субмарина получалась, а жук в сметане

У меня от D 40 и больше ничего не меняется. Пробовал и 100 тоже. Ни плавность не растет ни осциляции. Если D <30. Начинается перерегулирование и расколбас.
С кодом выше пробовал разбираться, смысл понятен 😃
Вообще мне казалось это наследие именно вийных “дачиков”. И с появлением внутреннего LPF надобность отпала. С какой версии интересно это место принципиально не менялось.

mahowik:

Я так понял Алексей говорил про синхронизацию скорости системы (посредством регулирования Д части) со скоростью отработки регулей, иначе будут осцилляции…

Я это понял как то, что у регулей на входе тоже LPF и регуль не все мелкие управляющие воздействия принимает, но не понял подему D увеличивать, оно же еще “мельче” мелкие управляющие воздействия сделает. А как синхронизировать “скорость регулирования”(я так понял ты это имел ввиду) с мотором_с_регуляторм не зная оборотов мотора не понятно 😦.

skyrider
Mihbay:

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

Да там смотреть то особо и нечего, взлетел, посмотрел на поведение, сел, крутанул пиды, взлетел и посмотрел что получилось, сел, крутанул в обратную сторону и сравнил…
Через дешейкер или другой стабилизатор не прогонял, видео техническое

SovGVD:

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

тут в принципе видно как работает подвес, плата криус се

alexmos

Ну да, я в курсе про LPF на D-часть, но он сдвигает фазу слегка (отодвигает реакцию). Возможно, для коптера это и не принципиально, т.к. эта задержка все равно меньше транспортной задержки (между командой и реакцией). Но говоря про шумы, я имел ввиду не только внутренние шумы датчика, но и паразитную вибрацию, которую видят гиры. Т.е. будет ли работать высокий D или нет - сильно зависит от способа установки платы. Для этого есть LPF 20/42/98 - но он совсем уж “затупляет” гиру.

VitaliyRU:

Это очевидно. Я не понял фразы - “увеличть D” что бы преодолеть LPF регуля.

Напрмер, есть прямоугольный фронт управления. LPF в регуле его сгладит и сделает пологим. Чтобы опять фронт стал прямоугольным, нужно компенсировать работу фильтра, сделав выброс в самом начале. Именно это делает D.

Наконец дошли руки, начал собирать FPV-систему, заодно и c GPS поковырялся. Если вдруг у кого-то модуль такой, как на картинке (от Remzibi OSD): www.goodluckbuy.com/images/…/sku_77664_2.jpg - есть одна засада - в один прекрасный момент он может перестать работать. У меня он не заработал с самого начала. И к компу вешал, и к OSD - один хрен. Совершенно случайно нашел причину - села резервная батарейка. А если на ноге BACKUP нет хотя бы 1В, то чип не заводится. Китайцы забыли бросить на нее резистор для подзарядки, пришлось паять самому ( можно паять 30 - 60К) с ноги 3.3В стаба на + батарейки. Кстати, в нем стоит mtk3329 и нормально прошивается прошивкой 10Hz 115200.

VitaliyRU
alexmos:

Напрмер, есть прямоугольный фронт управления. LPF в регуле его сгладит и сделает пологим. Чтобы опять фронт стал прямоугольным, нужно компенсировать работу фильтра, сделав выброс в самом начале.

Это я именно так и понял.

alexmos:

Именно это делает D.

Но у вия

axisPID[axis] = ITerm+PTerm-DTerm

Т.е. D сглаживает фронт от P

SovGVD
skyrider:

тут в принципе видно как работает подвес, плата криус се

Вроде хорошо, но у прошки угол широкий и бочка - может не сильно заметно…
я вешал старый фотик с довольно узким углом и очень сильно заметно что подвес то перелетает, то недолетает, то вообще криво остановится может, хотя коптер хорошо и ровно висит при этом… а сервы какие?

кстатии достал в полки квадрик, у которого прошитые регули… в общем сегодня буду на гексе все 6 штук перешивать =) летает невероятно ровно и отзывчиво

skyrider
SovGVD:

а сервы какие?

сервы мелкие, цифровые с метал. шестернями, те что рекомендованы производителем подвеса, EMAX ES08MD servos, подвес от пана ждакуба, сервы все равно имеют мелкий люфт, посему на каждую ось повесил по инсулиновому шприцу.

mahowik
alexmos:

Наконец дошли руки, начал собирать FPV-систему

немного оффтопа: я тоже созрел на ФПВ уж 😃 какой комплект взял себе? приемо-передатчик, камера, аппа, телеметрия, очки/монитор… обо всем если можно и со ссылками 😃

jekmv
Richard_Ferlow:

www.oszone.net/10415/XP_Mode я про это.

пробовал на другом компе с хр - так же вылетает. поставлю сейчас Windows XP Mode на семерку, но это уже извращенство какое то)

jekmv
jekmv:

пробовал на другом компе с хр - так же вылетает. поставлю сейчас Windows XP Mode на семерку, но это уже извращенство какое то)

поставил - за час ни разу не вылетела оболочка, чудеса

Shuricus
skyrider:

тут в принципе видно как работает подвес

Работает хорошо, еще бы сделать, что бы в кадр не лезло все. А какой это именно подвес?

skyrider
Shuricus:

Работает хорошо, еще бы сделать, что бы в кадр не лезло все.

Ну это уже следующий этап

Shuricus:

А какой это именно подвес?

Такой quadframe.com/collections/cm/products/g01k

Mihbay

Все ребят спешу поделится! 19 часов мучился с прошивками контроллеров, все аккуратно чтоб не спалить, а потом еще 5 часов чтоб найти причину почему 1 из 6 не запускался со всеми когда подключен к вию, так как с приемника все стартовали одновременно, короче победил, подлетнул дома. Так даже офигел, висит как прибитый, тряски даже возле самого пола нет от собственной подушки, вечером на полетушки тестить!

Mihbay

Проблема была в том что на прямую от приемника все калибруется и запускается как положено, и с криуса 1 движок не армился, как только я не крутил прошивку, и калибровал еск, в итоге решилось что пришлось откалибровать 1 контроллер отдельно, причем что тример газа пришлой опустить полностью, после чего движки начали заводится все одновременно, и вроде кажется работают на одинаковых оборотах, короче гекса полетела, и я больше не парюсь, позже закажу какиенить с кварцем контроллеры

VitaliyRU
mahowik:

в конечном ПИД регуле берется не просто производная, а усреднение последних 3-х производных, т.е. считай еще + один НЧ фильтр

Вчера побаловался с этим. Если что мой коптер болеет осциляциями если залететь в собственный ветер, например.
Сначала попробовал брать не среднею из 3х , а последнюю производную. Осциляции естественно усилились. Через них не поймешь стало лучше в плане резвости или хуже, в любом случае не годится.
Потом попробовал среднею из 5х. Ух тыж блин 😃) осциляций не стало вообще, но плааааааавный стал аж до тупости. >>5 (т.е. делитель) не менял, а подбирал коэф D.
Заодно отключил внутренний LPF гирика, осциляций тоже не добавилось.
В общем если у кого беда с осцилляциями - это наверно лучший выход.

InDY

Подключил сателит от AR 7000 (работает и с аналогом от Orange RC, биндить через AR 7000), протокол DSM2.
Подпаялся к “-” в гребёнке TTL, “+3.3” к оранжевод фигнюшке (имхо конденсатор 😉 ) рядом с оранжевым светодиодом, данные - ко второму слева(правый - GND) пину гребёнки TTL (у меня он подписан TX1, но, судя по фоткам, подписи меняются от партии к партии).
В config.h - раскоментировать
#define SERIAL_SUM_PPM PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,AUX3,AUX4 //For Graupner/Spektrum
#define SPEKTRUM 1024

Richard_Ferlow
Mihbay:

Обновил статью, совместно с mahowik (Александром) мы разобрались как включить авто определение GPS
Подключаем GPS к MiltiWII CRUIS SE С АВТОМАТИЧЕСКИМ ОПРЕДЕЛЕНИЕМ

Я попытался поразбираться, так понял что если через i2c подключать, то тогда возможность работать с GUI сохранится ?

- так подпаяться выходит можно ? (картинка не моя, в lite версии по-моему проще подпаяться - вон отдельно все выходы есть)
Ну или в последней ревизии платы crius i2c выведен отдельно уже

Mihbay
Richard_Ferlow:

Я попытался поразбираться, так понял что если через i2c подключать, то тогда возможность работать с GUI сохранится ?

- так подпаяться выходит можно ? (картинка не моя, в lite версии по-моему проще подпаяться - вон отдельно все выходы есть)
Ну или в последней ревизии платы crius i2c выведен отдельно уже

Все верно, но чтоб работало через IIC нужна вот такая штучка, я с ними дело не имел так что для чего конкретно не знаю,

Сергей_Вертолетов

Коллеги, кто нить уже Криус SE 1.0 потестил? Хотя, с датчиками ничего не поменялось, но есть i2c (хочу потестить GPS) ну и по Bluetooth со смартфона конфигурировать прям в поле!

Richard_Ferlow
Сергей_Вертолетов:

но есть i2c

смотрите пост выше - распаять если разъем под IIC, то все тоже самое подключить можно будет.