실습 · 연습문제 2개
CC-CV 충전 시간 cc-cv-charge-time
내부 저항 하나로 근사한 셀을 생각한다. 개방 전압이 SOC의 1차 함수 이고, 충전 전류 에서 단자 전압은 이다. SOC는 로 늘어난다(는 Ah 단위 용량, 는 초).
CC-CV 충전은 두 단계다.
- CC: 전류 로 충전하다가 단자 전압이 에 닿으면 멈춘다.
- CV: 단자 전압을 로 유지한다. 그러면 전류가 저절로 줄어든다. 전류가 까지 줄면 충전을 끝낸다.
함수 cc_cv_time(i_cc_a, q_ah, r_ohm, ocv_a_v, ocv_b_v, v_max_v, soc0, i_cut_a)를 완성해 (t_cc_s, t_cv_s), 즉 두 단계의 시간(초)을 반환한다.
- 시작 SOC
soc0에서 이미 이면 CC 단계는 0초이고, CV가 전류 에서 시작한다. - CV를 시작하는 전류가 이미 이하이면 CV 단계도 0초다.
테스트는 닫힌 해와 1% 안에서 같은지 확인한다. 닫힌 해를 유도해도 되고, 작은 시간 간격으로 적분해도 된다.
힌트: CV 단계에서 를 에 넣으면 가 지수적으로 줄어든다. 그 시상수는 무엇인가?
제약을 만족하는 Pareto front constrained-pareto
충전 프로토콜 후보 개를 시뮬레이터로 평가해 두 목적(충전 시간, 열화 지표)과 개의 제약값을 얻었다. 제약값 이면 그 제약을 만족한다(예: V, °C).
함수 feasible_pareto(F, G)를 완성한다.
| 인자 | shape | 의미 |
|---|---|---|
F |
(N, 2) |
최소화할 두 목적 |
G |
(N, m) |
제약값. 행의 모든 값이 0 이하이면 실현 가능 |
반환값은 모든 제약을 만족하고, 실현 가능한 다른 어떤 후보에게도 지배당하지 않는 후보의 번호(정수 배열)를 첫째 목적의 오름차순으로 정렬한 것이다. 점 가 를 지배한다는 것은 두 목적 모두에서 이고 적어도 하나에서 라는 뜻이다(10.7장).
주의할 점이 둘 있다.
- 제약을 어긴 후보는 front에 들어가지 않고, 다른 후보를 지배하는 데에도 쓰이지 않는다. 제약을 어긴 빠른 프로토콜 때문에 실현 가능한 프로토콜이 front에서 빠지면 안 된다.
- 목적값이 완전히 같은 두 후보는 서로를 지배하지 않는다. 둘 다 front에 남는다.
실현 가능한 후보가 없으면 빈 배열을 반환한다.