The Korean Society of Marine Engineering
[ Article ]
Journal of the Korean Society of Marine Engineering - Vol. 38, No. 6, pp.744-750
ISSN: 2234-7925 (Print) 2234-8352 (Online)
Print publication date Jul 2014
Received 23 May 2014 Revised 14 Jul 2014 Accepted 17 Jul 2014
DOI: https://doi.org/10.5916/jkosme.2014.38.6.744

A development of integrated monitoring and diagnosis system for marine diesel engine using time-series data

RhyuKeel-Soo ; ParkJong-Il1 ; HwangHun-Gyu2 ; ParkDong-Wook3
1Korea Soft Co 2Department of Computer Engineering, Graduate School of Korea Maritime and Ocean University 3Department of Computer Engineering, Graduate School of Korea Maritime and Ocean University
시계열 데이터를 이용한 선박용 디젤엔진 통합 감시 및 진단 시스템의 개발

Correspondence to: Division of Information Technology Engineering, Korea Maritime and Ocean University, Dongsam-dong, Yeongdo-gu, Busan, 606-791, Korea, E-mail: rhyu@kmou.ac.kr, Tel: 051-410-4571

The monitoring and abnormality warning of marine diesel engine are important to take appropriate responses for safety navigation. If maintenance engineers do not take appropriate response because of diagnosis mistakes, it will occur a nasty accident. Therefore, we need integrated monitoring and diagnosis system for supporting a diagnosis objectively. In this paper, we analyze time-series data which measured by real-time, monitor the changing of conditions and trends of the analyzed data. Furthermore, we design and implement a monitoring and diagnosis system for objective supporting of real-time diagnosis. When the integrated monitoring and diagnosis system is adopted, it can help to improve stability of marine diesel engine by providing abnormality warning alarm with appropriate responses.

초록

선박용 디젤엔진의 상태 감시 및 이상 경보에 대한 신속하고 적절한 조치는 선박 운항에 있어서 안전성 및 경제성을 위해서 매우 중요하다. 만약 유지보수 업무를 담당하는 엔지니어의 고장원인에 대한 진단 오류 등으로 인하여 적절한 조치를 취하지 못하게 되면 이는 곧 대형 사고로 이어질 수 있다. 따라서 선박용 디젤엔진의 객관적인 진단에 도움을 주는 통합 감시 및 진단 시스템이 필요하다. 본 논문에서는 실시간으로 측정된 시계열 데이터를 분석한 후, 분석된 데이터의 상태 및 변화 추이를 감시하고 이를 기반으로 진단에 도움을 주기 위한 목적을 가진 시스템의 개발에 관한 내용을 다룬다. 이러한 감시 및 진단을 수행함으로써 이상이 발생하면 신속하게 경보를 제공하여 적절한 조치를 취할 수 있게 되어 선박용 디젤엔진의 안정성이 향상된다.

Keywords:

Time-series data, Monitoring and diagnosis system, Java Expert System Shell, Marine diesel engine, 시계열 데이터, 감시 및 진단 시스템, JESS (java expert system shell), 선박용 디젤엔진

1. 서 론

해양안전심판원의 2013년 해양사고통계발표에 따르면 기관설비 결함, 기관설비 취급 불량에 의한 해양사고는 전체 해양사고의 약 10%에 이르는 것으로 집계되어 있다. 이러한 사고는 선박 운항에 있어서 안전성 및 경제성 측면의 큰 손실로 이어질 수 있다. 따라서 선박 기관의 주기적인 점검을 통한 유지보수를 위해서는 선박용 디젤엔진의 실시간 진단에 도움을 주는 통합 감시 및 진단 시스템이 필요하다.

통합 감시 및 진단 시스템이란 대상 설비로부터 데이터를 계측하여 이를 실시간으로 표시하고, 이상이 발생하거나 발생 가능성이 있는 경우 계측 항목과 기기간의 인과관계로부터 이상의 원인을 찾아내어 경보를 제공하는 시스템을 말한다[1]. 통합 감시 및 고장 진단 시스템은 산업용 설비의 관리를 위한 유용한 정보를 제공해주며, 발전소 설비 고장 진단, 통신망 고장 진단, 전력계통 고장 진단, 선박용 엔진 고장 진단 등에 활용되고 있다[2]-[5].

특히, 선박용 디젤엔진의 안정성을 향상시키기 위한 목적으로 많은 통합 감시 및 고장 진단 시스템이 개발되었다. 대표적인 선박용 엔진 통합 감시 및 고장 진단 시스템으로는 국내의 경우, 현대중공업에서 개발한 HiPDS가 있으며, 국외의 경우, Man Diesel and Turbo사에서 개발한 CoCoS EDS이 있다. HiPDS는 감시 측면에는 취약하나 이상 발생 시 진단 및 조치 기능, 날짜별 이력 검색 및 관리 기능에 강점이 있지만 가격이 비싸고 메인 디젤엔진용으로만 구현되어 있다는 한계가 있다. 또한 CoCoS EDS는 선형 그래프, 바 그래프, 성능 곡선을 통해 실시간 상태 감시, 진단, 분석 측면에서 강점을 지니고 있으나 성능 진단에 국한되어 있으며, 운항 중의 진단 목적으로 사용하기에는 부족함이 있다.

본 논문에서는 기존 선박용 디젤엔진 상태 감시 및 진단 시스템의 취약한 부분을 개선한 시스템의 개발에 관한 내용을 다룬다. 이를 위해 선박용 디젤엔진으로부터 실시간으로 측정된 시계열 데이터를 3분법 알고리즘을 이용하여 분석하고, 분석된 데이터를 기반으로 상태 및 변화 추이를 감시하여 전문가 시스템 기반의 진단 기법을 제안한다.


2. 기초 연구

2.1 전문가 시스템을 이용한 진단 시스템 구축

전문가 시스템이란 특정 분야의 전문가들이 전문 지식을 수집 정리하여 주어진 특정 영역에 관한 문제를 컴퓨터 기반으로 해결하는 컴퓨터 의사결정 및 자문 시스템을 말한다[6]. 전문가 시스템을 이용하여 진단 시스템을 구축하기 위한 과정은 Figure 1과 같다. 먼저 진단 대상을 선정한 후, 진단 대상의 전문가와 협의에 의해서 진단 지식을 추출한다. 전문가로부터 추출된 진단 지식을 컴퓨터가 인식할 수 있도록 표현하기 위해서는 진단 대상에 대한 클래스화와 인과관계를 정의하여야 한다. 인과관계가 정의되면 전문가 시스템 개발 도구를 이용하여 진단 지식 베이스를 구축하고, 최종적으로 감시 시스템과 진단 시스템을 연결함으로써 시스템을 구성한다.

Figure 1:

Process of development for diagnosis system

2.2 시계열 데이터 분석 방법

시계열이란 시간의 흐름에 따라 일정한 간격으로 관측하여 기록된 데이터를 의미하며, 추이(trend), 순환(cycle), 불규칙 변동(irregular fluctuation) 등의 시계열 분석 방법은 시계열 구성요소의 특성에 따라 선택하게 된다. 분석 방법의 선택은 주어진 데이터의 형태, 분석의 용이성, 분석 데이터 해석의 이해 정도에 따라 주의 깊게 선택되어야 한다. 분석 방법으로는 회귀 분석 방법, 박스-젠킨스(Box-Jerkins) 방법, 지수평활법(exponential smoothing), 시계열의 분해 방법 등 네 가지로 분류할 수 있다. 회귀 분석 방법과 박스-젠킨스 방법은 수학적 이론에 근거한 체계적인 방법이고, 지수평활법과 이동평균법은 경험적이고 직관적인 방법이라고 할 수 있다[7].

본 논문에서는 실시간 성능을 유지하기 위하여 이동평균법을 이용한다. 이동평균법은 기준 시점과 인접한 n개의 관측값의 평균을 의미하며, 이동평균을 이용하여 불규칙변동이나 계절변동을 제거할 수 있다. 그러나 긴 시간의 이동평균이나 반복되는 이동평균은 많은 데이터를 손실한다. 이동평균법에서는 이동평균을 계산하기 위해 최근 n개의 관측값이 필요하고, 최근 n개의 관측값에 대하여 동일한 비중을 부여하며, 이전의 관측값들은 무시한다. 반면 지수평활법은 과거의 관측값으로 미래의 값을 예측할 때 최근의 데이터에 더 많은 가중치를 부여하여 예측하는 방법이다. 일반적으로 정확한 예측을 위해서는 더 많은 자료들을 사용하는 지수평활법이 바람직하지만 실시간 성능을 가지기 위해서는 오래된 데이터를 무시하는 이동평균법이 보다 효율적이다.


3. 시스템 설계 및 구현

본 논문에서 다루는 전체 시스템 구조는 Figure 2와 같다. 통합 감시 및 진단 시스템은 선박용 디젤엔진으로부터 수집된 센서 데이터 전송을 위한 데이터 전송 모듈, 수집되는 정보를 이용하여 감시하는 감시 모듈, 정보를 처리하여 진단 모듈로 전송하는 인터페이스 모듈, 전문가 시스템을 기반으로 진단 결과를 도출하는 진단 모듈로 구성된다.

Figure 2:

System structure

3.1 전송 모듈(DDE 시뮬레이터)

데이터 전송 모듈을 대신하여 선박용 디젤엔진에서 측정되는 것과 유사한 데이터를 생성하기 위하여 DDE(Dynamic Data Exchange) 통신을 이용한 계측 데이터 생성 시뮬레이터를 개발하였다. DDE는 복수 어플리케이션 간의 정보를 동적으로 주고받을 수 있도록 개발된 통신 프로토콜이다. 실제로는 선박용 디젤엔진 통합 감시 및 진단 시스템의 계측 모듈은 현장의 각 센서로부터 직접 통신라인을 거쳐 전송받아야 하지만, 실험을 위하여 실시간 상태 데이터를 가상으로 생성하기 위하여 DDE 시뮬레이터를 개발하였다.

3.2 감시 모듈

감시 대상은 아날로그형 운전 인자와 디지털형 경보 인자로 구분하여 아날로그 데이터를 나타낼 수 있는 운전 인자의 수를 84개, ON/OFF 상태를 확인할 수 있는 경보 인자의 수를 61개로 설정하였다. 감시 모듈의 GUI 화면 구성은 디젤엔진 운전 중 감시되어야할 중요 인자를 중심으로 실제 도면에 따라 구현하였다. 디젤엔진의 감시되는 인자들은 실시간으로 DDE 시뮬레이터로부터 획득한다. 아날로그 신호가 입력되는 운전 인자는 실시간으로 숫자, 바, 트렌드 형태로 표시되도록 구현하고, 알람 발생은 디젤엔진 전문가가 제시하는 한계값을 기준으로 알람이 발생할 수 있도록 구현하였다. 또한 경보 인자는 각 계통에 ON/OFF 작동만으로 정보를 감시 모듈에 실시간으로 전달하는 경보 인자를 의미한다. GUI 화면상에서 정상일 때는 항상 녹색으로 표시가 되며 알람이 발생하면 빨간색으로 깜빡인다. 개발한 DDE 시뮬레이터와 감시 모듈은 Figure 3에 나타내었다.

Figure 3:

DDE simulator and monitoring module

3.3 인터페이스 모듈

진단을 위해 먼저 실시간 데이터 값을 감시 모듈 내의 DDE를 이용하여 수신하게 된다. 감시 모듈에서 진단 값으로 사용하기 위해서 Figure 4의 알고리즘과 같이 먼저 실시간 데이터 값의 3회 평균을 계산하고, 보정 데이터를 구하여 고장 및 사전 진단에 이용하였다.

Figure 4:

3-average movement algorithm

고장 진단에서는 알람 값의 상태를 HH, H, N, L, LL 값으로 분류하여 진단에 사용한다. 또한 사전진단에서는 보정 데이터를 분석하여 현재 데이터의 값이 증가, 감소 또는 일정한지를 판단하여 사전 진단에 사용하게 된다. 인터페이스 모듈에서는 신뢰도를 높이기 위해 수신된 데이터의 3회 이동 평균 보정 데이터를 산출하여 진단 모듈에서 이용할 수 있는 상태 진단 데이터와 추이 진단 데이터를 생성한다. 상태 진단 데이터는 Table 1과 같이 정의한 기준에 따라 알람 경계 값과 보정 데이터를 비교하여 추출된다. 예를 들어 운전 인자의 High High 경계 값과 보정된 데이터 값이 크거나 같으면 상태 진단 데이터는 HH가 된다.

Creation data of state

추이 진단 데이터는 Increase, Steady, Decrease로 분류되며, 이 세 가지 추이 진단 데이터를 생성하는 방법은 다음과 같다. 먼저, 변화가 빠른 데이터는 5회 연속 보정 데이터를 이용하고, 변화가 느린 데이터는 10회 연속 보정 데이터를 이용한다. Table 2는 추이 진단 데이터 판단 여부의 기준을 나타내고 있는데, 변화가 빠른 데이터는 5회 연속 변화가 있으면 추이 진단 데이터로 판단하고, 3∼4회 연속 변화는 비교 판단하며, 2회 연속 변화는 추이 진단 데이터로 사용하지 않는다. 또한 변화가 느린 데이터는 8회 연속 변화가 있으면 추이 진단 데이터로 사용하고, 4∼7회 연속 변화는 비교 판단하며, 3회 연속 변화는 추이 진단 데이터로 사용하지 않는다. 비교 판단의 경우, 알람 경계 값과 현재 값을 비교하여 알람 경계 값의 90% 이상인 경우 추이 진단 데이터로 사용하게 되고, 90% 미만인 경우에는 추이 진단 데이터로 사용하지 않는 것으로 가정한다.

Trend data criteria

3.4 진단 모듈

생성된 진단 데이터는 JESS 기반의 진단 모듈을 통해 진단에 관한 결과를 추론한다. JESS(Java Expert System Shell)는 자바로 개발된 지식 기반 전문가 시스템 개발 환경이다. JESS 기반의 진단 모듈 구조는 Figure 5와 같다. 규칙이 적용될 선박용 디젤엔진의 계통별 속성들을 표현하는 Fact들의 구조를 정의하며, Working Memory 또는 Fact Base에 존재한다. Rule Base에는 지식을 나타내는 규칙의 집합이 존재하며, IF-THEN 형태로 정의된다. 이러한 규칙은 Working Memory에 존재하는 Fact들에 대해서 IF 절이 만족하였을 때 THEN 절에 정의된 행동을 실행한다.

Figure 5:

Diagram of Diagnosis Module

JESS를 이용한 진단 모듈의 구현 절차는 Figure 6과 같다. 먼저 Java 클래스에서 JESS를 사용하기 위해서는 Rete 클래스를 이용한다. Rete 클래스의 executeCommand 메소드를 이용하여 JESS의 명령을 수행할 수 있으며, Fact 의 구조를 정의할 때 사용하는 Template과 디젤엔진용 진단 Rule을 clp 스크립트 파일에 작성하고 이 파일을 batch 메소드를 이용하여 읽어 excuteCommand 메소드를 이용하여 작업 메모리(working memory)를 초기화 한다. 초기화가 끝나면 batch 메소드를 이용하여 Fact를 Assert 시킨다. 디젤엔진 진단 모듈에서는 실시간으로 진단을 수행하여야 하기 때문에 실제로 Fact는 clp 스크립트 파일을 읽어 들여서 사용하지 않고, Java의 Diagnosis Thread에서 Fact 객체를 생성하여 실시간으로 진단 데이터를 할당한다. 진단 데이터가 작업 메모리에 할당되면 run 메소드를 이용하여 진단을 시작하게 되고 Rete 클래스의 fatch 메소드로 결과 객체를 얻을 수 있다. 결과 객체로부터 진단결과 코드를 얻고, 이를 감시 모듈에 DDE 통신을 이용하여 전달하게 된다.

Figure 6:

Implementation process of diagnosis module


4. 실험 및 검증

개발한 통합 감시 및 진단 시스템을 실험하기 위하여 JESS 기반 진단 룰 835개의 진단 지식을 작성하였으며, Table 3은 JESS 기반 진단 룰 작성의 예제이다. DDE 시뮬레이터를 이용하여 복합 인자에 관한 데이터를 생성하면, 감시 모듈로 전송되며 상태에 관한 정보가 표시된다. 그 후 인터페이스 모듈을 거쳐 진단 모듈로 보정 데이터가 전송된다. JESS 기반 룰에 따라 진단 결과가 표시된다. Figure 7은 도출된 진단 결과가 출력된 화면이며, Figure 8은 도출된 진단 결과를 기반으로 조치 사항에 관한 출력창이 표시된 화면이다.

Example of making JESS rules

Figure 7:

Diagnosis result

Figure 8:

Pop-up window of diagnosis alarm


5. 결 론

본 논문에서는 디젤엔진을 대상으로 시계열 데이터를 이용한 통합 감시 및 진단 시스템을 설계 및 구현하였으며, 그 유용성을 검증하였다. 향후 원격지에서 임베디드 관제시스템을 통합 관리 할 수 있는 시스템 개발이 필요하며, 미국 NMEA(National Marine Electronics Association)에서 제정한 선박내 표준 프로토콜 NMEA2000을 기반으로 하여 구현함으로써 타 시스템과 이식성이 용이 할 수 있도록 확장할 필요가 있다.

References

  • J. K. Lee, Principle and Development of Expert System, Bubyoungsa, Korea, (1996), (in Korean).
  • K. J. Mo, C. W. Jung, K. B. Lee, and I. S. Yoon, “Development of operation aided system for fault diagnosis of chemical process”, Journal of the Society of Expert System, 2(1), p11-26, (1996).
  • H. Y. Jung, and H. S. Park, “Development of diagnosis system based on alarm processing”, Journal of the Society of Expert System, 4(1), p103-113, (1998).
  • J. I. Park, K. S. Rhyu, D. H. Kim, and S. W. Park, “A study on monitoring and diagnosis system of standby diesel generators”, Proceedings of the Korean Society of Marine Engineering Spring Conference, p241-242, (2008).
  • K. S. Rhyu, S. W. Park, J. I. Park, and D. H. Seo, “A study on integrated monitoring and diagnosis method using trend of time-series data”, Proceedings of the Korean Society of Marine Engineering Fall Conference, p249-249, (2012).
  • W. H. Choi, A Study on the Development of a Ship Engine Diagnosis Expert System using Hybrid Knowledge Representation, M.S. Thesis, Department of Control Engineering, Korea Maritime University, (1999).
  • W. W. Lee, Time-series Data Analysis : Statistical Methods for Prediction, Freedom Academy, Korea, (2009), (in Korean).

Figure 1:

Figure 1:
Process of development for diagnosis system

Figure 2:

Figure 2:
System structure

Figure 3:

Figure 3:
DDE simulator and monitoring module

Figure 4:

Figure 4:
3-average movement algorithm

Figure 5:

Figure 5:
Diagram of Diagnosis Module

Figure 6:

Figure 6:
Implementation process of diagnosis module

Figure 7:

Figure 7:
Diagnosis result

Figure 8:

Figure 8:
Pop-up window of diagnosis alarm

Table 1:

Creation data of state

알람 경계 값 조건 상태 데이터 진단 데이터
High High 보정 데이터 값 HH
High 보정 데이터 값 H
Normal 보정 데이터 값 N
Low Low 보정 데이터 값 LL
Low 보정 데이터 값 L

Table 2:

Trend data criteria

추이
판단
변화가 빠른 데이터
(5회 연속 판단)
변화가 느린 데이터
(10회 연속 판단)
TRUE 5회 연속 변화 8회 연속 변화
비교
판단
3~4회 연속 변화 4~7회 연속 변화
FALSE 2회 연속 변화 3회 연속 변화

Table 3:

Example of making JESS rules

(defrule AI_Rule001 "OVERSPEED AIR PRESSURE"
(PRES (name PP008) (state LOW))
=> (?resultOutput addResult "PP008" "001" "LOW" "STEADY" (list "RESULT001" "RESULT002" "RESULT003")))

(defrule AI_Rule002 "HT WATER NO.A1 ENGINE OUTLET TEMPERATURE"
(TEMP (name PT001) (state HIGH))
=> (?resultOutput addResult "PT001" "002" "HIGH" "STEADY" (list "RESULT004" "RESULT005" "RESULT006" "RESULT007" "RESULT008")))

(defrule AI_Rule003 "HT WATER NO.A1 ENGINE OUTLET TEMPERATURE"
(TREND (name PT001) (state INCREASE))
(DI (name DI028) (state ?v1))
(DI (name DI024) (state ?v2))
(DI (name DI019) (state ?v3))
(test (not (or (eq ?v1 FALSE) (eq ?v2 FALSE) (eq ?v3 FALSE))))
=> (?resultOutput addResult "PT001" "003" "NORMAL" "INCREASE" (list "RESULT004" "RESULT005" "RESULT006" "RESULT007" "RESULT008")))