30.6 충전 최적화와 제어

실습 · 연습문제 2개

CC-CV 충전 시간 cc-cv-charge-time

내부 저항 하나로 근사한 셀을 생각한다. 개방 전압이 SOC의 1차 함수 OCV(s)=a+b s\mathrm{OCV}(s) = a + b\,s이고, 충전 전류 I>0I > 0에서 단자 전압은 V=a+b s+IRV = a + b\,s + I R이다. SOC는 ds/dt=I/(3600 Q)ds/dt = I / (3600\,Q)로 늘어난다(QQ는 Ah 단위 용량, tt는 초).

CC-CV 충전은 두 단계다.

  1. CC: 전류 IccI_{\text{cc}}로 충전하다가 단자 전압이 Vmax⁡V_{\max}에 닿으면 멈춘다.
  2. CV: 단자 전압을 Vmax⁡V_{\max}로 유지한다. 그러면 전류가 저절로 줄어든다. 전류가 IcutI_{\text{cut}}까지 줄면 충전을 끝낸다.

함수 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에서 이미 a+b s0+IccR≥Vmax⁡a + b\,s_0 + I_{\text{cc}}R \ge V_{\max}이면 CC 단계는 0초이고, CV가 전류 (Vmax⁡−a−b s0)/R(V_{\max} - a - b\,s_0)/R에서 시작한다.
  • CV를 시작하는 전류가 이미 IcutI_{\text{cut}} 이하이면 CV 단계도 0초다.

테스트는 닫힌 해와 1% 안에서 같은지 확인한다. 닫힌 해를 유도해도 되고, 작은 시간 간격으로 적분해도 된다.

힌트: CV 단계에서 I=(Vmax⁡−a−b s)/RI = (V_{\max} - a - b\,s)/R를 ds/dtds/dt에 넣으면 II가 지수적으로 줄어든다. 그 시상수는 무엇인가?

제약을 만족하는 Pareto front constrained-pareto

충전 프로토콜 후보 NN개를 시뮬레이터로 평가해 두 목적(충전 시간, 열화 지표)과 mm개의 제약값을 얻었다. 제약값 gj≤0g_j \le 0이면 그 제약을 만족한다(예: g1=Vpeak−4.2g_1 = V_{\text{peak}} - 4.2 V, g2=Tpeak−45g_2 = T_{\text{peak}} - 45 °C).

함수 feasible_pareto(F, G)를 완성한다.

인자 shape 의미
F (N, 2) 최소화할 두 목적
G (N, m) 제약값. 행의 모든 값이 0 이하이면 실현 가능

반환값은 모든 제약을 만족하고, 실현 가능한 다른 어떤 후보에게도 지배당하지 않는 후보의 번호(정수 배열)를 첫째 목적의 오름차순으로 정렬한 것이다. 점 a\mathbf{a}가 b\mathbf{b}를 지배한다는 것은 두 목적 모두에서 a≤b\mathbf{a} \le \mathbf{b}이고 적어도 하나에서 a<b\mathbf{a} < \mathbf{b}라는 뜻이다(10.7장).

주의할 점이 둘 있다.

  • 제약을 어긴 후보는 front에 들어가지 않고, 다른 후보를 지배하는 데에도 쓰이지 않는다. 제약을 어긴 빠른 프로토콜 때문에 실현 가능한 프로토콜이 front에서 빠지면 안 된다.
  • 목적값이 완전히 같은 두 후보는 서로를 지배하지 않는다. 둘 다 front에 남는다.

실현 가능한 후보가 없으면 빈 배열을 반환한다.