diff --git a/Analisys_With_Features.m b/Analisys_With_Features.m index a7d3bc16fb0a1e9c4fc60597737642e0dcb7ff93..b998a1e96091d701dbbca178c4dde7f1c9bf0a60 100644 --- a/Analisys_With_Features.m +++ b/Analisys_With_Features.m @@ -21,7 +21,7 @@ clc MMX_InitializeSPICE cspice_furnsh(which('mar097.bsp')); cspice_furnsh(which('MARPHOFRZ.txt')); - cspice_furnsh(which('MMX_QSO_049_2x2_826891269_828619269.bsp')); + cspice_furnsh(which('MMX_QSO_031_2x2_826891269_828619269.bsp')); % cspice_furnsh(which('MMX_3DQSO_031_009_2x2_826891269_828619269.bsp')); % cspice_furnsh(which('MMX_SwingQSO_031_011_2x2_826891269_828619269.bsp')); cspice_furnsh(which('Phobos_826891269_828619269.bsp')); @@ -57,7 +57,7 @@ clc MMX0 = MMX0./units.sfVec; % Analysis initial state vector - % St0 = [MMX0; Ph0; pars.I2; pars.bias]; + St0 = [MMX0; Ph0; pars.I2; pars.bias]; St0 = [MMX0; Ph0(1:4); Ph0(7:8); pars.I2; pars.bias]; pars.X0_reference = [MMX0; Ph0; pars.I2; pars.bias]; @@ -91,11 +91,13 @@ clc % Questo è l'UKF puro, funziona giocando con l'alpha! Ma non tutti gli % stati sono visibilissimi. Vedo il libration ma non la sua velocita' - pars.alpha = 1e-1; - pars.beta = 2; + % pars.alpha = 1e-1; + % pars.beta = 2; % [Est] = UKF_features(Est0, @SigmaPoints_Dynamics_Good,... % @Observables_model_with_Features,... % pars.R,YObs,pars,units,file_features); + pars.alpha = 1e-1; + pars.beta = 2; [Est] = UKF_features(Est0, @SigmaPoints_Dynamics_Good_NoPhi,... @Observables_model_with_Features,... pars.R,YObs,pars,units,file_features); diff --git a/Observations_Generation.m b/Observations_Generation.m index cc94a20c3596aa8861e28dd9dbb4824b8d4e66e0..b8845221768bcd3127c48e65edb816304709ede0 100644 --- a/Observations_Generation.m +++ b/Observations_Generation.m @@ -20,7 +20,7 @@ clc MMX_InitializeSPICE cspice_furnsh(which('mar097.bsp')); cspice_furnsh(which('MARPHOFRZ.txt')); - cspice_furnsh(which('MMX_QSO_049_2x2_826891269_828619269.bsp')); + cspice_furnsh(which('MMX_QSO_031_2x2_826891269_828619269.bsp')); % cspice_furnsh(which('MMX_3DQSO_031_009_2x2_826891269_828619269.bsp')); % cspice_furnsh(which('MMX_SwingQSO_031_011_2x2_826891269_828619269.bsp')); cspice_furnsh(which('Phobos_826891269_828619269.bsp')); @@ -30,7 +30,7 @@ clc % Time of the analysis data = '2026-03-16 00:00:00 (UTC)'; data = cspice_str2et(data); - Ndays = 2; + Ndays = 7; t = Ndays*86400; date_end = data+t; diff --git a/Observations_with_features.m b/Observations_with_features.m index 9c9096886ef12dc5f8d928bee23a6e941522ed67..5b6a9b3ce56dd507097ecd94ea6c308a4f378ffe 100644 --- a/Observations_with_features.m +++ b/Observations_with_features.m @@ -225,6 +225,7 @@ function YObs = Observations_with_features(date_0, date_end, file_features, pars else Y_LOS = []; Y_pix = []; + Limb = []; end if (rem(round(i-et0),interval_camera)==0)&&pars.flag_Limb @@ -236,8 +237,6 @@ function YObs = Observations_with_features(date_0, date_end, file_features, pars got_it = 1; end - else - Limb = []; end diff --git a/Phobos_cartesian_covariance.m b/Phobos_cartesian_covariance.m index ab7cad11c99aba41f5d609143fcf678892e24d3f..6d7c4b5254fccf7655233c2a365461051b9bde89 100644 --- a/Phobos_cartesian_covariance.m +++ b/Phobos_cartesian_covariance.m @@ -59,18 +59,52 @@ function [P_PhXYZ, P_Xrel, P_PhVXYZ, P_Vrel, X_Phobos] = ... end +% % Coomposizione della covariance P_PhXYZ +% +% P_PhXYZ = zeros(3,3,size(X_t(9,:),2)); +% P_PhVXYZ = zeros(3,3,size(X_t(9,:),2)); +% +% for i=1:size(X_t(9,:),2) +% P_PhXYZ(:,:,i) = [dXdR(:,i),dXdtheta(:,i)]*... +% [P_t(7,7,i), P_t(7,9,i); P_t(9,7,i), P_t(9,9,i)]*... +% [dXdR(:,i),dXdtheta(:,i)]'; +% P_PhVXYZ(:,:,i) = [dVdR(:,i), dVdR_dot(:,i), dVdtheta(:,i), dVdtheta_dot(:,i)]*... +% P_t(7:10,7:10,i)*[dVdR(:,i), dVdR_dot(:,i), dVdtheta(:,i), dVdtheta_dot(:,i)]'; +% +% end +% +% % Correlation covariance MMX-Phobos +% P_PhXYZ_MMX = zeros(3,3,size(X_t(9,:),2)); +% P_MMX_PhXYZ = zeros(3,3,size(X_t(9,:),2)); +% P_VPhXYZ_VMMX = zeros(3,3,size(X_t(9,:),2)); +% P_VMMX_VPhXYZ = zeros(3,3,size(X_t(9,:),2)); +% +% for i=1:size(X_t(9,:),2) +% P_PhXYZ_MMX(:,:,i) = [dXdR(:,i),dXdtheta(:,i)]*[P_t(7,1:3,i); P_t(9,1:3,i)]; +% P_MMX_PhXYZ(:,:,i) = [P_t(1:3,7,i), P_t(1:3,9,i)]*[dXdR(:,i),dXdtheta(:,i)]'; +% P_VPhXYZ_VMMX(:,:,i) = [dVdR(:,i), dVdR_dot(:,i), dVdtheta(:,i), dVdtheta_dot(:,i)]*P_t(7:10,4:6,i); +% P_VMMX_VPhXYZ(:,:,i) = P_t(4:6,7:10,i)*[dVdR(:,i), dVdR_dot(:,i), dVdtheta(:,i), dVdtheta_dot(:,i)]'; +% end +% +% % Relative distance covariance between MMX and PHobos +% P_Xrel = P_PhXYZ + P_t(1:3,1:3,:) - P_PhXYZ_MMX - P_MMX_PhXYZ; +% +% % Relative velocity covariance between MMX and PHobos +% P_Vrel = P_PhVXYZ + P_t(4:6,4:6,:) - P_VPhXYZ_VMMX - P_VMMX_VPhXYZ; + + % Coomposizione della covariance P_PhXYZ - + P_PhXYZ = zeros(6,6,size(X_t(9,:),2)); - + for i=1:size(X_t(9,:),2) - P_PhXYZ(:,:,i) = [dXdR(:,i), dXdtheta(:,i), zeros(3,2); dVdR(:,i), dVdR_dot(:,i), dVdtheta(:,i), dVdtheta_dot(:,i)]*... - P_t(7:10,7:10,i)*[dXdR(:,i), dXdtheta(:,i), zeros(3,2); dVdR(:,i), dVdR_dot(:,i), dVdtheta(:,i), dVdtheta_dot(:,i)]'; + P_PhXYZ(:,:,i) = [dXdR(:,i), zeros(3,1), dXdtheta(:,i), zeros(3,1); dVdR(:,i), dVdR_dot(:,i), dVdtheta(:,i), dVdtheta_dot(:,i)]*... + P_t(7:10,7:10,i)*[dXdR(:,i), zeros(3,1), dXdtheta(:,i), zeros(3,1); dVdR(:,i), dVdR_dot(:,i), dVdtheta(:,i), dVdtheta_dot(:,i)]'; end P_PhVXYZ = P_PhXYZ(4:6,4:6,:); - + % Correlation covariance MMX-Phobos P_PhXYZ_MMX = zeros(6,6,size(X_t(9,:),2)); P_MMX_PhXYZ = zeros(6,6,size(X_t(9,:),2)); diff --git a/Results.m b/Results.m index 869b06c93067f4dd3830186dc6be7ccb59007edb..dbe4138b881c4365482af6e3be12e3cb25bee9bc 100644 --- a/Results.m +++ b/Results.m @@ -530,34 +530,47 @@ function Results(Est, pars, units) %-------------------------------------------------------------------------- + + + figure() - subplot(1,2,1) + subplot(1,3,1) semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(P_PhXYZ(1,1,1:end-1)))),'Color','b','LineWidth',1) hold on; grid on; semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(P_PhXYZ(2,2,1:end-1)))),'Color','r','LineWidth',1) semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(P_PhXYZ(3,3,1:end-1)))),'Color','g','LineWidth',1) semilogy(t_obs(1:end-1)/3600,SQRT_X_Ph,'Color','k','LineWidth',2) - xlabel('time $[hour]$','FontSize',26) - ylabel('$[km]$','FontSize',26) + xlabel('time $[hour]$') + ylabel('$[km]$') title('Phobos position vector $3\sigma$ envelopes','Interpreter','latex','FontSize',30) - legend('$3\sigma_{x}$','$3\sigma_{y}$','$3\sigma_{z}$','$3 RMS$','Interpreter','latex','FontSize',26) - subplot(1,2,2) + legend('$3\sigma_{x}$','$3\sigma_{y}$','$3\sigma_{z}$','$3 RMS$','Interpreter','latex','FontSize',14) + subplot(1,3,2) semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(P_PhVXYZ(1,1,1:end-1)))),'Color','b','LineWidth',1) hold on; grid on; semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(P_PhVXYZ(2,2,1:end-1)))),'Color','r','LineWidth',1) semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(P_PhVXYZ(3,3,1:end-1)))),'Color','g','LineWidth',1) semilogy(t_obs(1:end-1)/3600,SQRT_V_Ph,'Color','k','LineWidth',2) - xlabel('time $[hour]$','FontSize',26) - ylabel('$[km/s]$','FontSize',26) + xlabel('time $[hour]$') + ylabel('$[km]$') title('Phobos velocity vector $3\sigma$ envelopes','Interpreter','latex','FontSize',30) - legend('$3\sigma_{\dot{x}}$','$3\sigma_{\dot{y}}$','$3\sigma_{\dot{z}}$','$3 RMS$','Interpreter','latex','FontSize',26) + legend('$3\sigma_{\dot{x}}$','$3\sigma_{\dot{y}}$','$3\sigma_{\dot{z}}$','$3 RMS$','Interpreter','latex','FontSize',14) + subplot(1,3,3) + semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(P_rel_MMXPh(1,1,1:end-1)))),'Color','b','LineWidth',1) + hold on; + grid on; + semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(P_rel_MMXPh(2,2,1:end-1)))),'Color','r','LineWidth',1) + semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(P_rel_MMXPh(3,3,1:end-1)))),'Color','g','LineWidth',1) + semilogy(t_obs(1:end-1)/3600,SQRT_X_rel,'Color','k','LineWidth',2) + xlabel('time $[hour]$') + ylabel('$[km]$') + title('MMX-Phobos relative distance $3\sigma$ envelopes','Interpreter','latex','FontSize',30) + legend('$3\sigma_{x}$','$3\sigma_{y}$','$3\sigma_{z}$','$3 RMS$','Interpreter','latex','FontSize',14) - figure() - subplot(1,3,1) + subplot(2,2,1) semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(P_PhXYZ(1,1,1:end-1)))),'Color','b','LineWidth',1) hold on; grid on; @@ -568,7 +581,7 @@ function Results(Est, pars, units) ylabel('$[km]$') title('Phobos position vector $3\sigma$ envelopes','Interpreter','latex','FontSize',30) legend('$3\sigma_{x}$','$3\sigma_{y}$','$3\sigma_{z}$','$3 RMS$','Interpreter','latex','FontSize',14) - subplot(1,3,2) + subplot(2,2,2) semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(P_PhVXYZ(1,1,1:end-1)))),'Color','b','LineWidth',1) hold on; grid on; @@ -579,7 +592,7 @@ function Results(Est, pars, units) ylabel('$[km]$') title('Phobos velocity vector $3\sigma$ envelopes','Interpreter','latex','FontSize',30) legend('$3\sigma_{\dot{x}}$','$3\sigma_{\dot{y}}$','$3\sigma_{\dot{z}}$','$3 RMS$','Interpreter','latex','FontSize',14) - subplot(1,3,3) + subplot(2,2,3) semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(P_rel_MMXPh(1,1,1:end-1)))),'Color','b','LineWidth',1) hold on; grid on; @@ -590,17 +603,17 @@ function Results(Est, pars, units) ylabel('$[km]$') title('MMX-Phobos relative distance $3\sigma$ envelopes','Interpreter','latex','FontSize',30) legend('$3\sigma_{x}$','$3\sigma_{y}$','$3\sigma_{z}$','$3 RMS$','Interpreter','latex','FontSize',14) - % subplot(2,2,4) - % semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(P_Vrel_MMXPh(1,1,1:end-1)))),'Color','b','LineWidth',1) - % hold on; - % grid on; - % semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(P_Vrel_MMXPh(2,2,1:end-1)))),'Color','r','LineWidth',1) - % semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(P_Vrel_MMXPh(3,3,1:end-1)))),'Color','g','LineWidth',1) - % semilogy(t_obs(1:end-1)/3600,SQRT_V_rel,'Color','k','LineWidth',2) - % xlabel('time $[hour]$') - % ylabel('$[km/s]$') - % title('MMX-Phobos relative velocity $3\sigma$ envelopes','Interpreter','latex','FontSize',30) - % legend('$3\sigma_{\dot{x}}$','$3\sigma_{\dot{y}}$','$3\sigma_{\dot{z}}$','$3 RMS$','Interpreter','latex','FontSize',14) + subplot(2,2,4) + semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(P_Vrel_MMXPh(1,1,1:end-1)))),'Color','b','LineWidth',1) + hold on; + grid on; + semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(P_Vrel_MMXPh(2,2,1:end-1)))),'Color','r','LineWidth',1) + semilogy(t_obs(1:end-1)/3600,3*squeeze(real(sqrt(P_Vrel_MMXPh(3,3,1:end-1)))),'Color','g','LineWidth',1) + semilogy(t_obs(1:end-1)/3600,SQRT_V_rel,'Color','k','LineWidth',2) + xlabel('time $[hour]$') + ylabel('$[km/s]$') + title('MMX-Phobos relative velocity $3\sigma$ envelopes','Interpreter','latex','FontSize',30) + legend('$3\sigma_{\dot{x}}$','$3\sigma_{\dot{y}}$','$3\sigma_{\dot{z}}$','$3 RMS$','Interpreter','latex','FontSize',14) diff --git a/YObs.mat b/YObs.mat index d094df9b9b9f88d797096bf5e30da7927038d85e..93a5fc8823facdb279a5715a13c2379dd64dae15 100644 Binary files a/YObs.mat and b/YObs.mat differ