Восстановление данных с насыщенного акселерометра


10

У меня есть акселерометр ADXL345 и я установил его на гибридную ракету для запуска. К сожалению, я забыл установить диапазон от его значения по умолчанию +/- 2g до +/- 8g (мы ожидали 6g во время старта).

Для диапазона +/- 2g в таблице указано выходное разрешение 10 бит, а для +/- 8g - 12 бит.

Я заметил это в таблице данных, связанной выше, под DATA_FORMATрегистром (0x31):

Регистр DATA_FORMAT управляет представлением данных в регистр 0x32 через регистр 0x37. Все данные, за исключением диапазона +/- 16g, должны быть обрезаны во избежание опрокидывания. ( акцент мой )

Основываясь на этом утверждении и функциональной блок-схеме (3-осевой датчик подключен к «сенсорной электронике», а затем подключен к АЦП), я надеюсь, что есть способ получить правильные данные. Коэффициенты масштабирования перечислены на странице 3 таблицы.

Можно ли как-то разрешить эти данные, по крайней мере, до 1 или 2 значащих цифр? (Например, у меня обнаружение 1.9414 г - это должно быть около 6). Я не думаю, что датчик насыщен, просто число в регистрах данных - и учитывая масштабные коэффициенты и некоторое творческое смещение битов (не совсем ясно, как они получают от 10 до 12 бит при изменении разрешения), надеюсь, я смогу восстановить что-то полезное из моих данных.


Если вы строите свои данные, предполагая отображение 2g с переворачиванием, чтобы увидеть нижние 2g более длинного слова, как будет выглядеть результат? Для поднятия г вы надеетесь увидеть ряд зубьев пилы. 0-2 = 0-2. 2-4 = 0-2. 4-6 = 0-2.
Рассел МакМахон

Я сделаю это, как только мы вернем ракету. У меня недостаточно данных, так как мы потеряли их за облаком ..
Данг Кхоа

Ответы:


7

Какое значение вы фактически сохранили в «Register 0x31 — DATA_FORMAT»?

Я предполагаю, что вы ничего не сохранили в этом регистре, поэтому он по-прежнему имеет значение сброса, равное 00. Другими словами, пока вы собирали данные (из таблицы 16, а также со страницы 17 таблицы ADXL345 ):

  • Зарегистрируйте 0x31 - DATA_FORMAT == 00.
  • FULL_RES == 0. Таким образом, устройство находится в 10-битном режиме, и биты диапазона определяют максимальный диапазон g и масштабный коэффициент.
  • Justify Bit == 0. Таким образом, выровненный по правому краю режим с расширением знака.
  • Биты диапазона == 00. Так что + - 2g диапазона.

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

Затем я бы отобразил данные на графике и посмотрел, выглядят ли они как «насыщенность», «линейность» или «переворачивание» (как описано ниже).

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

тангенциальная крыса

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

«Все данные, за исключением диапазона ± 16 г, должны быть обрезаны, чтобы избежать опрокидывания». (страница 17)

Я не могу сказать, кто именно должен делать эту вырезку.

Многие люди рекомендуют использовать активный голос . Когда я следую этим рекомендациям, мой текст обычно более ясен в отношении того, кто чем занимается. Разве не лучше, когда я пишу вещи, которые легче понять , чем использовать стиль, который люди обманывают, думая «более профессионально» или «более академично»?

автоматическое ограничение

Мое лучшее предположение состоит в том, что акселерометр автоматически делает это ограничение.

насыщение : если вы видите, что ускорение возрастает через правдоподобные значения, то загадочным образом застреваете на плато, насыщаясь на уровне или около + 2g, тогда акселерометр «услужливо» обрезал данные для вас. После отсечения «верхнее» значение больше не указывает «ускорение, очень близкое к + 2g», но теперь указывает «ускорение, по крайней мере, 2g, и, возможно, намного, намного больше - невозможно сказать».

Поскольку это было в 10-битном режиме с выравниванием по правому краю, когда я интерпретирую эти 16-битные значения как нормальные 16-битные целые числа со знаком, я ожидаю увидеть значения в диапазоне от

  • 0x01FF = +511, что означает более 1,992 г. Возможно, намного, намного больше.
  • 0x01FE = +510, что указывает на 510/256 г ~ = 1,992 г
  • 0x01FD = +509, что указывает на 510/256 г ~ = 1,988 г
  • ...
  • 0x0001 = +1, что означает 1/256 г = 0,0039 г
  • 0x0000 = 0, что указывает на 0 г
  • 0xFFFF = -1, что означает -1/256 г = 0,0039
  • ...
  • 0xFE02 = -510, что означает -510/256 = -1,992 г
  • 0xFE01 = -511, что означает -511/256 = -1,996 г
  • 0xFE00 = -512, что указывает на что-то более отрицательное -1,996 г. Возможно, намного, гораздо более негативно.

(Да, я знаю, что для этого датчика неоправданно 4 знака после запятой). (Я видел, что некоторые устройства насыщаются в какой-то другой точке, например -511 или -510. Обычно я могу посмотреть на данные и выяснить фактическую точку насыщения).

Вы можете восстановить некоторые полезные данные из этого обрезанного набора данных. Вы можете использовать его для измерения, например, на сколько миллисекунд ускорение составило не менее 1,5 г. Увы, когда вы видите плато в таком наборе данных, невозможно измерить максимальное ускорение или общий импульс - лучшее, что вы можете сделать, это сказать: «Ну, мы знаем, что максимальное ускорение составляет не менее 2 г и, вероятно, больше ", и вычислим" хорошо, мы рассчитываем, что суммарный импульс составляет по крайней мере (что-то) ньютон * секунда ".

альтернативы

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

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

пролонгация : если вы видите, что ускорение возрастает через правдоподобные значения, и непосредственно перед тем, как оно достигнет +2 г, оно мгновенно переходит к нефизически-реалистичному значению около -2 г, а затем продолжает наращивать - возможно, будет через ноль, затем снова приближаясь к + 2g, и снова спрыгивая вниз около -2 г - тогда у вас есть переворачивание. Если вам повезет, значения меняются очень плавно, что позволяет обнаруживать каждый ролловер и «развернуть» эти значения, чтобы восстановить истинную силу g.

PS: не стесняйтесь редактировать Open Circuits: Rocket Computer .


большой! как только мы восстановим ракету, я попробую это. На данный момент нам пришлось зафрахтовать Cessna, чтобы помочь найти его ... но, надеюсь, нам повезет.
Данг Кхоа

Похоже , что мы не сможем восстановить нашу ракету, так это обсуждение немного спорный вопрос (я есть только точки пара данных с наземной станции). Но спасибо!
Данг Кхоа

@davidcary, открытые цепи: связь с Ракетным компьютером нарушена
Махендра Гунавардена

@MahendraGunawardena: Спасибо, что сказали мне. Это работает сейчас?
Дэвидкари
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.