실시간 진동 데이터로 베어링 결함을 미리 찾다 : neo-pkg-bearing-analytics 1.0.0 출시
베어링 결함은 진동 크기보다 결함 주파수에 먼저 나타납니다.
회전기계 고장의 상당수는 베어링에서 시작합니다. 베어링 고리에 흠이 생기면 구슬이 그 위를 지날 때마다 짧은 충격이 일정한 간격으로 반복됩니다. 이 충격이 1초에 몇 번 오는지는 베어링 크기와 회전수로 정해지는데, 이를 결함 주파수라고 합니다. 결함 초기에는 진동의 크기(진폭)가 거의 그대로인 경우가 많지만, 진동 속에는 이미 결함 주파수가 나타나기 시작합니다.
neo-pkg-bearing-analytics는 진동 데이터에서 결함 주파수를 찾아 베어링을 진단하는 패키지입니다. 결함 주파수로 진단하는 것은 전문가들이 오래 써 온 검증된 방법이지만, 지금까지는 전용 진단 장비와 전문 인력이 있어야 했습니다. 이 패키지는 그 방법을 Machbase Neo에 실시간으로 쌓이고 있는 진동 데이터 위에서 바로 쓸 수 있게 만들었습니다. 쿼리나 코드 없이, 설비마다의 회전수와 베어링 품번만 넣으면 됩니다.
베어링 이상을 초기에 알면, 설비가 갑자기 멈추는 대신 계획한 정비 시간에 맞춰 손볼 수 있습니다.
왜 진동 크기만으로는 부족한가
진동 감시의 가장 흔한 방식은 진동 크기에 기준선을 긋는 것입니다. 진동이 어느 수준을 넘으면 경보를 울리는 등의 방식입니다. 단순한 방법이지만, 베어링을 지키기에는 어렵습니다. 여기에는 두 가지 이유가 있습니다.
1. 오경보가 많습니다. 하중이 큰 설비나 원래 시끄러운 설비는 상태가 멀쩡해도 진동이 큽니다. 진동이 크다는 건 ‘어딘가 문제가 있을 수 있다’는 뜻일 뿐, 베어링이 상했다는 뜻은 아닙니다.
2. 너무 늦게 잡습니다. 베어링 결함은 아주 작은 흠에서 시작합니다. 이때 생기는 충격은 전체 진동에 묻힐 만큼 작아서,
진동 크기가 눈에 띄게 올랐을 땐 결함은 이미 꽤 진행되었을 것입니다. 그래서 전문가들은 진동 크기보다 베어링 결함 주파수가 나타나는지를 먼저 봅니다. 설비마다 회전수와 베어링 정보를 설정해 두면, 전문가가 장비를 들고 하던 일을 이 패키지가 Neo에 쌓이는 진동 데이터로 수행합니다.
neo-pkg-bearing-analytics 주요 기능
1. 결함 주파수 찾기 — 어디가 손상 의심되는지
앞에서 말한 충격을 그림으로 보면 이렇습니다. 자동차 타이어에 박힌 돌이 한 바퀴 돌 때마다 '딱' 소리를 내듯, 구슬이 흠을 지날 때마다 일정한 간격으로 충격이 발생합니다.

결함 주파수는 흠이 바깥 고리(외륜)에 있는지, 안쪽 고리(내륜)에 있는지, 구슬(구름체)에 있는지에 따라 다릅니다. 그래서 어느 결함 주파수가 나타나는지에 따라 어느 부위의 손상이 의심되는지 짐작할 수 있습니다.
다만 이 충격은 다른 진동 속에 묻혀 잘 보이지 않습니다. 그래서 충격이 잘 드러나는 높은 음역만 걸러 낸 뒤, 충격이 반복되는 주파수만 뽑아냅니다. 시끄러운 공장에서 특정 소리만 골라 듣는 것과 비슷합니다.

위 화면은 중국 시안교통대학이 공개한 베어링 수명시험 데이터(XJTU-SY)에서, 실제로 고장이 날 때까지 돌린 베어링의 외륜 결함을 이 패키지로 분석한 결과입니다. 베어링 형상과 회전수로 미리 계산한 결함 주파수 115.6 Hz와 그 2배, 3배 자리마다 피크가 줄지어 섭니다. 이 줄이 바로 외륜 결함의 흔적입니다.
2. 등급 — 결함 주파수가 켜고, 진동 크기가 높이를 정한다
등급은 양호 · 주의 · 위험 · 심각 네 단계입니다. 이 등급을 두 가지 기준이 나눠 맡습니다.
결함 주파수 — 등급을 켤지 말지 : 베어링 결함 주파수가 나타나면 등급이 켜집니다. 나타나지 않으면 진동이 아무리 커도 등급은 양호입니다.
진동 크기 — 얼마나 높일지 : 국제 규격 ISO 10816은 기계 크기별로 진동의 허용 범위를 A(신규 설비 수준)부터 D(손상 우려)까지 나눕니다. 등급이 켜졌을 때 그 높이를 이 구간이 정합니다.

진동이 크기만 하고 결함 주파수가 없으면, 그 사실은 화면에 따로 적되 등급은 올리지 않습니다. 원인이 베어링이 아닐 수 있기 때문입니다. 반대로 진동은 아직 작은데 결함 주파수가 나타나면 '주의'로 올립니다. 바로 이것이 패키지가 가장 잡으려 하는 초기 결함입니다.
아래는 앞의 수명시험 베어링을 리포트로 만든 화면입니다. 결함 주파수가 뚜렷하게 나타나 등급이 켜졌고, 진동 크기도 C 구간까지 커져 있어 위험 등급이 나왔습니다.

이 판정 방식의 효과는 공개 데이터로 확인할 수 있습니다. 대학과 연구기관이 공개한 베어링 시험 데이터 4종(CWRU · MFPT · Paderborn · XJTU-SY)에서 정상 베어링 100건과 손상된 베어링 283건, 모두 383건을 골라 판정 기준만 바꿔 비교했습니다.

이 데이터는 모두 베어링 시험대에서 잰 것이라 멀쩡한 베어링도 진동이 큽니다. 그래서 진동 크기만 보는 기준으로는 정상과 결함이 거의 가려지지 않았습니다. 멀쩡한 베어링 100건 중 69건에 경보를 내면서, 정작 손상된 베어링은 37%밖에 잡지 못한 것입니다. 기준을 여러 개 합쳐도 마찬가지였습니다. 손상된 베어링은 74%까지 잡았지만, 오경보는 여전히 69%였습니다.
결함 주파수로 등급을 켜게 하자, 오경보는 3%로 줄고 손상된 베어링 65%를 잡았습니다. 손상된 베어링 둘 중 하나 남짓(약 54%)은 손상 부위까지 맞혔습니다. 경보가 울릴 때마다 믿을 수 있어야 현장에서 계속 쓰이므로, 오경보를 먼저 잡는 쪽을 택했습니다. 고장을 얼마나 일찍 알리는지도 확인했습니다. 실제로 고장이 날 때까지 돌린 NASA 베어링 수명시험에서, 바깥 고리 결함은 파손 약 3일 전, 구슬 결함은 약 25일 전에 첫 경보를 냈습니다. 이 성능은 공개된 시험대 데이터로 검증한 값이며, 실제 현장 설비 데이터로는 아직 검증 전입니다.
AI 학습이 아닌 신호·통계 분석 방식이라, 설비마다 데이터를 모아 학습시킬 필요가 없습니다. 회전수와 베어링 품번만 넣으면 그날부터 등급이 매겨집니다.
3. 모니터링 — 모든 설비를 한 화면에서
앱을 열면 고른 설비가 모두 카드로 나옵니다. 카드마다 지금의 진동값, 최근 1분의 흐름, 등급이 실시간으로 바뀌고, 상태가 나쁜 설비가 앞으로 옵니다.

맨 위 ‘요약’ 줄의 판정 보류는 지금 등급을 매길 수 없는 설비의 수입니다. 설비가 멈췄거나, 신호가 끊겼거나, 센서 값이 이상하거나, 회전수·베어링 정보가 비어 있으면 판정 보류로 표시됩니다. 등급을 매길 수 없는 설비를 '양호'로 보여 주면, 안심하면 안 될 곳에서 안심하게 되기 때문입니다.
감시는 앱을 열어 둔 동안에만 진행되는 것이 아닙니다. 서버 감시를 켜면 같은 판정을 Neo 서버가 이어서 맡아, 앱을 닫아도 기록이 쌓이고 알림이 나갑니다. 감시가 멈추거나 늦어지면 앱이 화면에 알려 주므로, 조용하다고 해서 감시가 멈춘 건 아닌지 걱정할 필요가 없습니다.

4. 상세분석 — 근거와 해야 할 일까지
카드를 누르면 그 설비의 상세분석으로 들어갑니다. 센서가 찍은 진동 그대로의 모양과, 진동을 주파수별로 나눠 본 그래프 여러 장을 한 화면에서 봅니다. 그래프에는 결함 주파수 자리가 미리 표시돼 있어, 그 자리에 피크가 서는지 눈으로 확인할 수 있습니다. 아래는 앞의 수명시험 베어링을 상세분석에서 본 화면입니다.
판정 카드와 종합 분석 — 판정 근거와 지금 할 일
화면 맨 위 판정 카드는 베어링 결함 패턴과 진동 크기가 등급을 어떻게 정했는지 한 줄로 보여 줍니다(예: "결함 패턴 있음 + ISO A 구간 → 주의"). 그 바로 아래에 지금 할 일이 한 줄로 붙습니다. 종합 분석을 펼치면 무엇을 근거로 이렇게 판정했는지와, 지금 할 일을 실행할 세부 조치가 판정 결과에 맞춰 나옵니다. 판정은 AI 없이 이뤄져 같은 데이터면 늘 같은 결과가 나오고, 원하면 AI(Claude · OpenAI · Gemini · Ollama)의 상세 소견을 덧붙일 수 있습니다.

RMS 추이 — 진동 크기의 시간 변화
진동 크기가 단계적으로 커지다가, 고장 직전에는 가장 높은 구간까지 올라갑니다.

원시 파형 — 센서가 찍은 진동 그대로
센서 값을 가공 없이 보여 줘, 충격이 튀는 모습을 눈으로 확인할 수 있습니다.

FFT 주파수 스펙트럼 — 진동을 주파수별로 나눈 그래프
회전수와 결함 주파수 자리에 표시선이 그어져 있어, 어떤 주파수가 강한지 한눈에 봅니다.

스펙트로그램 — 시간에 따른 주파수 변화
밝을수록 강한 성분이라, 어느 주파수 대역이 언제부터 커졌는지 볼 수 있습니다.

이것 외에도, 상세분석에는 베어링 결함을 다른 각도에서 확인하는 지표가 함께 있습니다. 결함이 만드는 충격이 얼마나 뾰족해지는지(Crest Factor · 첨도 추이), 결함 대역의 에너지가 자라는지(결함 대역 에너지 추이), 어느 주파수 대역에서 충격이 큰지(대역별 충격성)를 볼 수 있습니다.
5. 리포트와 알림
리포트는 버튼 한 번으로 만들어지는 하나의 HTML 파일입니다. 별도 프로그램 없이 브라우저로 열리고, 그래프는 확대해서 볼 수 있으며, 상단의 인쇄 버튼으로 인쇄하거나 PDF로 저장할 수 있습니다.

리포트는 요약과 전체 분석 두 탭으로 나뉩니다. 요약 탭은 30초 안에 읽히도록 만들었습니다. 맨 위에 등급과 판정을, 바로 아래에 지금 할 일을 한 줄로 보여 주고, 핵심 수치와 의심되는 결함, 세부 조치가 이어집니다. 판단의 한계도 따로 적습니다. 이 측정으로 원리상 볼 수 없는 것, 찾아봤지만 없었던 것, 아직 설명하지 못한 신호를 각각 밝힙니다. 전체 분석 탭에는 심각도부터 추세, 스펙트럼, 결함 근거, 세부 조치까지 모든 차트와 근거가 순서대로 펼쳐집니다.
알림은 등급이 바뀌거나 신호가 끊기는 등의 상황에서 나갑니다. 순간적으로 한 번 튄 값에 알림이 쏟아지지 않도록, 등급 변화가 두 번 연속 확인돼야 알림을 보냅니다. 한 번만 튄 값은 기록으로만 남깁니다. 알림은 Slack · Discord · Google Chat 같은 메신저로 보내고, 이메일이나 문자가 필요하면 자동화 도구로 중계해 받을 수 있습니다.
시작하기
필요한 것 — Machbase Neo 8.7.3 이상, 그리고 진동 센서 데이터가 쌓이는 TAG 테이블 (ROLLUP 설정 권장 — 없으면 긴 기간 추이가 최근 구간으로 줄고, 서버 감시는 동작하지 않음)
준비 — Neo에 패키지를 설치한 뒤, 관리자가 앱 설정 화면에서 패키지가 쓸 저장 공간을 만들고, 사용할 계정에 패키지 권한과 분석할 테이블의 조회 권한을 줍니다. 사용할 계정마다 Neo에서 API 토큰을 발급해 앱에 입력합니다.
시작 — 진동 데이터 테이블을 고르고, 설비마다 회전수와 베어링 품번을 넣으면 바로 판정이 시작됩니다. 다만 알림은 같은 등급이 두 회차 연속(기본 10분 간격) 확인돼야 나가므로, 첫 알림은 빨라야 10분 뒤입니다.
선택 — 알림, 서버 감시, AI 소견은 필요할 때 켭니다.
권장 — 처음 적용할 때는 알림을 켜기 전에 판정만 먼저 돌려 보며 설비에 맞는지 확인합니다.
자세한 사용법과 검증 성적은 영어 · 한국어 · 일본어 매뉴얼로 제공합니다.
마치며
이 패키지의 생각은 하나입니다. 결함은 진폭보다 먼저 주파수에 나타난다. 그래서 진동이 크다는 사실보다 베어링 결함 주파수가 나타나는지를 먼저 묻고, 근거가 있을 때만 등급을 올립니다. 그리고 판정마다 근거를 함께 보여 줍니다. 왜 그렇게 판정했는지 보이는 도구여야 현장에서 믿고 쓸 수 있다고 생각하기 때문입니다. 점검자를 대신하는 도구가 아니라, 점검자가 더 빨리 더 정확한 곳을 보게 돕는 도구입니다.
1.0.0은 그 첫걸음입니다. 지금은 센서 하나가 한 방향으로 잰 진동으로 베어링을 진단합니다. 그래서 결함 원인은 가설로 제시하고, 한 방향 측정의 한계를 화면과 리포트에 함께 밝힙니다. 앞으로 여러 방향(수평 · 수직 · 축 방향)에서 잰 진동을 함께 보는 분석을 더해, 베어링 진단의 근거를 더 단단하게 만들어 갈 예정입니다.
시험대 데이터로는 효과를 확인했지만, 실제 현장 설비 데이터로는 아직 검증 전입니다. 현장에서 써 보신 결과와 의견을 보내 주시면, 그 피드백으로 계속 발전시켜 가겠습니다.


