예지보전 실습 · KANG 공정판 튜토리얼
시작하기

시작하기

KANG 개발 측이 화학 공정용으로 따로 만든 「KANG 공정 PDM」(v0.1.0)을 고치지 않고 실행해 봅니다. 반응기 한 기의 일곱 공정값을 내보내는 RTU 시뮬레이터에 수동으로 이상값을 넣고, 기존 방식(Isolation Forest)과 새 공정형 모델(PCA T²/Q), AutoML이 같은 데이터를 어떻게 판정하는지 비교합니다. 실험해 보니 숫자보다 「언제, 어떤 데이터로 학습하느냐」가 결과를 더 크게 바꿨습니다.

무엇을 배우나#

화학 공장의 반응기에 이상 탐지 프로그램을 도입한다고 가정합니다. 배포본에 들어 있는 교육 자료(PPT 18쪽)와 문서가 설명하는 기능을 직접 실행해 보고, 결과를 수치로 확인합니다. 자료의 설명과 실제 동작이 다른 부분도 정리했습니다.

장 하는 일
1. 배경: 화학 공정에서 이상을 찾는다는 것 일곱 채널, PLC_LIST와 PLC_DATA, 설비 단위 모델, 두 모델이 묻는 질문
2. 설치와 첫 연결 RTU와 PDM을 실행하고 연결합니다. 연결하는 순간 첫 모델이 학습됩니다
3. 수동 이상을 넣고 두 모델 비교하기 화면 기본값과 한 변수 실험으로 Isolation Forest와 PCA T²/Q의 반응을 비교합니다
4. AutoML과 Zero-shot 여섯 후보를 고르는 방식, 합성 교란 F1의 뜻, 합성 데모 결과, Zero-shot 대체 예측
5. 언제 학습하느냐가 결과를 바꾼다 정상 운전 중 헛알람, 이상을 먼저 넣고 연결했을 때, 승인 재학습의 함정과 올바른 순서
6. PLC 파일로 학습하기 PLC_LIST와 PLC_DATA를 읽어 학습하고, 현장 데이터를 넣기 전에 확인할 것
7. 과제와 현장으로 가는 길 팀 과제, 평가 기준, 개발 측에 전할 확인 사항

이번 실험에서 확인한 다섯 가지#

  1. 수동 이상은 2초 만에 「위험」이 됩니다. 화면 기본값(온도 145 °C, 압력 −280 mmHg 등 일곱 값)을 넣으면 다음 갱신에서 두 모델이 모두 이상으로 판정합니다. 다만 기존 방식의 점수는 1.13으로 임계값을 겨우 넘고, PCA의 점수는 약 2천만 배입니다(3장).
  2. 기존 방식은 pH와 밸브를 보지 못합니다. 온도·압력만 입력으로 받기 때문입니다. pH만, 밸브만 바꾼 실험에서는 PCA만 이상을 잡았습니다(3장).
  3. 처음 연결한 모델은 정상 운전에서도 자주 울립니다. RTU를 켜고 20초 만에 연결하면 학습 데이터가 3분 남짓뿐입니다. 이후 30분 동안 정상으로 운전했지만, 화면 갱신의 20~26%에서 「주의」나 「위험」이 떴습니다. 24분 동안 쌓인 정상 이력으로 학습하거나 다시 학습하자 이 비율이 1% 안팎으로 줄었습니다(5장).
  4. 이상을 먼저 넣고 연결하면 아무것도 잡지 못합니다. 배포본 PPT의 실습 순서대로 이상을 먼저 120초 넣은 뒤 연결하면, 초기 학습에서 이상을 정상으로 배웁니다. 그 뒤로 이상이 계속되어도 알람은 한 번도 울리지 않았습니다(5장).
  5. 승인 재학습도 이력에 이상이 남아 있으면 해롭습니다. 이상 60초가 이력에 남은 채로 재학습한 뒤 같은 이상을 넣었습니다. 재학습 전에는 갱신마다 「위험」이 떴는데, 재학습 뒤에는 갱신의 60%에서만 「주의」가 떴고 기존 방식은 한 번도 잡지 못했습니다(5장).

앞의 두 교재와 무엇이 다른가#

설비 예지보전 PBL KANG 판 이 교재(KANG 공정판)
대상 페인트 교반기 모터 베어링 페인트 교반 설비 화학 공정 반응기 DT-100
센서 가속도계 하나, 5,120 Hz 전류·진동 RMS·온도·압력, 1분 온도·압력·유량·레벨·밸브·회전수·pH, 1초
잘 보는 이상 베어링 손상, 불균형 펌프 걸림, 과부하 밸브 고착, 진공 저하, 센서 고장, pH 이탈
모델 물리 공식, 오토인코더, 제로샷 Isolation Forest, 고장 기록이 있으면 Logistic Regression Isolation Forest와 PCA T²/Q를 나란히, AutoML 여섯 후보
재학습 에이전트가 섀도 모드로 검증해 승격 30시점마다 자동 처음 연결할 때와 사람이 승인할 때만
고장 확률 정비 기록으로 채점 failure_label로 학습 없음(이상 후보만)

준비물#

  • macOS, Windows 또는 Linux, Python 3.12(배포본이 3.12만 지원합니다)
  • KANG 공정 PDM 배포본 ZIP(약 1.7 MB) — 수업에서 받습니다. 프로그램 두 개(RTU, PDM), 문서 8편, 교육용 PPT가 들어 있습니다
  • 6장 실습용 연습 PLC_LIST — 본문에 내용을 실었습니다
  • 처음 설치할 때 인터넷 연결(무료 Python 패키지를 받습니다)

합성 데이터이고, 안전 장치가 아닙니다

RTU 시뮬레이터의 값은 잡음 없는 사인파로 만든 합성 데이터입니다. 이 교재의 수치는 기능과 원리를 배우기 위한 것이며, 현장 성능을 나타내지 않습니다. 프로그램은 설비를 제어하지 않습니다. PLC 인터록, 안전계장, 비상정지, 운전자의 최종 판단을 대신하지 않습니다.

이번 실행 환경#

항목 값
기계 Apple M4 Max, macOS
프로그램 KANG 공정 PDM v0.1.0(2026-11-10 배포본, 코드 수정 없음)
주요 버전 Python 3.12.12, scikit-learn 1.8.0, numpy 2.3.5, Flask 3.1.3
실행 날짜 2026년 11월 11일
화면 브라우저 1440×810(모델 결과는 세로 1640)

배포본의 설치 스크립트는 Windows용(setup_windows.bat)입니다. 이번에는 macOS에서 같은 패키지를 직접 설치해 실행했습니다(2장). 화면 제목에 들어 있는 고객사 이름은 캡처할 때 가렸습니다.

배포본 자료와 실제 동작이 다른 곳#

교육용 PPT와 문서를 따라 하다 막히지 않도록, 직접 실행해 확인한 차이를 먼저 정리합니다.

자료 자료의 설명 실제 동작 다룬 곳
PPT 10·17쪽 이상값을 먼저 넣고 PDM에서 「RTU 연결 + 초기 학습」 이상이 길면 초기 학습이 이상을 정상으로 배워 알람이 나지 않습니다. 문서 04_USER_MANUAL의 순서(연결 → 이상)가 맞습니다 5장
PPT 10쪽 팁 한 번에 한 변수만 바꾸기 화면의 「수동 이상 적용」은 입력칸의 일곱 값을 모두 상수로 고정합니다. 하나만 바꿔도 나머지 여섯 값이 멈춥니다 3장
PPT 7쪽 PLC_LIST 열 PLC_NO·TABLE_NAME·COLUMN_NAME…, PLC_DATA 열 timestamp·asset_id·temperature… 프로그램과 테이블 정의서는 PTYPE·IDX·PNAME…, INTIME·PTYPE·IDX·VALUE…(긴 형식)를 씁니다 1·6장
PPT 6·14쪽 선택한 모델을 「저장」, 「모델 파일」 모델을 파일로 저장하지 않습니다. PDM을 다시 켜면 다시 학습해야 합니다 4장
PPT 12쪽 「시간당 기울기」 초당 기울기(slope_per_second)입니다 1장
README, 문서 00_START_HERE 「분석 실행」, 「Isolation Forest와 PCA 비교」 버튼, RTU 화면에서 고장 시나리오 변경 화면에는 해당 버튼과 시나리오 선택 기능이 없습니다. 「현재 데이터로 모델 재학습」이 비교를 다시 실행합니다 2·4장
문서 05_TEST_REPORT IF 6건, PCA 26건, AutoML PCA-99 F1 0.988 실행 시점에 따라 바뀝니다. 이번에는 연결 직후 IF 16·PCA 17창, AutoML PCA-90 F1 0.989였습니다 2장
© uEngine Solutions · 문의하기 · 이 교재의 화면과 수치는 2026년 11월 11일 KANG 공정 PDM v0.1.0 배포본을 고치지 않고 실제로 실행해 얻었습니다. RTU 데이터는 잡음 없는 합성 데이터이며 현장 성능이 아닙니다. 화면 제목의 고객사 이름은 가렸습니다.