라이브 편집기 작업을 사용하여 기어 트레인 데이터를 분석하고 스펙트럼 특징 추출하기
이 예제에서는 스펙트럼 특징 추출 라이브 편집기 작업을 사용하여, 취미용 서보의 기어 트레인을 구동해서 얻은 전류 신호의 데이터를 분석하는 방법을 보여줍니다. 또한, 데이터에서 결함 검출 및 식별에 도움이 되는 스펙트럼 특징을 추출하는 방법도 보여줍니다.
라이브 편집기 작업을 사용하면 파라미터와 설정을 대화형 방식으로 반복 수정하면서 이것이 계산 결과에 미치는 영향을 관찰할 수 있습니다. 이러한 작업은 표시된 결과를 달성하는 MATLAB® 코드를 자동으로 생성합니다. 라이브 편집기 작업에 대한 자세한 내용은 라이브 스크립트에 대화형 방식 작업 추가하기 항목을 참조하십시오.
특히, 이 예제에서는 스펙트럼 특징 추출 라이브 편집기 작업을 사용합니다. 이 작업은 스펙트럼 데이터를 분석하고 이해하는 데 도움이 됩니다. 포괄적인 인터페이스를 사용하여 다양한 베어링, 기어 맞물림 또는 하드웨어 셋업의 기타 부분을 나타내는 컴포넌트를 추가할 수 있습니다. 이러한 컴포넌트의 물리적 파라미터를 설정하면 스펙트럼 특징 추출 라이브 편집기 작업은 결함 주파수 대역을 컴포넌트의 특성 주파수 위치에 플로팅합니다.
결함 대역 플롯에 파워 스펙트럼 데이터를 중첩하여 데이터의 다양한 피크와 컴포넌트의 특성 주파수의 연관성을 볼 수 있습니다. 이와 같은 비교 과정을 거치면 파워 스펙트럼 데이터에 변동을 주는 물리적 컴포넌트를 쉽게 추적할 수 있으므로 결함 검출과 결함 분리가 더 수월해질 수 있습니다.
특성 주파수와 파워 스펙트럼 데이터의 플롯 외에도, 이 작업은 각 특성 주파수 대역 내에서 데이터의 스펙트럼 메트릭을 생성할 수 있습니다. 각 대역의 피크 진폭, 피크 주파수, 대역 전력이 포함된 출력 메트릭 테이블은 잠재적인 기계 결함을 특성화하는 데 도움이 됩니다.
이 예제를 직접 실행하려면 스펙트럼 특징 추출 라이브 편집기 작업을 열고 예제에서 사용하는 설정을 똑같이 지정하십시오.
하드웨어 개요
이 예제에서, 전류 데이터는 연속 회전을 위해 개조된 표준 Futaba S3003 취미용 서보에서 수집되었습니다. 서보는 내부 DC 모터의 높은 속도를 출력 스플라인에서의 높은 토크로 변환합니다. 이를 위해 서보는 DC 모터, 나일론 또는 금속 구동 기어 세트, 그리고 제어 회로로 구성됩니다. DC 모터로 흐르는 전류 신호를 직접 모니터링하기 위해 이 제어 회로를 제거했습니다. 서보 출력 스플라인의 회전속도계 신호는 적외선 포토인터럽터와 16개 슬롯이 있는 35mm 직경의 휠을 사용하여 수집되었습니다. 휠에 있는 16개 슬롯의 간격은 균일하고, IR 포토인터럽터는 휠이 1번 회전할 때마다 정확히 16번의 펄스가 발생하도록 배치되었습니다. 서보와 포토인터럽터는 3차원 프린터로 직접 제작한 마운트로 고정되었습니다.
DC 모터는 5V 정전압으로 구동되었고, 4쌍의 기어는 속도를 278:1로 줄였고, 스플라인에서의 샤프트 속도는 약 19.5rpm이었습니다. 두 번째 서보모터는 단락되었으며 시스템에 대한 부하로 사용되었습니다. 전류 소비량은 0.5옴 저항기에서의 전압 하강을 측정하여 옴의 법칙으로 계산되었습니다. 전류 측정값의 변화가 너무 작아서 검출하기 어려웠기 때문에 AD22050 단일 전원 센서 인터페이스 증폭기를 사용하여 전류 신호를 증폭했습니다. 그런 다음 증폭된 전류 신호를 MAX7408 안티에일리어싱 5차 타원 저역통과 필터로 필터링하여 평활화하고 잡음을 제거한 다음 아날로그-디지털 변환기(ADC)를 통해 Arduino® Uno로 전송했습니다.
순서도에서 볼 수 있듯이, 전류 신호는 먼저 증폭기를 사용하여 증폭된 후에 안티에일리어싱 저역통과 필터를 사용하여 필터링되었습니다. Arduino Uno는 ADC를 통해 1.5kHz로 전류 신호를 샘플링한 다음 115,200bps의 보드 레이트로 회전속도계 펄스와 함께 직렬 데이터로 컴퓨터에 스트리밍했습니다. MATLAB 스크립트가 Arduino Uno에서 직렬 데이터를 가져와서 전처리한 다음, 이 데이터를 .MAT 파일에 썼습니다. 그런 다음 스펙트럼 특징 추출 라이브 편집기 작업을 사용하여 스펙트럼 메트릭을 추출했습니다.
서보 기어 트레인
Futaba S3003 서보는 이 그림에 나와 있듯이 4쌍의 나일론 기어로 구성되어 있습니다. DC 모터 샤프트의 피니언 P1은 단기어(stepped gear) G1과 맞물립니다. 피니언 P2는 단기어 G1의 성형된 부분으로, 단기어 G2와 맞물립니다. 기어 G2의 성형된 부분인 피니언 P3은 단기어 G3과 맞물립니다. G3의 성형된 부분인 피니언 P4는 출력 스플라인에 연결된 마지막 기어 G4와 맞물립니다. 단기어 세트 G1과 P2, G2와 P3, G3과 P4는 자유 회전 기어 즉, 각각의 샤프트에 연결되지 않은 기어입니다. 구동 기어 세트는 모터를 5V로 구동했을 때 모터 속도 5414.7rpm이 출력 스플라인에서 약 19.5rpm으로 떨어지는 278:1만큼의 속도 감소를 제공합니다. 다음 표에는 톱니 개수와 출력 속도, 기어 맞물림 주파수, 각 기어 맞물림에서의 누적 기어 감속에 대한 이론적인 값이 나와 있습니다.
데이터 전처리하기
파일 servoData.mat
에는 서보의 데이터에 해당하는 두 개의 타임테이블이 포함되어 있습니다. 한 타임테이블은 정상 데이터를 포함하고, 두 번째 타임테이블은 결함 데이터를 포함합니다. 각 데이터 세트는 1500Hz로 샘플링된 약 11초 분량의 데이터를 포함합니다.
데이터를 불러옵니다.
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
⋮
각 타임테이블에는 서보 셋업에서 발생한 모터 전류가 포함된 열 하나와 회전속도계 펄스가 포함된 열 하나가 있습니다. 스펙트럼 특징 추출 라이브 편집기 작업에서 데이터를 시각화하기 위해 모터 전류 데이터의 파워 스펙트럼을 계산합니다. 정상 데이터를 먼저 고려합니다.
fs = 1500; [healthyMagnitudes, healthyFrequencies] = pspectrum(healthyData.MotorCurrent, healthyData.Time);
스펙트럼 특징 추출 라이브 편집기 작업을 사용하여 파워 스펙트럼 데이터를 플로팅합니다. 이 작업에서 주파수 벡터에 대한 healthyFrequencies
와 파워 스펙트럼 크기에 대한 healthyMagnitudes
를 지정합니다.
고조파 결함 주파수 대역으로 파워 스펙트럼 피크 분석하기
서보의 전류 데이터에 대한 파워 스펙트럼 플롯에는 여러 개의 뚜렷한 피크가 있습니다. 이러한 피크는 서보 셋업의 회전 샤프트와 관련이 있다고 볼 수 있습니다. 각각의 피크의 원인을 찾으려면 스펙트럼 특징 추출 라이브 편집기 작업에 컴포넌트를 추가하십시오.
서보의 첫 번째 회전 샤프트를 나타내는 컴포넌트를 추가하려면, 컴포넌트의 이름을 입력하고 해당 유형을 사용자 지정으로 선택한 다음 추가를 누르십시오. 위 테이블에 나와 있는 출력 속도를 사용하여 샤프트 컴포넌트의 주파수를 선택합니다. 출력 속도는 측정된 출력 샤프트 속도와 셋업의 기어 감속을 바탕으로 계산되었습니다.
첫 번째 샤프트의 주파수는 90.24Hz입니다. 샤프트 컴포넌트의 주파수 값을 설정한 후에, 결함 주파수 대역이 90Hz 부근에서 파워 스펙트럼 데이터의 피크 중 하나와 중첩되는 것을 볼 수 있습니다. 따라서 이 피크는 첫 번째 샤프트와 주로 연관되어 있다고 볼 수 있습니다. 첫 번째 샤프트의 기본주파수의 몇몇 고조파를 더 추가하면 데이터의 다른 피크와 중첩되는 결함 주파수 대역이 더 생성됩니다. 기본주파수의 정수 배수가 고조파 주파수 대역의 중심이 되고, 이 대역은 여전히 동일한 컴포넌트와 연관되어 있습니다. 결함 대역이 주파수 범위 대부분에 걸치도록 첫 번째 샤프트의 고조파를 벡터 [1 2 3 4 5 6]이 되도록 설정하십시오. 첫 번째 샤프트가 가장 높은 주파수에서 회전하므로, 고주파수에서의 파워 스펙트럼 피크는 이 샤프트의 고조파로 인한 것입니다.
상대적으로 작은 파워 스펙트럼 피크(예: 13Hz 또는 29Hz 부근의 피크)를 설명하기 위해 두 번째 회전 샤프트에 대한 컴포넌트를 추가하십시오. 이 컴포넌트도 사용자 지정 컴포넌트이며, 기본주파수는 14.56Hz입니다. 높은 피크 주파수의 대부분이 첫 번째 샤프트의 고조파로 인해 생겨난 것이므로, 두 번째 샤프트에 대해 그만큼 많은 고조파를 추가할 필요는 없습니다. 두 번째 샤프트의 고조파를 벡터 [1 2 3 4]가 되도록 설정하십시오. 이 샤프트 주파수의 1차, 2차, 4차 고조파는 파워 스펙트럼 플롯의 피크과 잘 겹치는 것을 볼 수 있습니다. 하지만 3차 고조파는 데이터에서 그다지 두드러지지 않으므로, 이 고조파를 넣을 필요는 없습니다. 두 번째 샤프트의 고조파를 벡터 [1 2 4]가 되도록 변경하십시오.
두 번째 샤프트와 유사하게 세 번째 회전 샤프트에 대한 컴포넌트를 추가하십시오. 표에 나와 있는 것처럼, 이 컴포넌트의 기본주파수는 2.91Hz입니다. 처음 4개 고조파부터 이들이 데이터에서 가장 두드러지는 피크와 겹치는지 확인합니다. 세 번째 샤프트의 3차 고조파가 8Hz 부근의 파워 스펙트럼 스파이크와 겹칩니다. 다른 고조파는 그다지 두드러지지 않으므로 제거할 수 있습니다. 이는 파워 스펙트럼의 주파수 분해능으로는 낮은 주파수를 구별하지 못하기 때문일 수 있습니다. 세 번째 샤프트 컴포넌트의 고조파는 3차 고조파로만 설정하십시오.
나머지 샤프트의 출력 속도도 파워 스펙트럼의 주파수 분해능으로는 구별하지 못할 정도의 낮은 주파수이므로, 모터 전류 데이터의 주요 피크를 분석하기 위해 이러한 샤프트에 대해 컴포넌트를 추가할 필요가 없습니다.
측파대 피크 분석하기
작업에서 플롯을 확대하면 파워 스펙트럼 데이터에서 일부 주요 피크 옆에 측파대 피크가 있는 것을 볼 수 있습니다. 예를 들어 90Hz의 피크 근방인 76Hz 및 104Hz 부근에서 작은 측파대 피크가 발생했습니다. 이러한 피크는 첫 번째 샤프트 컴포넌트의 측파대와 관련이 있을 가능성이 높습니다. 측파대는 주요 고조파 주파수 소스에 영향을 주는 두 번째 주파수 소스에 의해 발생합니다. 서보를 설정한 상태에서 이러한 관측이 발견되면 기어 트레인에서 각 샤프트에 대한 측파대가 그다음 샤프트로 인해 발생하는 것으로 가정할 수 있습니다.
첫 번째 측파대를 포함하도록 처음 두 개 샤프트 컴포넌트를 편집합니다. 첫 번째 샤프트에서 측파대 분리 값은 두 번째 샤프트의 공칭 출력 주파수 14.56Hz와 같아야 합니다.
두 번째 샤프트에서도 마찬가지로 측파대 분리 값은 세 번째 샤프트의 공칭 주파수 2.91Hz와 같아야 합니다. 플롯을 다시 확대하면 데이터에서 새 측파대의 상당수가 측파대 피크에 잘 중첩된 것을 볼 수 있습니다. 이는 저주파수(예: 0Hz~120Hz 사이의 주파수)에서 더 쉽게 볼 수 있습니다.
결함 검출을 위해 스펙트럼 메트릭 추출하기
스펙트럼 특징 추출 라이브 편집기 작업에서는 결함 주파수 범위 내에서 파워 스펙트럼 데이터의 다양한 스펙트럼 메트릭을 생성합니다. 각 결함 주파수 대역에 대해 모든 결함 주파수 대역의 총 대역 전력과 함께 피크 진폭, 피크 주파수 및 대역 전력을 계산하십시오.
load('dataSample1.mat')
spectralMetrics_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.044031 0.66362 90.842 2.2909 0.0077426 104.58 0.026419 0.0019168 168.13 0.0076763 0.038096 182.6 0.13879 0.0034959 192.86 0.013926 0.026784 258.24 0.11461 0.19204 270.7 0.68298 0.033746 284.07 0.12342 0.0026495 347.62 0.0099187 0.0048234 360.81 0.020787 0.0022197 375.64 0.0086089 0.018193 435.53 0.074193 0.041176 449.08 0.12665 0.018563 467.22 0.069274 0.96653 526.01 3.7305 0.91167 539.19 3.1072 0.29483 558.24 1.0806 1.0344 11.905 0.75499 4.2123 14.286 3.0377 0.076126 17.399 0.078413 0.037838 26.557 0.038039 0.75323 29.121 0.63973 0.010537 32.234 0.010979 0.0058568 55.311 0.006088 0.01419 58.425 0.011768 0.0033215 61.355 0.0034384 0.51018 8.7912 0.27612 16.528
이러한 메트릭은 서보 셋업의 결함을 검출할 때 유용할 수 있습니다. 파워 스펙트럼 데이터에 큰 변화가 보이면 일부 컴포넌트가 바뀌었거나 고장이 발생했다는 의미인 경우가 많습니다. 피크 주파수 중 하나에 변위가 발생하거나 시간이 지남에 따라 피크 진폭이 상당히 떨어지는 경우에는 고장을 의미할 수 있습니다.
이 시나리오를 살펴보기 위해 결함 데이터 세트에 대한 파워 스펙트럼 데이터를 계산합니다.
[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 teeth
shaft4Speed = 0.8072
shaft3Speed = shaft4Speed * 35 / 10 % 10 pinion teeth, 35 gear teeth
shaft3Speed = 2.8251
shaft2Speed = shaft3Speed * 50 / 10 % 10 pinion teeth, 50 gear teeth
shaft2Speed = 14.1254
shaft1Speed = shaft2Speed * 62 / 10 % 10 pinion teeth, 62 gear teeth
shaft1Speed = 87.5772
첫 번째 샤프트 컴포넌트에는 shaft1Speed
를 기본주파수로, shaft2Speed
를 측파대 분리 값으로 사용합니다. 두 번째 샤프트 컴포넌트에는 shaft2Speed
를 기본주파수로, shaft3Speed
를 측파대 분리 값으로 사용합니다. 세 번째 샤프트 컴포넌트에는 shaft3Speed
를 기본주파수로 사용합니다.
결함 파워 스펙트럼 데이터에 대한 시각화에서 볼 수 있듯이, 몇몇 피크 크기가 줄었습니다. 예를 들어 정상 데이터셋에서는 180Hz 부근에서 첫 번째 샤프트의 2차 고조파와 일치하던 피크가 결함 데이터셋에서는 거의 무시 가능한 수준이 되었습니다. 이 피크가 첫 번째 샤프트와 연관되었을 가능성이 높음을 앞에서 확인했으므로 이는 첫 번째 샤프트에 잠재적 고장이 있음을 나타냅니다. 스펙트럼 메트릭 테이블을 더 자세히 살펴보면 피크 주파수, 피크 진폭 및 대역 전력에 대한 더 상세한 정보를 얻을 수 있습니다.
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.0011027 75.641 0.003537 0.032586 88.095 0.095873 0.00095284 101.47 0.00395 0.00041757 158.97 0.0016883 0.0010558 174.73 0.0038404 0.00041803 190.11 0.0018164 0.0051769 249.27 0.017515 0.02861 261.54 0.12024 0.0050995 274.91 0.015488 0.0014899 336.08 0.0062536 0.0034166 350.37 0.0151 0.0014213 363.19 0.0049667 0.0022729 423.63 0.0092143 0.0058396 437.36 0.020548 0.0031547 450.37 0.010476 1.9385 511.36 6.3395 1.3398 523.81 5.1888 0.79239 539.38 2.9425 0.99793 11.538 0.82466 2.7276 13.919 1.9334 0.03098 17.033 0.03294 0.019366 25.641 0.018542 0.27042 28.205 0.26876 0.0056307 31.136 0.0060665 0.0029552 54.029 0.0028713 0.024583 56.593 0.025096 0.002738 58.974 0.0027415 0.74611 8.4249 0.40382 18.32
라이브 편집기 작업에서 스펙트럼 데이터를 업데이트하는 대신, 자동으로 생성되는 MATLAB 코드를 사용하여 결함 데이터의 스펙트럼 메트릭을 확인할 수도 있습니다. 아래 코드는 정상 스펙트럼 메트릭을 생성하기 위해 라이브 편집기 작업을 사용할 때 자동으로 생성된 것입니다. 코드를 실행합니다.
% 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.044031 0.66362 90.842 2.2909 0.0077426 104.58 0.026419 0.0019168 168.13 0.0076763 0.038096 182.6 0.13879 0.0034959 192.86 0.013926 0.026784 258.24 0.11461 0.19204 270.7 0.68298 0.033746 284.07 0.12342 0.0026495 347.62 0.0099187 0.0048234 360.81 0.020787 0.0022197 375.64 0.0086089 0.018193 435.53 0.074193 0.041176 449.08 0.12665 0.018563 467.22 0.069274 0.96653 526.01 3.7305 0.91167 539.19 3.1072 0.29483 558.24 1.0806 1.0344 11.905 0.75499 4.2123 14.286 3.0377 0.076126 17.399 0.078413 0.037838 26.557 0.038039 0.75323 29.121 0.63973 0.010537 32.234 0.010979 0.0058568 55.311 0.006088 0.01419 58.425 0.011768 0.0033215 61.355 0.0034384 0.51018 8.7912 0.27612 16.528
이 코드는 새 결함 데이터셋에 대해 쉽게 조정할 수 있습니다.
% 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.0011027 75.641 0.003537 0.032586 88.095 0.095873 0.00095284 101.47 0.00395 0.00041757 158.97 0.0016883 0.0010558 174.73 0.0038404 0.00041803 190.11 0.0018164 0.0051769 249.27 0.017515 0.02861 261.54 0.12024 0.0050995 274.91 0.015488 0.0014899 336.08 0.0062536 0.0034166 350.37 0.0151 0.0014213 363.19 0.0049667 0.0022729 423.63 0.0092143 0.0058396 437.36 0.020548 0.0031547 450.37 0.010476 1.9385 511.36 6.3395 1.3398 523.81 5.1888 0.79239 539.38 2.9425 0.99793 11.538 0.82466 2.7276 13.919 1.9334 0.03098 17.033 0.03294 0.019366 25.641 0.018542 0.27042 28.205 0.26876 0.0056307 31.136 0.0060665 0.0029552 54.029 0.0028713 0.024583 56.593 0.025096 0.002738 58.974 0.0027415 0.74611 8.4249 0.40382 18.32
정상 스펙트럼 메트릭 테이블과 결함 스펙트럼 메트릭 테이블을 결합하면 스펙트럼 데이터에서 피크 진폭과 대역 전력의 변화를 더 쉽게 알아볼 수 있습니다.
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.044031 0.66362 90.842 2.2909 0.0077426 104.58 0.026419 0.0019168 168.13 0.0076763 0.038096 182.6 0.13879 0.0034959 192.86 0.013926 0.026784 258.24 0.11461 0.19204 270.7 0.68298 0.033746 284.07 0.12342 0.0026495 347.62 0.0099187 0.0048234 360.81 0.020787 0.0022197 375.64 0.0086089 0.018193 435.53 0.074193 0.041176 449.08 0.12665 0.018563 467.22 0.069274 0.96653 526.01 3.7305 0.91167 539.19 3.1072 0.29483 558.24 1.0806 1.0344 11.905 0.75499 4.2123 14.286 3.0377 0.076126 17.399 0.078413 0.037838 26.557 0.038039 0.75323 29.121 0.63973 0.010537 32.234 0.010979 0.0058568 55.311 0.006088 0.01419 58.425 0.011768 0.0033215 61.355 0.0034384 0.51018 8.7912 0.27612 16.528
0.0011027 75.641 0.003537 0.032586 88.095 0.095873 0.00095284 101.47 0.00395 0.00041757 158.97 0.0016883 0.0010558 174.73 0.0038404 0.00041803 190.11 0.0018164 0.0051769 249.27 0.017515 0.02861 261.54 0.12024 0.0050995 274.91 0.015488 0.0014899 336.08 0.0062536 0.0034166 350.37 0.0151 0.0014213 363.19 0.0049667 0.0022729 423.63 0.0092143 0.0058396 437.36 0.020548 0.0031547 450.37 0.010476 1.9385 511.36 6.3395 1.3398 523.81 5.1888 0.79239 539.38 2.9425 0.99793 11.538 0.82466 2.7276 13.919 1.9334 0.03098 17.033 0.03294 0.019366 25.641 0.018542 0.27042 28.205 0.26876 0.0056307 31.136 0.0060665 0.0029552 54.029 0.0028713 0.024583 56.593 0.025096 0.002738 58.974 0.0027415 0.74611 8.4249 0.40382 18.32
예를 들어 테이블에서 PeakAmplitude2
를 보면 파워 스펙트럼 피크의 진폭이 2.0259에서 0.0829로 떨어졌습니다. PeakFrequency2
값을 사용하여 이 저하가 90Hz 부근에서 발생했음을 알 수 있습니다. 라이브 편집기 작업 외에서 시각화를 하도록 동일한 좌표축에 두 파워 스펙트럼을 플로팅합니다.
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;
메트릭 테이블에 나타난 것처럼, 90Hz 부근에서 피크 진폭이 상당히 떨어집니다. 이를 야기하는 컴포넌트 주파수를 확인하게 위해 이전 스펙트럼 특징 추출 라이브 편집기 작업에서 다시 확인합니다.
90Hz 부근의 결함 대역은 첫 번째 회전 샤프트의 1차 고조파입니다. 따라서 이 샤프트에 어떠한 변화가 생기고 있고 고장이 날 가능성이 커지고 있음을 알 수 있습니다.
정상 파워 스펙트럼과 결함 파워 스펙트럼을 함께 플로팅하면 피크 진폭의 변화를 강조하는 데 유용할 수 있습니다. 첫 번째 샤프트의 1차 고조파에 대해 90Hz 부근에서 피크 저하가 발생하는 것 외에도 피크 진폭이 크게 떨어지는 것을 볼 수 있습니다. 예를 들어, 첫 번째 샤프트의 2차 고조파에 대해 180Hz 부근에서 피크 진폭이 크게 떨어지는 것을 볼 수 있습니다. 결함 데이터셋을 보면 이 피크는 사실상 나타나지 않습니다.
정상 데이터와 결함 데이터의 피크 진폭은 막대 차트를 사용하여 비교할 수도 있습니다.
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')
첫 번째 회전 샤프트의 1차 고조파에서 피크 진폭의 변화를 보기 위해 확대합니다.
xlim([87 93]) ylim([0 0.7])
스펙트럼 특징 추출 라이브 편집기 작업의 용도
이 예제에서 볼 수 있듯이, 스펙트럼 특징 추출 라이브 편집기 작업은 몇몇 다양한 응용 분야에 유용할 수 있습니다. 라이브 편집기 작업을 사용하여, 스펙트럼 피크를 알려진 기계 컴포넌트 주파수와 쉽게 일치시킬 수 있습니다. 이를 통해 데이터에 대한 이해를 높이고 데이터의 다양한 특징을 야기하는 기계 컴포넌트에 대해서도 잘 알 수 있습니다.
스펙트럼 특징 추출 라이브 편집기 작업을 응용할 수 있는 또 다른 분야는 관심 있는 주파수 범위의 스펙트럼 데이터를 특성화하기 위한 메트릭을 생성하는 경우입니다. 이 작업에서는 모든 결함 대역의 총 대역 전력뿐만 아니라 각 결함 주파수 대역의 피크 진폭, 피크 주파수 및 대역 전력을 포함하는 출력 테이블이 생성됩니다. 하지만 이러한 메트릭은 이 작업의 파워 스펙트럼 데이터 입력값에 따라 다릅니다.
새 데이터 세트가 수집될 때 시간 경과에 따라 메트릭을 추적할 수 있도록 사용 범위를 확장하려면, 작업에서 파워 스펙트럼 데이터를 업데이트하거나 자동으로 생성된 MATLAB 코드를 사용하여 메트릭 테이블을 생성하면 됩니다. 새로운 많은 데이터 세트에 대해 결함 대역 메트릭을 지속적으로 계산하는 쉬운 방법은 생성된 MATLAB 코드를 복사하는 것입니다.
이 작업의 세 번째 사용 사례는 앞서 언급한 두 사용 사례의 이점을 합한 사용 사례입니다. 이 작업에서는 다양한 기계 컴포넌트를 스펙트럼 데이터의 피크와 연결하므로, 스펙트럼 데이터에 상당한 변화를 일으키고 그로 인한 잠재적 고장을 야기하는 컴포넌트를 빠르게 확인할 수 있습니다. 예를 들어 스펙트럼 데이터에서 기계 고장의 일반적인 지표 중 하나는 스펙트럼 피크의 진폭 변화입니다. 스펙트럼 메트릭 테이블에서 피크 진폭이나 대역 전력이 시간이 지남에 따라 크게 떨어지는 경우, 플롯으로 다시 돌아가 해당 피크 주파수를 추적하여 어떤 컴포넌트의 결함 주파수 대역이 그 피크와 일치하는지 확인할 수 있습니다.
참고 항목
faultBands
| bearingFaultBands
| gearMeshFaultBands
| faultBandMetrics
| 스펙트럼 특징 추출