회사에서는 당장 필요한 기술을 만들다 보니 모델을 공부하는 일들이 적어져, 개별적으로 공부 겸 다양한 데이터 사례도 다뤄볼 겸 오픈 소스 데이터를 활용해보기로 하였다. 오늘은 ML 예측 모델을 활용하여 오픈소스를 활용한 사례를 소개하고자한다. 오늘의 주제는 리튬이온 배터리의 SoC를 예측하는 것이다. 데이터는 캐글(Kaggle)에서 발췌하였다.

 

원본 데이터 : Kaggle 활용하기

https://www.kaggle.com/code/dhakalamrit/lithium-ion-battery-state-of-charge-estimation

 

Lithium ion Battery State of Charge estimation

Explore and run machine learning code with Kaggle Notebooks | Using data from LG 18650HG2 Li-ion Battery Data

www.kaggle.com

관련 실험은 캐나다의 McMaster University 대학의 Dr. Phillip Kollmeyer가 수행해주셨다고한다. 감사합니다 :-)

 

데이터 대상 : LG 18650 HG2

LG 18650HG2

 

데이터 분석을 하기 위해서는 사전 데이터 정보의 파악이 중요하다. Kaggle에 따르면, 해당 데이터는 LG 18650HG2의 리튬이온 배터리 데이터라고 하는데, 아래 그림과 같이 원통형 배터리이다. (대개의 경우, 자동차 배터리는 테슬라를 제외하고는 파우치 배터리를 사용하고 원통형 배터리의 경우 소형 가전에 주로 사용된다. 테슬라의 경우에는 원통형 배터리를 사용하기도한다. 18650일 경우 앞의 두자리가 직경인 18mm, 높이가 65mm이다. 18650은 가장 흔하게 구할 수 있는 원통형 배터리 중 하나일 것이다.)

 

배터리를 실험하려면, Chamber라는 갇힌 박스 같은 공간에서 소위 전선을 연결하여 계측되는데, 해당 테스트 장비로는 (Digatron Firing Circuits Universal Battery Tester)로, 전압과 전류 정확도는 최대 값의 0.1%라고 한다. ML 모델을 만들어도 해당 오차는 감안해야한다는 의미이다.

 

데이터 구성

데이터 파일은 아래와 같이 구성되어 있는데, 온도에 따라 실험한 데이터가 개별적으로 수행되어있다. 오늘의 주제는 배터리의 SoC(State of Charge)인 즉 충전 상태를 예측하는 것인데, 쉽게 설명하자면 배터리 회사에서 제조한 초기 정격 용량 이 배터리에서는 3Ah (Nominal Capacity) 대비 충전이 얼마나 되어있는지를 나타내는 지표라고 할 수 있다.

이러한 SoC는 온도에 민감하게 반응하는데, 이유는 배터리는 아주 전기화학적인 장치라 반응 속도와 내부 저항에 큰 영향을 미쳐 전압 및 용량 특성이 변화하기 때문이다. 따라서, 저온에서는 전압이 더욱 낮게 나타날 수 있으며, SoC가 실제보다 낮게 측정될 가능성이 있고, 고온에서도 SoC가 더 높게 측정될 가능성이 있다.

따라서, 향후 온도는 SoC를 예측모델을 만들기 위한 입력 변수가 될 것이다.

 

Kaggle 데이터 구성

 

본격적으로 데이터에 들어가기에 앞서 Readme에 적힌 데이터 열 정보와 시간 간격, 테스트 정보를 파악해보자.

데이터의 시간 간격은 테스트 별로 상이한데, 드라이브 사이클 등 중요한 테스트는 0.1초 시간 간격으로, 충전 및 대기 등 비교적 중요하지 않은 테스트는 더 낮은 데이터 속도로 저장되었다고 한다. 데이터 속도의 차이를 고려해 필요시 업샘플링을 수행해아할 수 있으며, 파일의 샘플링 속도는 가변적이므로 매개변수에 따라 시간 축을 사전에 전처리해야할 필요가 있어보인다.

데이터 열의 정보는 아래와 같다.

Name Description Units
Time 시간
TimeStamp 타임스탬프 MM/DD/YYYY HH:MM:SS AM 형식
Voltage 셀 단자 전압(배터리 단자에 직접 연결된 센스 리드로 측정) V
Current 전류 A
Ah 용량 (충전, 테스트, 또는 드라이브 사이클 후 초기화) Ah 
Wh 와트-시간(충전, 테스트, 또는 드라이브 사이클 후 초기화) Wh
Power 전력 W
Batter_Temp_degC 배터리 중간 케이스 온도(AD592 온도 센서로 ±1℃ 정확도로 측정)

 

파일은 매트랩으로 구성된 파일 .mat과 .csv 파일 모두 동일한 형식이며, 파일명의 테스트 번호와 설명이 라벨링되어 있어 참조할 수 있다. 예시로 "555_Dis_2C.csv"는 테스트번호 555 이며 2C 방전(Discharge)을 의미한다고 한다.

 

여기서 2C는 방전 속도를 의미하는데, 배터리 용량을 한번 풀 충전하는 속도를 C-rate로 표기한다. 배터리의 정격 용량이 3Ah인 배터리의 경우, 1C로 방전한다고 하면 3A의 전류로 방전할때 1시간이 걸린다는 의미이다. 즉, 2C의 경우에는 6A로 방전한다는 의미이고, 2C 속도에서 배터리를 완전히 방전하려면 이론적으로 0.5시간(30분)이 걸린다는 의미이다.

 

테스트 설명

테스트는 서로 다른 온도 조건에서 수행되었으며, 펄스 방전 HPPC 테스트, C/20 충방전 테스트, 방전테스트, 드라이브 사이클테스트, 혼합 드라이브 사이클 테스트, 온도별 테스트 등 다양한 테스트가 반복되었다. 이는 탐색적 데이터 분석 EDA(Exploration Data Analysis) 을 수행하며 보다 자세하게 다뤄보기로 한다.

배터리 ECM(Equivalent Circuit Model, 등가 회로 모델)은 배터리의 전기적 동작을 간단한 회로로 표현한 모델이다.

liionpack으로 구현한 회로도

 

실제 배터리는 복잡한 화학 반응과 물리적 구조를 가지고 있지만, 전기적 성질만 관찰하고 싶을 때 이를 간단한 회로로 나타낸다. 즉, 복잡한 시스템을 간단히 표현한 것이 등가 회로이다. ECM과 비교하여 가장 많이 비교하는 배터리 모델이 물리기반 모델인데, 두 배터리 모델의 차이점은 다음과 같다.

물리기반모델(PBM, Physical Based Model) 등가회로모델(ECM, Equivalent Circuit Model)
셀의 동작을 지배하는 기본 물리학을 이해하고, 내부에서 외부로 셀의 역학 모델을 구축 - 셀의 동작 모델링 접근 방식에 대해 살펴보는 모델
- PBM보다 간단하다

 

 

파이썬을 이용하여 이러한 배터리 모델을 구현하기위하여, 일부 배터리 시뮬레이션 패키지를 제공한다. 일부 Customized는 힘들긴 하지만, 그래도 MATLAB과 같은 상용 툴에 비하여 무료라는 강력한 장점이 있다. 기회가 된다면 스터디해보아도 좋겠다.

특징 PyBaMM Liionpack
기반 모델 PBM (Physics-Based Model) ECM (Equivalent Circuit Model)
분석 대상 셀 단위의 화학적/물리적 동작 팩 단위의 전기적 성능
장점 - 높은 정확도 - 빠른 계산 속도
  - 물리적/화학적 동작 상세 분석 가능 - 대규모 팩 시뮬레이션 적합
  - 다양한 배터리 화학 구성 지원 - 사용자 친화적, 설정 간편
단점 - 계산 비용이 높음 - 내부 메커니즘 상세 분석 불가
  - 초기 학습 곡선이 높음 - 간단한 모델링에만 적합
적합한 사용 사례 - 셀 설계 초기 단계 - 팩 설계, 제어 알고리즘 개발
  - 정밀한 물리적/화학적 연구 - BMS 검증 및 실시간 제어 알고리즘
권장 사용 환경 - 연구 및 개발 - 실용적 시뮬레이션
계산 속도 느림 빠름
결론 정밀한 분석이 필요한 경우 추천 대규모 팩 분석과 빠른 계산이 필요한 경우 추천

 

https://pybamm.org/

 

PyBaMM - Homepage

Enhanced Simulation Performance PyBaMM enables efficient simulations of battery performance and aging, accelerating battery design and innovation.

pybamm.org

 

 

https://liionpack.readthedocs.io/en/latest/

 

 

 

istock 무료이미지

"사람은 계속 움직입니다, 그리고 이동은 안전해야합니다."

 

 

사람은 끊임없이 이동합니다. 이 단순한 진실은 우리의 생활, 도시, 그리고 전체 교통 시스템에 깊은 영향을 미칩니다. 사람들의 지속적인 움직임은 단순한 이동을 넘어서 새로운 기술, 서비스, 그리고 스마트 인프라의 발전을 촉진하고 있습니다. 이러한 변화 속에서 모빌리티의 정보는 안전, 효율성, 그리고 지속 가능성을 보장하는 핵심 도구로 주목받고 있습니다.


저는 사람들이 어떻게 움직이는지 궁금합니다. 그리고 어떻게 하면 더욱 안전하게 이동할 수 있을지를 연구하는 데 관심을 가지고 있습니다. 사람들의 이동수단과 더불어 상태를 정보를 파악하여, 보다 안전할 수 있는 방법을 심도 있게 탐구할 것입니다.


모빌리티 진단은 차량을 포함하지만, 차량 뿐만 아니라  교통 수단 전반, 도시 인프라, 그리고 스마트 모빌리티 플랫폼 등 다양한 요소를 포괄하는 개념입니다. 예를 들어, 전기차, 자율주행차, 공유 전동 킥보드, 자전거, 대중교통 시스템 등 우리 주변에 존재하는 다양한 이동 수단뿐 아니라, 산업의 밸류체인에 중요한 역할을 하는 선박이나 항공에도 기기에 대한 진단을 포함하기도 하죠.

 

이동 수단이 점차 무인화와 자동화가 되면서, 인적, 물적 안전을 포함하는 차원에서 모빌리티 진단은 필수적은 요소로 자리잡고 있습니다. 다양한 이동 수단과 인프라의 상태를 정확하게 파악하고, 문제를 사전에 예측하는 것은 매우 중요합니다. 모빌리티 진단 기술을 통해 우리는 각종 이동 수단의 안전성을 강화하고, 효율적인 관리를 통해 지속 가능한 교통 환경을 구축할 수 있습니다.

 

istock : 도시 데이터 이미지

 

어떻게 안전하게 움직일 수 있나요? 답은 데이터에 있습니다.

 

모빌리티 진단의 핵심은 바로 데이터입니다. 각종 센서와 시스템은 이동 수단 및 관련 인프라로부터 실시간 데이터를 수집하며, 이 데이터는 AI와 빅데이터 기술을 통해 분석됩니다. 그 결과, 각종 이동 수단의 성능, 안전 상태, 그리고 유지보수 필요성을 예측할 수 있습니다. 예를 들어, 전기차의 배터리 관리 시스템(BMS)는 배터리 상태를 점검해 수명을 늘리고 고장을 예방하는 역할을 하며, 화재나 정비 등 안전사고를 예방할 수 있습니다. 또한, 대중교통 시스템에서도 정비 시기 예측을 통해 운행 중단을 최소화할 수 있습니다.

 

모빌리티 진단 기술은 자율주행차에 국한되지 않고, 스마트 모빌리티 시스템 전반에 적용됩니다. 자율주행차는 물론, 공유 모빌리티 서비스, 스마트 시티 인프라 등은 모두 센서, 카메라 및 기타 데이터 수집 장비를 통해 주변 환경과 이동 수단의 상태를 지속적으로 모니터링합니다. 또한, 텔레매틱스와 IoT 기술을 통해 각 이동 수단의 상태를 원격으로 감시함으로써, 문제 발생 시 빠른 대응이 가능해집니다. 이처럼 다양한 이동 수단과 인프라가 연결된 스마트 모빌리티 시스템은 모빌리티 진단 기술에 크게 의존하고 있습니다.

모빌리티 진단의 현재와 미래를 말하다


모빌리티 진단 기술은 다양한 이동 수단을 아우르는 만큼, 해결해야 할 과제도 많습니다. 먼저, 데이터의 정확성과 신뢰성 확보가 필수적입니다. 잘못된 데이터나 분석 오류는 잘못된 판단으로 이어질 수 있습니다. 그렇기 때문에 모빌리티 내에 들어있는 기기에 대한 정확한 이해와 데이터 기술 개발을 위해서는 공학 전반에 걸친 융합적인 사고가 요구되기도합니다. 둘째, 연결된 시스템에서의 데이터 보안 문제 역시 중요한 이슈입니다. 해킹이나 데이터 유출 위험이 있으므로, 암호화와 인증 기술 등 보안 대책이 필수적입니다. 이처럼, 모빌리티 진단 기술은 기술적 혁신뿐 아니라 보안 및 데이터 관리 측면에서도 지속적인 개선이 요구됩니다.

 

시간이 계속 주어진다면, 모빌리티 진단의 기본 개념부터 시작하여, 다양한 기술과 실제 사례, 그리고 미래 전망까지 폭넓게 다루고 싶습니다. 모빌리티 진단이 왜 중요한지, 어떻게 작동하는지, 그리고 앞으로 어떤 변화가 예상되는지를 이해하고, 지속 가능한 이동 시스템과 미래 지향적인 모빌리티 혁신에 관심 있는 분들에게 유익한 기술을 제공하고 싶습니다.

모빌리티 진단이 단순한 차량 점검을 넘어, 도시 전체의 이동성과 스마트 인프라에 어떻게 기여하는지를 전문적이면서도 쉽게 풀어내고자 합니다. 앞으로 각 주제별로 자세한 사례와 기술적 분석을 통해, 보다 심도 있는 탐구를 할 것 입니다.

 

 

 

 

관련 일을 시작하면서, 경험들이 하나 둘 씩 누적되기 시작하였다.

학위를 졸업하고

첫 번째 회사에서 일하면서,

그리고 현 직장에 이직을 하면서,

 

나는 줄곧 현재 내가 서있는 위치가 어디인지 되돌아보면서

앞으로의 행동을 계획할 필요가 있다.

 

틈틈히 내가 했던 프로젝트를 정리하고 관련 기술들을 정리하면서

부족한 기술이 무엇이며 회고를 하곤하는데

최근에는 막연하게 떠오르지않는 키워드들을

ChatGPT를 통해 키워드를 모색하거나,

Naptune AI를 통해서 이미지 시각화를 통해 도움을 받았다.

 

https://neptune.ai/

 

neptune.ai | Experiment tracker purpose-built for foundation models

Monitor thousands of per-layer metrics—losses, gradients, and activations—at any scale. Visualize them with no lag and no missed spikes. Drill down into logs and debug training issues fast.

neptune.ai

 

간단하게 Request Trail을 눌러보면, 일부 이미지를 체험판으로 제공받을 수 있다.

 

Neptune.AI를 활용한 키워드 시각화 예시

 

Python으로 API를 받아, 학습용 이미지 생성에도 활용할 수 있을 것으로 보이는데, 유료 서비스도 매력적인 아이템이 될 수 있을 것으로 보인다.

+ Recent posts