Создание собственной системы стабилизации

Gapey
alexmos:

думаю даже 100 Гц будет вполне достаточно

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

SergejK

Вот выдержка из описания по бетафлайту:

Boris said:
gyro_lpf = OFF basically still means there is a little bit of filtering on the gyro. When setting it to EXPERIMENTAL it will remove any possible filtering and give raw data, which is extremely noisy. I don’t recommend it. I just added it to be there in case someone wants to play with it.

Тоесть сам гуру бетафлайта не советует выключать в мпу фильтр. Тоесть фактически рекомендуется фильтровать выходной сигнал на 188Гц либо 250Гц. Откуда мне лично не совсем понятна гонка килогерцев.

SergDoc

Опять 25 выборка и фильтр самого MPU - это разные люди. Т.е. есть сигнал с частотой допустим в 1 герц и в нём ещё один с частотой 300гц - так вот тот сигнал в 1 герц мы порубали на 1000 кусочков и собрали в интеграл - и он там есть весть а 300гц сигнал - удушили фильтром и в интеграл не пустили - нам нужна вся 1000 кусочков герцового сигнала…

SergejK
SergDoc:

нам нужна вся 1000 кусочков герцового сигнала…

Вот ну никак не следует этот вывод из того что сказано.

Вспомним теорему найквиста - теоретически достаточно выборки с удвоеной максимальной частотой в спектре сигнала для его восстановления. Возможно какуюто минимальную разницу и можно будет ощутить при переходе от 500 к 1000-2000Гц частоте выборки при сборе интеграла при неизменной частоте фильтра сигнала. 8-32КГц - это уже скорее для собственного успокоения, мол сделали все что могли, плюс, как водится у спортсменов - “быстрее, выше, сильнее!”.

Вот что скорее всего помогает, так это минимизация задержки с начала чтения сенсора до получения результата на регуляторе. Сдается мне, что при одинаковой этой задержке разницы между 500Гц и 2000Гц петли не будет заметно вообще.

SergDoc

Ха - допустим датчик засёк ну ни максимум, а скажем 1000 гр/сек - за цикл при 500 это уже 4 градуса исправлять, а при цикле в 2000 - 0.5 градуса - где погрешность пида будет больше? где какая задержка? если цикл в одном случае 2000 микросекунд, а в другом 500?

SergejK

Так при любой частоте петли с датчика считаем те же самые 1000°/с, откуда тут возьмутся ошибки?
Но ок, тогда следуя этой логике какие же тогда ошибки будет давать тот самый рекомендованый мпушный фильтр в 250Гц или также используемые 188Гц? 😃

SergDoc

задержка по времени от считывания до подачи на регулятор 2000 микросекунд и приказ пиду исправление 4 - х градусов (зная что есть ошибка интегрирования) или 500 микросекунд и приказ на полградуса - что точнее?
а ведь рейсерам надо порхать как бабочка пчелой ужаленная)))
жена и вправду думала, что у нас во дворе осы завелись )))
да и вот - во время пересчёта муха в проп попала - мелочь но приятно - 4 предположительных! градуса превратились в 5 - а 0.5 пусть даже в 0.6 - при следующих итерациях, что быстрее исправится?

SergejK

Если честно вообще не понял вопроса… Речь о задержке или о точности? Мухи в пропеллере? Ужаленая жена? 😃 Сформулируйте пожалуйста яснее.
Во вторых это какаято странная математика 2000/4 ≠ 500/0.5. Правильнее тогда уже на 2000мкс будет 4° ошибки, а на 500мкс - 1°.
Но ок, возьмем что моторам нужно исправить 1° за 500мкс - а успеют ли они вообще это сделать за такое время? Или проще исправить 4° за 2000мкс?

PS. Не фанат подобных разговоров, плавно (или не очень) перетекающих в выяснение отношений. Я насколько возможно аргументировано высказал свое мнение, для чего собственно этот форум и предназначен. Если разговор перетекает из конкретики в мухи, бабочки, пчелы, осы - я не вижу смысла его продолжать.

SergDoc

А я и не лезу в выяснение отношений - просто вы сами себе перечите - ну как может быть одинаковой задержка между считыванием и подачей на регуль при времени цикла 2000 или 500 - не 4 ну да я чёт загнался - 2 градуса - но это не точно 2 градуса, и исправлять надо 2 градуса - а за это время при времени цикла в 500 - 4 по 0.5 успеть можно… но если же подойти с не рейсерской стороны - пропы маленькие обороты большие, а к нормальным аппаратам - чем ниже скорость вращения моторов, выше инерция самих ВМГ, а следовательно ниже скорость влияния изменения частоты вращения на положение аппарата - то и смысла особого нет в завышенной частоте цикла - короче какой бы не была частота, читаем - считаем - пид - регуль - ваншот получается…

alexeykozin
SergejK:

Так при любой частоте петли с датчика считаем те же самые 1000°/с, откуда тут возьмутся ошибки? Но ок, тогда следуя этой логике какие же тогда ошибки будет давать тот самый рекомендованый мпушный фильтр в 250Гц или также используемые 188Гц?

гы, а я миник на f4by запускаю с фильтром на 43 гц, эксперимента ради надо попробовать посмотреть как будет себя вести на 188-250

SergDoc
SergejK:

Но ок, возьмем что моторам нужно исправить 1° за 500мкс - а успеют ли они вообще это сделать за такое время?

вот - Кесарю кесарево - какой аппарат такой и цикл!

alexeykozin:

гы, а я миник на f4by запускаю с фильтром на 43 гц, эксперимента ради надо попробовать посмотреть как будет себя вести на 188-250

забей у тебя цикл - 400гц - там хоть 10гц ставь )))

alexeykozin

400гц это цикл стабилизации а 43 это фильтр мпу
кстати там инерциалка - екф прожорливая до ресурсов а цикл стабилизации - контроля моторов легковесный

SergDoc

ну дык а я тебе про что - залей прошиву - ощути разницу - сам скажешь, что арду фу - кстати на ф4бы все датчики пашут… и 2 килогерца - ваншот тоже 2 - так что сними пропы перед первым подключением и моторы проверь - заработают не, а то я пока регули не перешил - смотрел либо на молчащие либо жужащие на полной дури…
и ощущения - просто в восторг щенячий приводит и жужит натурально как оса)))

SergejK
alexeykozin:

гы, а я миник на f4by запускаю с фильтром на 43 гц, эксперимента ради надо попробовать посмотреть как будет себя вести на 188-250

Например на чистом от вибрации 700мм аппарате при 500Гц цикла отчетливо вижу разницу в поведении при изменении частоты фильтра с 98Гц до 188Гц, становится четче в полете, меньше вихляния. Правда для мпу очень важен низкий уровень вибрации, иначе эффект может быть противоположный.

SergDoc
alexeykozin:

кстати там инерциалка - екф прожорливая до ресурсов а цикл стабилизации - контроля моторов легковесный

я знаю место где взять екф на 16 осей который легко в 500гц выкрутится, и будет заменять и иму тоже, а не в арде 100 герцов… кстати я его летал на мелкой дус 188 аксель 41 - где-то даж кино было…

alexeykozin:

400гц это цикл стабилизации а 43 это фильтр мпу

а я и не знал) вот одно плохо в 6000 -й фильтр один и на дус и на аксель, вот 6500 - 9250 совсем другой разговор, мухи отдельно, котлеты отдельно…

alexmos:

В чем могут быть преимущества аналогового датчика, ведь с ним по сути прдется делать то же самое?

ну тут как бы посчитать и повесить на выход датчика rc или lc фильтр на определённые частоты и жестко убить всё ненужное, а нужное дать на ацп, но стоимость и громоздкость конструкции - датчики, фильтры, ацп (24 бит или больше - 12 битный проца как-то не в кайф) - не надо усреднять чего-то программно - 8000 раз прочитали - 8000 раз выдали на регули… вот как-то ж работают как их там - короче машины горизонтального бурения - как они своей инерциалкой под землёй до миллиметров путь прокладывают?

oleg70
alexmos:

К примеру в ICM20608 есть возможность получать данные, минуя фильтры, в том виде как их получает внутренний АЦП.

Дык, минуя фильтры, не означает минуя выходные регистры, в которые он пишет с частотой 2000 Кгц… не более.
(еслиб он писАл с частотой 32 Кгц то и чувствительнось у него была б не 2000 гр.сек , а 32000 гр.сек…, иначе никак по моему…)

alexmos:

Не вижу отличий аналогового от цифрового.

Тут то и разница - что у аналогового можно считывать показания “моментально” на частоте ограниченной только физическими свойствами микромеханики (возможно 32 Кгц), а уж как и чем оцифровывать/фильтровать уже другой вопрос.

alexmos:

думаю даже 100 Гц будет вполне достаточно

Может даже и меньше (зависит от “тушки” коптера)… Иными словами:
увеличивать частоту выборок = увеличивать чуйку сенсора=возможность отслеживания более мелких/плавных угловых скоростей скоростей=увеличивать точность ИМУ…
А уж насколько это реально оправдано в каждом конкретном случае - это дело вкуса.

alexeykozin
SergDoc:

а я и не знал) вот одно плохо в 6000 -й фильтр один и на дус и на аксель, вот 6500 - 9250 совсем другой разговор, мухи отдельно, котлеты отдельно…

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

alexmos
SergDoc:

ну тут как бы посчитать и повесить на выход датчика rc или lc фильтр на определённые частоты и жестко убить всё ненужное, а нужное дать на ацп, но стоимость и громоздкость конструкции - датчики, фильтры, ацп (24 бит или больше - 12 битный проца как-то не в кайф) - не надо усреднять чего-то программно - 8000 раз прочитали - 8000 раз выдали на регули…

Это прям как миф про теплый ламповый звук и про то, что грампластинки - до сих пор лучший носитель для аудио, а цифра “от лукавого” 😃 ИМХО, сейчас абсолютно все можно повторить в цифре, и если и будут потери в задержке/точности, то нужно просто понимать пороги, где это уже не критично. Коптеру цифрового гирика должно за глаза хватать при любых маневрах. В конце концов, реакция человека 200ms - самое узкое место тут, а задержки при частоте опроса 1кГц - всего 1 мс.

oleg70:

еслиб он писАл с частотой 32 Кгц то и чувствительнось у него была б не 2000 гр.сек , а 32000 гр.сек…, иначе никак по моему

Вообще никак не связано. От чувствительности зависит только напряжение на выходе аналогового датчика при поворотах, а АЦП вообще на любой частоте может раотать.

alexeykozin
alexmos:

Это прям как миф про теплый ламповый звук

а почему миф? у ламповых усилителей большой диапазон выходного напряжения, анодное около 300 вольт, отсюда и глубина звука.
представьте себе осцилограмму с вч колебаниями с размахом в 30 вольт промодулированными низкой частотой в амплитуде 300 вольт,
попробуйте это впихнуть в 30 вольтовую осцилограмму - получится что мы остались без басов, вернее с перековерканными

oleg70
alexmos:

Вообще никак не связано. От чувствительности зависит только напряжение на выходе аналогового датчика при поворотах, а АЦП вообще на любой частоте может раотать.

Я о том - что считать данные с сенсора с чувствительностью 2000 гр.сек. можно не чаще чем 2 Кгц,
а АЦП там может работать хоть как быстро, нам от этого “не тепло не холодно”, остается только за него порадоваться, поэтому все разговоры о опросе датчика в 32 Кгц не имеют смысла (ИМХО)…
(хотел скопипастить сюда соответствующий параграф из даташита, но он собака, запаролирован, а самому набирать по англицки не охота…)

SergDoc
alexmos:

Это прям как миф про теплый ламповый звук

тёплый ламповый звук - это реальность ))) у ламп, в отличии от полупроводников, вольтамперная характеристика линейная и до сих пор профф оборудование на лампах - даже микрофоны! недавно разбирал - просто шедевр… и тут таже песня - ну лампы ставить не получится, но прецизионные операционники вполне можно впихнуть между датчиками и ацп)))