tachorpm

Извлечение сигнала частоты вращения из импульсов тахометра

Описание

rpm = tachorpm(x,fs) извлекает сигнал скорости вращения, rpm, от вектора импульсного сигнала тахометра, x, который был взят со скоростью fs Гц.

Если у вас нет импульсного сигнала тахометра, используйте rpmtrack для извлечения rpm от сигнала вибрации.

[rpm,t,tp] = tachorpm(x,fs) также возвращает временной вектор, tи обнаруженные местоположения импульсов, tp.

[___] = tachorpm(x,fs,Name,Value) задает опции используя Name,Value пар и любого из предыдущих синтаксисов.

пример

tachorpm(___) без выходных аргументов строит график сгенерированного сигнала RPM и сигнала тахометра с обнаруженными импульсами.

Примеры

свернуть все

Загрузите имитированный сигнал тахометра, дискретизированный с частотой дискретизации 300 Гц.

load tacho

Вычислите и визуализируйте сигнал RPM с помощью tachorpm со значениями по умолчанию.

tachorpm(Yn,fs)

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

tachorpm(Yn,fs,'FitPoints',600)

axis([0.47 0.65 1320 1570])

Выберите умеренное число точек, чтобы получить лучший результат.

tachorpm(Yn,fs,'FitPoints',100)

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

rng default
wgn = randn(size(Yn))/10;
Yn = Yn+wgn;

[rpm,t,tp] = tachorpm(Yn,fs,'FitPoints',100);

figure
plot(t,Yn,tp,mean(interp1(t,Yn,tp))*ones(size(tp)),'+')
hold on
sl = statelevels(Yn);
plot(t,sl(1)*ones(size(t)),t,sl(2)*ones(size(t)))
hold off
xlim([9 10])

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

sl = [0 0.75];

[rpm,t,tp] = tachorpm(Yn,fs,'FitPoints',100,'StateLevels',sl);

plot(t,Yn,tp,mean(interp1(t,Yn,tp))*ones(size(tp)),'+')
hold on
plot(t,sl(1)*ones(size(t)),t,sl(2)*ones(size(t)))
hold off
xlim([9 10])

Входные параметры

свернуть все

Импульсный сигнал Тахометра, заданный как строка или вектор-столбец.

Пример: double(chirp((-1.5:1/2e2:1.5),14,1.1,8,'quadratic')>0.98) напоминает сигнал тахометра, дискретизируемый в течение трех секунд при 200 Гц и полученный во время квадратичного испытания на опрокидывание/падение побережья.

Частота дискретизации, заданная как положительная скалярная величина, выраженная в Гц.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'PulsesPerRev',3,'OutputFs',1e3 указывает, что на оборот приходится три импульса тахометра и что возвращенный сигнал частоты вращения должен дискретизироваться на частоте 1 кГц.

Количество импульсов тахометра на оборот, заданное как разделенная разделенными запятой парами, состоящая из 'PulsesPerRev' и настоящий скаляр.

Уровни состояния, используемые для идентификации импульсов, заданные как разделенная разделенными запятой парами, состоящая из 'StateLevels' и двухэлементный вектор действительных чисел. Первый элемент вектора соответствует уровню низкого состояния, а второй элемент соответствует уровню высокого состояния. Выберите уровни состояния, чтобы все ребра импульсов пересекли 10% от них обоих. Если эта опция не задана, то tachorpm автоматически вычисляет уровни с помощью метода гистограммы, как в statelevels функция.

Выходная частота выборки, заданная как разделенная разделенными запятой парами, состоящая из 'OutputFs' и настоящий скаляр.

Метод аппроксимации, заданный как разделенная разделенными запятой парами, состоящая из 'FitType' и одно из обоих 'smooth' или 'linear'.

  • 'smooth' - Подбор сплайна B наименьших квадратов к импульсным значениям частоты вращения.

  • 'linear' - Линейная интерполяция между значениями частоты вращения импульса.

B-сплайновые точки останова, заданные как разделенная разделенными запятой парами, состоящая из 'FitPoints' и настоящий скаляр. Количество точек прерывания является компромиссом между плавностью кривой и близостью к базовым данным. Выбор слишком большого количества точек прерывания может привести к сверхподбору кривой. Этот аргумент игнорируется, если 'FitType' установлено в 'linear'.

Выходные аргументы

свернуть все

Скорости вращения, возвращенные как вектор, выраженный в оборотах в минуту. rpm имеет ту же длину, что и x.

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

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

Алгоритмы

tachorpm функция выполняет следующие шаги:

  1. Использование statelevels для определения низких и высоких состояний сигнала тахометра.

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

  3. Использование diff для определения временных интервалов между центрами импульсов и вычисления значений RPM в промежуточных точках интервала с помощью     t RPM = 60/

  4. Если 'FitType' задается как 'smooth'затем функция выполняет подбор кривой методом наименьших квадратов с помощью сплайнов. Если 'FitType' задается как 'linear', затем функция выполняет линейную интерполяцию с помощью interp1.

Ссылки

[1] Брандт, Андерс. Анализ шума и вибрации: анализ сигналов и экспериментальные процедуры. Chichester, UK: John Wiley & Sons, 2011.

[2] Vold, Hovard, and Jan Leuridan. High Resolution Order Tracking at Extreme Скорости Нарастания Using Kalman Tracking Filters (неопр.) (недоступная ссылка). Шок и вибрация. Том 2, 1995, стр. 507-515.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2016b