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

oleg70
SergDoc:

InvenSense раздаёт исходники

Не прошло и два года… (😃), теперь бы разобраться и наконец узнать - что это за чудо…

SergDoc

Я особо не разбирался, времени не было - так одним глазом глянул - математика на кватернионах…
вроде сразу калибровка датчиков сделана - как не смотрел…
под 6000 6050 и им подобные 6 осей, а 9150 9250 9255(?) вроде как на 9 осей…

oleg70
SergDoc:

математика на кватернионах…

Если эта математика внутри чипа крутится, то это ВЕЩЬ…

rual
oleg70:

Если эта математика внутри чипа крутится, то это ВЕЩЬ…

ДЛя полётника вещь малопригодная, ибо не корректируется снаружи, т.е. по сути тот же МАРГ (Магвик или как его там?)

SergDoc
rual:

ибо не корректируется снаружи

не корректировать снаружи я так понял можно, но - одно большое но - нихрена там толком нет, есть тот же бинарник что и был всегда, с одним маленьким исключением есть два файла с адресами регистров самого DMP (там кстати регистры уже сразу обозваны по квартенионам и т.п.) и файл ключей к этому DMP - что они делают не глядел, ну короче либо загоняй тот бинарник (он без компаса) либо составляй сам с калибровками управлением и т.п. как догадайся сам в пдф-ках толком ничего нет, короче надо глубже ковыряться… да и всё это в 3-х килобайтах, частота обновления 200Гц… а вот прерывание выдаёт на 25Гц - чёт не складывается в картинку…

rual
SergDoc:

выдаёт на 25Гц - чёт не складывается в картинку…

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

SergDoc

кстати у чувака ещё кино интересное есть

rual:

Ну разве что пригодно как готовое “непрофильное” решение для определения ориентации для каких нить портативных приборов.

я чёт тоже к этому склоняюсь - нефиг туда лезть, вообще я мыслю про датчики так:
аналоговые датчики!
почему: - можно подобрать нужную ёмкость на выходе для наших условий, можно составить кривую по температуре (опытным путём)
АЦП внешний 24-х битный - больше точность, переполнение маловероятно, ацп подключен по SPI - все датчики в одном флаконе по лапам…
минусы такого решения габариты imu и цена… плюсы - если не задаваться целью считать всё сразу а тупо передавать - цепляем проц самый дешевый и самый маленький - лижбы успел фильтронуть и передать все значения 400-500 раз в секунду (так для себя), и всё это по CAN шине цепляется к основному процу, который тупо воспринимает это всё как один датчик на всё…
типа так www.techmor.com/inertial-measurement-unit-im-1/

oleg70
SergDoc:

а вот прерывание выдаёт на 25Гц

Зато какой ФВЧ получается(!)… 😃

SergDoc
oleg70:

Зато какой ФВЧ получается

лучше LC, фильтра не знаю )))

SergDoc

Олег, кстати пока вспомнил - то же удержание высоты или позиции - не важно…
двойное интегрирование даёт ошибку очень большую, но из первого интегрирывания мы получаем скорость - корректируем её дифференцированием пути с датчика (GPS…Baro) потом можно и ещё раз интегрировать? и ещё раз поправить?
а вот адаптивность этой схемы не скажу ))) кто-то (пальцем показывать не буду mahowik) сам не догадываясь того или скорей зная, создал адаптивный фильтр на базе альфа-бета…

rual
SergDoc:

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

Я так и делаю, проблема в том, что коэффициенты трудно подобрать. Получаются минимум 2 контура коррекции, а по хорошему ещё и аксель надо корректировать.

oleg70
SergDoc:

корректируем её дифференцированием пути с датчика

Корень зла - шум акселя…, барометром скорректировать наверно можно, но он тоже - “не подарок”, как равно и GPS…
Наверняка решение какое нибуть есть…, надо работать (экспериментировать) с этим., у меня пока не получилось…

SergDoc:

аналоговые датчики

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

alexeykozin

для всего бывают пределы разумного.
ну понятно есть сфера применения мелколеты.
самый маленький жпс приемник уже больше будет)

SergDoc
alexeykozin:

ну понятно есть сфера применения мелколеты.

тенденция однако мало-мало )))

rual
oleg70:

Корень зла - шум акселя…, барометром скорректировать наверно можно, но он тоже - “не подарок”, как равно и GPS…
Наверняка решение какое нибуть есть…, надо работать (экспериментировать) с этим

И то и то надо просто фильтрануть ФНЧ и просуммировать, а вот веса того и другого придется поподбирать )))

oleg70:

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

Совершенно против! Система получится “деревянной” - плохо управляемой, повторяемой, “плавающей”, и огромных размеров (по сравнению с нынешними полётниками).

oleg70:

но это уже смена всей концепции

Это вообще 2 шага назад. Я понимаю дедов, которые всё в механике и аналоговой электронике делали, так как у них другого не было. СТМ32 пока вполне справляется по быстродействию.
Нафига создавать себе проблемы с аналогом, когда просто нужно освоить цифровую фильтрацию? Но это если знать что делать в аналоге ) А если нет? Прикиньте изготовление 200 макеток с конденсаторами и резюками на каждое испытание (в основном недачное)? )))

alexeykozin:

самый маленький жпс приемник уже больше будет)

А вот и нет )))

SergDoc
rual:

А вот и нет )))

речь шла о самодостаточном модуле с питателем и антенной на борту…

oleg70
rual:

Это вообще 2 шага назад.

Все “минусы” очевидны…,не спорю…, но есть один жирный плюс - точность и быстродействие,
это примерно как в аудио технике - MP3 и ламповый/транзисторный звуковой тракт.

oleg70

Вопрос у меня, к знатокам кода разных платформ управления - с какой частотой (~в среднем) работает цикл управления моторами квадрика ?? Имеет ли смысл гнаться за повышением этой частоты ?

mataor

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

также стоит присмотреться к новому, активно рекламируемому/обсуждаемому режиму OneShot

djdron
mataor:

т.е. по хорошему, при записи значений желательно остановить таймер, обнулить его, и запустить с новым текущим значением.

так делать нельзя

rual:

Нафига создавать себе проблемы с аналогом, когда просто нужно освоить цифровую фильтрацию? Но это если знать что делать в аналоге ) А если нет?

вот можно по этой схемке сделать аналоговую стабилизацию ))) elm-chan.org/works/vlp/report_e.html