Skip to main content
. 2026 May 12;28(5):549. doi: 10.3390/e28050549
Algorithm 1. VB-DVQEKF
Input: Xk−1|k−1,Pk−1|k−1,Zk,u^k−1|k−1,U^k−1|k−1,Qk,ρ,N
Update time
1.   XK/K−1=ΦkXk−1/k−1,
2.   Pk/k−1=ΦkPk−1/k−1ΦkT+Qk,
3.   u^k∣k−1=ρR(u^k−1|k−1−n−1)+n+1, U^k|k−1=ρRU^k−1|k−1,
Iterative Measurement Update.
Initialization: X^k|k0=XK/K−1, R^k(0)=U^k|k−1/u^k|k−1−n−1,
For i=0:N−1
update q(i+1)(Xk|k)=N(Xk|k;X^k|k(i+1),P^k|k(i+1))
4.   Calculate h(X^k|k(i)) using Equations (4) and (24),
5.   Calculate Hk(i) using Equation (5),
6.   Kk(i+1)=Pk|k−1(Hk(i))T(Hk(i)Pk|k−1(Hk(i))T+R^k(i))−1,
7.   X^k|k(i+1)=x^k|k−1+Kk(i+1)(zk−h(x^k|k(i))−Hk(i)(Xk|k−1−X^k|k(i))),
8.   Pk|k(i+1)=Pk|k−1−Kk(i+1)Hk(i)Pk|k−1,
update q(i+1)(Rk)=IW(Rk;u^k|k(i+1),U^k|k(i+1))
9.   Calculate h(X^k|k(i+1)) using Equations (4) and (24),
10.   Calculate Hk(i+1) using Equation (5),
11.   Bk(i+1)=(Zk−h(X^k|k(i+1)))(Zk−h(X^k|k(i+1)))T+Hk(i+1)Pk|k(i+1)(Hk(i+1))T,
12.   U^k|k(i+1)=U^k|k−1+Bk(i+1), u^k|k(i+1)=u^k|k−1+1,
13.   R^k(i+1)=U^k|k(i+1)/u^k|k(i+1)−n−1,
End
14.   Xk|k=X^k|k(N+1), Pk|k=Pk|k(N+1), u^k|k=u^k|k(N+1),
Output: Xk|k,Pk|k,u^k|k,U^k|k.