REAL 시뮬레이션 스튜디오
물리 기반 전기화학 시뮬레이션 스위트
한양대학교 ERICA REAL Lab이 자체 개발한 물리 기반 전기화학 시뮬레이션 솔버 스위트입니다. 현재는 배터리에 집중해, 셀 단위 P2D·SPMe부터 MSMD 기반 3D 셀·모듈, 열폭주(Thermal Runaway)까지 다룹니다. 브라우저에서 바로 돌려보고, 곧 Python에서도 호출할 수 있습니다. 연료전지와 수전해 등 다른 전기화학 시스템으로도 차근차근 넓혀 갈 계획입니다.
시뮬레이션 솔버
Battery 1D
Newman pseudo-2D / 단일입자+전해질 셀 솔버. 전극 두께 × 입자 반경 방향을 해석합니다.
- ·방전 · 충전(CC-CV)
- ·C-rate / 온도 sweep · Compare
- ·UDDS 주행 사이클 · EIS 임피던스
- ·셀 디자이너: N/P · 에너지밀도 · OCV
- ·열관리(냉각 · h · T∞) · AI Studio Agent
Battery Pack
직병렬 팩·모듈 빌더: SPMe 셀의 회전 가능한 3-D 전기·열 네트워크 + 콜드플레이트 냉각·버스바 IR·단일셀 비교.
- ·3-D 팩: 파우치 · 각형 · 원통 모듈
- ·전기·열 네트워크 · 콜드플레이트 열질량
- ·셀별 분포 · 팩 vs 단일 SPMe 비교
- ·인터페이스 G/R 일괄 편집 · 실시간 재계산
Electrode DB
양극·음극 활물질의 OCV·물성 데이터베이스. 모든 곡선은 절대 stoichiometry 축, 모든 수치에 문헌 DOI가 붙습니다.
- ·13종: NMC 계열 · NCA · LFP · LCO · LNMO · 흑연 · Si · LTO
- ·결정학 θ축 위의 평균 OCV 곡선
- ·재료별 c_s,max · C_th · θ 창 · D_s · m_ref
- ·QC 통과 · 출처 확정 데이터만 수록
Battery 3D
셀 형상 전체에 걸친 3D 열·전기 분포를 푸는 MSMD 기반 솔버. 단일 lumped 셀로는 보이지 않는 공간적 비균일성을 잡아냅니다.
셀 내부 각 위치의 전기화학(Battery 1D의 P2D/SPMe)을 3D 열·전류 수송과 결합하는 다중스케일 프레임워크. 탭 위치·집전체·냉각 조건에 따른 온도 구배와 핫스팟을 해석합니다.
- ·원통형(18650/21700) · 파우치 · 각형
- ·탭/집전체 전류 비균일성
- ·냉각판 열관리 · 핫스팟 시각화
Battery Thermal Runaway
과충전·과열·내부단락 등으로 촉발되는 열폭주와, 셀에서 셀로 번지는 전파를 모사하는 안전 해석 솔버.
- ·트리거(과충전 · 과열 · 못관통 · 내부단락)
- ·발열 반응 카이네틱스
- ·셀→셀 전파 · 벤트/가스 발생
- ·모듈/팩 전파 · 안전 설계 평가
앞으로 나올 기능들
툴별 로드맵. 관심 있는 기능이 있으면 편하게 문의 주세요.
1DBattery 1D 관련
3DBattery 3D (MSMD) 관련
TRThermal Runaway 관련
곧, Python에서도
- 셀 선언과 실행 분리. Cell.from_preset(...) 또는 YAML/JSON 파일로 셀을 만들고, simulate(...)로 운전 조건에 맞춰 적분. 선언과 실행이 분리됩니다.
- 프리셋 프로파일. simulate(cell, profile=profiles.EIS/UDDS)로 EIS·UDDS(+GITT·drive cycle 등)를 바로 호출. 웹과 동일한 프로파일.
- 저수준 solve_dt. solve_dt(cell, state, I, dt)로 dt 한 스텝씩 전진. 임의 전류/부하 프로파일을 직접 루프로 구성.
- 같은 솔버, 같은 결과. 브라우저에서 검증한 셀을 코드로 그대로 재현. 대규모 sweep, 최적화·ML 결합, 자동 캘리브레이션에 활용.
# pip install real-battery (예정) from real_battery import Cell, simulate, solve_dt, profiles # 1) 셀 선언: 내장 preset 또는 YAML/JSON 파일로 생성 cell = Cell.from_preset("lco_graphite_doyle") # cell = Cell.from_file("my_cell.yaml") # YAML / JSON cell.set("anode.eps_s", 0.60) # 선택: 파라미터 조정 # 2) 운전 조건으로 적분: 표준 방전/충전 res = simulate(cell, mode="discharge", c_rate=1.0, T=25) # 3) 프리셋 프로파일: profile 인자로 eis = simulate(cell, profile=profiles.EIS, soc=0.5) udds = simulate(cell, profile=profiles.UDDS, T=25) # (저수준) solve_dt: dt 한 스텝만 적분 state = cell.initial_state(T=25, soc=1.0) for I in my_load: # A/m^2 state = solve_dt(cell, state, current=I, dt=0.5)
함께 해볼 만한 주제가 있나요?
공개 데모 외에도 REAL Lab은 노화, 파라미터 추정, MSMD 팩 스케일업, 열폭주 전파, 차세대 화학 등 다양한 연구를 합니다. 공동연구, 협력, 단순 문의까지 모두 환영합니다.
jinyongkim@hanyang.ac.kr