Перейти к содержанию
    

Акселерометр как датчик вибрации для электромотора

Тут надо делать математические оценки вначале, а потом уже подходить к реализации.

Это да, но так как математических оценок акселерометров для такого применения вряд ли найти удастся, я бы наверное прицепил бы акселерометр к мотору, и поснимал бы сигналы с него в PC, потом в матлабе с ними разбирался, так как там имеется огромный выбор готовых средств спектрального анализа. Шумы шумами, а вибрации должны вылезать из-под них очень даже заметно, так как это долговременный и периодический процесс, дающий хороший отклик на АКФ. Теоретически, как раз, камней не видно. Но они на то и камни, чтобы глубоко под водой сидеть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Причем здесь оценка акселя? Знаем его шум

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут и сталкиваться не надо. В любом смартфоне стоят акселерометры подобного типа.

Результат измерения вибрации у них так себе.

У меня даже никаких идей как по этим измерениям определять состояние подшипников.

Угол тоже измеряют плюс-минус километр.

Это у Вас смартфон кривой.

А как раз данные акселерометры - очень даже неплохие для своей ценовой категории.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это у Вас смартфон кривой.

 

Это не смартфон кривой, это софт там, как во всех смартфонах, кривой, слоеный-переслоеный, когда акселерометр опрашивает какой нибудь драйвер в ядре через другой драйвер, который пользуется драйвером шины, представляет его как устройство ввода в posix-ОС, а потом какая нибудь очередная прокладка через пять других прокладок перебрасывает его в какую нибудь виртуальную машину, на которой что нибудь явско-андроидское что-то отображает, само не понимая что :) :) :) Никакого реалтайма и близко нет, отсчет потерялся, или нет, и хрен бы с ним, никого это не волнует, лишь бы юзеру что-то показать... Вот примерно поэтому люди и думают, что кривые акселерометры у них, а на самом деле софт не то что кривой, а наикривейший.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не смартфон кривой, это софт там, как во всех смартфонах, кривой...

 

Да, похоже на правду.

http://www.sensorplatforms.com/smartphone-...ensor-sampling/

 

я бы наверное прицепил бы акселерометр к мотору, и поснимал бы сигналы с него в PC, потом в матлабе с ними разбирался,

 

Вот здесь уже поразбирались, и вывод, что похоже разбираться можно вечно.

 

Вибрация зависит от всего. От нагрузки, от балансировки, плывет со временем и т.д.

Вычислить на этом фоне подшипники наверно можно только когда все уже пошло в разнос. :biggrin:

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, вы совершенно правы. Конечно только износ\дефект подшипников вычислить только по вибрации сложно , но понять что "что-то пошло не так" и аварийно остановить мотор или просигнализировать вполне реально.

 

Вполне возможно, вот например http://www.colibrys.com/e/page/155/

 

Да интересные чипы, надоть их попробовать "пощупать".

 

Датчик вибрации на акселерометре сделать можно. Вопрос - какие критерии.

Если "для себя" как просто индикатор, то пойдет. Если для промышленной эксплуатации - ставьте готовый прибор контроля вибрации двигателя, их полно. Кстати, поищите и посмотрите на характеристики, будет понятнее что вам нужно.

 

Да нет, просят сделать искробезопасное утройство для 2ой зоны. Но ход вашей мысли я понял, надо внимательно посмотреть что сделано.

 

Измерение угла возможно на любом акселерометре, по-моему даже необязательно ставить второй. Получите смещение по одной оси, отфильтруете постоянную составляющую. Точность измерения угла низкая, определяется:

1. низкая начальная точность - это можно убрать калибровкой после монтажа

2. стабильностью напряжения питания

3. температурный дрейф - цифры в даташите есть, можно посчитать

 

Реально без специальных мер на ADXL202 получали порядка единиц градусов без учета долговременного дрейфа, но лучше и не надо было.

 

Заказал у китайцев платку с датчиком, приедет - будем пробовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заказал у китайцев платку с датчиком, приедет - будем пробовать.

Глеб, не возражаете против того, что пока Вы ждете свои датчики, я задам несколько вопросов по теме?

Мои датчики уже пришли :) и были прикручены к электромотору с установленным на нем шкивом. Мотор не монстр, но и не самый мелкий, 0.75 kW. Шкив диаметром 150мм, шириной 54мм, вес около 1 кг или чуть больше...

Правда датчики аналоговые ММА7361, но думаю по основным характеристикам измеряемых сигналов они близки к тем, что ждете Вы.

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

Подключил я акселерометр к осциллографу и убедился, что он более менее осознанно реагирует на вибрации ротора.

Контроль делался по осциллограмме, где было видно, что синусоида с оборотной частотой достаточно хорошо привязана по фазе к метке на шкиве и адекватно реагирует на перемещение контрольного груза. По каналам Х и У акселерометра эти сигналы сдвинуты на 90 град. Фоток не сделал, там, конечно, шумновато, но при необходимости могу и сфоткать.

Мой осциллограф - USB: MSO-19 (200 МГц , с возможностью FFT, однолучевой, но с широкими возможностями внешней синхронизации и 8-ми канальным ЛА).

На картинке спектра явно видны первая и, часто, вторая гармоники оборотной частоты.Вылезают и регулярные помехи с частотами 50 и 100 Гц. Амплитуда первой гармоники достаточно пропорционально реагирует на изменение величины контрольного груза. При наблюдении сигнала на экране осциллографа (без необходимости определения фазы) для уменьшения зашумленности желательно подключить простейший ФНЧ. На картинке со спектром можно все хорошо увидеть и без фильтра. И еще, шумы значительно уменьшились, а сигнал подрос, когда я поставил мотор на мягкое основание.

К сожалению у меня пока нет точных весов для взвешивания грузиков(Весы с разрешением 0.01 г заказал на DX, пока жду), но для понимания масштабов пока скажу, что шарик пластилина диаметром ~4 мм вызывает изменение амплитуды первой гармоники примерно на 10 мВ по показаниям на экране FFT осциллографа. Различать показания удается с точностью до 1-2 мВ, это предел прибора.

Поизучав материалы по балансировке в Инете, решил, что для решения этой задачи нужно получить амплитуду и фазу первой гармоники оборотной частоты.

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

Чаше всего видел попытки использовать БПФ для определения спектра сигнала с датчиков и получения амплитуды и фазы.

Но я считаю, что значительная часть там полученных данных не имеет никакого практического применения. А вот метод сравнения (корреляции?) с опорной синусоидой на частоте вращения даст только нужные нам амплитуду и фазу. Но вот как реализовать такой алгоритм попроще я, к сожалению, не знаю. Забыл уже все...

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

Итак, что имеем: сигнал с оптического датчика оборотов, позволяющий точно определить привязку к геометрии шкива и посчитать точно частоту оборотов.

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

Разрядность АЦП 10 бит. Пару бит рекомендуют отбросить...

Частоты вращения - в пределах 2 - 200 Гц.

Как минимальным объемом вычислений получить амплитуду и фазу первой гармоники? Какая точность может быть достигнута? Теоретически...

Делать скорее всего попробую на AVR, думаю Mega328 вполне справится. При необходимости могу передавать данные в реальном времени в комп для расчетов и визуализации.

post-80447-1392115203_thumb.jpg

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как минимальным объемом вычислений получить амплитуду и фазу первой гармоники? Какая точность может быть достигнута? Теоретически...

 

самое простое и оптимальное (с точки зрения понятия оптимального фильтра) видится так:

 

первый вариант(проще):

- Подождите, пока стабилизируется частота оборотов. Измерьте эту частоту.

- Запустите сбор данных синхронно с сигналом с датчика, соберите достаточную выборку данных.

- Посчитайте одну точку ДПФ, соответствующую этой частоте, это две суммы перемноженных выборок сигнала с значениями sin и cos соответствующей частоты.

- Получите фазу и амплитуду.

 

второй вариант (точнее):

- дождаться стабилизации частоты и измерить.

- набрать выборку из сигналов обоих датчиков (акселерометра и датчика угла/положения)

- посчитать ДПФ на этой частоте для обоих сигналов

- найти разность фаз и амплитуду.

 

Точность может быть достигнута самая разная, все зависит от сигнал/шум в сигнале, от длительности принятого сигнала, точности вычислений...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

самое простое и оптимальное (с точки зрения понятия оптимального фильтра) видится так:
Спасибо! Примерно так я себе это и представлял, только не понимал,наверное, что это будет называться тоже ДПФ, но на одной частоте.

 

первый вариант(проще):

- Подождите, пока стабилизируется частота оборотов. Измерьте эту частоту.

- Запустите сбор данных синхронно с сигналом с датчика, соберите достаточную выборку данных.

Да, я представлял себе примерно такой вариант, со следующими отличиями:

- после измерения частоты, вычислить частоту дискретизации, равную 2**N * Fоб, где N выбрать от 2 до примерно 8 (тут я не очень понимаю, будет ли какой-то плюс от увеличения кол-ва выборок на оборот);

- выполнить накопление данных с усреднением, привязавшись к датчику оборотов. Т.е. на каждом обороте суммировать в X(i) в своей ячейке, потом поделить на число оборотов.

Потом выполнить обработку, как предложили Вы:

- Посчитайте одну точку ДПФ, соответствующую этой частоте, это две суммы перемноженных выборок сигнала с значениями sin и cos соответствующей частоты.

- Получите фазу и амплитуду.

Только Вы уж извините за глупый вопрос, не понимаю я как получить из массива две цифры, амплитуду и фазу. Ну перемножил я каждое значение сигнала на соответствующие значения sin и cos с Fоб, получил два новых массива Xsin и Xcos. Что с ними надо делать дальше? Пробую для каждой точки посчитать А=sqrt(Xsin*Xsin+Xcos*Xcos) и Ph=arctg(Xsin/Xcos), получаю еще два массива, смотрю на их графики и не понимаю, что с ними делать дальше. Не ругайте, голова уже не та, что была в молодости... Поясните, как пятикласснику.

 

второй вариант (точнее):

- дождаться стабилизации частоты и измерить.

- набрать выборку из сигналов обоих датчиков (акселерометра и датчика угла/положения)

- посчитать ДПФ на этой частоте для обоих сигналов

- найти разность фаз и амплитуду.

Про этот вариант не совсем понял... Сигнал синхронизации - короткий импульс, стОит ли заморачиваться с его регистрацией и обработкой? Особенно если выполнять синхронизацию накопления на каждом обороте? Или я что-то упускаю из виду?

 

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

 

Я тут порылся в Инете, нашел, что вроде вычисление преобразования Фурье на одной частоте называется методом Герцеля. Причем самым эффективным, по объему вычислений, случаем, является выбор частоты дискретизации в 4 раза выше анализируемой частоты. Ну тут вроде понятно, при этом синусы и косинусы становятся нулями и единицами и количество умножений резко сокращается. Вот только насколько это повлияет на точность? Возможно для получения оперативной, но грубой оценки только на микропроцессоре, будет более оптимальным взять по 4 точки на оборот. А для детального, с повышенной точность анализа, передавать массив с бОльшей частотой дискретизации на Комп и считать там?

Нет ли у кого готовой программки алгоритма Герцеля на Си?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что это будет называться тоже ДПФ,

Вы не путайте одну точку ДПФ и алгоритм БПФ, который быстро считает все точки ДПФ сразу :)

 

- после измерения частоты, вычислить частоту дискретизации, равную 2**N * Fоб, где N выбрать от 2 до примерно 8 (тут я не очень понимаю, будет ли какой-то плюс от увеличения кол-ва выборок на оборот);

Это, в общем, лишнее. Выбирайте частоту дискретизации просто побольше, в рамках разумного. И количество выборок расчитывайте такое, чтобы туда уложилось N целых периодов. А чтобы внутри одного периода было целое кол-во выборок, это не нужно.

 

- выполнить накопление данных с усреднением, привязавшись к датчику оборотов. Т.е. на каждом обороте суммировать в X(i) в своей ячейке, потом поделить на число оборотов.

Потом выполнить обработку, как предложили Вы:

Это вообще никак не нужно, совершенно, процесс вычисления точки ДПФ сделает это внутри себя сам.

 

Только Вы уж извините за глупый вопрос, не понимаю я как получить из массива две цифры, амплитуду и фазу. Ну перемножил я каждое значение сигнала на соответствующие значения sin и cos с Fоб, получил два новых массива Xsin и Xcos. Что с ними надо делать дальше? Пробую для каждой точки посчитать А=sqrt(Xsin*Xsin+Xcos*Xcos) и Ph=arctg(Xsin/Xcos), получаю еще два массива, смотрю на их графики и не понимаю, что с ними делать дальше. Не ругайте, голова уже не та, что была в молодости... Поясните, как пятикласснику.

 

Все совсем не так...

Вы считаете для каждой выборки:

 

sum = sum + x(t)*e^(j*w*t)

 

ну e^(j*w*t) по формуле Эйлера... cos(w*t)+j*sin(w*t)

 

отсюда действительная часть ДПФ:

sum_r = sum_r + cos(wt)*x(t);

 

мнимая:

sum_i = sum_i + sin(wt)*x(t);

 

потом, когда для ВСЕГО СИГНАЛА эти две суммы посчитаны, то:

 

амплитуда будет модулем этого комплексного числа sqrt(sum_r^2+sum_i^2)

фаза будет аргументом: arctg(sum_i/sum_r)

 

 

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

 

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

Ну это уже Вам виднее... На сколько хороший у него SNR и на сколько точно Вы можете обеспечить точный старт выборки с минимизацией джиттера между синхросигналом и первой выборкой.

 

Я и имел ввиду зависимость точности от параметров обработки на одном и том же массиве данных,- от частоты дискретизации, времени усреднения, разрядности арифметики и т.д.

 

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

 

на одной частоте называется методом Герцеля

Сначала сделайте прямой корреляцией с e^(jwt). Потом уже в герцели залезайте. Там свои подводные камни есть, с точностью вычисления коэффициентов например, чтобы они остались на единичной окружности... И вообще, влияние точности вычисления на результат там серьезно больше, как в любом рекурсивном фильтре по сравнению с нерекурсивным.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это, в общем, лишнее. Выбирайте частоту дискретизации просто побольше, в рамках разумного. И количество выборок расчитывайте такое, чтобы туда уложилось N целых периодов. А чтобы внутри одного периода было целое кол-во выборок, это не нужно.
Я считал, что это позволит получить "не размытую" основную частоту и даст более точное значение ее амплитуды. Это не так?

 

А в остальном, Ваши советы сильно помогли. Спасибо! Наконец-то увидел нормальные цифры.

Вот только с фазой еще проблемы. Как избавиться от периодичности арктангенса? А то на разных углах скачки на 2 пи. Есть доступный алгоритм?

Заранее спасибо, извините, что испытываю Ваше терпение и занимаю время.

С уважением.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я считал, что это позволит получить "не размытую" основную частоту и даст более точное значение ее амплитуды. Это не так?

Совсем нет. Необходимым и достаточным критерием точного попадания в точку ДПФ, является целое количество периодов за выбранный промежуток времени, на котором ДПФ считается. А как там легли выборки, никого не волнует.

 

Вот только с фазой еще проблемы. Как избавиться от периодичности арктангенса? А то на разных углах скачки на 2 пи. Есть доступный алгоритм?

А каким боком эта проблема тут вдруг встала? Я еще понимаю, анализ ФЧХ фильтров, где фаза может быть больше 2*пи, у вас то тут все лежит от 0 до 2*пи, больше быть не может.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Совсем нет. Необходимым и достаточным критерием точного попадания в точку ДПФ, является целое количество периодов за выбранный промежуток времени, на котором ДПФ считается. А как там легли выборки, никого не волнует.
Да, про целое количество периодов сигнала я понимаю. Но чтобы к этому приблизится, должна быть достаточно высокая частота дискретизации, а я здесь ограничен примерно 8 кГц.

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

 

А каким боком эта проблема тут вдруг встала? Я еще понимаю, анализ ФЧХ фильтров, где фаза может быть больше 2*пи, у вас то тут все лежит от 0 до 2*пи, больше быть не может.

Да больше и не получается, скачет в пределах пи...

Плавно меняю фазу входного сигнала, на выходе получаю:

вход выход

0 - 90 0 - 90

91 - 179 -89 - -1

181 - 269 1 - 89

270 - 359 -90 - -1

 

Если во втором квадранте можно тупо для отрицательных углов добавить 180 град,

то в 3 и 4 квадрантах пока не представляю, как получить действительный угол.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...