- 세상의 모든 계산기 자유(질문) 게시판 일반 ()
SMPS등 회로 수리시, 뻥 방지 전구(회로) (feat. Chatgpt and deepseek)
뻥방지 전구(과전류 보호 전구)의 원리
SMPS(스위칭 모드 전원 공급 장치) 등의 전기장비 수리 후 테스트할 때 뻥방지 전구를 사용하는 이유는, 수리된 회로에 단락(쇼트) 또는 과부하 문제가 있을 경우 전원 투입 시 즉시 퓨즈가 나가거나 부품이 파손되는 것을 방지하기 위해서입니다.

ㄴ 쇼트 등 비정상 상태라서 SMPS 저항값이 1옴일 때를 가정하면, SMPS에 과전류(220A)가 흐르게 됨.
ㄴ 파라미터 V_source = 220 # 공급 전압 220V, R_normal = 1000 # 정상 SMPS 저항(Ω) 1k옴, R_fault = 1 # 비정상 SMPS 저항(Ω)
ㄴ 그래프는 단순 참고용으로, 실제 현실과 다릅니다.
원리 및 동작 방식
-
직렬 연결 방식
- AC 입력 전원과 SMPS 회로 사이에 전구(백열전구)를 직렬로 연결합니다.
- 만약 SMPS가 정상이라면, 전구는 거의 빛나지 않고 미세한 발열만 합니다.
- 만약 쇼트(단락)나 과부하가 있다면, 전구의 필라멘트가 밝게 빛나며 SMPS로 흐르는 전류를 제한합니다.
-
전류 제한 역할
- 뻥방지 전구는 전류가 지나치게 많아지면 저항이 급격히 증가하는 성질을 가집니다.
- 백열전구의 필라멘트는 PTC(Positive Temperature Coefficient) 성질을 가지므로, 과전류가 흐르면 순간적으로 저항이 증가하여 전류를 제한합니다.
- 결과적으로 퓨즈가 끊어지거나 부품이 폭발하는 것을 방지할 수 있습니다.
-
이상 여부 판별
- 전구가 꺼져 있다면 → 정상 동작 (SMPS가 부하를 정상적으로 공급)
- 전구가 순간 깜빡이고 꺼짐 → 정상 (정류 콘덴서 충전 후 정상 동작)
- 전구가 계속 켜져 있음 → 쇼트 가능성 높음 (SMPS 1차측에서 이상 발생)
- 전구가 매우 밝게 빛남 → 심각한 쇼트 (전원 투입 시 과전류 상태)

ㄴ 직렬 연결이기 때문에
ㄴ 전압 : 전체 회로에 걸리는 전압은 220V = 전구에 걸리는 전압 + SMPS에 걸리는 전압
ㄴ 전류 : 전구와 SMPS 회로에는 동일한 전류가 흐름.
ㄴ 그래프는 단순 참고용으로, 실제 현실과 다릅니다.
사용하는 전구의 종류
- 일반적으로 100W~200W 백열전구를 사용합니다.
- LED 전구는 이런 특성이 없기 때문에 사용할 수 없습니다.
- 전구의 전력(W)이 높을수록 저항값이 낮아져 초기 테스트 시 주의해야 합니다.
SMPS 수리 후 뻥방지 전구 테스트 절차
- SMPS의 1차측 입력선(AC 전원선)과 직렬로 백열전구를 연결
- 전원을 켜고 전구의 밝기를 확인
- 전구가 순간 깜빡이고 꺼지면 → 정상 작동
- 전구가 계속 밝게 켜지면 → 쇼트나 이상 부품 확인 필요
- 정상 작동을 확인한 후, 전구를 제거하고 직접 AC 입력 테스트 진행
장점
- 과전류로 인한 1차 회로 손상을 방지
- 퓨즈가 연속적으로 끊어지는 것을 막음
- 쇼트 여부를 빠르게 판단 가능
- 간단한 부품(백열전구)만으로 테스트 가능
한계점
- 전구의 저항 특성상 일부 회로에서는 오작동할 가능성 있음
- 고출력 SMPS 테스트 시 너무 낮은 전구 전력 사용 시 동작 불안정. (장비 정상이어도 전구에 불이 켜짐)
- 전구를 지나친 의존하면 근본적인 수리 문제를 놓칠 수도 있음
- 전구와 장비가 전압을 나눠 가지기 때문에 220V에서 정상 운영이 되는지 확인하려면 전구를 반드시 제거하고 테스트를 해야 정확함.
💡 결론:
뻥방지 전구는 SMPS 수리 후 초기 테스트에 유용한 도구이며, 쇼트 및 과부하를 빠르게 진단하는 역할을 합니다. 하지만, 전구를 통한 테스트만으로 모든 문제가 해결되지는 않으므로, 이후 오실로스코프 및 멀티미터를 활용한 추가 점검이 필요합니다.
import matplotlib.pyplot as plt
import numpy as np
# 한글 폰트 설정 (Windows 환경)
plt.rc('font', family='Malgun Gothic') # 맑은 고딕 사용
plt.rc('axes', unicode_minus=False) # 마이너스 기호 깨짐 방지
# 공통 파라미터
V_source = 220 # 공급 전압 220V
R_normal = 1000 # 정상 SMPS 저항(Ω)
R_fault = 1 # 비정상 SMPS 저항(Ω)
R_bulb_normal = 50 # 정상 작동시 전구 저항(Ω)
R_bulb_fault = 200 # 과전류시 전구 저항(Ω)
# 시나리오 1: 뻥방지 전구 없을 때
def scenario1():
I_normal = V_source / R_normal
I_fault = V_source / R_fault
plt.figure(figsize=(10,6))
bars = plt.bar(['정상 상태', '비정상 상태'],
[I_normal, I_fault],
color=['green', 'red'])
plt.ylabel('전류 (A)', fontsize=12)
plt.title('뻥방지 전구 없을 때 전류 비교', fontsize=14)
plt.ylim(0, 25)
# 주석 추가
for bar, label, resistance in zip(bars, ['정상', '비정상'], [R_normal, R_fault]):
height = bar.get_height()
plt.text(bar.get_x() + bar.get_width()/2., height,
f'{height:.2f}A\nR={resistance}Ω',
ha='center', va='bottom')
plt.grid(axis='y', linestyle='--')
plt.show()
# 시나리오 2: 뻥방지 전구 있을 때
def scenario2():
# 정상 상태 계산
I_normal = V_source / (R_normal + R_bulb_normal)
V_smps_normal = I_normal * R_normal
V_bulb_normal = I_normal * R_bulb_normal
# 비정상 상태 계산
I_fault = V_source / (R_fault + R_bulb_fault)
V_smps_fault = I_fault * R_fault
V_bulb_fault = I_fault * R_bulb_fault
# 그래프 생성
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14,6))
# 전압 분배 비교 (스택형 막대 그래프)
labels = ['정상', '비정상']
smps_voltages = [V_smps_normal, V_smps_fault]
bulb_voltages = [V_bulb_normal, V_bulb_fault]
ax1.bar(labels, smps_voltages, color='blue', label='SMPS 전압')
ax1.bar(labels, bulb_voltages, color='orange', bottom=smps_voltages, label='전구 전압')
ax1.set_title('전압 분배 비교')
ax1.set_ylabel('전압 (V)')
ax1.legend()
# 각 전압 수치 표시
for i in range(len(labels)):
ax1.text(i, smps_voltages[i] / 2, f'{smps_voltages[i]:.2f}V', ha='center', color='white', fontsize=10)
ax1.text(i, smps_voltages[i] + bulb_voltages[i] / 2, f'{bulb_voltages[i]:.2f}V', ha='center', color='white', fontsize=10)
# 전류 비교
ax2.plot(labels, [I_normal, I_fault],
marker='o', linestyle='--', color='green')
ax2.set_title('전류 흐름 비교')
ax2.set_ylabel('전류 (A)')
ax2.grid(True)
# 전류 값 및 저항 값 표시
for i, (val, resistance) in enumerate(zip([I_normal, I_fault], [(R_normal + R_bulb_normal), (R_fault + R_bulb_fault)])):
ax2.text(i, val+0.05, f'{val:.2f}A\nR={resistance}Ω', ha='center')
plt.suptitle('뻥방지 전구 있을 때 동작 특성', fontsize=14)
plt.tight_layout()
plt.show()
# 그래프 생성
scenario1()
scenario2()
세상의모든계산기 님의 최근 댓글
- claude AI는 l-c*r^2 을 1-c*r^2 으로 잘못 읽고 표시하고 있습니다. - TI-nspire CAS 계산기에 l-c*r^2 ≥0 을 조건에 추가해 계산해 보아도 결과는 바뀌지 않습니다. 2026 07.20 ⚠️ 경고가 바로 두 번째 방법이 "성공"한 이유와 정확히 연결되어 있습니다. 경고의 의미 "Domain of the result might be larger than the domain of the input"는 CAS가 절댓값(모듈러스)을 계산하는 과정에서 원래 식보다 정의역이 더 넓은 형태로 단순화했다는 뜻입니다. 구체적으로 이 계산은 내부적으로 대략 이런 과정을 거칩니다. $$\left|\frac{er}{e\cdot r}\right| = \sqrt{\left(\frac{er}{e\cdot r}\right)\cdot\overline{\left(\frac{er}{e\cdot r}\right)}}$$ 즉 원래 식(복소수)과 그 켤레복소수를 곱해서 실수부·허수부 제곱합을 만들고, 거기에 다시 제곱근을 씌우는 과정입니다. 이 과정에서 √(x²) → x 또는 √a·√b → √(ab) 같은 규칙들이 쓰이는데, 이런 규칙들은 x가 실수이고 0 이상일 때만 엄밀하게 성립합니다. CAS는 이 조건들을 일일이 다 추적하지 않고 넘어가면서, 원래는 (e≠0, r+l·ω·i ≠ 0 등) 복소수 특유의 좁은 정의역을 가진 식을, r, l, ω가 어떤 실수여도(부호 무관하게) 정의되는 1/√(r²+l²·ω²)라는 더 넓은 정의역의 식으로 바꿔버린 것입니다. CAS는 이 손실을 감지하고 경고를 띄운 것입니다. 이게 왜 조건 대입 성공과 연결되는가 정리하면, 이 경고는 사실상 이런 뜻입니다. "나는 이 결과를 만들면서 원래 식이 가지고 있던 정의역 제약 정보(부호 조건, i 관련 조건 등)를 이미 버렸다." 바로 이 "정의역 정보를 버린" 상태가 이후 con_1 대입을 매끄럽게 만드는 원인입니다. 첫 번째 시도에서는 i가 살아있는 원래 식에 조건을 대입했기 때문에, CAS가 √(1-c·r²)이 실수인지(정의역 조건: 1-c·r² ≥ 0) 계속 추적하려고 했고, 그 정보가 con에 없어서 더 이상 정리를 못 하고 멈췄습니다. 두 번째 시도에서는 절댓값 계산 단계에서 이미 그런 세밀한 정의역 추적을 CAS 스스로 포기(단순화)했기 때문에, 이후 ω에 무리식을 대입해도 "이게 실수가 맞나?" 하는 검증 절차 없이 그냥 대수적으로 치환·정리해 버립니다. 그래서 깔끔하게 √c/√l이 나온 겁니다. 한 줄 요약 절댓값 계산 시 뜬 "정의역이 넓어졌을 수 있다"는 경고는, CAS가 그 순간에 원래 식의 엄밀한 조건(정의역)을 놓쳤다는 신호이고, 바로 그 "조건을 놓친 상태"이기 때문에 뒤에 이어지는 조건식 대입이 막힘없이 진행된 것입니다. 다만 그 대가로, 결과인 1/√(r²+l²·ω²)이나 최종 √c/√l이 원래 회로 조건(i≠0이 되는 경계, 분모가 0이 되는 경우 등)에서는 엄밀히 성립하지 않을 수 있다는 점은 감안하셔야 합니다. 실제 물리적으로는 r, l, c > 0이고 결과도 물리적으로 타당한 형태라 문제없어 보이지만, 수학적 엄밀성 측면에서는 "정의역이 넓어진 근사적 결과"라는 꼬리표가 붙어있는 셈입니다. 2026 07.20 Claude AI 답변 TI-Nspire CAS의 | (such that / 조건대입) 연산자는 대입 시점의 수식 형태를 그대로 두고 기호만 치환하는 연산입니다. 대입 후에 처음부터 다시 "실수부/허수부 분리, 유리화" 같은 재간소화를 자동으로 수행하지 않습니다. 이 차이가 지금 보신 결과 차이의 핵심입니다. 첫 번째 경우 (|er/(e·r)| | con_1 and con → 실패) 이 시점의 식은 아직 r + l·ω·i 형태의 복소수 그대로입니다 (i가 살아있음). 여기에 con_1: ω = √(1-c·r²)/(√c·l)을 대입하면, 분모 안에 i · √(1-c·r²) 라는 항이 새로 생깁니다. 문제는 CAS가 √(1-c·r²)이 실수인지(즉 1-c·r² ≥ 0인지) 판단할 근거가 없다는 겁니다. 저장해 두신 con 조건은 c>0, l>0, r>0뿐이고, 1-c·r²≥0이라는 조건은 포함되어 있지 않습니다. 그래서 CAS는 i와 이 무리식을 더 정리(유리화, 실수부·허수부 재결합)하지 못하고 있는 그대로 남겨둡니다. 결과에 여전히 i가 보이는 이유입니다. 두 번째 경우 (결과값 1/√(r²+l²·ω²)에 대입 → 성공) |er/(e·r)| (절댓값/모듈러스) 연산은 그 자체로 이미 "복소수 → 실수" 변환을 완료한 결과입니다. 즉 1/√(r²+l²·ω²)에는 더 이상 i가 없고, 순수하게 r, l, ω로만 이루어진 실수식입니다. 이 식에 ω = con_1을 대입하는 것은 그냥 실수 대수식에 실수 대입하는 것이므로, i와 무리식이 뒤엉키는 문제 자체가 발생하지 않습니다. 그래서 바로 깔끔하게 √c/√l로 정리됩니다. 정리하면 절댓값(모듈러스) 계산은 "이 값들이 실수다"라는 가정을 이미 내부적으로 써서 i를 제거하는 연산입니다. 그 연산을 조건 대입 이전에 해두면, 이후 대입은 단순 실수 대입이라 문제없이 정리됩니다. 반대로 i가 남아있는 식에 무리식을 포함한 조건을 먼저 대입하면, 그 무리식의 실수성/부호에 대한 가정이 없어서 CAS가 i를 소거하는 재간소화를 못 하고 멈춰버립니다. 실용적 팁: 복소식에 조건을 대입해야 할 때는 가능하면 절댓값·실수화(유리화) 등을 먼저 끝내서 i를 없앤 뒤 조건을 대입하거나, 대입 후 결과에 다시 simplify/expand/combine 같은 명령을 한 번 더 걸어주면 (필요한 도메인 조건과 함께) 정리가 되는 경우가 많습니다. 2026 07.19 저도 어림잡아 추측할 뿐이지 정확한 이유를 알지는 못합니다. 질문하신 사진을 그대로 (Gemini 3.5 Flash / ChatGPT / Claude Sonnet 5) AI에 넣어 보니 claude AI 가 제일 합리적인 답변을 주어서 이를 붙여 넣습니다. 2026 07.19 아 그렇네요. 감사합니다. ^^ 2026 04.28