직렬·병렬 구조와 열화 모델로 시스템 신뢰도 설계하기

직렬·병렬·k-out-of-n 구조의 시스템 신뢰도와 감마·Wiener 열화 모델을 연결해 설계, 검증, 정비 의사결정에 활용하는 방법

2026-08-14 · 최초 발행 2024-04-29

구조와 열화 경로를 함께 보는 시스템 신뢰도

복잡한 시스템의 정상 동작 확률은 개별 부품의 신뢰도만으로 정해지지 않는다. 부품이 직렬인지 병렬인지, 또는 n개 가운데 k개가 살아야 하는지에 따라 시간 (t)에서의 시스템 신뢰도 (R_{sys}(t))가 달라진다. 이를 구조함수 (\phi(x))와 신뢰도 블록 다이어그램(RBD)으로 표현할 수 있다.

직렬 구조에서는 모든 구성 요소가 정상이어야 한다.

[ R_{series}(t) = \prod R_i(t) ]

병렬 구조는 구성 요소 가운데 하나 이상이 동작하면 시스템이 유지된다.

[ R_{parallel}(t) = 1 - \prod (1 - R_i(t)) ]

k-out-of-n 구조는 n개 가운데 k개 이상이 동작해야 한다는 조건을 조합 합으로 일반화한다. N+1, RAID, 듀얼 채널처럼 중복 전략을 수식으로 비교할 때 쓰인다.

열화 모델링은 용량, 마모, 진동처럼 시간에 따라 달라지는 성능 지표의 경로를 확률과정으로 다룬다. 열화량이 임계값에 도달한 시점을 고장으로 정의하며, 감마 프로세스, drift를 포함한 Wiener(Brownian) 프로세스, inverse Gaussian, 혼합·랜덤효과 모델이 대표적이다.

데이터에서 정비 판단까지 이어지는 흐름

결측·이상치검열·중단수명 데이터열화 데이터데이터 품질 불충분입력 데이터수명·고장 이력열화 시계열스트레스 프로파일(온도, 하중)설계 RBD전처리·검증로버스트 정제IQR·Hampel센서 재동기화검열 태깅Right·Interval오퍼레이션 로그 결합모델 선택수명분포Weibull·Lognormal혼합·랜덤효과확률과정Gamma·Wiener측정오차 포함모수 추정MLE·BayesALT(Arrhenius/IPM)RBD 합성Series·Parallel·k-out-of-n구조함수 φ(x)출력R_sys(t), MTBF·AvailabilityRUL·고장확률(t)중요도·약점의사결정예지정비잔여수명 기반 교체설계개선임계 부품 강화·중복운영 최적화스페어·재고·로지스틱스리스크: 신뢰구간 확대보수적 의사결정 적용

RBD를 만들 때는 부품 목록, 실패 모드(FMEDA), 연결 관계를 입력으로 삼는다. 최소 절단집합과 경로를 분석하면 (R_{sys}(t)), MTBF/Availability, 그리고 Birnbaum·DI·CRI 같은 구성 요소 중요도를 산출할 수 있다.

수명 데이터와 열화 데이터는 같은 방식으로 다루기 어렵다. 수명 데이터에는 Weibull, Lognormal, Exponential 같은 분포를 적용할 수 있고, 이기종 구성 요소에는 서로 다른 분포를 허용한다. 열화 데이터는 시간 경로 자체가 모델의 대상이므로 측정오차와 스트레스 공변량을 함께 고려한다.

추정에는 MLE/Map-Bayes, EM/수치최적화, 가속수명시험(ALT: Arrhenius/Inverse Power) 결합을 사용할 수 있다. 검증에서는 P-P/Q-Q, 잔차·마팅게일 진단, 시뮬레이션 기반 예측오차 평가, 신뢰구간·예측구간 산출을 수행하며 right/left/interval 검열도 포함한다.

직렬과 병렬이 만드는 운영상의 차이

지표 직렬(Series) 병렬(Parallel)
성능(신뢰도 곡선) 구성 요소 추가 시 (R_{sys}) 하락 경향 구성 요소 추가 시 (R_{sys}) 상승
확장성 RBD 단순, 대규모 취약 k-out-of-n로 유연, 계산 복잡 증가
일관성(모델) 동일 분포 가정 시 단순 이기종·상관 고려 필요
안정성(내고장성) 단일 실패로 시스템 실패 Failover·다중 경로로 견고
운영 편의 유지보수 간단, 단일 포인트 리스크 스페어·테스트 복잡, 운영비 상승

직렬 경로는 취약점이 한곳에 집중되며, 병렬 경로는 내고장성을 확보하는 대신 공통원인 실패(CCF)를 별도로 봐야 한다. 독립 고장을 전제로 한 단순 병렬 계산은 β-팩터나 공통충격 모델이 필요한 상황에서 성립하지 않을 수 있다.

PHM(예지·건전성) 관점에서는 센서 데이터에서 특징을 추출하고, 모델을 거쳐 RUL과 Failure risk를 산출한 뒤 정비 일정으로 연결한다. 이 과정의 선택은 중복에 따른 비용·무게·전력과 가용성 향상, 경보 임계값에 따른 과잉정비와 미탐지 리스크 사이의 트레이드오프다.

열화 특성에 맞춰 모델을 선택하는 법

감마 프로세스는 마모나 크리프처럼 단조 증가하는 열화에 적합하다. 독립 증가량을 가정하고 모수화하기 쉽다는 점이 특징이다.

[ D(t) \sim Gamma(\alpha t, \beta) ]

임계값 (L)에 대한 고장시간은 다음과 같이 정의한다.

[ T = \inf{t : D(t) \geq L}, \quad P(T \leq t) = P(D(t) \geq L) ]

Wiener 프로세스는 잡음과 드리프트가 함께 나타나는 진동이나 오프셋 드리프트에 적용할 수 있다.

[ X(t) = \mu t + \sigma W(t) ]

임계값 (L)의 도달시간 (T)는 Inverse Gaussian 분포를 따른다. 감마는 해석이 용이하고, Wiener는 비단조성과 잡음을 다루는 유연성이 있다.

Weibull((k, \lambda))은 다양한 위험도 형태를 모델링하는 데 쓸 수 있다. 다만 배꼽형 위험도인 욕조곡선은 혼합 또는 단계별 모형이 필요하다. 데이터 정제도 선택의 문제다. 센서 드리프트, 검열, 이상치 처리가 빠지면 모델이 흔들리지만, 공격적인 정제는 정보 손실을, 완화적인 정제는 편향을 만들 수 있다.

설계와 운영에서 나타나는 적용 지점

데이터센터 서버 팜에서는 2N 또는 N+1 전원·냉각·서버 병렬 구성을 k-out-of-n 기반 가용성 예산으로 계산하고 스페어 정책을 조정할 수 있다.

배터리 시스템은 용량 열화를 감마 프로세스로 표현하고, 임계용량 도달 시간 분포를 통해 RUL을 추정한다. 이때 충방전 스트레스 공변량을 반영한다.

터보머신과 베어링은 진동 RMS 드리프트를 Wiener 모델로 다루고, 허용치 초과 확률로 경보 임계값을 조정할 수 있다. 팬·펌프 병렬 운전에서는 가용성 계산이 함께 필요하다.

전자부품과 납땜부에는 ALT(온도/전력/진동)와 Weibull 수명모델을 결합할 수 있다. 직렬 경로의 취약 부품을 식별한 뒤 소량 중복을 넣어 MTBF를 개선하는 방식이다.

중복 전략을 최적화하면 목표 가용성 99.9%→99.99% 달성이 가능하며, 이는 운영 환경에 의존한다. 예지정비는 불필요 정비를 1030% 감소시킬 수 있고, 고장 예측과 Failover 개선은 계획외 정지를 20% 이상 줄일 수 있다. 약점 구성 요소의 설계 변경은 MTBF를 1.22.0배 향상시킬 수 있다.

계산 예시로 보는 신뢰도와 열화 시뮬레이션

전제조건: Python 3.10+, numpy, scipy 설치

# pip install numpy scipy
import numpy as np
from scipy.stats import weibull_min, invgauss

# 1) k-out-of-n 시스템 신뢰도 (이기종 Weibull)
def R_weibull(t, k, lam):
    # scipy는 c=k(형상), scale=lam
    return weibull_min.sf(t, c=k, scale=lam)  # 1 - CDF

def R_k_out_of_n(t, ks, lams, k_req):
    n = len(ks)
    R = np.array([R_weibull(t, ks[i], lams[i]) for i in range(n)])
    # 조합 합 계산(소규모 n 권장). 대규모는 DP/컨볼루션 사용.
    R_sys = 0.0
    from itertools import combinations
    for j in range(k_req, n+1):
        for idx_on in combinations(range(n), j):
            p_on = np.prod(R[list(idx_on)])
            idx_off = [i for i in range(n) if i not in idx_on]
            p_off = np.prod(1 - R[idx_off]) if idx_off else 1.0
            R_sys += p_on * p_off
    return R_sys

# 예: n=4, k=3 구성
t = 1000.0
ks = [1.5, 1.3, 1.8, 2.0]
lams = [1200, 1100, 1500, 1400]
print("R_k/n(t=1000):", R_k_out_of_n(t, ks, lams, k_req=3))

# 2) Wiener(드리프트) 열화 임계 도달시간 분포(Approx.)
# X(t) = mu t + sigma W(t), 임계 L 도달시간 T ~ Inverse Gaussian(mean=L/mu, shape=(L/sigma)^2)
L, mu, sigma = 10.0, 0.02, 0.2
mean = L / mu
shape = (L / sigma) ** 2
# 예: t=300~1000 구간에서 고장확률
ts = np.linspace(300, 1000, 5)
fail_prob = invgauss.cdf(ts / mean, mu=1.0, scale=mean)  # SciPy 파라미터화 유의
print("P(T <= t) at ts:", list(zip(ts, fail_prob)))

k-out-of-n의 조합 합은 n이 커질수록 계산량이 증가한다. 대규모 구성에는 FFT/컨볼루션 또는 Poisson binomial 근사를 적용할 수 있다. Wiener 파라미터는 SciPy 파라미터화 차이를 확인해야 한다.

모델 결과를 운영에 연결할 때 확인할 항목

  • RBD/FTA를 작성하고 최소 절단집합을 파악한다.
  • 수명·열화·스트레스 로깅 체계를 만들고 검열을 라벨링한다.
  • 열화 단조성을 검정한 뒤 분포와 프로세스를 고르고 CCF를 반영한다.
  • 예측력 교차검증, 신뢰·예측구간 보고, 민감도 분석으로 결과를 검증한다.
  • 경보 임계를 최적화하고 스페어 전략, 재고, 정비 계획을 연동한다.

경보 임계값을 낮추면 미탐지는 감소하고 오탐은 증가한다. 높이면 그 반대가 된다. 비용-손실 함수를 기준으로 이 균형을 잡아야 한다. 구조 모델과 열화 기반 확률과정을 함께 적용하고, 데이터 품질과 CCF를 포함한 보수적·투명한 모델링을 유지할 때 설계 신뢰성과 운영 가용성을 함께 다룰 수 있다.

시스템 신뢰도열화 모델링신뢰성 공학예지정비확률과정