October 27th, 2013

3 метра

Странное поведение гироскопа

В самый неожиданный момент столкнулся с проблемой в своем проекте. Причем проблемой, которую я был уверен, что решил уже больше года назад, а тут она опять всплыла - очень демотивирует. У меня используется цифровой МЭМС гироскоп L3GD20 от ST. До этого во время всех тестов он жил на всевозможных внешних платках и его работа меня вполне устраивала. Один из основных параметров который мне наиболее важен - это смещение выходного значения от нуля в покое. То есть когда гироскоп лежит неподвижно - он все равно выдает некоторое значение, близкое к нулю, но не нулевое. И это значение вызывает накопление ошибки. До текущего момента я делал простую калибровку - считал среднее значение за некоторое время и потом просто его вычитал из всех измерений. Это довольно неплохо работало и в лучших случаях уход угла составлял всего несколько десятков градусов в час.

Однако, теперь он физически оказался внутри устройства и сразу всплыла проблема. Устройство греется. Греется микроконтроллер (да-да, STM32 работающий на 64 МГц нагревается до 40-45 градусов при комнатных 25). Греются и другие детали, в общем и целом температура может достигать 60-70 градусов. А при нагреве выходное значение гироскопа прилично уползает в сторону, что очень сильно сказывается на стабильности выходного угла. Вместо десятков градусов в час мы получаем сотни а то и тысячи.

Было решено провести исследование зависимости нулевого значения от температуры. Построенный график оказался кривоват, но в целом стало ясно, что зависимость практически линейная. Кроме того нашлось исследование другого гироскопа но похожего: https://forum.sparkfun.com/viewtopic.php?f=14&t=31992
Там тоже видно, что зависимость почти линейная, особенно для оси Z (которая у меня используется как основная).

Посчитал зависимость нулевого смещения от температуры, получилось, что оно чуть больше заявленного в даташите 0.04 dps/C вместо обещанных 0.03 dps/C. Ввел поправочный коэффициент и построил долговременные графики изменения среднего значения от температуры, с учетом поправки и без нее. В целом результат получился не такой уж и плохой, с поправкой оно явно лучше, чем без. Но выявилась очень забавная странность.

Collapse )

Встает вопрос что делать дальше. Может вообще к черту обрезать все значения меньше +/- 50 ? Это внесет определенную погрешность при интегрировании, вопрос большую ли. Зато при нахождении в покое ошибка будет нулевая. Также интересен вопрос - насколько стабильна характеристика гироскопа со временем. Можно ли зашить калибровочное значение с учетом температурной компенсации железно или же придется его иногда перекалибровывать, что весьма непросто, т.к. калибровку нужно производить при разных температурах.

У кого есть какие интересные мысли/предложения по теме?

Collapse )
promo alex_avr2 июль 2, 2018 13:00 41
Buy for 200 tokens
Думаю многие слышали рассказы про огромные бункеры под Москвой, подземные города, секретное метро на случай ядерной войны. Многое в этих рассказах очевидно преувеличено, что-то придумано, но безусловно, основаны они не на пустом месте. Совсем недавно небольшой кусочек этих подземных тайн был…