실습 · 연습문제 1개
잡음 있는 용량 기록에서 수명 label 만들기 cycle-life-label
수명 예측의 정답 label인 "사이클 수명"은 용량 기록에서 계산한다. 용량이 처음으로 기준값 아래로 떨어지는 사이클을 찾으면 되지만, 실제 기록에는 측정 잡음과 일시적인 튐, 결측 사이클이 있고, 시험이 끝날 때까지 기준에 닿지 않은 셀도 있다.
함수 cycle_life(cycle, capacity_ah, ref_ah, frac=0.8, window=5)를 완성한다.
| 인자 | 설명 |
|---|---|
cycle |
(N,) 사이클 번호. 증가하지만 연속이 아닐 수 있다(결측 사이클) |
capacity_ah |
(N,) 사이클별 방전 용량 [Ah]. 측정 실패는 NaN |
ref_ah |
SOH의 기준 용량 [Ah] (공칭 용량이나 첫 측정 용량) |
frac |
EOL 기준 비율. 기준 용량은 frac * ref_ah |
window |
잡음을 누르기 위한 후행 이동 중앙값의 창 크기 |
반환은 (life, observed) 튜플이다.
- 위치 의 평활 용량은
capacity_ah[max(0, k - window + 1) : k + 1]에서NaN을 뺀 값들의 중앙값이다. 이 창이 모두NaN이면 위치 는 건너뛴다. - 평활 용량이 처음으로
frac * ref_ah보다 작아지는 위치 를 찾으면(cycle[k], True)를 반환한다. - 끝까지 떨어지지 않으면 시험이 수명보다 먼저 끝난 것이다(중도절단).
(cycle[-1], False)를 반환한다. 이 셀의 수명은 "적어도cycle[-1]"이라는 정보만 있다.
후행(과거 쪽) 창을 쓰는 이유는, 각 시점의 label이 그 시점까지의 측정만으로 정해지게 하기 위해서다. 중앙값을 쓰는 이유는 한두 사이클의 튐에 label이 끌려가지 않게 하기 위해서다.