В этом примере показано, как использовать задачу Извлечь динамический редактор спектральных функций для анализа данных из текущего сигнала, полученного при приведении в движение зубчатой передачи сервопривода хобби-класса. Пример также показывает, как извлечь спектральные характеристики из данных, чтобы помочь в обнаружении и идентификации неисправностей.
Задачи Live Editor позволяют интерактивно выполнять итерацию параметров и настроек, наблюдая за их влиянием на результат вычислений. Задачи автоматически генерируют код MATLAB ®, который позволяет получить отображаемые результаты. Дополнительные сведения о задачах Live Editor в целом см. в разделе Добавление интерактивных задач в сценарий Live.
В частности, в этом примере используется задача «Извлечь спектральные элементы в интерактивном режиме» (Extract Spectral Features Live Editor). Эта задача помогает анализировать и понимать спектральные данные. С помощью комплексного интерфейса можно добавлять компоненты для представления различных подшипников, зубчатых сетей или других частей настройки оборудования. При установке физических параметров этих компонентов задача Извлечь динамический редактор спектральных элементов отображает полосы частот отказов на характерных частотах компонентов.
Можно наложить данные спектра мощности на график полосы отказов, чтобы связать различные пики в данных с характеристическими частотами компонентов. Это сравнение упрощает обнаружение и локализацию отказов, так как можно легко отслеживать изменения в данных спектра мощности до физических компонентов, вызывающих их.
В дополнение к графику характеристических частот и данных спектра мощности задача может генерировать спектральные метрики данных в пределах каждой характеристической полосы частот. Таблица выходных метрик, содержащая пиковую амплитуду, пиковую частоту и мощность полосы для каждого диапазона, помогает охарактеризовать потенциальные механические неисправности.

Для этого примера собирали данные электрического тока из стандартного сервопривода для хобби Futaba S3003, который был модифицирован для непрерывного вращения. Сервоприводы преобразуют высокую скорость внутреннего двигателя постоянного тока в высокий крутящий момент на выходном шлице. Для этого сервоприводы состоят из двигателя постоянного тока, набора нейлоновых или металлических приводных шестерен и схемы управления. Цепь управления была удалена, чтобы обеспечить непосредственный контроль сигнала тока на электродвигателе постоянного тока. Сигнал тахометра на выходном шлице сервопривода собирали с помощью инфракрасного фотоинтерруптора вместе с шестнадцатисотельным колесом диаметром 35 мм. Шестнадцать прорезей в колесе были равномерно разнесены, и ИК-фотоинтерруптор был размещен таким образом, что он излучал ровно шестнадцать импульсов на вращение щелевого колеса. Серво- и фотоинтерруптор удерживались на месте с помощью специальных 3-D печатных креплений.

Двигатель постоянного тока приводился в движение при постоянных 5 вольтах, а при четырёх парах шестерен, обеспечивающих снижение скорости 278:1, скорость вала на шлице составляла около 19,5 об/мин. Второй серводвигатель был закорочен и использовался в качестве нагрузки для системы. Потребление тока рассчитывали, используя закон Ома, измеряя падение напряжения на резисторе 0,5 Ом. Поскольку изменение значений измерения тока было слишком малым для обнаружения, сигнал тока усиливался с помощью AD22050 усилителя интерфейса с одним источником питания. Усиленный токовый сигнал затем фильтровали с использованием MAX7408 сглаживающего эллиптического фильтра пятого порядка нижних частот для его сглаживания и устранения шума перед отправкой на Arduino Uno через аналого-цифровой преобразователь (АЦП).

Как показано на блок-схеме, сигнал тока сначала усиливали и фильтровали с использованием усилителя и сглаживающего фильтра нижних частот соответственно. Arduino Uno произвел выборку текущего сигнала через АЦП с частотой 1,5 кГц и направил его в компьютер вместе с импульсами тахометра в виде последовательных данных со скоростью 115 200 бит/с. Сценарий MATLAB извлекал последовательные данные из Arduino Uno, предварительно обрабатывал их и записывал в MAT-файл. Затем для извлечения спектральных метрик была использована задача Извлечь динамический редактор спектральных характеристик.

Сервопривод Futaba S3003 состоит из четырёх пар нейлоновых передач, как показано на этом рисунке. Шестерня, P1 на валу двигателя постоянного тока, входит в зацепление со ступенчатой шестерней G1. Шестерня P2 является формованной частью ступенчатой шестерни G1 и входит в зацепление со ступенчатой шестерней G2. Шестерня P3, являющаяся формованной частью шестерни G2, входит в зацепление со ступенчатой шестерней G3. Шестерня P4, отформованная из G3, входит в зацепление с конечной шестерней G4, которая прикреплена к выходному шлицу. Ступенчатые зубчатые передачи G1 и P2, G2 и P3, а также G3 и P4 являются свободными вращающимися шестернями то есть не прикреплены к своим соответствующим валам. Набор приводных шестерен обеспечивает уменьшение 278:1, переходя от частоты вращения двигателя 5414,7 об/мин до примерно 19,5 об/мин на выходном шлице, когда двигатель приводится в действие при 5 вольтах. В следующей таблице представлены количество зубьев и теоретические значения выходной скорости, частот зубчатой сетки и совокупного редуктора на каждой зубчатой решетке.

Файл servoData.mat содержит два расписания, соответствующие данным сервопривода. Одно расписание содержит полезные данные, а второе расписание содержит ошибочные данные. Каждый набор данных содержит около 11 секунд данных, отобранных при 1500 Гц.
Загрузите данные.
load('servoData.mat', 'healthyData', 'faultyData') healthyData
healthyData=16384×2 timetable
Time MotorCurrent TachoPulse
______________ ____________ __________
0 sec 307.62 1
0.00066667 sec 301.27 1
0.0013333 sec 309.08 1
0.002 sec 315.92 1
0.0026667 sec 304.2 1
0.0033333 sec 311.04 1
0.004 sec 311.52 1
0.0046667 sec 305.18 1
0.0053333 sec 315.43 0
0.006 sec 310.06 0
0.0066667 sec 305.66 0
0.0073333 sec 310.55 0
0.008 sec 304.69 0
0.0086667 sec 310.55 0
0.0093333 sec 310.06 0
0.01 sec 299.8 0
⋮
faultyData
faultyData=16384×2 timetable
Time MotorCurrent TachoPulse
______________ ____________ __________
0 sec 313.48 0
0.00066667 sec 304.2 0
0.0013333 sec 303.22 0
0.002 sec 319.34 0
0.0026667 sec 304.2 0
0.0033333 sec 303.22 0
0.004 sec 319.82 0
0.0046667 sec 303.22 0
0.0053333 sec 306.64 0
0.006 sec 321.29 0
0.0066667 sec 303.71 0
0.0073333 sec 308.11 0
0.008 sec 319.34 0
0.0086667 sec 301.76 0
0.0093333 sec 309.08 0
0.01 sec 319.34 0
⋮
Каждое расписание содержит одну колонку с током двигателя и одну колонку с тахо-импульсом от сервоустановки. Чтобы визуализировать данные в динамическом редакторе извлечения спектральных элементов, вычислите спектр мощности данных тока двигателя. Сначала рассмотрим здоровые данные.
[healthyMagnitudes, healthyFrequencies] = pspectrum(healthyData.MotorCurrent, healthyData.Time);
Для печати данных спектра мощности используется задача Извлечь динамический редактор спектральных элементов (Extract Spectral Features Live Editor). В задаче укажите healthyFrequencies для частотного вектора и healthyMagnitudes для амплитуды спектра мощности.

График спектра мощности текущих данных сервопривода содержит несколько заметных пиков. Эти пики можно связать с вращающимися валами в настройке сервопривода. Чтобы определить источник различных пиков, добавьте компоненты в задачу Извлечь спектральные элементы в интерактивном редакторе (Extract Spectral Features Live Editor).
Чтобы добавить компонент для представления первого вращающегося вала в сервоприводе, введите имя компонента, выберите его тип как Пользовательский (Custom) и нажмите кнопку Добавить (Add). Используйте выходные скорости в таблице выше для выбора частоты компонента вала. Выходные скорости рассчитывали на основе измеренной скорости выходного вала и известных редукторов в установке.
Частота первого вала - 90,24 Гц. После установки значения частоты компонента вала следует отметить, что полоса частот отказа перекрывается с одним из пиков данных спектра мощности на частоте около 90 Гц. Поэтому этот пик можно в значительной степени связать с первым валом. Добавление еще нескольких гармоник основной частоты первого вала создает больше диапазонов частот отказов, которые перекрывают другие пики в данных. Гармонические полосы частот центрированы вокруг целых кратных основной частоте и все еще могут быть связаны с одной и той же составляющей. Установите гармоники первого вала вектором [1 2 3 4 5 6] так, чтобы полосы отказов распространялись по большей части частотного диапазона. Первый вал вращается на самой высокой частоте, поэтому пики спектра мощности на более высоких частотах обусловлены гармоникой этого вала.

Чтобы учесть меньшие пики спектра мощности, например, около 13 Гц или 29 Гц, добавьте компонент для второго вращающегося вала. Этот компонент также является пользовательским компонентом, а его основная частота составляет 14,56 Гц. Не нужно добавлять столько гармоник для второго вала, так как большая часть высших пиковых частот в значительной степени приходится на гармоники первого вала. Задайте вектор гармоник второго вала [1 2 3 4]. Первая, вторая и четвертая гармоники этой частоты вала хорошо совмещаются с пиками на графике спектра мощности. Однако, поскольку третья гармоника менее заметна в данных, нет необходимости включать эту гармонику. Измените гармоники второго вала на вектор [1 2 4].

Аналогично второму валу добавьте компонент для третьего вращающегося вала. Основная частота этого компонента составляет 2,91 Гц, как показано в таблице. Начните с первых четырех гармоник, чтобы определить, совпадают ли они с какими-либо выдающимися пиками в данных. Следует отметить, что третья гармоника третьего вала соответствует пику спектра мощности около 8 Гц. Другие гармоники менее заметны и могут быть удалены. Возможно, частотное разрешение спектра мощности не позволяет различать более низкие частоты. Установите гармоники компонента третьего вала как только третью гармонику.

Поскольку выходные скорости остальных валов также являются низкими частотами, которые могут не отличаться от частотного разрешения спектра мощности, добавление компонентов для этих валов не является необходимым для анализа основных пиков данных тока двигателя.
Увеличивая график в задаче, можно увидеть, что данные спектра мощности содержат боковые пики рядом с некоторыми из основных пиков. Например, меньшие боковые пики около 76 Гц и 104 Гц окружают пик при 90 Гц. Эти пики, вероятно, связаны с боковыми полосами первого компонента вала. Боковые полосы вызваны вторым связанным источником частоты, воздействующим на первичный источник гармонической частоты. При сервоустановке это наблюдение приводит к предположению, что боковые полосы для каждого вала вызваны следующим валом в зубчатой передаче.

Отредактируйте первые два компонента вала, включив в них первую боковую полосу. Для первого вала величина разделения боковых полос должна быть равна номинальной выходной частоте второго вала, 14,56 Гц.

Аналогично для второго вала величина разделения боковых полос должна быть равна номинальной частоте третьего вала, 2,91 Гц. Увеличение снова на графике показывает, что многие из новых боковых полос хорошо перекрываются с боковыми пиками в данных. Это легче видеть на низких частотах, таких как от 0 Гц до 120 Гц.

Задача Извлечь динамический редактор спектральных характеристик генерирует различные спектральные метрики данных спектра мощности в частотных диапазонах отказов. Для каждого диапазона частот отказов вычислите пиковую амплитуду, пиковую частоту и мощность диапазона вместе с суммарной мощностью диапазона для всех диапазонов частот отказов.
load('sampleData.mat')
spectralMetrics_healthyspectralMetrics_healthy=1×85 table
PeakAmplitude1 PeakFrequency1 BandPower1 PeakAmplitude2 PeakFrequency2 BandPower2 PeakAmplitude3 PeakFrequency3 BandPower3 PeakAmplitude4 PeakFrequency4 BandPower4 PeakAmplitude5 PeakFrequency5 BandPower5 PeakAmplitude6 PeakFrequency6 BandPower6 PeakAmplitude7 PeakFrequency7 BandPower7 PeakAmplitude8 PeakFrequency8 BandPower8 PeakAmplitude9 PeakFrequency9 BandPower9 PeakAmplitude10 PeakFrequency10 BandPower10 PeakAmplitude11 PeakFrequency11 BandPower11 PeakAmplitude12 PeakFrequency12 BandPower12 PeakAmplitude13 PeakFrequency13 BandPower13 PeakAmplitude14 PeakFrequency14 BandPower14 PeakAmplitude15 PeakFrequency15 BandPower15 PeakAmplitude16 PeakFrequency16 BandPower16 PeakAmplitude17 PeakFrequency17 BandPower17 PeakAmplitude18 PeakFrequency18 BandPower18 PeakAmplitude19 PeakFrequency19 BandPower19 PeakAmplitude20 PeakFrequency20 BandPower20 PeakAmplitude21 PeakFrequency21 BandPower21 PeakAmplitude22 PeakFrequency22 BandPower22 PeakAmplitude23 PeakFrequency23 BandPower23 PeakAmplitude24 PeakFrequency24 BandPower24 PeakAmplitude25 PeakFrequency25 BandPower25 PeakAmplitude26 PeakFrequency26 BandPower26 PeakAmplitude27 PeakFrequency27 BandPower27 PeakAmplitude28 PeakFrequency28 BandPower28 TotalBandPower
______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ ______________
0.018807 77.106 0.044029 0.66383 90.842 2.2909 0.0077442 104.58 0.026416 0.001917 168.13 0.0076742 0.038105 182.6 0.13883 0.0034982 192.86 0.013928 0.026813 258.24 0.11464 0.192 270.7 0.68323 0.033756 284.07 0.12347 0.0026502 347.62 0.0099213 0.0048213 360.81 0.020783 0.0022192 375.64 0.0086095 0.018201 435.53 0.074231 0.041176 449.08 0.12665 0.018558 467.22 0.069264 0.96719 526.01 3.7322 0.91169 539.19 3.1072 0.29472 558.24 1.0803 1.0341 11.905 0.75471 4.2117 14.286 3.0372 0.076119 17.399 0.078405 0.037845 26.557 0.038047 0.75325 29.121 0.63976 0.010537 32.234 0.010985 0.0058578 55.311 0.006089 0.014194 58.425 0.011771 0.0033205 61.355 0.0034375 0.51023 8.7912 0.27615 16.529
Эти метрики могут оказаться полезными при обнаружении сбоев в настройке сервопривода. Значительные изменения в данных спектра мощности часто указывают на то, что некоторые компоненты изменяются или отказывают. Если имеется сдвиг в одной из пиковых частот или если амплитуда пика значительно падает с течением времени, то это может быть признаком отказа.
Чтобы изучить этот сценарий, вычислите данные спектра мощности для неисправного набора данных.
[faultyMagnitudes, faultyFrequencies] = pspectrum(faultyData.MotorCurrent, faultyData.Time);
Постройте график спектра неисправных данных в задании и отрегулируйте основные частоты и значения разделения боковых полос компонентов вала на основе измеренной выходной скорости сервоустановки.
Fs = 1500; % 1500 Hz [outputSpeed, t] = tachorpm(faultyData.TachoPulse, Fs, 'PulsesPerRev', 16, 'FitType', 'linear'); meanOutputSpeed = mean(outputSpeed)/60 % convert from rpm to Hz
meanOutputSpeed = 0.3150
shaft4Speed = meanOutputSpeed * 41 / 16 % 16 pinion teeth, 41 gear teethshaft4Speed = 0.8072
shaft3Speed = shaft4Speed * 35 / 10 % 10 pinion teeth, 35 gear teethshaft3Speed = 2.8251
shaft2Speed = shaft3Speed * 50 / 10 % 10 pinion teeth, 50 gear teethshaft2Speed = 14.1254
shaft1Speed = shaft2Speed * 62 / 10 % 10 pinion teeth, 62 gear teethshaft1Speed = 87.5772
Для первого компонента вала используйте shaft1Speed в качестве основной частоты и shaft2Speed в качестве разделения боковой полосы. Для второго компонента вала используйте shaft2Speed в качестве основной частоты и shaft3Speed в качестве разделения боковой полосы. Для третьего компонента вала используйте shaft3Speed в качестве основной частоты.

Как видно из визуализации данных дефектного спектра мощности, несколько пиков уменьшились по величине. Например, пик, выровненный в здоровом наборе данных со второй гармоникой первого вала около 180 Гц, почти ничтожно мал в неисправном наборе данных. Поскольку ранее было определено, что этот пик, вероятно, связан с первым валом, это указывает на потенциальный отказ в первом валу. Дальнейшее изучение таблицы спектральных метрик может предоставить более подробную информацию о пиковых частотах, пиковых амплитудах и мощности полосы.
spectralMetrics_faulty
spectralMetrics_faulty=1×85 table
PeakAmplitude1 PeakFrequency1 BandPower1 PeakAmplitude2 PeakFrequency2 BandPower2 PeakAmplitude3 PeakFrequency3 BandPower3 PeakAmplitude4 PeakFrequency4 BandPower4 PeakAmplitude5 PeakFrequency5 BandPower5 PeakAmplitude6 PeakFrequency6 BandPower6 PeakAmplitude7 PeakFrequency7 BandPower7 PeakAmplitude8 PeakFrequency8 BandPower8 PeakAmplitude9 PeakFrequency9 BandPower9 PeakAmplitude10 PeakFrequency10 BandPower10 PeakAmplitude11 PeakFrequency11 BandPower11 PeakAmplitude12 PeakFrequency12 BandPower12 PeakAmplitude13 PeakFrequency13 BandPower13 PeakAmplitude14 PeakFrequency14 BandPower14 PeakAmplitude15 PeakFrequency15 BandPower15 PeakAmplitude16 PeakFrequency16 BandPower16 PeakAmplitude17 PeakFrequency17 BandPower17 PeakAmplitude18 PeakFrequency18 BandPower18 PeakAmplitude19 PeakFrequency19 BandPower19 PeakAmplitude20 PeakFrequency20 BandPower20 PeakAmplitude21 PeakFrequency21 BandPower21 PeakAmplitude22 PeakFrequency22 BandPower22 PeakAmplitude23 PeakFrequency23 BandPower23 PeakAmplitude24 PeakFrequency24 BandPower24 PeakAmplitude25 PeakFrequency25 BandPower25 PeakAmplitude26 PeakFrequency26 BandPower26 PeakAmplitude27 PeakFrequency27 BandPower27 PeakAmplitude28 PeakFrequency28 BandPower28 TotalBandPower
______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ ______________
0.0011035 75.641 0.0035389 0.032588 88.095 0.095866 0.00095266 101.47 0.0039494 0.00041734 158.97 0.0016878 0.0010561 174.73 0.0038409 0.0004178 190.11 0.0018162 0.0051797 249.27 0.017516 0.028642 261.54 0.1203 0.0051032 274.91 0.015495 0.0014915 336.08 0.0062556 0.0034171 350.37 0.015104 0.0014217 363.19 0.0049667 0.0022728 423.63 0.0092141 0.0058438 437.36 0.020561 0.0031571 450.37 0.010481 1.9389 511.36 6.3414 1.3398 523.81 5.1905 0.79257 539.38 2.9432 0.9969 11.538 0.82388 2.728 13.919 1.9338 0.030943 17.033 0.032899 0.019372 25.641 0.018553 0.27041 28.205 0.26875 0.0056339 31.136 0.0060698 0.0029558 54.029 0.0028722 0.024586 56.593 0.025098 0.0027373 58.974 0.0027412 0.74618 8.4249 0.40386 18.324
В качестве альтернативы обновлению спектральных данных в задаче Live Editor можно также использовать автоматически сгенерированный код MATLAB для определения спектральных метрик неисправных данных. Приведенный ниже код был автоматически сгенерирован, когда задача Live Editor использовалась для создания исправных спектральных метрик. Выполните код.
% Generate the fault bands and information for each component [FB_Shaft1, info_Shaft1] = faultBands(90.24, 1:6, 14.56, 0:1); [FB_Shaft2, info_Shaft2] = faultBands(14.56, [1 2 4], 2.91, 0:1); [FB_Shaft3, info_Shaft3] = faultBands(2.91, 3); % Combine the fault bands of each component FB_healthy = [FB_Shaft1; ... FB_Shaft2; ... FB_Shaft3]; % Combine the information regarding the fault bands of each component info_healthy.Centers = [info_Shaft1.Centers, ... info_Shaft2.Centers, ... info_Shaft3.Centers]; info_healthy.Labels = [info_Shaft1.Labels, ... info_Shaft2.Labels, ... info_Shaft3.Labels]; info_healthy.FaultGroups = [info_Shaft1.HarmonicGroups, ... info_Shaft2.HarmonicGroups, ... info_Shaft3.HarmonicGroups]; % Clear temporary outputs from the workspace clear FB_Shaft1 info_Shaft1; clear FB_Shaft2 info_Shaft2; clear FB_Shaft3 info_Shaft3; % Compute fault band metrics of the power spectrum healthyMagnitudes spectralMetrics_healthy = faultBandMetrics(healthyMagnitudes, healthyFrequencies, FB_healthy)
spectralMetrics_healthy=1×85 table
PeakAmplitude1 PeakFrequency1 BandPower1 PeakAmplitude2 PeakFrequency2 BandPower2 PeakAmplitude3 PeakFrequency3 BandPower3 PeakAmplitude4 PeakFrequency4 BandPower4 PeakAmplitude5 PeakFrequency5 BandPower5 PeakAmplitude6 PeakFrequency6 BandPower6 PeakAmplitude7 PeakFrequency7 BandPower7 PeakAmplitude8 PeakFrequency8 BandPower8 PeakAmplitude9 PeakFrequency9 BandPower9 PeakAmplitude10 PeakFrequency10 BandPower10 PeakAmplitude11 PeakFrequency11 BandPower11 PeakAmplitude12 PeakFrequency12 BandPower12 PeakAmplitude13 PeakFrequency13 BandPower13 PeakAmplitude14 PeakFrequency14 BandPower14 PeakAmplitude15 PeakFrequency15 BandPower15 PeakAmplitude16 PeakFrequency16 BandPower16 PeakAmplitude17 PeakFrequency17 BandPower17 PeakAmplitude18 PeakFrequency18 BandPower18 PeakAmplitude19 PeakFrequency19 BandPower19 PeakAmplitude20 PeakFrequency20 BandPower20 PeakAmplitude21 PeakFrequency21 BandPower21 PeakAmplitude22 PeakFrequency22 BandPower22 PeakAmplitude23 PeakFrequency23 BandPower23 PeakAmplitude24 PeakFrequency24 BandPower24 PeakAmplitude25 PeakFrequency25 BandPower25 PeakAmplitude26 PeakFrequency26 BandPower26 PeakAmplitude27 PeakFrequency27 BandPower27 PeakAmplitude28 PeakFrequency28 BandPower28 TotalBandPower
______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ ______________
0.018807 77.106 0.044029 0.66383 90.842 2.2909 0.0077442 104.58 0.026416 0.001917 168.13 0.0076742 0.038105 182.6 0.13883 0.0034982 192.86 0.013928 0.026813 258.24 0.11464 0.192 270.7 0.68323 0.033756 284.07 0.12347 0.0026502 347.62 0.0099213 0.0048213 360.81 0.020783 0.0022192 375.64 0.0086095 0.018201 435.53 0.074231 0.041176 449.08 0.12665 0.018558 467.22 0.069264 0.96719 526.01 3.7322 0.91169 539.19 3.1072 0.29472 558.24 1.0803 1.0341 11.905 0.75471 4.2117 14.286 3.0372 0.076119 17.399 0.078405 0.037845 26.557 0.038047 0.75325 29.121 0.63976 0.010537 32.234 0.010985 0.0058578 55.311 0.006089 0.014194 58.425 0.011771 0.0033205 61.355 0.0034375 0.51023 8.7912 0.27615 16.529
Этот код можно легко настроить для нового неисправного набора данных.
% Generate the fault bands and information for each component [FB_Shaft1, info_Shaft1] = faultBands(shaft1Speed, 1:6, shaft2Speed, 0:1); [FB_Shaft2, info_Shaft2] = faultBands(shaft2Speed, [1 2 4], shaft3Speed, 0:1); [FB_Shaft3, info_Shaft3] = faultBands(shaft3Speed, 3); % Combine the fault bands of each component FB_faulty = [FB_Shaft1; ... FB_Shaft2; ... FB_Shaft3]; % Combine the information regarding the fault bands of each component info_faulty.Centers = [info_Shaft1.Centers, ... info_Shaft2.Centers, ... info_Shaft3.Centers]; info_faulty.Labels = [info_Shaft1.Labels, ... info_Shaft2.Labels, ... info_Shaft3.Labels]; info_faulty.FaultGroups = [info_Shaft1.HarmonicGroups, ... info_Shaft2.HarmonicGroups, ... info_Shaft3.HarmonicGroups]; % Clear temporary outputs from the workspace clear FB_Shaft1 info_Shaft1; clear FB_Shaft2 info_Shaft2; clear FB_Shaft3 info_Shaft3; % Compute fault band metrics of the power spectrum healthyMagnitudes spectralMetrics_faulty = faultBandMetrics(faultyMagnitudes, faultyFrequencies, FB_faulty)
spectralMetrics_faulty=1×85 table
PeakAmplitude1 PeakFrequency1 BandPower1 PeakAmplitude2 PeakFrequency2 BandPower2 PeakAmplitude3 PeakFrequency3 BandPower3 PeakAmplitude4 PeakFrequency4 BandPower4 PeakAmplitude5 PeakFrequency5 BandPower5 PeakAmplitude6 PeakFrequency6 BandPower6 PeakAmplitude7 PeakFrequency7 BandPower7 PeakAmplitude8 PeakFrequency8 BandPower8 PeakAmplitude9 PeakFrequency9 BandPower9 PeakAmplitude10 PeakFrequency10 BandPower10 PeakAmplitude11 PeakFrequency11 BandPower11 PeakAmplitude12 PeakFrequency12 BandPower12 PeakAmplitude13 PeakFrequency13 BandPower13 PeakAmplitude14 PeakFrequency14 BandPower14 PeakAmplitude15 PeakFrequency15 BandPower15 PeakAmplitude16 PeakFrequency16 BandPower16 PeakAmplitude17 PeakFrequency17 BandPower17 PeakAmplitude18 PeakFrequency18 BandPower18 PeakAmplitude19 PeakFrequency19 BandPower19 PeakAmplitude20 PeakFrequency20 BandPower20 PeakAmplitude21 PeakFrequency21 BandPower21 PeakAmplitude22 PeakFrequency22 BandPower22 PeakAmplitude23 PeakFrequency23 BandPower23 PeakAmplitude24 PeakFrequency24 BandPower24 PeakAmplitude25 PeakFrequency25 BandPower25 PeakAmplitude26 PeakFrequency26 BandPower26 PeakAmplitude27 PeakFrequency27 BandPower27 PeakAmplitude28 PeakFrequency28 BandPower28 TotalBandPower
______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ ______________
0.0011035 75.641 0.0035389 0.032588 88.095 0.095866 0.00095266 101.47 0.0039494 0.00041734 158.97 0.0016878 0.0010561 174.73 0.0038409 0.0004178 190.11 0.0018162 0.0051797 249.27 0.017516 0.028642 261.54 0.1203 0.0051032 274.91 0.015495 0.0014915 336.08 0.0062556 0.0034171 350.37 0.015104 0.0014217 363.19 0.0049667 0.0022728 423.63 0.0092141 0.0058438 437.36 0.020561 0.0031571 450.37 0.010481 1.9389 511.36 6.3414 1.3398 523.81 5.1905 0.79257 539.38 2.9432 0.9969 11.538 0.82388 2.728 13.919 1.9338 0.030943 17.033 0.032899 0.019372 25.641 0.018553 0.27041 28.205 0.26875 0.0056339 31.136 0.0060698 0.0029558 54.029 0.0028722 0.024586 56.593 0.025098 0.0027373 58.974 0.0027412 0.74618 8.4249 0.40386 18.324
Объединение здоровых и неисправных таблиц спектральных метрик улучшает видимость изменений пиковых амплитуд и мощности полосы спектральных данных.
spectralMetrics_total = [spectralMetrics_healthy; spectralMetrics_faulty]
spectralMetrics_total=2×85 table
PeakAmplitude1 PeakFrequency1 BandPower1 PeakAmplitude2 PeakFrequency2 BandPower2 PeakAmplitude3 PeakFrequency3 BandPower3 PeakAmplitude4 PeakFrequency4 BandPower4 PeakAmplitude5 PeakFrequency5 BandPower5 PeakAmplitude6 PeakFrequency6 BandPower6 PeakAmplitude7 PeakFrequency7 BandPower7 PeakAmplitude8 PeakFrequency8 BandPower8 PeakAmplitude9 PeakFrequency9 BandPower9 PeakAmplitude10 PeakFrequency10 BandPower10 PeakAmplitude11 PeakFrequency11 BandPower11 PeakAmplitude12 PeakFrequency12 BandPower12 PeakAmplitude13 PeakFrequency13 BandPower13 PeakAmplitude14 PeakFrequency14 BandPower14 PeakAmplitude15 PeakFrequency15 BandPower15 PeakAmplitude16 PeakFrequency16 BandPower16 PeakAmplitude17 PeakFrequency17 BandPower17 PeakAmplitude18 PeakFrequency18 BandPower18 PeakAmplitude19 PeakFrequency19 BandPower19 PeakAmplitude20 PeakFrequency20 BandPower20 PeakAmplitude21 PeakFrequency21 BandPower21 PeakAmplitude22 PeakFrequency22 BandPower22 PeakAmplitude23 PeakFrequency23 BandPower23 PeakAmplitude24 PeakFrequency24 BandPower24 PeakAmplitude25 PeakFrequency25 BandPower25 PeakAmplitude26 PeakFrequency26 BandPower26 PeakAmplitude27 PeakFrequency27 BandPower27 PeakAmplitude28 PeakFrequency28 BandPower28 TotalBandPower
______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ ______________ ______________ __________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ _______________ _______________ ___________ ______________
0.018807 77.106 0.044029 0.66383 90.842 2.2909 0.0077442 104.58 0.026416 0.001917 168.13 0.0076742 0.038105 182.6 0.13883 0.0034982 192.86 0.013928 0.026813 258.24 0.11464 0.192 270.7 0.68323 0.033756 284.07 0.12347 0.0026502 347.62 0.0099213 0.0048213 360.81 0.020783 0.0022192 375.64 0.0086095 0.018201 435.53 0.074231 0.041176 449.08 0.12665 0.018558 467.22 0.069264 0.96719 526.01 3.7322 0.91169 539.19 3.1072 0.29472 558.24 1.0803 1.0341 11.905 0.75471 4.2117 14.286 3.0372 0.076119 17.399 0.078405 0.037845 26.557 0.038047 0.75325 29.121 0.63976 0.010537 32.234 0.010985 0.0058578 55.311 0.006089 0.014194 58.425 0.011771 0.0033205 61.355 0.0034375 0.51023 8.7912 0.27615 16.529
0.0011035 75.641 0.0035389 0.032588 88.095 0.095866 0.00095266 101.47 0.0039494 0.00041734 158.97 0.0016878 0.0010561 174.73 0.0038409 0.0004178 190.11 0.0018162 0.0051797 249.27 0.017516 0.028642 261.54 0.1203 0.0051032 274.91 0.015495 0.0014915 336.08 0.0062556 0.0034171 350.37 0.015104 0.0014217 363.19 0.0049667 0.0022728 423.63 0.0092141 0.0058438 437.36 0.020561 0.0031571 450.37 0.010481 1.9389 511.36 6.3414 1.3398 523.81 5.1905 0.79257 539.38 2.9432 0.9969 11.538 0.82388 2.728 13.919 1.9338 0.030943 17.033 0.032899 0.019372 25.641 0.018553 0.27041 28.205 0.26875 0.0056339 31.136 0.0060698 0.0029558 54.029 0.0028722 0.024586 56.593 0.025098 0.0027373 58.974 0.0027412 0.74618 8.4249 0.40386 18.324
Например, если посмотреть на PeakAmplitude2 в таблице, амплитуда пика спектра мощности падает с 0,6638 до 0,0326. Используя значение PeakFrequency2, вы знаете, что это падение происходит около 90 Гц. Постройте график двух спектров мощности на одних и тех же осях, чтобы визуализировать падение вне задачи Live Editor.
plot(healthyFrequencies, 10*log10(healthyMagnitudes), 'b-'); % plot in decibels hold on; plot(faultyFrequencies, 10*log10(faultyMagnitudes), 'r-'); % plot in decibels legend('Healthy','Faulty') xlabel('Frequency (Hz)') ylabel('Power Spectrum (dB)') title('Comparison of Power Spectrums') hold off;

Как показала таблица метрик, пик около 90 Гц значительно падает в амплитуде. Чтобы определить, какая частота компонента вызвала это, вернитесь в предыдущую задачу Извлечь динамический редактор спектральных элементов (Extract Spectral Feature Live Editor).
Полоса разломов около 90 Гц является первой гармоникой первого вращающегося вала. Таким образом, вы знаете, что что-то меняется в этом валу и может быть тенденция к провалу.
Совместное построение графиков полезного и неисправного спектров мощности может быть полезным способом выделения изменений пиковых амплитуд. В дополнение к пику около 90 Гц для первой гармоники первого вала можно видеть другие значительные уменьшения амплитуд пиков, например, для второй гармоники этого вала около 180 Гц. Этот пик по существу отсутствует в неисправном наборе данных.
Пиковые амплитуды из здоровых и неисправных данных также могут сравниваться с использованием гистограммы.
PeakFrequencies = spectralMetrics_total(:,2:3:end-1).Variables'; PeakAmplitudes = spectralMetrics_total(:,1:3:end-1).Variables'; bar(PeakFrequencies, PeakAmplitudes); legend('Healthy','Faulty') xlabel('Frequency (Hz)') ylabel('Peak Amplitude') title('Peak Amplitudes of Healthy and Faulty Power Spectrum Data')
Увеличьте изображение, чтобы увидеть изменение пиковой амплитуды в первой гармонике первого вращающегося вала.
xlim([87 93]) ylim([0 0.7])

Как показано в этом примере, задача «Извлечь функции спектра» может оказаться полезной для нескольких различных приложений. Задача Live Editor позволяет легко сопоставлять спектральные пики с известными частотами компонентов машины. Это помогает лучше понять данные и механические компоненты, вызывающие различные функции данных.
Другим приложением задачи «Извлечь функции спектра в интерактивном режиме» является создание метрик, характеризующих ваши спектральные данные в интересующих частотных диапазонах. Задача создает выходную таблицу, содержащую пиковую амплитуду, пиковую частоту и мощность полосы для каждого диапазона частот отказов, а также общую мощность полосы для всех диапазонов отказов. Однако эти метрики специфичны для данных спектра мощности, вводимых в задачу.
Чтобы расширить это использование, чтобы можно было отслеживать метрики во времени при сборе новых наборов данных, можно либо обновить данные спектра мощности в задаче, либо использовать автоматически сгенерированный код MATLAB для создания таблицы метрик. Копирование сгенерированного кода MATLAB является простым способом продолжения вычисления метрик полосы отказов для многих новых наборов данных.
Третье использование задачи сочетает в себе преимущества двух ранее рассмотренных применений. Поскольку задача связывает различные механические компоненты с пиками спектральных данных, можно быстро определить, какие компоненты вызывают значительные изменения спектральных данных и, следовательно, потенциальные отказы. Например, одним из общих индикаторов отказа машины, полученных из спектральных данных, является изменение амплитуды спектральных пиков. В таблице спектральных метрик, если вы заметили значительное падение амплитуды пика или мощности полосы с течением времени, вы можете проследить соответствующую пиковую частоту обратно на график, чтобы увидеть, какая полоса частот отказа компонента совпадает с этим пиком.
bearingFaultBands | Извлечение спектральных характеристик | faultBandMetrics | faultBands | gearMeshFaultBands