DOI QR코드

DOI QR Code

A study on machine learning-based anomaly detection algorithm using current data of fish-farm pump motor

양식장 펌프 모터 전류 데이터를 이용한 머신러닝 기반 이상 감지 알고리즘에 관한 연구

  • Sae-yong Park (Division of Information and Telecommunication Engineering, Hoseo University) ;
  • Tae Uk chang (Quantum Solution) ;
  • Taeho Im (Division of Information and Telecommunication Engineering, Hoseo University)
  • Received : 2023.02.06
  • Accepted : 2023.03.09
  • Published : 2023.04.30

Abstract

In line with the 4th Industrial Revolution, facility maintenance technologies for building smart factories are receiving attention and are being advanced. In addition, technology is being applied to smart farms and smart fisheries following smart factories. Among them, in the case of a recirculating aquaculture system, there is a motor pump that circulates water for a stable quality environment in the tank. Motor pump maintenance activities for recirculating aquaculture system are carried out based on preventive maintenance and data obtained from vibration sensor. Preventive maintenance cannot cope with abnormalities that occur before prior planning, and vibration sensors are affected by the external environment. This paper proposes an anomaly detection algorithm that utilizes ADTK, a Python open source, for motor pump anomaly detection based on data collected through current sensors that are less affected by the external environment than noise, temperature and vibration sensors.

4차 산업혁명에 맞춰 스마트팩토리 구축을 위한 설비보전 기술들이 관심을 받으며 고도화되고 있다. 또한 스마트팩토리에 이어 스마트팜, 스마트 양식장에도 기술이 접목되고 있다. 그중에서도 순환여과식 양식장의 경우는 수조의 안정적인 수질 환경을 위해 물을 순환하는 펌프 모터가 존재한다. 순환여과식 양식장 펌프 모터 보전 활동은 예방 정비와 진동센서에서 취득된 데이터를 기반으로 수행한다. 예방정비는 사전계획 이전에 일어나는 이상에 대해서는 대처할 수 없으며 진동센서는 외부 환경에 영향을 받는다. 본 논문에서는 소음, 온도, 진동센서에 비해 외부 환경의 영향을 적게 받는 전류 센서를 통해 수집된 데이터를 기반으로 펌프 모터 이상 감지에 있어 Python 오픈소스인 ADTK를 활용하는 이상 감지 알고리즘을 제안한다.

Keywords

1. 서론

4차 산업혁명과 발맞춰 스마트팩토리에 대한 연구가 활발해짐에 따라 기술이 고도화되고 있다. 이러한 변화 속에서 스마트팩토리에 이어 스마트팜, 스마트양식장과 같이 제조업에서 농업, 어업으로 영역을 넓혀가고 있다. 특히 어업에서는 순환여과식 양식장을 예로 들 수 있다. 그림 1과 같은 순환여과식 양식장의 경우는 물을 외부에 버리지 않고 일정한 정수 과정을 거쳐서 어류에게 적합한 환경을 재조성하여 다시 이용하는 양식 방식이다. 순환여과식 양식을 함으로써 지속적인 필터링을 통해 오염원을 제거하고 안전하고 깨끗한 수질을 유지함으로써 양식 어류에 건강한 환경을 제공한다. 현재 순환여과식 양식장에서는 물 순환 역할을 하는 펌프 모터의 고장을 주로 예측하기보다는 사전계획에 맞춰 정비를 진행하는 예방정비 절차를 수행하고 있다. 하지만 위와 같은 방법은 펌프 모터의 실제 수명보다 이전에 부품을 교체함으로써 고가의 펌프 모터를 낭비하게 되는 문제점을 가진다. 또한 예방정비 기간 이전에 발생하는 고장에 대해서는 대응할 수 없는 한계점을 갖게 된다. 이러한 점은 현장의 다운타임(Down Time)을 발생시켜 어류의 집단 폐사를 초래할 수 있어 장비의 다운타임을 방지할 수 있는 예지보전(Predictive Maintenance) [1] 필수적이다. [2] 일부 대기업에서는 전통적인 진단 방식인 진동센서를 이용한 이상 감지를 수행한다. 하지만 진동센서는 외부환경에 영향을 받기 때문에 시스템에 능숙하지 않은 작업자는 정확한 이상 감지에 어려움이 존재한다. 따라서 외부환경의 영향을 덜 받는 전류 데이터를 통해 예지보전의 필수요소인 이상 감지를 수행하려 한다. 본 논문에서는 이상 감지를 수행하기 위해 순환여과식 양식장에 설치된 열교환 펌프 모터 (Heatexchanger_pump), 스키머 펌프 모터 (Skimmer_pump), 시스템 펌프 모터1 (System_pump1), 시스템 펌프 모터2 (System_pump2) 에서 전류 데이터를 취득하여 Python 오픈소스인 Anomaly Detection ToolKit(ADTK) 을 적용하여 성능을 살펴보고자 한다.

OTJBCD_2023_v24n2_37_f0001.png 이미지

(그림 1) 순환여과식 양식장 시스템

(Figure 1) Recirculating aquaculture system

2. 관련 연구

이번 장에서는 본 논문에서 이상 감지를 위해 사용된 ADTK의 InterQuartileRangeAD의 원리가 되는 Tukey Fence와 펌프 모터의 이상 감지를 수행하기 위해 사용되는 데이터의 종류 및 이상 감지 방법론에 대한 선행연구에 대해 다루어 본다.

2.1 Tukey Fence

4차 산업혁명의 핵심 과제인 스마트팩토리가 관심을 받기 전부터 이상 감지 연구는 활발히 이루어졌다. [3] John Tukey는 이상 감지를 위해 데이터 분포의 하한 사분위수(Q1)과 상한 사분위수(Q3)를 이용하여 식 1을 제안했다.

Normal Range = [Q1 - k(Q3 - Q1), Q3 - k(Q3 - Q1)]       (1)

식 1에서 Normal Ranges는 데이터의 분포에서 이상이 아닌 부분을 말한다. 즉 Normal Range를 벗어나는 값은 이상으로 판단하는 것이다. 여기서 Q3 – Q1은 InterQuartileRange 이다. Tukey fence에서 k=1.5를 제안하였다. 이 방법은 간단하면서도 데이터의 분포를 통해 이상 감지를 할 수 있는 통계적 방법이다. ADTK에서는 InterQuartileRange와 DoubleRolloingAggregate and IQR에서 사용된다.

2.2 펌프 모터 이상 감지 방법론

펌프 모터의 이상 감지는 여러 종류의 데이터를 통해 연구되고 있다. [4] 모터 베어링의 이상을 감지하기 위하여 베어링 그리스(grease)의 수명에 영향을 미치는 온도를 이용하는 방법과 [5] 모터의 진동을 주파수 분석을 통해 이상을 감지할 수 있는 방법과 모터의 이상은 부하의 변화를 만들어내고 이는 전류값에 영향을 미치는 점을 이용해 [6]과 같이 전류를 통해 이상감지를 수행한다. 위의 데이터를 이용한 이상 감지 방법은 Tukey Fence를 제외하고도 이상 감지를 위한 알고리즘은 다양하게 연구되었다. 이상 감지를 위한 방법에는 통계, 머신러닝과 딥러닝이 있다. [7] 위 3가지 방법 중 통계기법이 가장 좋은 성능을 보였다.

3. ADTK를 이용한 이상 감지 알고리즘

3.1 전류 데이터 신호 전처리 알고리즘

순환여과식 양식장 펌프 모터로부터 취득한 데이터는 2가지 문제점을 가지고 있다. 첫째, 데이터 주기에 맞게 수집되지 못해 결측 데이터가 존재한다. 둘째, 시계열 데이터의 특성상 잡음이 발생하여 이상 감지에 혼동을 주는 점이다. 먼저 결측 데이터를 처리하기 위하여 Python의 interpolate 함수를 이용하여 선형보간을 수행하였다. 선형보간법(linear interpolation)은 아래 식 2와 같은 방법으로 수행되었다.

\(\begin{aligned}y_{n}=y_{n-1}+\left(y_{n+1}-y_{n-1}\right) \frac{x_{n}-x_{n-1}}{x_{n+1}-x_{n-1}}\end{aligned}\)       (2)

선형보간법을 거친 데이터는 그림 2와 같이 시계열 데이터가 가지고 있는 잡음을 갖는다. 따라서 본 논문에서는 선형보간법이 적용된 데이터에 평균값을 산출하여 데이터의 잡음을 제거하였다. 본 논문에서는 평균값 산출 주기를 ‘60S’로 설정하였다. 따라서 그림 2의 오른쪽 그림과 같이 잡음이 제거된 그래프를 얻을 수 있다.

OTJBCD_2023_v24n2_37_f0002.png 이미지

(그림 2) 평균값 산출을 통한 잡음 제거

(Figure 2) Noise elimination through average calculation

3.2 전류 데이터 이상 감지 알고리즘

선형보간법 적용 및 평균값 산출을 통해 결측치와 잡음이 제거된 데이터를 ADTK의 4가지 단변량(Univariate) 알고리즘을 적용한다. 이상 감지에 적용한 ADTK의 감지기는 표 1과 같다.

(표 1) ADTK 감지기

OTJBCD_2023_v24n2_37_t0001.png 이미지

(Table 1) ADTK detector

3.2.1 ThresholdAD

ThresholdAD는 과거에도 많이 사용되던 방법으로 최고 문턱값(high)와 최저 문턱값(low)를 매개변수로 설정하며 high와 low를 넘어서면 이상으로 감지하는 방식이다.

3.2.2 QuantileAD

QuantileAD는 데이터를 크기별로 정렬한 후에 매개변수로 설정하는 상위값(high)와 하위값(low)값을 받아 high와 low에 해당하는 값을 이상으로 감지한다.

3.2.3 InterQuartileRangeAD(IQR)

InterQuartileRangeAD 또한 데이터의 분포를 이용하지만 그림 3과 같이 Q1 (제 1사분위)와 Q3(제 3사분위)의 차를 IQR(Q3–Q1)로 정의하며 IQR의 매개변수인 C값을 곱해 Q1과 Q3에 빼고 더한 범위를 정상범위로 판단하는 방식이다.

OTJBCD_2023_v24n2_37_f0003.png 이미지

(그림 3) InterQuartileRangeAD 원리

(Figure 3) InterQuartileRangeAD Principal

3.2.4 DoubleRollingAggregate and IQR

DoubleRollingAggregate and IQR은 ADTK 감지기 함수인 PersistAD, LevelShiftAD, VolatilityShiftAD를 구성하는 구조이다. DoubleRollingAggregate는 ADTK의 transformer 모듈로 기존의 데이터를 변형하는 역할을 하며 double sliding window를 이용하여 표 2와 같은 매개변수 agg에 따른 차이를 구하여 값으로 취하는 방식이다.

(표 2) DoubleRollingAggregate agg 계산 방식

OTJBCD_2023_v24n2_37_t0002.png 이미지

(Table 2) DoubleRollingAggregate agg calculation method

다음과 같은 방식을 취하면 그림 4와 같이 이상이 발생하는 부분에서 변형된 그래프가 그려지는데 변화량이 적은 부분은 완만한 그래프를 보이고 변화량이 큰 부분에서는 가파른 그래프를 그리는 것을 발견할 수 있다. ADTK의 DoubleRollingAggregate는 double sliding window를 사용하여 기존의 데이터를 변형시켜 이상 감지를 수행한다는 점에서 ThresholdAD와 같은 위의 감지기와 차별점을 갖는다. DoubleRollingAggregate and IQR의 한 종류인 PersistAD의 경우는 double sliding window의 크기를 서로 다르게 설정하여 계산한 후에 변형된 데이터에 IQR을 적용하는 방법이다. 구체적으로는 왼쪽 window 즉, 후행하는 window의 크기를 매개변수인 window size 설정값에 따라 설정하고 선행하는 window의 크기는 1로 고정하여 과거값과 현재값의 차이를 구하는 방식이다. LevelShiftAD와 VolatilityShiftAD는 PersistAD와 다르게 같은 크기의 double sliding window를 설정한다. LevelShiftAD와 VolatilityShiftAD의 차이는 매개변수 agg를 다르게 설정한다는 점이다. LevelShift의 경우는 중앙값(median)을 double window의 차이를 구하는 피연산자로 사용하고 VolatilityShiftAD는 표준편차(std)를 사용한다. 매개변수 agg와 double window size에 따른 차이는 그림 4와 같이 나타난다.

OTJBCD_2023_v24n2_37_f0004.png 이미지

(그림 4) agg와 window에 따른 차이

(Figure 4) Differences according to agg and window

4. 실험 데이터 구성 및 실험 결과

4.1 실험 데이터 구성 및 평가 방법

실험을 진행하기 위하여 실제 순환여과식 양식장 펌프 모터에서 취득한 전류 데이터를 사용하였다. 전류 데이터는 2019년 03월 29일부터 2020년 10월 04일까지의 Heatexchangerpump, Skimmerpump, Systempump1, Systempump2로 구성되어 있다. ADTK Detector를 이용한 이상 감지를 수행하기 위하여 그림 5와 같이 사람의 눈으로 보아도 기존의 펌프 모터 정격 출력을 벗어나는 부분을 이상 부분을 이상 발생일 자정부터 이상 발생 종료 시점까지 추출하여 실험 데이터를 구성하였다. 추출한 데이터는 4가지 패턴으로 분류할 수 있었는데 그림 5, 6, 7, 8 순서대로 Increase, Decrease, Noise, Pulse로 명명하였다. 패턴별로 분류한 데이터를 ADTK Detector인 ThresholdAD, QuantileAD, InterQuartileRangeAD, DoubleRollingAggregate and IQR에 적용하였다. ThresholdAD는 정격 출력에서 ±0.2인 값을 high와 low로 설정하였다. QuantileAD는 high와 low를 0.9, 0.1로 설정하였다. InterQuartileRangeAD는 C값을 1~6까지 1씩 증가시켰다. DoubleRollingAggregate and IQR은 양쪽 window size가 상이한 PersistAD의 경우는 C값을 1~7까 1씩 증가시켰고 window 값은 1~9까지 1씩 증가시켰다. 양쪽 window size가 서로 같은 경우는 DoubleRollingAggregate의 매개변수 agg를 mean, median, sum, min, max, std, var으로 사용하였으며 매개변수 window는 2~9까지 1씩 증가시켰다. 데이터 변형 이후에 사용되는 IQR에 대해서는 매개변수 C를 1~9까지 1씩 증가시켰다. 위와 같이 매개변수를 다양화하여 특정 이상 패턴 혹은 이상 유지 시간에 따른 적절한 ADTK Detector의 매개변수 값을 찾기 위함이다. 각 Detector별 성능을 평가하기 위하여 정밀도(Precision), 재현율(recall), f1_score를 사용하였다.

OTJBCD_2023_v24n2_37_f0005.png 이미지

(그림 5) 상승패턴 이상 데이터

(Figure 5) Increase pattern Anomaly data

OTJBCD_2023_v24n2_37_f0006.png 이미지

(그림 6) 하강패턴 이상 데이터

(Figure 6) Decrease pattern Anomaly data

OTJBCD_2023_v24n2_37_f0007.png 이미지

(그림 7) 노이즈패턴 이상 데이터

(Figure 7) Noise pattern Anomaly data

OTJBCD_2023_v24n2_37_f0008.png 이미지

(그림 8) 펄스패턴 이상 데이터

(Figure 8) Pulse pattern Anomaly data

4.2 실험 결과

순환여과식 양식장 펌프 모터에 ADTK의 감지기를 분류된 이상 패턴에 적용한 결과는 표 3, 4, 5, 6과 같다. 실험 결과표를 펌프 모터 종류 기준이 아닌 패턴별로 ThresholdAD의 매개변수 high와 low 특정값을 입력할 수 없어 average(avg)±0.2로 표기하였다. 실험 결과를 살펴보면 Decrease 패턴에서는 IQR과 DoubleRollingAggregate+IQR 감지기에서 각각 C = 4-6 과 agg = sum, c = 6-9, window = 2-5에서 f1_score 0.911과 0.975를 얻을 수 있었다. Pulse 패턴에서도 위 IQR과 DoubleRollingAggregate+IQR 감지기에서 각각 C = 4-6 과 agg = var, c = 5-9, window = 6-9에서 f1_score 0.8과 0.910을 얻을 수 있었다. Noise 패턴에서는 IQR에서 c = 4-6에서 0.869의 f1_score를 얻을 수 있었고 DoubleRollingAggregate+IQR에서 agg= var, c = 5-9, window = 6-9에서 0.839의 f1_score를 얻을 수 있었다. 다만 Increase 패턴에서는 DoubleRollingAggregate+IQR에서 유의미한 f1_socore를 얻을 수 없었고 IQR 감지기에서만 c=4-6에서 0.823의 f1_score를 얻을 수 있었다.

(표 3) Decrease 패턴 실험 결과

OTJBCD_2023_v24n2_37_t0003.png 이미지

(Table 3) Decrease pattern Experiment Results

(표 4) Increase 패턴 실험 결과

OTJBCD_2023_v24n2_37_t0004.png 이미지

(Table 4) Increase pattern Experiment Results

(표 5) Pulse 패턴 실험 결과

OTJBCD_2023_v24n2_37_t0005.png 이미지

(Table 5) Pulse Pattern Experiment Results

(표 6) Noise 패턴 실험 결과

OTJBCD_2023_v24n2_37_t0006.png 이미지

(Table 6) Noise pattern Experiment Results

5. 결론

본 논문에서는 순환여과식 양식장 펌프 모터 이상 감지를 수행하기 위해 펌프 모터 전류 데이터에 Python 오픈소스인 ADTK를 적용한는 방식을 제안하였다. 모터 이상 감지를 위한 선행연구에서는 온도, 진동, 전류 센서를 취득하여 감지하는 방식들이 존재하는 것을 살펴보았고 본 논문에서는 모터의 이상은 부하의 변화가 발행한다는 점과 다른 센서와는 다르게 외부환경의 영향을 적게 받아 전류 데이터가 모터 상태를 관찰할 수 있는 적합한 요소로 판단하였다. 전류 데이터를 통한 이상 감지 방법론에는 통계, 머신러닝, 딥러닝 방법이 존재한다. 국내 순환 여과식 양식장이 해외와 비교하여 설비 및 ICT 기술접목이 미비하여 머신러닝과 딥러닝의 주축이 되는 데이터가 부족한 점을 고려하여 통계적 방법을 사용하였다. ADTK를 적용하기 전에 시계열 데이터에서 나타나는 결측 데이터 및 잡음을 선형보간법과 주기별 평균값 산출을 통해 보간 및 제거하였다. 이후 ADTK의 4가지의 Detector를 통해 이상 감지를 수행하였다. 제안된 방식을 통해 Decrease, Increase, Noise, Pulse에서 0.8이상의 f1_score를 얻을 수 있었다. 이상 감지에서 가장 좋은 성능을 보인 DoubleRollingAggregate and IQR은 Double sliding window를 이용하여 각 window의 대푯값의 차를 구하는 방식으로 원래 데이터를 변화량 값으로 대체한다. 이후에 변형된 데이터에 IQR을 적용하여 이상 즉, 변화량이 가장 큰 부분을 감지한다. 다만 ADTK Detector의 매개변수에 따라 성능 차가 발생한다. 매개변수에 따른 성능 차이는 향후 매개변수를 알고리즘이 [8]과 같이 자체적으로 성능을 평가하고 수정하는 연구를 수행하고자 한다.

References

  1. Yongyi Ran, Xin Zhou, Pengfeng Lin, Yonggang Wen, Ruilong Deng, "A Survey of Predictive Maintenance: Sytems, Purposes and Approaches", arXiv preprint arXiv:1912.07383, 2019. https://doi.org/10.48550/arXiv.1912.07383
  2. Ki-sung Yoo, Yeong-min Moon, "Development trend of smart factories facilities and predictive maintenance", The Journal of The Korean Instituate of Communication Sciences, 37(7), pp.36-42, 2020. https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE0938181
  3. John W Tukey, Exploratory data analysis, Addison-Wesley series, 70-71, 1977.
  4. Yujie Li et al, "Motor Anomaly Detection for Aerial Unmanned Vehicles Using Temperature Sensor", Artificial Intelligence and Robotics, pp.295-304, 2018. https://doi.org/10.1007/978-3-319-69877-9_32
  5. O. A. Egaji, T. Ekwevugbe and M. Griffiths, "A Data Mining based Approach for Electric Motor Anomaly Detection Applied on Vibration Data", 2020 Fourth World Conference on Smart Trends in Systems, Security and Sustainability, pp. 330-334, 2020. https://doi.org/10.1109/WorldS450073.2020.9210318
  6. Guang Li et al, "Deep Anomaly Detection for CNC Machine Cutting Tool Using Spindle Current Signals", Sensors, 20(17), 4896, 2020. https://doi.org/10.3390/s20174896
  7. Mohammad Braei, Dr.-Ing.Sebastin Wagner, "Anomaly detection in univariate time-series: A survey on the state-of-the-art", arXiv perprint arXiv:2004.00433, 2020. https://doi.org/10.48550/arXiv.2004.00433
  8. Sayan Charkraborty et al, "Building an Automated Self-Aware Anomaly Detection System", IEEE International Conference on Big Data, pp.1465-1475, 2020. https://doi.org/10.1109/BigData50022.2020.9378177