exponenta event banner

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(___) без выходных аргументов строит график сформированного сигнала оборотов и сигнала тахометра с обнаруженными импульсами.

Примеры

свернуть все

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

load tacho

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

tachorpm(Yn,fs)

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

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 в средних точках интервала с использованием RPM =   60/Δt.

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

Ссылки

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

[2] Вольд, Ховард и Ян Леуридан. «Отслеживание заказов с высоким разрешением с экстремальными скоростями с использованием фильтров отслеживания Калмана». Удар и вибрация. Том 2, 1995, стр. 507-515.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2016b