예지보전 실습 · KANG 공정판 튜토리얼
1부 배경1

배경: 화학 공정에서 이상을 찾는다는 것

교반기 한 대를 보던 앞 교재와 달리, 이번에는 반응기 한 기의 온도·압력·유량·레벨·밸브·회전수·pH 일곱 값을 함께 봅니다. PLC 태그 목록과 시간별 측정값이 어떻게 다른지, 그리고 「값 하나가 튀었는가」를 묻는 모델과 「값들 사이의 관계가 깨졌는가」를 묻는 모델이 어떻게 다른지 알아봅니다.

무엇을 · 왜#

KANG 판에서는 교반 설비의 전류·진동 RMS·온도·압력 네 채널을 보았습니다. 모터와 펌프 같은 기계의 고장을 미리 알아채는 데 목적이 있었습니다. 이번 프로그램은 공정을 봅니다. 화학 공장의 반응기에서는 기계가 파손되기 전에 공정 조건이 먼저 어긋나는 일이 많습니다.

  • 열매(가열 매체) 밸브가 한 위치에 고정되면 온도가 오르고 투입 유량이 줄어듭니다.
  • 진공이 새면 압력이 올라갑니다(이 교재의 압력은 진공이라 음수 mmHg입니다. 값이 0 쪽으로 가면 진공이 약해진 것입니다).
  • 온도계가 고장 나면 값이 튀거나 한 값으로 고정됩니다.
  • 중화가 잘못되면 pH가 서서히 벗어납니다.

이런 일은 센서 하나만 보아서는 놓치기 쉽습니다. 밸브는 열렸는데 유량이 그대로라면, 두 값이 각각은 정상 범위 안에 있어도 둘의 관계가 어긋난 것입니다. 이번 프로그램에서는 이 관계를 보는 모델(PCA T²/Q)과 기존 방식(Isolation Forest)을 같은 데이터로 나란히 비교할 수 있습니다.

반응기 DT-100의 일곱 채널#

배포본의 RTU 시뮬레이터는 반응기 DT-100 한 기의 일곱 값을 1초마다 만듭니다. 태그 이름과 PLC 주소는 현장 태그 목록의 형식을 따랐습니다.

채널 태그 단위 정상 범위(이번 측정) 뜻
온도 temperature TI-100 °C 114.5 ~ 121.5 반응기 내부 온도
압력 pressure PT-105 mmHg −555.5 ~ −514.5 진공 압력(음수)
투입 유량 flow FT-120 L/h 1,992 ~ 2,248 원료가 들어오는 양
레벨 level LT-105(D-105) % 58.0 ~ 62.1 투입 용기의 높이
밸브 개도 valve TCV-101 % 41 ~ 51 열매 공급 밸브가 열린 정도
회전수 rpm AG-100 RPM 60.5 ~ 63.5 교반기 회전수
pH ph NT-1000 pH 7.07 ~ 7.23 중화조 pH

정상 신호는 잡음이 없는 사인파입니다. 느린 파형(주기 약 151초)이 온도·압력·유량·레벨·밸브·pH를 함께 움직이고, 빠른 파형(주기 약 44초)이 온도·압력·유량·회전수를 흔듭니다. 레벨은 120초마다 1.8%p 내려갔다가 한 번에 되돌아오는 톱니 모양입니다. 실제 설비를 대표하는 값이 아니라, 일곱 값이 함께 움직이는 공정을 흉내 낸 합성 데이터입니다.

왜 「함께 움직인다」가 중요한가

느린 파형 하나가 여러 채널을 같이 밀고 당기므로, 정상일 때 온도가 오르면 압력·유량·밸브도 정해진 비율로 같이 오릅니다. PCA T²/Q는 이 비율이 깨지는 순간을 포착합니다.

PLC_LIST와 PLC_DATA#

현장 데이터는 두 표로 들어옵니다. 배포본에 들어 있는 테이블 정의서의 열 이름은 다음과 같습니다.

표 한 행의 뜻 주요 열 모델에서의 역할
PLC_LIST 태그 하나 PTYPE(계측 종류: TI·PT·FT·LT…), IDX(태그 번호), PNAME(현장 태그명), ADDR(PLC 메모리 주소), PLCScale·MESScale(원시 범위·공학값 범위), UNIT, DETAIL(공정 설명) 태그 사전. 어떤 태그가 어느 설비에 속하는지 알려 줍니다
PLC_DATA 한 시각의 태그 하나 INTIME(입력 시간), PTYPE, IDX, SEQ, PNAME, ADDR, PLCVALUE, VALUE(공학값), UNIT 학습과 예측에 쓰는 실제 값

PLC_DATA는 「긴 형식」입니다. 일곱 채널을 1초마다 기록하면 1초에 7행이 쌓입니다. 프로그램은 PTYPE+IDX로 두 표를 이어 붙이고, 같은 INTIME의 행을 모아 한 시점으로 만듭니다.

PLC_LIST만으로는 모델을 학습할 수 없습니다. 태그 목록에는 「무엇을 재는가」만 있고 「언제 얼마였는가」가 없기 때문입니다. 배포본에 들어 있는 현장 태그 목록도 태그 정의(전체 171개, 사용 중 151개)뿐이어서, 이 교재의 모든 실습에서는 RTU 시뮬레이터의 합성 데이터를 사용합니다.

설비 단위로 묶는 이유#

태그 171개를 한 모델에 넣지 않습니다. 서로 직접 영향을 주는 태그끼리 설비 단위로 묶습니다. 반응기 DT-100의 경우, 해당 반응기의 온도·압력·투입 유량·레벨·열매 밸브·교반 회전수를 한 모델에 넣습니다. 멀리 떨어진 저장 탱크의 레벨은 반응기와 함께 움직일 이유가 없습니다. 따라서 같이 넣으면 관계를 학습하는 데 방해만 됩니다. 프로그램도 한 모델에 최대 32채널까지만 받습니다.

두 모델은 서로 다른 질문을 한다#

두 모델 모두 같은 특징에서 출발합니다. 채널마다 최근 20시점을 창으로 묶고 다섯 가지 특징을 계산합니다.

특징 이름 무엇을 보나
평균 mean 값이 어느 수준에 있는가
표준편차 std 얼마나 흔들리는가(멈춘 센서는 0)
기울기 slope_per_second 초당 얼마나 오르내리는가
최대 변화량 max_abs_delta 이웃한 두 시점 사이에서 가장 크게 바뀐 폭
중앙값 최대 이탈 peak_from_median 창 안에서 중앙값과 가장 멀리 떨어진 값
기존 방식 재현 새 공정형 모델
알고리즘 표준화 + Isolation Forest(나무 100그루) 표준화 + PCA(설명 분산 95%) T²와 Q
입력 채널 온도·압력만(채널 이름에 「온도」「압력」이 있거나 TI·PT로 시작하는 채널, 최대 4개) 선택한 설비의 모든 채널
특징 수(DT-100) 2채널 × 5 = 10개 7채널 × 5 = 35개
묻는 것 이 창이 정상 창들 사이에서 얼마나 빨리 따로 떨어지는가 정상 공정의 주된 움직임 안에서 너무 멀리 갔는가(T²), 주된 움직임으로 설명되지 않는 나머지가 큰가(Q)
이상 판정 점수 ÷ 임계값 > 1 T² 비율과 Q 비율 중 큰 쪽 > 1

임계값은 두 모델 모두 검증 구간 점수의 99% 지점입니다. 화면의 점수는 이 임계값으로 나눈 비율이라 1.0이 경계입니다. 고장 확률이 아닙니다.

T²와 Q를 쉽게 말하면 이렇습니다. 정상 운전에서 일곱 값이 움직이는 방식을 몇 개의 「주된 방향」으로 요약합니다. T²는 지금 상태가 그 방향들 위에서 평소보다 지나치게 멀리 갔는지 봅니다. 여러 센서가 같은 방향으로 크게 움직일 때 커집니다. Q는 주된 방향들로 다시 그려 보았을 때 남는 오차입니다. 밸브는 열렸는데 유량이 따라오지 않는 것처럼, 평소의 관계로는 설명되지 않는 움직임에서 커집니다.

기존 방식은 온도·압력만 봅니다

KANG 판(v0.5.1)의 Isolation Forest를 재현하려고 전류·진동 대신 온도·압력을 넣었습니다. 그래서 pH나 밸브만 이상해지면 기존 방식은 원리상 탐지할 수 없습니다. 3장에서 실제로 확인합니다.

그 밖의 두 기능#

  • AutoML 후보 선택. Isolation Forest 100·200·300그루와 PCA 설명 분산 90·95·99%, 여섯 후보를 자동으로 비교해 하나를 고릅니다. 고장 기록이 없으므로 정상 검증 데이터에 일부러 흠집(특징값 교란)을 내고, 정상과 흠집을 얼마나 잘 구분하는지 F1 점수로 비교합니다. 4장에서 다룹니다.
  • Zero-shot 예측. 학습 없이 미리 학습된 시계열 모델(Amazon Chronos-Bolt)로 다음 값의 범위를 예측하는 선택 기능입니다. Chronos가 설치되어 있지 않으면 내장된 간단한 추세 예측을 대신 사용합니다. 이상 판정을 대신하지 않는 보조 근거입니다.

참고한 공개 자료#

배포본 문서는 데이터 자체가 아니라 문제 구조와 검증 방식을 참고했다고 밝힙니다.

자료 내용 이 프로그램에서 가져온 관점
NoBOOM 화학 공정 이상 탐지 데이터 모음 센서 사이의 관계와 공정 변화
Tennessee Eastman Process 정상과 고장 20종을 담은 대표적인 화학 공정 시뮬레이션 운전 변수와 고장 시나리오
SKAB 온도·압력·유량·전류·진동의 다변량 이상 탐지 벤치마크 시간 순서 분할과 구간 평가
Chronos-Bolt 사전 학습된 시계열 예측 모델 Zero-shot 보조 예측

공개 데이터에서 얻은 점수가 현장 성능을 대신하지는 않습니다. 배포본은 현장 데이터를 Kaggle·Hugging Face 같은 외부 서비스에 올리지 않는 것을 원칙으로 합니다.

이 프로그램이 보지 못하는 것#

  • 기계 고장. 현장 태그 목록에 전류·진동 태그가 없어서 모터·베어링 손상 같은 기계 고장은 범위 밖입니다. 그런 고장은 KANG 판과 설비 예지보전 PBL이 다룹니다.
  • 고장 확률. 고장 기록(정비 이력, 고장 시각)이 없으므로 「몇 분 뒤 고장 날 확률」은 내지 않습니다. 이상 후보만 표시합니다.
  • 설비 제어. 알람은 운전을 돕는 정보입니다. PLC 인터록, 안전계장(SIS), 비상정지(ESD)를 대신하지 않습니다.

확인 문제#

  1. PLC_LIST 파일만 받았습니다. 바로 모델을 학습할 수 있나요? 무엇이 더 필요한가요?

    정답

    학습할 수 없습니다. PLC_LIST는 태그 정의(무엇을 재는가)뿐입니다. 시간별 측정값이 들어 있는 PLC_DATA(INTIME, PTYPE, IDX, VALUE …)가 있어야 합니다. 정상 운전 구간이 어디인지도 알아야 합니다.

  2. 열매 밸브 개도가 95%로 붙어 버렸는데 온도·압력은 아직 크게 변하지 않았습니다. 기존 방식과 새 공정형 모델 중 어느 쪽이 먼저 알아챌 가능성이 큰가요? 이유는 무엇인가요?

    정답

    새 공정형 모델(PCA T²/Q)입니다. 기존 방식은 온도·압력 채널만 입력으로 받으므로 밸브 채널을 보지 않습니다. PCA는 밸브를 포함한 일곱 채널의 관계를 보므로, 밸브만 혼자 움직이는 것을 Q(설명되지 않는 나머지)나 T²로 잡을 수 있습니다.

  3. 화면의 IF 점수가 1.12, PCA 점수가 0.8입니다. 「고장 확률 112%」라고 읽어도 되나요?

    정답

    아닙니다. 두 점수는 검증 구간 점수의 99% 지점(임계값)으로 나눈 비율입니다. 1.12는 「임계값보다 12% 높다」, 즉 기존 방식이 이상 후보로 판정했다는 뜻입니다. 0.8은 PCA 점수가 임계값 아래라는 뜻입니다. 고장 확률이 아닙니다.

© uEngine Solutions · 문의하기 · 이 교재의 화면과 수치는 2026년 11월 11일 KANG 공정 PDM v0.1.0 배포본을 고치지 않고 실제로 실행해 얻었습니다. RTU 데이터는 잡음 없는 합성 데이터이며 현장 성능이 아닙니다. 화면 제목의 고객사 이름은 가렸습니다.