From 3f199e85f3eb1e61fc72e06b006e78524c6fd27b Mon Sep 17 00:00:00 2001 From: miguekf Date: Tue, 27 Dec 2022 17:13:23 +0100 Subject: [PATCH] ADD: matlab vtl_kf with 9 states and carrier phase error --- src/utils/matlab/vtl/kf_prototype4acc.m | 239 ++++++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 src/utils/matlab/vtl/kf_prototype4acc.m diff --git a/src/utils/matlab/vtl/kf_prototype4acc.m b/src/utils/matlab/vtl/kf_prototype4acc.m new file mode 100644 index 000000000..126b46917 --- /dev/null +++ b/src/utils/matlab/vtl/kf_prototype4acc.m @@ -0,0 +1,239 @@ +%% vtl KF +%% +sat_number=5; +%% ################## Kalman filter initialization ###################################### +st_nmbr=9; +% covariances (static) +kf_P_x = eye(st_nmbr); %TODO: use a real value. +kf_x = zeros(st_nmbr, 1); +kf_R = zeros(2*sat_number, 2*sat_number); +kf_dt=0.1; +% kf_F = eye(st_nmbr, st_nmbr); +% kf_F(1, 4) = kf_dt; +% kf_F(2, 5) = kf_dt; +% kf_F(3, 6) = kf_dt; +% kf_F(7, 8) = kf_dt; + +kf_F=[ 1 0 0 kf_dt 0 0 0 0 0 + 0 1 0 0 kf_dt 0 0 0 0 + 0 0 1 0 0 kf_dt 0 0 0 + 0 0 0 1 0 0 0 0 0 + 0 0 0 0 1 0 0 0 0 + 0 0 0 0 0 1 0 0 0 + 0 0 0 0 0 0 1 kf_dt kf_dt^2/2 + 0 0 0 0 0 0 0 1 kf_dt + 0 0 0 0 0 0 0 0 1]; + +% kf_F=[ 1 0 0 kf_dt 0 0 0 0 +% 0 1 0 0 kf_dt 0 0 0 +% 0 0 1 0 0 kf_dt 0 0 +% 0 0 0 1 0 0 0 0 +% 0 0 0 0 1 0 0 0 +% 0 0 0 0 0 1 0 0 +% 0 0 0 0 0 0 1 kf_dt +% 0 0 0 0 0 0 0 1]; +% +kf_H = zeros(2*sat_number,st_nmbr); +kf_y = zeros(2*sat_number, 1); +kf_yerr = zeros(2*sat_number, 1); +% kf_xerr = zeros(8, 1); +kf_S = zeros(2*sat_number, 2*sat_number); % kf_P_y innovation covariance matrix + +%% pre-allocate for speed +d = zeros(sat_number, 1); +rho_pri = zeros(sat_number, 1); +rhoDot_pri = zeros(sat_number, 1); +a_x = zeros(sat_number, 1); +a_y = zeros(sat_number, 1); +a_z = zeros(sat_number, 1); +c_pr_m=zeros(sat_number,length(navSolution.RX_time)); + +pr_m_filt=zeros(sat_number,length(navSolution.RX_time)); +rhoDot_pri_filt=zeros(sat_number,length(navSolution.RX_time)); +sat_dopp_hz_filt=zeros(sat_number,length(navSolution.RX_time)); + +%% ################## Kalman Tracking ###################################### +% receiver solution from rtklib_solver +for t=2:length(navSolution.RX_time) + + %% State error Covariance Matrix Q (PVT) and R (MEASUREMENTS) + if (t