# data[].attributes.body
readme 곧 개시 예정

# data[].attributes.attachment_link.title
GitHub - ilikeadofai/battery_discussion: A discussion about electric cars' battery and simulation

# data[].attributes.attachment_link.description
A discussion about electric cars' battery and simulation - ilikeadofai/battery_discussion

# data[].attributes.body
"가짜 뉴스"의 정의

관련 사례

현재 팩트체크를 위해 이루어지고 있는 노력들(자동/수동 팩트체크, 각 장단점)

수동 팩트체크 내용을 AI 모델에 학습 시켜도 좋을 것 같음.

AI 학습법

인공신경망

자연어 처리 기법

# data[].attributes.headline
진짜 뉴스/가짜 뉴스 데이터셋

# data[].attributes.subject
진짜 뉴스/가짜 뉴스 데이터셋

# data[].attributes.attachment_link.description
Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data science goals.

# data[].attributes.headline
왜 이 주제를 선정했는가

# data[].attributes.subject
왜 이 주제를 선정했는가

# data[].attributes.body
오늘날은 AI의 발전, 인터넷 발전의 급속화로 여러가지 검증되지 않은 정보들이 빠르게 확산됨. 이러한 정보 중 사실도 있지만, 허위 정보가 더 빠르게 확산된다는 연구 결과가 있을 정도로 가짜 뉴스는 사회의 심각한 문제임. 나도 실제로 SNS를 보면서 출처가 없는 검증되지 않은 정보를 보고 혼란스러웠던 적이 있음. (예: 계엄령때 밤 10시 이후 통행 금지라는 가짜 정보가 매우 빠르게 확산 된 적 있음.) 이런 허위 정보는 사회적/정치적으로 큰 문제가 됨. 변별력이 없는 사람들의 경우 이러한 정보에 선동되어서 잘못된 사고를 할 수 있다고 생각이 듦. 이러한 AI의 잘못된 사용을 바로 잡고자 나는 AI로 이러한 가짜 정보를 판별하고 언론사의 성향을 파악하여 알려주어 독자가 비판적 사고를 할 수 있게 도와주는 브라우저 확장프로그램을 제작하고자 함.

# data[].attributes.headline
선행 연구와 나의 탐구의 차이점?

# data[].attributes.subject
선행 연구와 나의 탐구의 차이점?

# data[].attributes.body
가짜뉴스를 검증하는 AI는 존재하지만, 확장프로그램은 존재하지 않음. AI 모델 설계/제작 이후, 일반 사용자들에게 더 접근성이 좋은 방법으로 AI를 사용할 수 있는 방향으로 탐구 해볼것.

# data[].attributes.headline
초기 프로그램 설계(작성중)

# data[].attributes.subject
초기 프로그램 설계(작성중)

# data[].attributes.body
일단 확장프로그램을 만들기 위해

핵심 AI 모델링

데이터 수집

UI 설계

세가지를 해야함.

초기 프로그램에서는 AI는 Gemini API로.

# data[].attributes.headline
내용 엎기! 주제는 AI 디지털 신뢰 지수로.

# data[].attributes.subject
내용 엎기! 주제는 AI 디지털 신뢰 지수로.

# data[].attributes.body
AI 기반 디지털 신뢰 지수 확장프로그램 만들기로 급히 선회. 배터리 관련 주제 하는 중 자료가 너무 전문적이어서 해석하는데 어려움을 겪음. 난이도가 학부생 이상 난이도. 하지만 너무 쉽게 하면 AI를 사용하지 않고 그냥 식 몇개만 쓰는 단순한 탐구가 되버림. 만약 그대로 진행한다면, 대학 면접 시 혹시나 배터리에 대해 내가 작성한 코드 만큼 잘 대답하지 못 할것 같음. 또한, 하는 탐구가 딱히 사회적 문제를 해결하는데 큰 도움을 줄 것 같지 않음. 좀 더 사회의 문제를 해결할 수 있고 AI/소프트웨어와 관련된 주제를 하고 싶었음. 프로그램 제작 난도가 생각보다 높지 않았음. 그 결과 주제를 바꾸게 되었음.

# data[].attributes.headline
1. 일단 배터리가 터지는 이유를 알아보자.

# data[].attributes.subject
1. 일단 배터리가 터지는 이유를 알아보자.

# data[].attributes.body
온도때문에 터진다. 자세한 이유는 참고자료들 섹션 - 배터리 폭발 이유 를 참고하자. 이것을 해결하기 위해 AI가 BMS(Battery Management System)을 제어하는, AI-BMS 시스템을 만들어서 해결해볼려고 한다. 폭발 방지 뿐만 아닌, 배터리를 더욱 효율적으로 사용하여 전기차의 수명도 늘리는 효과도 볼 것 이라 생각된다. 그러면 Concept-Dataset-Programming 순으로 한번 탐구를 시작해보자.

# data[].attributes.headline
2. 최적의 배터리 상태를 계산해볼까? - Basic Concept of Batteries

# data[].attributes.subject
2. 최적의 배터리 상태를 계산해볼까? - Basic Concept of Batteries

# data[].attributes.body
온도 전압 전류간의 관계식을 찾아보도록 하자!

기본적인 배터리에서의 전압, 전류 관련 관계식이다: V_terminal = V_ocv(SoC, T) - V_drop(I, SoC, T)

V_terminal: 우리가 실제로 측정하는 배터리의 전압입니다.

V_ocv(SoC, T): 개방 회로 전압 (Open Circuit Voltage).

배터리에 전류가 흐르지 않을 때의 순수 전압입니다.

이 값은 고정된 상수가 아니며, 충전 상태(SoC, State of Charge)와 온도(T)에 따라 변하는 함수입니다.

이 함수(V_ocv vs SoC의 관계)는 보통 실험을 통해 얻은 데이터를 기반으로 한 조회 테이블(Look-up Table) 형태로 만들어집니다.

V_drop(I, SoC, T): 전압 강하 (Voltage Drop).

전류(I)가 흐를 때, 배터리 내부의 여러 저항 요소들 때문에 발생하는 전압 손실입니다.

이 전압 강하는 다시 여러 부분으로 나눌 수 있습니다. 가장 간단한 모델은 다음과 같습니다. 이는 과학시간에 배운 내용이다. V=IR. 옴의 법칙, 다 알고 있지 않은가?
V_drop = I × R_internal(SoC, T)

I: 흐르는 전류의 크기.

R_internal(SoC, T): 내부 저항 (Internal Resistance). 이 값 역시 상수가 아니며, 충전 상태(SoC)와 온도(T)에 따라 변하는 함수 또는 조회 테이블입니다.

이번에는 줄의 법칙이다. 이는 배터리의 온도를 계산할 때 사용될 것 이다.

Power_heat = I² × R_internal(SoC, T)

Power_heat: 단위 시간당 발생하는 열에너지(단위: W).

이 열 발생률을 배터리의 열용량과 열전달 계수와 결합하면, 시간에 따른 온도 변화(dT/dt)를 계산할 수 있습니다.

P=VI=I^2R=R/V^2. 소비전력을 구하는 간단한 식이다. 이도 과학시간에 배웠을 것 이다.

이제 우리는 이와 같은 결과를 얻을 수 있다!

SoC와 T를 입력하면 V_ocv를 알려주는 조회 테이블 또는 함수.

SoC와 T를 입력하면 R_internal을 알려주는 조회 테이블 또는 함수.

이들을 조합하여, 어떤 시점의 SoC와 T, 그리고 흐르는 전류 I를 알면, 그 순간의 V_terminal과 Power_heat를 즉시 계산해낼 수 있는 당신만의 '단순화된 수학적 예측 모델'.

자, 그러면 프로그래밍의 세계로 가보자.

# data[].attributes.headline
내용 약간 수정(폐기됨)

# data[].attributes.subject
내용 약간 수정(폐기됨)

# data[].attributes.body
배터리 효율 내용 말고 폭발 이유/방지 관한 내용이 주가 될 수도 있음. 여러 요인이 각각 어떤 경우에 배터리 상태가 어떠해지는지, 또 이를 제어하는 AI BMS(Battery Managing System)을 시뮬레이션 값을 이용하여 머신러닝을 돌려 제작해볼 예정. AI BMS 시스템 만들기에는 실패하더라도 최소한 배터리 상태에 관한 계산과 시뮬레이션을 파이썬으로 계산해 볼 것임.

# data[].attributes.attachment_link.title
PyBaMM documentation — PyBaMM v25.8.0 Manual

# data[].attributes.body
2학기 과학 보고서.

# data[].attributes.attachment_link.title
GitHub - ilikeadofai/eco_monitoring: Shows Eco-friendly monitoring results in WIndows. (Not final version. Only essential features are finished. Some functionalitys might not work.)

# data[].attributes.attachment_link.description
Shows Eco-friendly monitoring results in WIndows. (Not final version. Only essential features are finished. Some functionalitys might not work.) - ilikeadofai/eco_monitoring

# data[].attributes.headline
배터리 폭발 이유(폐기)

# data[].attributes.subject
배터리 폭발 이유(폐기)

# data[].attributes.headline
사진 압축 방식과 함수

# data[].attributes.subject
사진 압축 방식과 함수

# data[].attributes.body
https://github.com/ilikeadofai/image_compression

현재 결과물 만듦, 보고서없음

# data[].attributes.attachment_link.description
Contribute to ilikeadofai/image_compression development by creating an account on GitHub.

# data[].attributes.headline
AI 기반 “디지털 신뢰 지수”(주제 재선정)

# data[].attributes.subject
AI 기반 “디지털 신뢰 지수”(주제 재선정)

# data[].attributes.body
웹사이트/뉴스/영상마다 신뢰 점수를 매겨주는 브라우저 확장 프로그램.

허위 정보·가짜뉴스 문제 해결.

# data[].attributes.headline
네트워크 구조 이론과 서버 운영 경험, 클라우스 서비스와 개인 서버간 경제적 효율 비교

# data[].attributes.subject
네트워크 구조 이론과 서버 운영 경험, 클라우스 서비스와 개인 서버간 경제적 효율 비교

# data[].attributes.body
정보 1단원 연계. 수업에서 LAN, 라우터 개념은 배웠지만 실제로 어떻게 동작하는지는 체감 부족. 남는 컴퓨터로 개인용 NAS 제작. 리눅스 기반 홈서버 구축을 통한 LAN·라우터 개념의 체험과 이해라는 주제로 탐구. 내용에는 그 구성 방법을 상세히 적고 그에 따른 느낀점 작성. 실제 클라우드 서비스의 요금제와 개인 NAS가 사용하는 전력량 비교 후 어느 용량 이상부터 개인 NAS가 효율적인지 작성. 또한 네크워크 기본 이론들인 OSI 7계층, TCP/IP 구조 등도 이해 후 작성.

# data[].attributes.headline
AI 기반 혐오 발언 실시간 “톤 다운” 기능 앱

# data[].attributes.subject
AI 기반 혐오 발언 실시간 “톤 다운” 기능 앱

# data[].attributes.body
온라인 채팅에서 공격적 표현 입력 시, AI가 덜 자극적인 대안을 제안.

사이버폭력 완화.

# data[].attributes.body
인터넷·기지국이 마비돼도 블루투스/와이파이 다이렉트 등 통신기술로 스마트폰끼리 메시지 주고받기.

재난 현장에서 통신 대안으로 활용.

근데 거리가 짧아서 활용도는 낮을 것 같음.

# data[].attributes.headline
구형기기재활용+개인서버운영

# data[].attributes.subject
구형기기재활용+개인서버운영

# data[].attributes.body
배터리효율은 아무리 생각해봐도 같은 기기를 여러대 구하기 쉽지 않고 하는 의의가 없음. 따라서 제외함. 따라서 아래의 두 내용을 결합. 디지털 디톡스 내용은 제외해야할듯. 쓸 곳이 없음. 개인용 서버정도는 성능이 매우 안좋아도 가능. 제일 실현 가능성 높으면서 의의도 있기에 선정하면 좋을듯.

# data[].attributes.headline
구형 기기의 재활용과 지속 가능성

# data[].attributes.subject
구형 기기의 재활용과 지속 가능성

# data[].attributes.body
이건 프로그래밍쪽 아이디어는 아님. 집·학교 주변에 버려지는 구형 스마트폰/노트북 많음. 전자폐기물 문제. 구형 스마트폰을 활용한 디지털 디톡스 장치 제작과 사용성 분석. 사용 시간 비교하여 실제로 효과가 있는지 확인. 이 과정 속 핸드폰 중독 해소를 위한 해결책 찾기.

# data[].attributes.headline
머신러닝기반 손씻기 가이드 프로그램(공학트랙)

# data[].attributes.subject
머신러닝기반 손씻기 가이드 프로그램(공학트랙)

# data[].attributes.body
보고서 링크: https://drive.google.com/file/d/1BXu-IFDZiSWJVDrp8VLYrO9aNwQhniwK/view?usp=sharing

# data[].attributes.attachment_link.title
GitHub - ilikeadofai/WashHand: (미완성) Mediapipe를 이용하여 손의 위치와 형태를 파악하여 제대로 된 손 씻기 방법을 알려주는 프로그램

# data[].attributes.attachment_link.description
(미완성) Mediapipe를 이용하여 손의 위치와 형태를 파악하여 제대로 된 손 씻기 방법을 알려주는 프로그램 - ilikeadofai/WashHand

# data[].attributes.headline
배터리 효율에 따른 실제 성능 파이썬 분석

# data[].attributes.subject
배터리 효율에 따른 실제 성능 파이썬 분석

# data[].attributes.body
스마트폰 배터리 효율이 시간이 지나면서 떨어짐. 파이썬으로 충전/방전 로그 자동 수집 (ADB 통해 배터리 퍼센트, 온도 읽기) 충·방전 곡선 모델링 후 분석. 하지만 배터리 효율이 떨어지려면 꽤 오랜 기간이 걸리기에 만약 하게되면 장기 프로젝트가 될듯.

# data[].attributes.headline
DNA 관련 인코딩,디코딩 웹앱(1학기과학수행)

# data[].attributes.subject
DNA 관련 인코딩,디코딩 웹앱(1학기과학수행)

# data[].attributes.body
웹앱 링크: https://dna-app-sunduck.streamlit.app/

보고서 링크: https://drive.google.com/file/d/1FxSr7XYe1HOy1L481GLduo53mQ9mndlB/view?usp=sharing

# data[].attributes.attachment_link.title
GitHub - ilikeadofai/dna-app: S high school Project

# data[].attributes.attachment_link.description
S high school Project. Contribute to ilikeadofai/dna-app development by creating an account on GitHub.

# data[].attributes.headline
전기.전자공학과, 소프트웨어과

# data[].attributes.subject
전기.전자공학과, 소프트웨어과

# data[].attributes.headline
클래스카드 매크로(심심해서 만든거)

# data[].attributes.subject
클래스카드 매크로(심심해서 만든거)

# data[].attributes.attachment_link.title
GitHub - ilikeadofai/classcard_hack: Selenium을 이용한 클래스카드 매크로입니다. 개인 사용 목적으로 제작되었으며, 능률보카 어원편 [2021] 에서만 테스트 되었습니다. 실제 수업에서의 사용은 절대 금합니다. 모든 책임은 사용자에게 있습니다.

# data[].attributes.attachment_link.description
Selenium을 이용한 클래스카드 매크로입니다. 개인 사용 목적으로 제작되었으며, 능률보카 어원편 [2021] 에서만 테스트 되었습니다. 실제 수업에서의 사용은 절대 금합니다. 모든 책임은 사용자에게 있습니다. - ilikeadofai/classcard_hack

# data[].attributes.headline
아무 이어폰에서 ANC 기능 구현

# data[].attributes.subject
아무 이어폰에서 ANC 기능 구현

# data[].attributes.body
아무 이어폰의 마이크를 이용하여 ANC(액티브 노이즈 캔슬링)기능 제작. 실시간으로 바로 정보를 처리하긴 힘드니 AI로 그 딜레이 만큼의 시간 후의 소리 예측, 위상 반대인 파동으로 소리 변환후 소리 재생하면 가능하지 않을까? 라는 생각. 단 블루투스이어폰은 코덱의 한계로 LB2+ 이상의 코덱을 사용해야 될 것 같음. 또한 유선 이어폰은 소리가 나는 위치와 마이크의 위치가 멀리 떨어져있어 ANC기능 효과가 떨어지거나 제대로 구현이 안될 수도 있을 것 같음.

(인터넷에도 이런 생각을 한 사람들이 꽤 많은데 다 딜레이가 제일 큰 문제라고 했기에 이 문제를 AI로 해결 가능하지 않을까 생각해봄)

# data[].attributes.headline
AI 이용 광고 차단 확장 프로그램

# data[].attributes.subject
AI 이용 광고 차단 확장 프로그램

# data[].attributes.body
웹브라우저에 있는 광고차단 확장프로그램을 보고 든 생각. 광고 차단기 차단 프로그램이 점점 많아지면서 광고차단기가 잘 작동 안함. 원래 광고차단기 기반으로 AI가 실시간으로 웹사이트를 뜯어서 보거나 사용자 화면을 보고 자동으로 광고를 삭제해주는 기능을 만들 수 있지 않을까 생각해봄.

(난이도 어려울거같음)

# data[].attributes.headline
이미지 처리 + 구형 아이폰 카메라

# data[].attributes.subject
이미지 처리 + 구형 아이폰 카메라

# data[].attributes.body
최근 구형 아이폰 카메라가 감성적이게 찍힌다는 말이 많음. 육안으로 보기에도 최신 폰과 구형 폰은 사진 느낌이 다름. 파이썬 OpenCV로 구형 아이폰 사진과 최신폰등의 사진 비교하여 해상도, 색상 분포, 노이즈 패턴 분석.

(이거도 좋은 아이디어 같진 않음)

# data[].attributes.headline
안드로이드 커스텀롬 개발

# data[].attributes.subject
안드로이드 커스텀롬 개발

# data[].attributes.body
일단 매우 어려울듯. 핸드폰에 안드로이드 커스텀 운영체제를 만드는 것. 이 과정에서 운영체제의 동작 방식 등을 상세히 알 수 있을듯. 실현할 가능성은 매우 낮을듯 함. 인터넷에도 정보가 많이 없고, 리눅스와 안드로이드 뿐만 아니라 운영체제 전반에 대한 매우 깊은 이해가 필요해보임.

# data[].attributes.headline
배터리 효율에 따른 실제 성능 파이썬 분석

# data[].attributes.subject
배터리 효율에 따른 실제 성능 파이썬 분석

# data[].attributes.body
참고 논문

# data[].attributes.attachment_link.title
랜덤 포레스트 기반 학습 데이터셋 보완 및 리튬이온 배터리 용량 예측

# data[].attributes.headline
시각장애인 보조 장치 앱 개발

# data[].attributes.subject
시각장애인 보조 장치 앱 개발

# data[].attributes.body
컴퓨터 프로그램만 만들어서 폰 앱도 만들어보고싶음.

공학 트랙 발명아이디어 한마당에서 냈던 아이디어: https://drive.google.com/file/d/1qk9S9V0LBm8MHIA1mDGO-b85MKZaNpi_/view?usp=sharing

솔직히 이 아이디어는 그렇게 재밌어보이진 않음

# data[].attributes.headline
3. 데이터를 시뮬레이션으로 만들자! - 곧 AI 완성? - Making Datasets with PyBaMM Library

# data[].attributes.subject
3. 데이터를 시뮬레이션으로 만들자! - 곧 AI 완성? - Making Datasets with PyBaMM Library

# data[].attributes.body
사실 위에 보이는 식들만으로는 배터리를 시뮬레이션 하기 어렵다. 나의 궁극적인 목적은 AI BMS(Battery Management System)을 만드는 것이기 때문에 학습을 위한 대량의 데이터가 필요하다. 오! 찾아보니 pybamm이라는 배터리 시뮬레이션 라이브러리가 있다! 좋다. 이 라이브러리로 시뮬레이션을 돌려서 데이터를 얻자. 코드는 코드 섹션에 깃허브 링크로 올릴 것 이다. 여기 코드를 설명하겠다.

C-rate (전류): 0.5C, 1C, 2C, 3C 등 다양한 충/방전 속도.

주변 온도 (Ambient Temperature): 0°C, 15°C, 25°C, 40°C 등.

SoC 범위: 100%→0% 전체 방전, 80%→20% 부분 방전 등.

이와 같은 변수를 설정한다. 각 시뮬레이션마다 시간에 따른 모든 변수(전압, 전류, 온도, SoC, 내부 저항의 구성 요소 등)의 상세한 결과를 CSV 파일로 저장합니다. 이것이 바로 우리의 '데이터 세트'가 됩니다.

이 데이터 세트를 바로 갖다쓰기는 좀 그렇다 검증을 해보자.

목적: A단계 모델이 PyBaMM의 결과를 얼마나 잘 예측하는지 평가합니다.

방법: A단계 모델과 B단계 데이터를 직접 비교합니다.

프로세스:

동일한 입력 사용: 예를 들어, PyBaMM에서 '25°C, 1C 방전' 조건으로 시뮬레이션한 전류(I(t))와 온도(T(t)) 프로파일을 가져옵니다.

A단계 모델로 예측: 이 I(t)와 T(t)를 A단계에서 만든 V_terminal = V_ocv - I × R_internal 식에 입력하여, 시간에 따른 전압(V_terminal(t))을 예측합니다.

결과 비교: A단계 모델이 예측한 전압 곡선과, PyBaMM 시뮬레이션에서 나온 실제 전압 곡선을 하나의 그래프에 겹쳐서 그립니다.

오차 분석: 두 곡선 사이의 차이(오차)를 계산합니다 (예: 평균 제곱근 오차, Root Mean Square Error). 오차가 작을수록 A단계 모델의 정확도가 높은 것입니다.

그러면 여러가지 실제 상황에 생길 수 있는 변수들도 적용해보도록 한다. (파라미터 특성화)

V_ocv(SoC)(배터리의 순수 전압) 추출:

PyBaMM 시뮬레이션에서 '아주 느린 속도(예: 0.05C)'로 충/방전한 결과를 사용합니다. 전류가 거의 0에 가까우므로, 이때 측정된 V_terminal은 V_ocv와 거의 같습니다.

이 시뮬레이션 결과에서 시간에 따른 SoC와 V_terminal 데이터를 추출하여, 'SoC-V_ocv' 관계 그래프(또는 조회 테이블)를 만듭니다.

R_internal(SoC, T)(내부저항) 추출:

R_internal = (V_ocv - V_terminal) / I 공식을 이용합니다.

특정 SoC와 T 조건에서, PyBaMM 시뮬레이션 결과로부터 V_ocv, V_terminal, I 값을 읽어내어 R_internal을 계산합니다.

이 과정을 다양한 SoC와 T에 대해 반복하여, 'SoC-T-R_internal'의 3차원 관계를 파악합니다. PyBaMM은 내부 저항을 구성하는 더 상세한 요소(오믹 저항, 전하 전달 저항 등)도 제공하므로, R_internal을 더 정교하게 모델링할 수도 있습니다.

좋다. 이상적인 데이터셋이 생겼다! 이제 본격적으로 AI BMS의 알고리즘을 짜러 가보자!

# data[].attributes.headline
4. BMS를 관리하는 AI를 학습시키자! - Programming AI-BMS

# data[].attributes.subject
4. BMS를 관리하는 AI를 학습시키자! - Programming AI-BMS

# data[].attributes.body
우리는 기본적 식을 얻었고, 이를 바탕으로 pybamm 라이브러리를 이용하여 데이터를 얻엇따! 이제 남은건 학습뿐. 가자.

일단 알고리즘을 만들어야한다. 물론 내가 만들건 아니다. 이미 여러 좋은 알고리즘이 있다. 이들을 적극적으로 이용해보자!

핵심 기술: '칼만 필터(Kalman Filter)'와 그 변형들 (EKF, UKF)

작동 원리 (매우 간단하게):

1. 예측: 당신의 모델을 이용해 "현재 SoC가 50.5%라면, 1초 뒤의 전압은 3.85V가 될 것이다"라고 예측합니다.

2. 측정: 1초 뒤, 실제 센서가 측정한 전압이 3.86V라는 것을 확인합니다.

3. 보정: '예측값'과 '실측값' 사이의 오차를 바탕으로, "아, 내 예측이 약간 틀렸구나. 실제 SoC는 50.5%가 아니라 50.6%였나 보다"라고 스스로의 추정치를 수정합니다.

결과: 이 '예측과 보정'의 과정을 매 순간 반복하면서, 칼만 필터는 측정값에 포함된 노이즈(불확실성)를 뚫고, 실제 배터리의 내부 상태를 매우 정확하게 추적해나갑니다.

좋다. 하지만 아쉽다. 우리는 1초후의 상태를 아는 것으로는 충분하지 않다. 더 먼 미래의 상태를 예측하는 알고리즘을 만들자.

핵심 기술:

모델 기반 예측: 전 단계에서 만든 당신의 '단순 모델'이 바로 이 예측의 엔진이 됩니다. 이 모델에 미래의 예상 전류 프로파일을 입력하면, 미래의 전압과 온도 변화를 즉시 계산해낼 수 있습니다.

머신러닝/AI (LSTM, Transformer): B단계에서 PyBaMM으로 생성한 방대한 시뮬레이션 데이터를 AI 모델에 학습시킵니다.

학습 내용: "과거 10분 동안의 전류, 전압, 온도 패턴이 이러했다면, 미래 5분 동안의 온도는 이렇게 변하더라"는 수백만 개의 사례를 학습합니다.

결과: AI 모델은 물리 모델만으로는 포착하기 어려운 복잡하고 비선형적인 노화 패턴까지 학습하여, 훨씬 더 정확한 장기 예측(예: '이런 패턴으로 운전하면, 6개월 뒤 배터리 수명은 5% 감소할 것이다')을 할 수 있게 됩니다.

근데 예측만 하면 쓸모탱이가 없다. 예측을 하고 그에 알맞는 행동을 하는 알고리즘이 필요하다. 미래의 상황을 예측하고 그에 따른 최적의 대처를 하는 실시간으로 계산하는 알고리즘을 만들자.

핵심 기술:

모델 예측 제어 (MPC, Model Predictive Control):

작동 원리:

1. 시뮬레이션: 현재 상태를 기준으로, 앞으로 몇 분 동안 가능한 수천 가지의 제어 시나리오(예: '전류를 10A로 유지', '1초 뒤 9A로 낮춤', '냉각 팬 50% 가동'...)를 당신의 '단순 모델'을 이용해 미리 시뮬레이션해 봅니다.

2. 평가: 각각의 시나리오가 만들어낼 미래 결과들을 '안전성', '효율성', '수명'이라는 기준에 따라 점수를 매깁니다.

3. 최적 행동 선택: 가장 높은 점수를 받은 시나리오의 '첫 번째 행동' (예: '지금 당장 전류를 9.5A로 낮춘다')을 선택하여 실행합니다.

4. 반복: 1초 뒤, 다시 현재 상태를 기준으로 이 모든 과정을 처음부터 반복합니다.

결과: MPC 알고리즘은 마치 수십 수를 내다보는 체스 챔피언처럼, 매 순간 미래를 예측하고 그에 대한 최적의 대응을 찾아냄으로써, 배터리를 항상 가장 안전하고 효율적인 상태로 유지합니다.

좋다. 원래라면 실제 배터리와 제어기등으로 안정성, 성능을 테스트 해야되겠지만, 난 그럴 능력이 없다. 그러면 PyBaMM 라이브러리로 출력한 값과 그에 따른 AI의 예측값을 비교해보는 방식으로 성능을 검증해보도록 하자.

1. '심판' 데이터 세트 준비:

목적: 두 모델을 공정하게 평가할 '시험 문제'를 만듭니다.

방법: PyBaMM 시뮬레이터를 이용하여, 두 모델을 훈련시키는 데 사용하지 않았던, 완전히 새로운 조건의 시뮬레이션 데이터를 생성합니다.

예시: 훈련 데이터가 '1C, 2C, 3C 방전'이었다면, 시험 문제는 '1.5C 방전'이나, 실제 전기차 주행 데이터(US06, WLTP 등)와 유사한 매우 복잡하고 불규칙한 전류 프로파일로 만듭니다.

2. 두 '두뇌'에게 동일한 문제 풀게 하기:

'물리학자'의 예측(단순한 물리 식 이용):

'심판' 데이터의 시간에 따른 전류(I(t))와 온도(T(t)) 프로파일을 A/B 단계에서 완성한 '단순 모델'(V_terminal = V_ocv - I × R_internal)에 입력합니다.

모델이 예측한 시간에 따른 전압(V_predict_model)을 계산합니다.

'빅데이터 분석가'의 예측(제작한 AI모델 이용):

'심판' 데이터의 과거 일정 시간 동안의 전류, 전압, 온도 패턴을 아까 전에 훈련시킨 'AI 모델'에 입력합니다.

AI 모델이 예측한 다음 시간 스텝의 전압(V_predict_AI)을 계산합니다.

3. '정답지'와 비교 분석:

목적: 두 두뇌의 예측이 얼마나 정확한지, 그리고 서로 어떻게 다른지 분석합니다.

방법: 하나의 그래프에 세 개의 곡선을 모두 그립니다.

1. 파란색 곡선: '심판' 데이터의 실제 전압 (이것이 '정답'입니다)

2. 초록색 곡선: '단순 모델'이 예측한 전압 (V_predict_model)

3. 빨간색 곡선: 'AI 모델'이 예측한 전압 (V_predict_AI)

분석 (가장 중요한 부분):

일치성: 초록색과 빨간색 곡선이 파란색 '정답' 곡선에 얼마나 잘 달라붙어 있는가? (전체적인 정확도 평가)

차이점: 혹시 특정 구간(예: 고속 방전 초기, 충전 말기)에서 초록색 곡선은 잘 맞추는데 빨간색 곡선은 틀리거나, 그 반대의 경우가 있는가?

해석 예시 1: "단순 모델(초록색)은 정상적인 주행 조건에서는 매우 정확하지만, 급격한 전류 변화가 있는 구간에서는 약간의 시간 지연(delay)을 보인다. 반면, AI 모델(빨간색)은 이런 급격한 변화를 더 잘 포착하는 경향이 있다." -> AI가 동적 특성 예측에 더 강점이 있음을 시사.

해석 예시 2: "AI 모델(빨간색)은 훈련 데이터와 유사한 패턴에서는 거의 완벽하지만, 한 번도 본 적 없는 극단적인 과충전 시나리오에서는 물리 법칙에 어긋나는 비상식적인 예측을 내놓는다. 반면, 단순 모델(초록색)은 덜 정확할지언정 물리 법칙의 테두리 안에서 안정적인 예측을 한다." -> AI의 일반화(Generalization) 성능의 한계와 물리 모델의 안정성을 확인.

이로써 탐구를 마친다.

Q.E.D.