Skip to main content

Table 5 Main procedures of the fractional order unscented Kalman filter

From: A Comparative Study of Fractional Order Models on State of Charge Estimation for Lithium Ion Batteries

Step 1 A fractional order system:

\(\left\{ \begin{aligned} &{\text{D}}^{\gamma } x_{k + 1} = f\left( {x_{k} ,u_{k} } \right) + w_{k} , \hfill \\& y_{k} = g\left( {x_{k} } \right) + v_{k} , \hfill \\ \end{aligned} \right.\)

where x is the state vector, y is the measurement, u is the input. w and v represent the process noise and measurement noise with their variance being Q and R, respectively. The state error covariance is defined as P.

Step 2 Initialisation:

Pre-set Q, R and the initial values of x and P.

Step 3 Time update:

(a) Compute sigma points

\(\left\{ \begin{aligned} &\tilde{x}_{0,k - 1/k - 1} = \hat{x}_{k - 1/k - 1} , \hfill \\& \tilde{x}_{j,k - 1/k - 1} = \hat{x}_{k - 1/k - 1} + \rho U_{j} \sqrt {s_{j} } , { }j = 1, \cdots ,n, \hfill \\& \tilde{x}_{j,k - 1/k - 1} = \hat{x}_{k - 1/k - 1} + \rho U_{j} \sqrt {s_{j} } , { }j = 1 + n, \cdots ,2n, \hfill \\ &P_{k - 1/k - 1}^{{}} = USV_{{}}^{\text{T}} , \hfill \\ \end{aligned} \right.\)

where n is the length of x. sj and Uj denote the jth element and jth column of S and U, respectively. ρ is a constant in the range of \(\left[ {1,\sqrt 2 } \right]\).

(b) Prior state estimation

\(\left\{ \begin{aligned} &{\text{D}}^{\gamma } \hat{x}_{k/k - 1} \approx \sum\limits_{j = 0}^{2n} {W_{i}^{m} } f\left( {\chi_{j,k - 1/k - 1} ,u_{k - 1} } \right), \\& \hat{x}_{k/k - 1} = {\text{D}}^{\gamma } \hat{x}_{k/k - 1} - \sum\limits_{j = 1}^{k} {\left( { - 1} \right)^{j} } \gamma_{j} \hat{x}_{k - 1/k - 1} , \\& P_{k/k - 1}^{\text{DD}} \approx \sum\limits_{j = 0}^{2n} {W_{i}^{c} } \left[ {f\left( {\tilde{x}_{j,k - 1/k - 1} ,u_{k - 1} } \right) - {\text{D}}^{\gamma } \hat{x}_{k/k - 1} } \right] \\& \times \left[ {f\left( {\tilde{x}_{j,k - 1/k - 1} ,u_{k - 1} } \right) - {\text{D}}^{\gamma } \hat{x}_{k/k - 1} } \right]^{\text{T}} + Q, \\& P_{k/k - 1}^{{x{\text{D}}}} \approx \sum\limits_{j = 0}^{2n} {W_{i}^{c} } \left[ {f\left( {\tilde{x}_{j,k - 1/k - 1} ,u_{k - 1} } \right) - {\text{D}}^{\gamma } \hat{x}_{k/k - 1} } \right] \\& \times \left[ {f\left( {\tilde{x}_{j,k - 1/k - 1} ,u_{k - 1} } \right) - {\text{D}}^{\gamma } \hat{x}_{k/k - 1} } \right]^{\text{T}} , \\ & P_{k/k - 1}^{{}} = P_{k/k - 1}^{\text{DD}} + \gamma_{1} P_{k/k - 1}^{{x{\text{D}}}} + P_{k/k - 1}^{{{\text{D}}x}} \gamma_{1} + \sum\limits_{j = 1}^{k} {\gamma_{j} P_{k - 1/k - 1} } \gamma_{j} . \\ \end{aligned} \right.\)

where the associated weights are computed as

\(\left\{ \begin{aligned} & W_{0}^{m} = \frac{\lambda }{\lambda + n}, \hfill \\& W_{0}^{c} = \frac{\lambda }{\lambda + n} + \left( {1 - \alpha_{\text{w}}^{2} + \beta_{\text{w}} } \right), \hfill \\& W_{i}^{m} = W_{i}^{\left( c \right)} = \frac{1}{{2\left( {\lambda + n} \right)}},\;i = 1, \ldots ,2n, \hfill \\ \end{aligned} \right.\)

with \(\alpha_{\text{w}}\) and \(\beta_{\text{w}}\) being two algorithm parameters.

Step 4 Measurement update:

(a) Create new sigma points using \(P_{k/k - 1}\)

(b) Generate the estimated yk and the corresponding covariance

\(\left\{ \begin{aligned} &\hat{y}_{k/k - 1}^{{}} = \sum\limits_{j = 0}^{2n} {W_{i}^{m} h\left( {\tilde{x}_{j,k/k - 1} } \right)} , \hfill \\& P_{k/k - 1}^{yy} = \sum\limits_{j = 0}^{2n} {W_{i}^{c} \left[ {h\left( {\tilde{x}_{j,k/k - 1} } \right) - \hat{y}_{k/k - 1}^{{}} } \right]\left[ {h\left( {\tilde{x}_{j,k/k - 1} } \right) - \hat{y}_{k/k - 1}^{{}} } \right]^{\text{T}} } + R, \hfill \\& P_{k/k - 1}^{xy} = \sum\limits_{j = 0}^{2n} {W_{i}^{c} \left[ {h\left( {\tilde{x}_{j,k/k - 1} } \right) - \hat{y}_{k/k - 1}^{{}} } \right]\left[ {h\left( {\tilde{x}_{j,k/k - 1} } \right) - \hat{y}_{k/k - 1}^{{}} } \right]^{\text{T}} } . \hfill \\ \end{aligned} \right.\)

(c) Update the posterior estimation

Step 5:k = k + 1. Go to Step 3.