베어링 수명 계산(Bearing Life Calculation)은 ISO 281의 기본 정격수명 $L_{10}$으로 하중·회전수·정격하중의 관계를 운전 시간으로 바꾸는 절차다. 하중이 작은 R2R 가이드롤에서는 수명이 아니라 최소하중 조건이 베어링 크기의 상한을 정한다. 이 글은 두 조건을 한 화면에서 검증하는 PySide6 계산기를 만든다.

1. 문제 정의 — 수명은 넘치는데 검토가 끝나지 않는다
R2R 롤 베어링은 웹 장력의 합력과 롤 자중을 받는다. 가이드롤은 하중이 작아 계산 수명이 수천만 시간으로 나온다. 설계 검토는 흔히 여기서 멈춘다.
그러나 SKF 카탈로그는 일반 원칙으로 볼 베어링에 0.01C, 롤러 베어링에 0.02C의 최소하중을 걸어야 한다고 적었다. 하중이 매우 작으면 피로가 아니라 궤도면의 미끄럼(Skidding)·스미어링(Smearing)이나 케이지 손상이 흔히 주된 파손 기구가 되기 때문이다. 수명식만 보면 이 조건이 보이지 않는다. 하중이 작은 롤에서 먼저 확인할 조건은 무엇이며, 베어링을 크게 고르면 더 안전해지는가.
2. 기구학적 분석 — 장력 합력이 베어링에 도달하는 경로
웹이 롤을 감김각 $\theta$만큼 감싸면 입구·출구 장력의 벡터합이 롤에 작용한다.
$$F_r=2T\sin\frac{\theta}{2}$$
여기서 $F_r$은 장력 합력(N), $T$는 웹 장력(N), $\theta$는 감김각(°)이다. 롤 자중 $W$(N)와 합력 사이의 각을 $\gamma$라 하면 전체 하중은 코사인 법칙으로 합성한다.
$$F_t=\sqrt{F_r^{2}+W^{2}+2F_rW\cos\gamma}$$
양단 베어링이 하중을 같게 나눈다고 가정하면 베어링 1개의 반경하중은 $F_t/2$다. 축하중이 없으면 등가하중 $P$를 반경하중과 같게 둔다(순수 반경하중 가정).
$$L_{10}=\left(\frac{C}{P}\right)^{p},\qquad L_{10h}=\frac{10^{6}}{60n}L_{10}$$
$C$는 기본 동정격하중(kN), $P$는 등가 동하중(kN), $p$는 수명 지수(볼 3, 롤러 10/3), $n$은 회전수(rpm), $L_{10}$은 10⁶회전 단위 수명, $L_{10h}$는 시간 단위 수명(h)이다.
$$s_0=\frac{C_0}{P_0}$$
$C_0$는 기본 정정격하중(kN), $P_0$는 등가 정하중(kN)이다. 기준값은 아래 표로 정리한다.
| 항목 | 값 | 근거 |
|---|---|---|
| 수명 지수 $p$ | 볼 3, 롤러 10/3 | SKF 카탈로그(ISO 281 기준) |
| 요구수명 — 24시간 연속 사용 기계 | 40,000~50,000 h | SKF 카탈로그 Table 1 |
| 요구수명 — 하루 8시간 완전 가동 기계(인쇄 설비·컨베이어 포함) | 20,000~30,000 h | SKF 카탈로그 Table 1 |
| 권장 $s_0$ — 볼, 연속 운전, 하중 확실성 높음 | 영구 변형 허용 0.5 / 일부 허용 1 / 불허 2 | SKF 카탈로그 Table 7 |
| 권장 $s_0$ — 볼, 하중 확실성 낮음(피크 하중) | 1.5 이상 / 1.5 이상 / 2 이상 | SKF 카탈로그 Table 7 |
| 최소하중 | 볼 0.01C, 롤러 0.02C | SKF 카탈로그 |
| SKF 6210(깊은 홈 볼) | 50×90×20 mm, C 37.1 kN, C₀ 23.2 kN | SKF 제품 데이터 |
| SKF 22220 E(자동조심 롤러) | 100×180×46 mm, C 433 kN, C₀ 490 kN | SKF 제품 데이터 |
R2R 설비는 SKF 요구수명 표에 없다. 전극 라인이 24시간 연속 운전한다는 가정으로 40,000~50,000 h 행을 준용하고, 상한 50,000 h를 요구수명으로 쓴다(가정).
3. 계산/수식 검증 — SKF 6210 가이드롤 예제
예제 조건은 모두 가정값이며 현장 계측 후 재확인 요망이다. 웹 장력 300 N, 감김각 180°, 롤 자중 200 N, 합력과 자중이 같은 방향($\gamma$=0°, 최악 조건), 라인 속도 60 m/min, 롤 외경 100 mm다.
$$F_r=2\times 300\times\sin 90^{\circ}=600\ \mathrm{N},\qquad F_t=600+200=800\ \mathrm{N},\qquad P=400\ \mathrm{N}$$
$$n=\frac{v}{\pi D}=\frac{60}{\pi\times 0.100}=191\ \mathrm{rpm}$$
베어링 1개 하중은 400 N이다. 이 롤에서는 장력 합력이 자중의 3배라는 뜻이다.
$$L_{10h}=\frac{10^{6}}{60\times 191}\left(\frac{37.1}{0.400}\right)^{3}=6.96\times 10^{7}\ \mathrm{h}$$
$$SF_{1}=\frac{L_{10h}}{L_{req}}=\frac{6.96\times 10^{7}}{50000}=1392,\qquad SF_{2}=s_0=\frac{23.2}{0.400}=58$$
$SF_{1}$은 피로수명 여유, $SF_{2}$는 정적 안전율이다. 두 값 모두 권장값을 크게 넘는다. 피로와 정적 강도는 이 롤의 지배 조건이 아니라는 뜻이다.
하한 조건을 확인한다.
$$P_{min}=0.01C=0.01\times 37.1=0.371\ \mathrm{kN},\qquad \frac{P}{P_{min}}=\frac{0.400}{0.371}=1.08$$
정상 장력에서는 최소하중을 8% 넘긴다. 통판·대기처럼 장력을 150 N으로 낮추면 베어링 하중은 250 N이 되고 비는 0.67로 떨어진다. 저장력 운전에서 최소하중 조건을 벗어난다는 뜻이다.
베어링을 키우면 결과가 더 나빠진다. 자동조심 롤러 베어링 SKF 22220 E로 바꾸면 최소하중은 $0.02\times 433=8.66$ kN이다. 정상 장력의 베어링 하중 0.400 kN은 그 4.6%에 그친다. 가이드롤 베어링을 크게 고를수록 수명 계산은 좋아지지만 최소하중 조건은 멀어진다.
4. 실무적용(Shop-notes) — PySide6 계산기
아래 코드는 장력 합력, ISO 281 수명, 정적 안전율, 최소하중을 한 화면에서 계산한다. Python 3.11과 PySide6 6.11 환경에서 오프스크린 실행과 손계산 대조 테스트를 통과했다. 설치 순서는 다음과 같다.
- ☐ Python 3.11 이상 설치(설치 화면에서 PATH 추가 옵션 선택)
- ☐ 작업 폴더에서
python -m venv venv로 가상환경 생성 - ☐ 가상환경 활성화 — Windows
venv\Scripts\activate, macOSsource venv/bin/activate - ☐
pip install PySide6실행 - ☐ 아래 코드를
bearing_calc.py로 저장하고python bearing_calc.py실행
# bearing_calc.py — R2R 가이드롤 베어링 수명 계산기 (ISO 281 기본 정격수명)
# 검증 환경: Python 3.11, PySide6 6.11 / 실행: python bearing_calc.py
import math
import sys
from PySide6.QtWidgets import (QApplication, QComboBox, QDoubleSpinBox,
QFormLayout, QLabel, QPushButton, QWidget)
def roll_load(T, theta_deg, W, gamma_deg):
"""장력 합력과 롤 자중을 합성해 베어링 1개 반경하중[N]을 구한다."""
# 장력 합력: Fr = 2·T·sin(θ/2) (θ = 감김각)
Fr = 2.0 * T * math.sin(math.radians(theta_deg) / 2.0)
# 자중 합성(코사인 법칙): Ft = √(Fr² + W² + 2·Fr·W·cosγ)
Ft = math.sqrt(Fr**2 + W**2 + 2.0 * Fr * W * math.cos(math.radians(gamma_deg)))
# 양단 베어링 2개가 하중을 같게 나눈다고 가정
return Fr, Ft, Ft / 2.0
def bearing_check(kind, C_kN, C0_kN, P_N, n_rpm, L_req_h):
"""ISO 281 수명, 정적 안전율, 최소하중을 한 번에 계산한다."""
P = P_N / 1000.0 # N → kN (C와 단위 일치)
p = 3.0 if kind == "ball" else 10.0 / 3.0 # 수명 지수: 볼 3, 롤러 10/3
L10 = (C_kN / P) ** p # 기본 정격수명 [10^6 rev]
L10h = 1e6 / (60.0 * n_rpm) * L10 # 시간 환산 [h]
SF1 = L10h / L_req_h # 1차: 피로수명 여유
s0 = C0_kN / P # 2차: 정적 안전율 s0 = C0/P0 (P0 = Fr 가정)
k_min = 0.01 if kind == "ball" else 0.02 # 최소하중 계수(SKF 일반 권장)
P_min = k_min * C_kN
return {"L10h": L10h, "SF1": SF1, "s0": s0,
"P_min_kN": P_min, "min_ratio": P / P_min}
class Calc(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("R2R Roll Bearing Life (ISO 281)")
form = QFormLayout(self)
self.kind = QComboBox()
self.kind.addItems(["ball", "roller"])
form.addRow("베어링 종류", self.kind)
# (라벨, 초기값, 최소, 최대) — 초기값은 본문 예제(SKF 6210, 가정 조건)
spec = [("C [kN]", 37.1, 0.01, 5000), ("C0 [kN]", 23.2, 0.01, 5000),
("장력 T [N]", 300, 0, 1e5), ("감김각 θ [deg]", 180, 0, 360),
("롤 자중 W [N]", 200, 0, 1e5), ("방향각 γ [deg]", 0, 0, 180),
("회전수 n [rpm]", 191, 0.01, 1e5), ("요구수명 [h]", 50000, 1, 1e7),
("요구 s0", 1.5, 0.01, 100)]
self.box = {}
for label, val, vmin, vmax in spec:
sb = QDoubleSpinBox()
sb.setDecimals(2)
sb.setRange(vmin, vmax)
sb.setValue(val)
form.addRow(label, sb)
self.box[label] = sb
btn = QPushButton("계산")
btn.clicked.connect(self.run)
form.addRow(btn)
self.out = QLabel()
self.out.setStyleSheet("font-family: monospace;")
form.addRow(self.out)
self.run()
def v(self, key):
return self.box[key].value()
def run(self):
Fr, Ft, P_N = roll_load(self.v("장력 T [N]"), self.v("감김각 θ [deg]"),
self.v("롤 자중 W [N]"), self.v("방향각 γ [deg]"))
if P_N <= 0: # 하중 0이면 수명식이 발산하므로 계산하지 않는다
self.out.setText("P = 0 N: 장력·자중 입력을 확인하십시오.")
return
r = bearing_check(self.kind.currentText(), self.v("C [kN]"),
self.v("C0 [kN]"), P_N, self.v("회전수 n [rpm]"),
self.v("요구수명 [h]"))
ok = (r["SF1"] >= 1.0 and r["s0"] >= self.v("요구 s0")
and r["min_ratio"] >= 1.0)
self.out.setText(
f"Fr = {Fr:,.1f} N / Ft = {Ft:,.1f} N / P = {P_N:,.1f} N\n"
f"L10h = {r['L10h']:,.0f} h / SF1 = {r['SF1']:,.1f}\n"
f"s0 = {r['s0']:,.1f} / 최소하중 {r['P_min_kN']:.3f} kN "
f"(비 {r['min_ratio']:.2f})\n판정: {'적합' if ok else '재검토'}")
if __name__ == "__main__":
app = QApplication(sys.argv)
w = Calc()
w.show()
sys.exit(app.exec())
- 대안 기구 — 자동조심 롤러 베어링(22220 E급): 자동조심형이라 축 경사를 받아낸다. 미채택 사유: 정격하중이 커서 최소하중 0.02C(8.66 kN)가 가이드롤 하중(0.400 kN)의 약 22배다.
- 입력값 관리: 계산기의 C·C₀는 제조사 최신 데이터로 갱신한다. SKF 카탈로그도 최신 제품 데이터는 skf.com에서 확인하라고 적었다.
- 저장력 모드 입력: 통판·대기 모드의 최저 장력을 반드시 넣어 최소하중 비를 확인한다. 비가 1 미만이면 베어링 크기와 하중 조건을 재검토한다.
- 가공성(Machinability): 가이드롤 축의 베어링 자리는 연삭으로 마무리하고, 끼워맞춤 공차는 베어링 제조사 권장값을 도면에 명기한다.
5. 설계 반영 체크리스트
- 장력 합력 계산에 최대·최저 장력(통판·대기 포함)을 모두 넣었는가
- 합력과 자중의 방향각 γ를 실제 롤 배치로 확인했는가
- SF1(수명 여유)과 SF2(정적 안전율)를 제조사 권장값과 대조했는가
- 최저 장력 조건에서 최소하중 비가 1 이상인가
- C·C₀를 제조사 최신 데이터로 갱신했는가
확인 필요 항목
- R2R 설비 요구수명: SKF 표에 항목이 없어 24시간 연속 사용 기계 행을 준용했다(가정).
- 예제의 장력·자중·속도·롤 외경: 모두 가정값이다.
- 순수 반경하중 처리: 축하중을 무시한 가정이다. 축하중이 있으면 제조사 등가하중 식을 적용한다.
- 최소하중 0.01C·0.02C: SKF의 일반 원칙이다. 제품별 정밀 요구값은 카탈로그 제품 섹션의 산식으로 재확인한다.
- ISO 281:2007 개정: ISO 웹 페이지는 이 판이 2021년 재확인됐으며 ISO/DIS 281로 대체될 예정이라고 표시한다. 개정판 발행 시 수명식 적용 범위를 재확인한다.
한줄요약: 하중이 작은 R2R 가이드롤은 수명 L10h가 아니라 최소하중 0.01C가 베어링 크기의 상한을 정한다.
관련 기록: 전고체 전극코팅 R2R 장력관리 설계 · 레이저 노칭 드럼지그, 축처짐이 공차를 삼킨다
출처: SKF, Rolling bearings PUB BU/P1 17000/1 EN(2018) · SKF 6210 제품 데이터 · SKF 22220 E 제품 데이터 · ISO 281:2007 · ISO 76:2006 · BLH Nobel, Web Tension Design · Machine Design, Controlling web tension with load cells(2007-10-01)