2021. 1. 23. 20:37ㆍ[Battery is my Life]
- Find $OCV \ 0^\circ (z) \ , \ OCV \ rel (z)$ using equation below
calculation
$
\begin{bmatrix}
Approx. \ OCV \ at \ SOC \ (z)\ , \ temp \ T_1 \\ Approx. \ OCV \ at \ SOC \ (z)\ , \ temp \ T_2 \\ Approx. \ OCV \ at \ SOC \ (z)\ , \ temp \ T_3 \\ \vdots \\ Approx. \ OCV \ at \ SOC \ (z)\ , \ temp \ T_n
\end{bmatrix}
=
\begin{bmatrix}
1 & T_1 \\ 1 & T_2 \\ 1 & T_3 \\ & \vdots & \\ 1 & T_n
\end{bmatrix}
\cdot
\begin{bmatrix}
OCV \ 0^\circ (z) \\ OCV \ rel (z)
\end{bmatrix}
$
$
{\begin{bmatrix}
1 & T_1 \\ 1 & T_2 \\ 1 & T_3 \\ & \vdots & \\ 1 & T_n
\end{bmatrix}}^{-1}
\cdot
\begin{bmatrix}
Approx. \ OCV \ at \ SOC \ (z)\ , \ temp \ T_1 \\ Approx. \ OCV \ at \ SOC \ (z)\ , \ temp \ T_2 \\ Approx. \ OCV \ at \ SOC \ (z)\ , \ temp \ T_3 \\ \vdots \\ Approx. \ OCV \ at \ SOC \ (z)\ , \ temp \ T_n
\end{bmatrix}
=
\begin{bmatrix}
OCV \ 0^\circ (z) \\ OCV \ rel (z)
\end{bmatrix}
$
temperature dependence equation
$
OCV(z,T) = OCV_{0}(z) + T \times OCV_{relative}(z)
$
readme
- OCV_SOC_data : 아래와 같은 dataframe이 담겨져있다
- temp_table : 아래와 같은 정보(온도)가 array 형태로 담겨져있다
code
# Modeling Temperature Dependence
# 온도별 OCV 담기
total_OCV = []
for temp in OCV_SOC_data.columns[1:] :
total_OCV.append(OCV_SOC_data[temp].tolist())
# 온도별 OCV array로 형태 변환
# [1,온도] array로 형태 변환
total_OCV = np.array(total_OCV)
temp_table = np.array(temp_table)
# least square calculation
# x 에 (temp_table)^(-1) * (total_OCV) 의 데이터가 담겨져있다
# rcond = None 으로 설정해야 warning 안뜸
x,resid,rank,s = np.linalg.lstsq(temp_table,total_OCV,rcond=None)
# DataFrame에 담기
# x[0] : OCV relationship at 0 degrees Celsius
# x[1] : V/C linear temperature correction factor at each soc
OCV_SOC_data['OCV_0(V)'] = x[0]
OCV_SOC_data['OCV_rel(V)'] = x[1]
[Code Analysis]
np.linalg.lstsq()
np.linalg.lstsq(A,B)
# returns X = A^(-1) * B / residuals / rank / s
# residuals, rank , singular values 에 대한 것들은 나중에 파헤쳐보자
[Conclusion]
- 아래와 같은 DataFrame 생성!
- 전체 배터리 (A123, ATL, E1, E2, P14, SAM) 에 대한 데이터 수집을 해보자!
'[Battery is my Life]' 카테고리의 다른 글
[Battery Test] Processing OCV(6) - Export Data (0) | 2021.01.23 |
---|---|
[Battery Test] Processing OCV(4) - Compensate for Steady State Resistance (0) | 2021.01.23 |
[Battery Test] Processing OCV(3) - Compute $R_0$ estimates (0) | 2021.01.18 |
[Battery Test] Processing OCV(2) - Compute Coulombic efficiency ($\eta$) & Capacity ($Q$) (0) | 2021.01.18 |
[Battery Test] Processing OCV(1) - Data 불러오기 (0) | 2021.01.18 |