Создание собственной системы стабилизации
стик совсем не вариант. во первых между командой от стика или навигационного контроллера до исполнения маневра аппаратом слишком большая задержка и ошибка. нужно брать фактический угол. во вторых ускорение в плоскости поверхности земли будет нулевым в ситуации когда аппарат имеет нулевую тягу моторов но по ролу к примеру завален хоть на 90 градусов
и наоборот при наборе высоты с ускорением 9G ускорение в плоскости земли будет двойным от ожидаемеого от косинуса ролпитч
Мы сейчас обсуждаем влияние гравитации Юпитера на экономику Зимбабве )))
всё управление надо брать от угловой скорости, вот ты в машине едешь - на газ жмёшь чтобы скорость увеличить? или у тебя прямая связь гашетки с расстоянием? нормально так надо 200 км проехать - значит полгаза, 400 - тапку в пол? ты же не забывай, что мы меряем изменения и пытаемся их “исправить”
будет нулевым в ситуации когда аппарат имеет нулевую тягу моторов но по ролу к примеру завален хоть на 90 градусов и наоборот при наборе высоты с ускорением 9G ускорение в плоскости земли будет двойным от ожидаемеого от косинуса ролпитч
сам смотри - при завале (мы имеем ввиду момент завала а не проспали его) угловая скорость будет дай бог, а если ты несёшься на 160 тонном х…абазе с ускорением 9G в плоскости планеты - то это магия и аксель у тебя будет показывать явную хрень - но при отсутствии угловой скорости, алгоритм будет править это несоответствие и ты не воткнёшься в планету…
сам смотри - при завале (мы имеем ввиду момент завала а не проспали его)
я не за то чтобы проспать завал, просто попытка объяснить на пальцах зависимость . в примере два крайних случая, в промежутке между которыми существует общее правило
причем это правило не нарушается когда коптер лежит на столе с отключенными моторами.
нет тяги - хоть как обкрутись стиками и поворотами рамы не будет и коррекции
примере два крайних случая, в промежутке между которыми существует общее правило
с кучей поправочных коэффициентов, только что зависимость линейна, а по этому цветной шум мы не отследим (
и не забывай, что подтяг к акселю будет всегда, только больше или меньше, но не = 0
было такое кино про ребят которые в пинпонг коптерами играют, так вот один из интересных эффектов - они утверждают что мультиротор идеальный официант.
ставят на кабину рюмку с жидкостью и рюмка не падает и жидкость всегда в горизонте относительно краев
жидкость всегда в горизонте относительно краев
немного не так - “в горизонте” не по понятиям ))) в плоскости краёв - тут как раз действует центростремительное ускорение, не дающее возможность жидкости держаться в горизонте…
в плоскости краёв - тут как раз действует центростремительное ускорение, не дающее возможность жидкости держаться в горизонте…
отсюда вывод - что в ховере уровень рамы акселям всегда кажется реальным горизонтом, а кренпитч определяет угол на который ошибается аксель
можно даже так выразить.
если коптер в полете, газ в пределах троттл мин - троттл макс и сочетается с величиной вертикального ускорения (для ховера 1G а уск 9,8)
то можно принять аксель вертикального ускорения помноженный на синус кренпитча как тягу моторов для упрощенного расчета.
в идеале можно еще и сопоставлять с потребляемым током чтобы избежать непоняток в настольных тестах без подачи напряжения на регуляторы моторов
Ну так всё правильно - нет угловых скоростей меньше доверие акселю, но он доплывёт, больше угловая скорость - больше доверие акселю, но ты же не забывай, что самое большое доверие это в пределе 0.02… дабы сгладить/убрать ошибку ДУС…
я же формулу в общих чертах нарисовал, конечно нужны коэффициенты и пределы - которые надо подбирать имперически, иии… да здравствует мля EKF… с двумя наборами коэффициентов: собственный шум датчиков и собственный шум алгоритма 😦
угловые скорости сильно шумная величина особенно если есть вибрации
к тому же при полетах в тербулетность может так статься что небудет времени когда угловая скорость находится в области нулевых величин чтобы успеть подтянуть горизонт
угловые скорости сильно шумная величина
не на столько шумные как ускорения
особенно если есть вибрации
да магия всё это, никто никуда не летит )))
ну сам подумай ты сейчас летаешь на комплиментарнике
угол=угол предыдущий +угловая скорость*дт
угол=угол*0.98+угол с акселя*0.02
и это догма, из-за которой, ты не в состоянии правильно отследить ускорения вдоль осей и построить приличную инерциалку потому, что для расчёта ты берёшь кривой угол с завалом которого нет!
да магия всё это, никто никуда не летит )))
я тут давеча трое суток потерял на одной очень тупой вещи.
в с++ ATAN2(y,x)
в vb, excel где я делал контроль ATAN2(x,y)
А это все потому, что ты ворочаешь не вокруг своей оси, а относительно левого верхнего угла экрана)))
если ты несёшься на 160 тонном х…абазе с ускорением 9G в плоскости планеты - то это магия и аксель у тебя будет показывать явную хрень - но при отсутствии угловой скорости, алгоритм будет править это несоответствие и ты не воткнёшься в планету…
Тут кабэ всё просто: если несёшься с ускорением 9G, то аксель покажет тебе направление вниз длинной 8G, оч. плохо когда -1g (свободное падение) и аксель кажет НУЛЬ. Вот НУЛЬ как не верти, понятней не станет )) Щас как раз виртуальную ракету гоняю.
угловые скорости сильно шумная величина особенно если есть вибрации
эта величина в краткосрочной перспективе как раз очень стойкая, гораздо хуже ведет себя вычислитель при угловом интегрировании.
Тут кабэ всё просто: если несёшься с ускорением 9G, то аксель покажет тебе направление вниз длинной 8G, оч. плохо когда -1g (свободное падение) и аксель кажет НУЛЬ. Вот НУЛЬ как не верти, понятней не станет )) Щас как раз виртуальную ракету гоняю.
мы тут издевались над DCM алгоритмом и вот что получилось:
таскаю по столу вперёд - назад, влево - вправо
соответственно по тангажу и крену горизонт уходит - правый верхний экран:
мы тут издевались над DCM алгоритмом и вот что получилось:
не могу посмотреть
У Вас нет прав для просмотра этой страницы или для выполнения этого действия.
Хотя зарегистрировался(
Мда… видимо вес акселя большой. И дус по Z тоже скачет
И дус по Z тоже скачет
я же всю трёху тягал по столу - не удивительно)))
да магия всё это,
Я так размышляю (абстрагируясь от формул) по этой проблеме: по факту имеем два типа исходных данных
- угловая скорость(гира)
- смесь линейного и гравитационного ускорений (аксель)
Задача - отделить у акселя одно от другого.
Математика должна быть такова, чтоб в “отделяющем алгоритме” данные акселя (“разделяемое”) присутствовали только как аргумент , но никак не попадали в цепь обратной связи прямо или косвенно…
Иначе получим эффект “мюнхаузена” или иными словами “замкнутый круг” и далее тупик…
Достаточно ли для решения проблемы данных с гиры - вопрос открытый… , если нет то напрашивается “третья сила”…
никак не попадали в цепь обратной связи прямо или косвенно…
Иначе получим эффект “мюнхаузена” или иными словами “замкнутый круг” и далее тупик
Это неправильно, а последнее неправда, читаем про “взрослые” системы (см.стр.8)
Это неправильно, а последнее неправда, читаем про “взрослые” системы (см.стр.8)
Посмотрел… речь в документе (как я понял, опять же) идёт о калибровке гировертикали по гидроуровню (роль которого в нашем случае исполняет акселерометр)… НО речь идет о статической калибровке , т.е. сама платформа в процессе калибровки находится в состоянии покоя и линейно не перемещается. Да, “взрослые системы” на самолете так и работают, сначала на земле раскручивают гироскопы, затем их один раз калибруют и потом уже взлетают…
Так что “это неправильно” пока правильно…