Fault 주입
실제 팩은 결코 완벽하게 균일하지 않습니다: 용접이 들뜨고, 접점이 부식되고, 냉각 패드가 떨어지고, 제조 과정에서 셀 간 인터페이스가 흩어집니다. Fault 주입 패널은 완성된 팩에 이런 상황을 재현하고 다시 계산하게 해줍니다 — 약한 셀 하나가 달아올라 이웃을 잡아당기는 것을, 단일 셀 모델로는 결코 볼 수 없는 장면을 볼 수 있습니다.
여기서 시작: 어떤 실제 고장을 흉내 내고 싶나요?
수식을 몰라도 쓸 수 있습니다. 원하는 상황에 가장 가까운 것을 고르고, 노브 한두 개를 설정한 뒤 적용 후 재계산을 누르세요.
| 흉내 내고 싶은 상황 | 이렇게 하세요 |
|---|---|
| 냉각 패드를 잃은 셀 (패드 박리, 공기층) | 셀을 고르고 시나리오 냉각 패드 박리를 누르세요. 그 셀의 콜드플레이트 경로만 끊습니다. |
| 이웃과 열이 막힌 셀 (단열재, 들뜬 홀더) | 셀을 고르고 이웃-G를 낮게(0.2) 또는 0. 콜드플레이트 냉각은 그대로 남습니다. |
| 불량/고저항 용접 | 셀을 고르고 접촉-R을 올리기(예: 3–5). 병렬 그룹이 있는 팩이 필요 — 아래 주의사항. |
| 냉각도 나쁘고 용접도 나쁜 셀 | 셀 하나에 두 노브 다 설정. |
| 정상적인 공장 산포 (특정 불량 셀 없음) | 타깃 섹션은 비워두고 제조 산포를 올리기(CV 0.1–0.2). |
| 완벽한 팩으로 되돌리기 | 초기화를 누르면 모든 노브 기본값으로 무결함 팩 재계산. |
두 노브, 쉬운 말로
- 이웃-G (열). 셀이 이웃 셀과 열을 얼마나 잘 나누는지.
1이 정상이고, 낮추면 이웃으로 가는 열 경로가 막힙니다. 콜드플레이트와 공기로 가는 경로는 바꾸지 않으므로, 모든 셀이 비슷하게 발열하는 정상 운전에서는 효과가 작습니다. 냉각 패드 상실은 이 노브가 아니라 냉각 패드 박리 시나리오입니다. 언제나 안전합니다. - 접촉-R (전기). 셀의 탭 연결이 얼마나 좋은지.
1이 정상이고, 올리면 셀이 전기적으로 약해져 병렬 이웃이 그 전류를 대신 떠안습니다(고저항 용접).
세 단계
- 셀 선택. 3-D나 회로 뷰에서 클릭하면 패널이 그 셀로 열립니다 — 또는 인덱스를 입력하세요. 패널이 모듈 · 직렬 · 병렬 위치를 보여줘 무엇을 겨눴는지 알 수 있습니다.
- 노브를 설정하고 + 추가로 목록에 더합니다. 더 많은 셀에 반복하세요. 공장 산포는 대신 제조 산포를 설정합니다.
- 적용 후 재계산. fault 셀이 온도 히트맵에서 빨개지고, ΔT-스프레드 플롯이 무결함 팩 대비 영향을 정량화합니다.
팁: 먼저 팩을 한 번 클린으로 돌려 기준선을 만든 뒤, fault를 넣고 비교하세요. 모든 노브가 기본값이면 무결함 팩과 바이트 단위로 동일해 비교가 정직합니다.
직렬 전용 팩 주의사항
순수 직렬 string(병렬 셀 없음, Np = 1)에서 접촉-R을 올리면 string 전체가
개방회로가 됩니다 — 전류를 흘릴 병렬 경로가 없어 팩이 아예 방전하지 못합니다.
의도한 "죽은 셀 → 이웃이 대신" 동작은 병렬 그룹이 있는 팩(예: 데모 48S2P)이
필요합니다. 엔진이 접촉-R을 유한하게 클램프하고, 팩이 직렬 전용이면 패널이
경고합니다. 열 fault(이웃-G)는 언제나 안전합니다 — 모든 셀이 자기 냉각을 유지하므로
0에서도 모델이 잘 정의됩니다.
실제 예제로 보기
이 패널을 활용한 워크드 예제 세 가지:
- 모듈 핫스팟 찾기 — 열 fault.
- 죽은 셀과 그 이웃 — 전류를 재분배하는 전기적 fault.
- 냉각 트레이드오프 — 냉각이 fault 심각도를 어떻게 바꾸는지.
내부 동작
fault는 팩이 빌드된 뒤 계산 전에 적용되는 인터페이스 데이터의 일회성 교란입니다. 전기화학·열·전기 솔버는 건드리지 않고, 그들이 읽는 전도도와 저항만 스케일합니다. 제조 산포는 모든 edge 전도도와 link 저항을 평균 보존 lognormal 분포에서 표본합니다: 평균 거동은 그대로이고 셀 간 편차만 커지며, 고정 시드면 표본이 재현됩니다.
노브 레퍼런스 (엔진 계약)
| 패널 컨트롤 | 엔진 필드 | 의미 |
|---|---|---|
| 이웃-G × | faultCells의 Gx | 셀과 이웃 셀 사이 열전도도 배수 (0=이웃과 단절, 1=정상) |
| 냉각 패드 박리 | faultCells의 Gbottom | 그 셀의 콜드플레이트 경로 배수 (0=패드 상실) |
| 접촉-R × | faultCells의 Rx | 탭 저항 배수 (1=정상, 클수록 전기적으로 약함) |
| 제조 산포, G | G_contact_spread | edge 전도도의 lognormal CV (평균 보존) |
| 제조 산포, R | R_link_spread | link/탭 저항의 lognormal CV |
| 시드 | fault_seed | 재현 가능한 산포를 위한 RNG 시드 |
타깃 fault는 faultCells = "idx:GxM,RxM ..."로 전송됩니다.
효과가 안 보일 때
Fault 를 넣었는데 온도 곡선이 겹쳐 보인다면, 대개 fault 가 무시된 것이 아니라 물리적으로 작은 효과를 절대 온도 축에서 보고 있는 것입니다. 확인 순서:
- Fault 패널 아래의 적용 요약에서 실제로 보낸 배수와
엔진 적용 확인됨표시를 봅니다. 슬라이더는 선택된 셀 전체에 바로 반영됩니다. - clean 기준 실행을 눌러 같은 설정에서 fault 만 끈 결과와의 차이(ΔT, ΔI)를 봅니다.
- Plots 의 모듈별 시계열에서 T − pack mean 패널을 봅니다. 공통 온도 상승을 뺀 값이라 수십 분의 1 K 차이도 읽힙니다.
기준 팩(원통형 36S8P, SPMe, 1C 방전, 셀-공기 자연대류, 콜드플레이트 500 W/m²K, 엔진 빌드 22bbef1, 2026-09-18)에서 잰 참고값입니다. 같은 "fault" 라도 크기가 100배 넘게 다릅니다.
| Fault | 결과 |
|---|---|
| 모듈 하나(48셀) 전체에 이웃-G ×0.1, 탭 ×9 | 그 모듈 평균 +0.02 K |
| 셀 하나의 냉각 패드 박리 | 그 셀 +13.5 K |
| 모듈 하나(48셀) 전체의 냉각 패드 박리 | 그 모듈 평균 +22.1 K |
| 셀 하나의 탭 ×1000 (불량 용접) | 그 셀 전류 4.8 → 2.2 A, 같은 병렬군 이웃이 나눠 맡음. 그 셀의 연결부 발열 5.5 → 501 mW |
왜 첫 줄이 작은가:
- 탭 저항의 기준값이 µΩ 급입니다. 50 µΩ 에 ×9 를 해도 0.45 mΩ 이고, 추가 발열은 I²R 로 셀당 수 mW 입니다 (셀 자체 발열은 약 1 W). 불량 용접은 mΩ 급, 즉 ×100 이상입니다. 탭 슬라이더가 로그 스케일인 이유입니다.
- 병렬군 전체를 똑같이 약화시키면 전류 재분배가 없습니다. 전류 쏠림을 보려면 병렬군 안의 일부 셀만 약화시키세요.
- 탭 발열의 60 % 만 셀을 데웁니다. 나머지 40 % 는 노출된 버스바에서 공기로 나가는 것으로 봅니다 (엔진의 고정 가정). 각 셀에 실제로 들어간 몫은 실행 결과에 시계열로 따로 실려 오고, Fault 효과 카드가 그 값을 그대로 보여줍니다.
- 영역 fault 는 요소마다 한 번만 곱합니다. 서로 이웃한 두 셀을 모두 선택해도 그 사이 열전도에는 배수가 한 번만 (×0.1, ×0.01 이 아님) 적용되고, 엔진이 건드린 edge·탭·콜드플레이트 접촉 수를 echo 로 알려 줍니다. 엔진 빌드 22bbef1 이전에는 공유 edge 가 두 번 곱해졌기 때문에 예전 기록의 첫 줄은 +0.06 K 입니다.