회사에서는 당장 필요한 기술을 만들다 보니 모델을 공부하는 일들이 적어져, 개별적으로 공부 겸 다양한 데이터 사례도 다뤄볼 겸 오픈 소스 데이터를 활용해보기로 하였다. 오늘은 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
데이터 분석을 하기 위해서는 사전 데이터 정보의 파악이 중요하다. 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를 예측모델을 만들기 위한 입력 변수가 될 것이다.
본격적으로 데이터에 들어가기에 앞서 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) 을 수행하며 보다 자세하게 다뤄보기로 한다.
'ComputerScience > 데이터인공지능' 카테고리의 다른 글
[AI활용] Naptune AI로 커리어로드맵 시각화하기 (0) | 2024.12.13 |
---|---|
[빅데이터분석기사] 실기 작업 3유형 t-test 연습문제 풀이 (0) | 2024.06.16 |
[키워드] XAI(eXplainable Artificial Intelligence, 설명가능한 인공지능) (0) | 2022.03.02 |
[키워드] 정량적 데이터 vs 정성적 데이터 (0) | 2022.01.24 |
[AI칼럼] 내가 AI 기술을 연구하면서 느낀 신중하게 다뤄야할 점 (0) | 2021.12.21 |