У меня есть акселерометр ADXL203 для аналоговых устройств на хлебной плате, и я хотел использовать его для измерения наклона некоторого оборудования на достаточно высокой частоте (20-30 Гц). я подключаю его к регистратору кэмпбеллс cr3000, чтобы провести зондирование. У кого-нибудь есть указания, как интерпретировать выходы датчика. Благодарность
accelerometer
inclination
Трой Дженсен
источник
источник
Ответы:
У меня есть несколько вещей, чтобы сказать здесь, и некоторые из них включают в себя согласие с pingswept, а некоторые с penjuin.
cr3000
Частота дискретизации cr3000 с частотой 16 битов и частотой 100 Гц будет немного медленной, чтобы вы могли легко удалить шум из ваших данных, но со значительно более высокой точностью, чем тогда, будет использоваться. Я сомневаюсь, что вы можете получить 13 или 14 бит точности без каких-либо довольно хороших алгоритмов фильтрации. Акселерометры научили меня, что вибрация - это дьявол, взорванный фонон.
Выходной конденсатор
Вы должны убедиться, что вы делаете так, как указано в техническом описании, и теория сигналов диктует. Цитировать данные:
Это означает, что вам нужно выбрать конденсатор, чтобы поддерживать частоту ниже 50 Гц. Если вы поместите его выше этого уровня, вы можете получить псевдонимы, а псевдонимы превращают шум вибрации в дьявола, с которым вы подписали соглашение. Они утверждают, как рассчитать уровни шума от устройства, и при полосе пропускания 50 Гц от пика до пика 0,006 * Гравитация даже не будет замечена, если вы используете это на устройстве с вибрациями.
Интерпретация данных
Это, вероятно, то, что вас больше всего интересует, и сделать это относительно легко. Вам нужно пометить время, когда устройство находится в нейтральном положении, когда оно плоское и у вас оно относительно неподвижно. Дайте ему секунду или две в этот момент, а затем вы можете взять медиану этих данных, чтобы определить напряжение не-G. Затем вы можете использовать это как точку, с которой вы сравниваете устройство. Теперь, с этого момента, я могу прямо процитировать паспорт:
Таким образом, вы можете просто использовать это приближение, если вы не собираетесь сильно наклонять, но вам нужно будет использовать геометрию, если вы планируете наклонять в обоих направлениях и в углах, которые не очень малы.
Если вы собираетесь увеличиваться, у них даже есть уравнения, прописанные как:
Насколько я могу сказать, ваше устройство дает изменение 1 В на 1 Г ускорения, установленного на нем. Если вы выполнили фазу калибровки, то вы должны быть в состоянии провести измерения, вычесть смещение, и у вас будет количество испытываемых G.
Хватит читать здесь, если вы не столкнетесь с проблемами или не хотели бы получить больше информации для улучшения подхода.
Я добавил немного больше, говоря о других подходах и методах, чтобы улучшить ваш подход к быстро меняющимся системам или системам, в которых вы собираетесь программировать устройство, выполняя выборки.
Частота дискретизации
Вы должны выполнять выборку значительно быстрее, чем скорость, с которой ваше устройство меняет направления ускорения, поскольку вы должны измерять ориентацию 20-30 раз в секунду. Вы должны быть в состоянии измерить достаточно быстро, чтобы отфильтровать вибрационный шум и ускорение из-за других воздействий, которые я нашел довольно большими при работе с акселерометром.
3-х осевой акселерометр
Во-вторых, если у вас есть трехосевой акселерометр, то вы можете легко распознать, когда одна ось теряет часть ускорения из-за силы тяжести (т. Е. Когда ось z имеет величину падения на 2 м / с ^ 2, вы знаете, что усиление, которое вы видели на другой оси, является гравитацией). Это все еще будет грязно, но в целом будет добавлено ускорение, которое дает скорость, необходимую для изменения вашей ориентации, а затем изменение ускорения из-за изменения ориентации, часто позволяющее вам распознать ориентацию.
Проблемы с 2-осью
Это будет, как сказал Penjuin, почти невозможно с 2-осевым акселерометром, и в лучшем случае схематично, если у вас есть система, которая может иметь 20-30 различных ориентаций в секунду, или если вам нужно иметь точную меру ориентации в все время. Я уверен, что студент магистратуры мог бы написать довольно хорошую диссертацию на эту тему, или докторская диссертация могла бы написать диссертацию по улучшению этого алгоритма.
Вибрационный шум
Чтобы добавить больше, если вы можете поместить свое устройство поверх чего-то, что будет статически заблокировать его движение устройства, но при этом ослабит вибрацию, вы получите намного лучшие показатели и не будете нуждаться в такой большой программной фильтрации. Между акселерометром и вашим устройством может быть размещена простая прокладка типа пены, и если она цифровая, это не должно увеличивать электрические помехи и помогать поглощать некоторые вибрационные шумы. Это следует делать только в том случае, если вы видите проблемы с шумом вибрации.
Цифровой акселерометр
Я бы предложил цифровой акселерометр, к которому вы можете подключиться через SPI. Данные могут быть синхронизированы с очень высокой скоростью, и вы можете работать в фоновом режиме, так как ваш SPI выполняет постоянную работу по загрузке следующего набора значений. Вам понадобится хороший микроконтроллер, если это будет сделано в цифровом виде. Если вы можете дать мне более подробную информацию о том, что вы хотите сделать, я могу дать лучшую обратную связь. Если вам нужно предупреждение, основанное на обнаружении наклона, то это должно быть очень легко сделать со всеми аналогами, но если вы хотите измерить положение и угол наклона оборудования во время работы, приготовьтесь к некоторой работе.
Пожалуйста, дайте мне знать, если я могу добавить что-то, чтобы этот ответ был более понятным или применимым к тому, что вы искали.
источник
Я написал и переписал этот ответ несколько раз со многими сумасшедшими математическими идеями, но, честно говоря, я не думаю, что это можно сделать с какой-либо точностью. Вы можете сделать некоторые векторные математики, но что если:
Хотя я уверен, что есть какой-то сумасшедший обходной путь для такого рода вещей, я не уверен, что оно того стоит; акселерометры просто не предназначены для этой задачи (по крайней мере, насколько мне известно). Для того, чего вы пытаетесь достичь, я бы предложил гироскопический подход с использованием любого из них , каждый из которых был бы достаточно устойчивым ко всем вышеперечисленным проблемам.
источник
Если я правильно понимаю таблицу данных, выходной сигнал для каждой оси будет варьироваться от 1,5 В до 3,5 В при наклоне вокруг оси. Если устройство плоское (без учета ошибки выравнивания пакета ± 1 градус), оба выхода должны показывать 2,5 В.
Если вам нужно измерить наклон только в одном направлении, вы можете взять арксинус отклонения от 2,5 В, чтобы получить угол в радианах, а затем преобразовать в градусы. Если устройство может наклоняться в любом направлении, вы можете рассчитать два угла, а затем рассчитать составной угол из них.
Чтобы быть точным: угол вокруг одной оси = (180 / π) * arcsin (Vout - 2.5)
Чтобы получить хорошую частотную характеристику, вам понадобятся небольшие выходные конденсаторы, Cx и Cy. Из сноски 6 на стр. 3 таблицы данных, похоже, что 0,02 мкФ даст вам полосу пропускания 250 Гц, что, вероятно, примерно соответствует вашей частоте дискретизации. Возможно, вы могли бы подняться до 0,1 мкФ, ограничив полосу пропускания до 50 Гц, но ваши сигналы начнут ослабевать.
источник
Я добавляю второй ответ, потому что мой второй большой, и вы можете просто захотеть простой.
Колпачок фильтра должен быть 0,10 мкФ или более, чтобы поддерживать уровень псевдонима ниже 50 Гц. Вам нужно дать фазу калибровки в пару секунд, когда ваше устройство находится на уровне со всем ускорением силы тяжести в направлении Z, чтобы определить вашу нулевую точку G.
Напряжение, которое вы измеряете для своей нулевой точки G, оно, вероятно, будет различным для направлений X и Y, ничего не представляет. Просто возьмите любое напряжение и вычтите его из него. Это напряжение с вычтенным смещением - это число Гс, которое вы получаете в этом направлении.
Возьмите арксин и вы получите свой угол в этом направлении.
Это игнорирует шум и другое ускорение. будьте готовы к тому, что NaN будет результатом, если он полностью наклонен и есть шум.
источник
Чтобы получить любой угол, вам нужно измерить ускорение силы тяжести в обоих направлениях - X и Y. вычтите среднее напряжение (2,5 В) так, чтобы ноль был «без ускорения».
Теперь вы можете найти угол с помощью arcsin (y / x). Но это раздражает в использовании, из-за деления и потому, что знак неоднозначен, так что вы действительно хотите, чтобы функция C atan2 (y, x). atan2 () получает знак правильно для всех 360 градусов.
Не по теме, так как вы не используете micro: если вы ищете atan2 () для использования на микроконтроллере, на моем сайте есть генератор atan2 (): http://vivara.net/cgi-bin/ cordic.cgi
источник