Code owners
Assign users and groups as approvers for specific file changes. Learn more.
PlotFinali.m 27.15 KiB
clear
close all
clc
addpath('./ResultsHPC/');
addpath('../useful_functions/');
addpath(genpath('../mice/'));
addpath(genpath('../generic_kernels/'));
addpath('MMX_Fcn_CovarianceAnalyses/');
MMX_InitializeSPICE
cspice_furnsh(which('mar097.bsp'));
set(0,'DefaultTextInterpreter','latex');
set(0,'DefaultAxesFontSize', 16);
%% Confronto altezze
name10 = 'QSOH_PN10_alpha51_16.mat';
load(name10);
Est10 = Est;
name9 = 'QSOM_PN10_alpha1_16.mat';
load(name9);
Est9 = Est;
name8 = 'QSOLa_PN10_alpha71_16.mat';
load(name8);
Est8 = Est;
name7 = 'QSOLb_PN10_alpha781_16.mat';
load(name7);
Est7 = Est;
name6 = 'QSOLc_PN10_alpha1_16.mat';
load(name6);
Est6 = Est;
t_obs = Est6.t(1,:);
coeff = 0.8;
fine = round(coeff*size(t_obs,2));
fineCss = round(coeff*size(t_obs,2));
% Con Process noice
[SQRT_X6, SQRT_V6, P_t_C_20_6, P_t_C_22_6, mean6, std6, meanV6, stdV6,...
meanLib6, stdLib6, meanC206, stdC206, meanC226, stdC226] = Envelopes_Plot(Est6, fine, fineCss);
[SQRT_X7, SQRT_V7, P_t_C_20_7, P_t_C_22_7, mean7, std7, meanV7, stdV7,...
meanLib7, stdLib7, meanC207, stdC207, meanC227, stdC227] = Envelopes_Plot(Est7, fine, fineCss);
[SQRT_X8, SQRT_V8, P_t_C_20_8, P_t_C_22_8, mean8, std8, meanV8, stdV8,...
meanLib8, stdLib8, meanC208, stdC208, meanC228, stdC228] = Envelopes_Plot(Est8, fine, fineCss);
[SQRT_X9, SQRT_V9, P_t_C_20_9, P_t_C_22_9, mean9, std9, meanV9, stdV9,...
meanLib9, stdLib9, meanC209, stdC209, meanC229, stdC229] = Envelopes_Plot(Est9, fine, fineCss);
[SQRT_X10, SQRT_V10, P_t_C_20_10, P_t_C_22_10, mean10, std10, meanV10,...
stdV10, meanLib10, stdLib10, meanC2010, stdC2010, meanC2210, stdC2210] = Envelopes_Plot(Est10, fine, fineCss);
% Tradeoff
x = [27; 31; 49; 94; 198];
y = [mean6; mean7; mean8; mean9; mean10];
ypos = [std6; std7; std8; std9; std10];
yneg = [std6; std7; std8; std9; std10];
yV = [meanV6; meanV7; meanV8; meanV9; meanV10];
yposV = [stdV6; stdV7; stdV8; stdV9; stdV10];
ynegV = [stdV6; stdV7; stdV8; stdV9; stdV10];
xC20 = [27; 31; 49; 94; 198];
yC20 = [meanC206; meanC207; meanC208; meanC209; meanC2010];
yposC20 = [stdC206; stdC207; stdC208; stdC209; stdC2010];
ynegC20 = [stdC206; stdC207; stdC208; stdC209; stdC2010];
yC22 = [meanC226; meanC227; meanC228; meanC229; meanC2210];
yposC22 = [stdC226; stdC227; stdC228; stdC229; stdC2210];
ynegC22 = [stdC226; stdC227; stdC228; stdC229; stdC2210];
labels = {'$QSO-Lc$','$QSO-Lb$','$QSO-La$','$QSO-M$','$QSO-H$'};
% Same thing with the libration angle
xLib = [27; 31; 49; 94; 198];
yLib = [meanLib6; meanLib7; meanLib8; meanLib9; meanLib10].*180/pi;
yposLib = [stdLib6; stdLib7; stdLib8; stdLib9; stdLib10].*180/pi;
ynegLib = [stdLib6; stdLib7; stdLib8; stdLib9; stdLib10].*180/pi;
labelsLib = {'$QSO-Lc$','$QSO-Lb$','$QSO-La$','$QSO-M$','$QSO-H$'};
PlotComparison(Est10, Est9, Est8, Est7, Est6, fine, fineCss);
%% Senza Lidar
name5 = 'QSOH_PN10_alpha1_16_NOLidar.mat';
load(name5);
Est5 = Est;
name4 = 'QSOM_PN10_alpha1_16_NOLidar.mat';
load(name4);
Est4 = Est;
name3 = 'QSOLa_PN10_alpha1_16_NOLidar.mat';
load(name3);
Est3 = Est;
name2 = 'QSOLb_PN10_alpha1_16_NOLidar.mat';
load(name2);
Est2 = Est;
name1 = 'QSOLc_PN10_alpha1_16_NOLidar.mat';
load(name1);
Est1 = Est;
t_obs1 = Est1.t(1,:);
fine1 = round(coeff*size(t_obs1,2));
fineCss1 = round(coeff*size(t_obs1,2));
[SQRT_X1, SQRT_V1, P_t_C_20_1, P_t_C_22_1, mean1, std1, meanV1, stdV1,...
meanLib1, stdLib1, meanC201, stdC201, meanC221, stdC221] = Envelopes_Plot(Est1, fine1, fineCss1);
[SQRT_X2, SQRT_V2, P_t_C_20_2, P_t_C_22_2, mean2, std2, meanV2, stdV2,...
meanLib2, stdLib2, meanC202, stdC202, meanC222, stdC222] = Envelopes_Plot(Est2, fine1, fineCss1);
[SQRT_X3, SQRT_V3, P_t_C_20_3, P_t_C_22_3, mean3, std3, meanV3, stdV3,...
meanLib3, stdLib3, meanC203, stdC203, meanC223, stdC223] = Envelopes_Plot(Est3, fine1, fineCss1);
[SQRT_X4, SQRT_V4, P_t_C_20_4, P_t_C_22_4, mean4, std4, meanV4, stdV4,...
meanLib4, stdLib4, meanC204, stdC204, meanC224, stdC224] = Envelopes_Plot(Est4, fine1, fineCss1);
[SQRT_X5, SQRT_V5, P_t_C_20_5, P_t_C_22_5, mean5, std5, meanV5,...
stdV5, meanLib5, stdLib5, meanC205, stdC205, meanC225, stdC225] = Envelopes_Plot(Est5, fine1, fineCss1);
xNo_lidar = [27; 31; 49; 94; 198];
yNo_lidar = [mean1; mean2; mean3; mean4; mean5];
yposNo_lidar = [std1; std2; std3; std4; std5];
ynegNo_lidar = [std1; std2; std3; std4; std5];
yVNo_lidar = [meanV1; meanV2; meanV3; meanV4; meanV5];
yposVNo_lidar = [stdV1; stdV2; stdV3; stdV4; stdV5];
ynegVNo_lidar = [stdV1; stdV2; stdV3; stdV4; stdV5];
xC20No_lidar = [27; 31; 49; 94; 198];
yC20No_lidar = [meanC201; meanC202; meanC203; meanC204; meanC205];
yposC20No_lidar = [stdC201; stdC202; stdC203; stdC204; stdC205];
ynegC20No_lidar = [stdC201; stdC202; stdC203; stdC204; stdC205];
yC22No_lidar = [meanC221; meanC222; meanC223; meanC224; meanC225];
yposC22No_lidar = [stdC221; stdC222; stdC223; stdC224; stdC225];
ynegC22No_lidar = [stdC221; stdC222; stdC223; stdC224; stdC225];
% Same thing with the libration angle
xLib_NoLidar = [27; 31; 49; 94; 198];
yLib_NoLidar = [mean1; mean2; mean3; mean4; mean5].*180/pi;
yposLib_NoLidar = [std1; std2; std3; std4; std5].*180/pi;
ynegLib_NoLidar = [std1; std2; std3; std4; std5].*180/pi;
% PlotComparison(Est5, Est4, Est3, Est2, Est1, fine1, fineCss1)
%% Solo DSN
name15 = 'QSOH_PN10_alpha1_16_DSN.mat';
load(name15);
Est15 = Est;
name14 = 'QSOM_PN10_alpha1_16_DSN.mat';
load(name14);
Est14 = Est;
name13 = 'QSOLa_PN10_alpha1_16_DSN.mat';
load(name13);
Est13 = Est;
name12 = 'QSOLb_PN10_alpha1_16_DSN.mat';
load(name12);
Est12 = Est;
name11 = 'QSOLc_PN10_alpha1_16_DSN.mat';
load(name11);
Est11 = Est;
[SQRT_X11, SQRT_V11, P_t_C_20_11, P_t_C_22_11, mean11, std11, meanV11, stdV11,...
meanLib11, stdLib11, meanC2011, stdC2011, meanC2211, stdC2211] = Envelopes_Plot(Est11, fine1, fineCss1);
[SQRT_X12, SQRT_V12, P_t_C_20_12, P_t_C_22_12, mean12, std12, meanV12, stdV12,...
meanLib12, stdLib12, meanC2012, stdC2012, meanC2212, stdC2212] = Envelopes_Plot(Est12, fine1, fineCss1);
[SQRT_X13, SQRT_V13, P_t_C_20_13, P_t_C_22_13, mean13, std13, meanV13, stdV13,...
meanLib13, stdLib13, meanC2013, stdC2013, meanC2213, stdC2213] = Envelopes_Plot(Est13, fine1, fineCss1);
[SQRT_X14, SQRT_V14, P_t_C_20_14, P_t_C_22_14, mean14, std14, meanV14, stdV14,...
meanLib14, stdLib14, meanC2014, stdC2014, meanC2214, stdC2214] = Envelopes_Plot(Est14, fine1, fineCss1);
[SQRT_X15, SQRT_V15, P_t_C_20_15, P_t_C_22_15, mean15, std15, meanV15,...
stdV15, meanLib15, stdLib15, meanC2015, stdC2015, meanC2215, stdC2215] = Envelopes_Plot(Est15, fine1, fineCss1);
xDSN = [27; 31; 49; 94; 198];
yDSN = [mean11; mean12; mean13; mean14; mean15];
yposDSN = [std11; std12; std13; std14; std15];
ynegDSN = [std11; std12; std13; std14; std15];
yVDSN = [meanV11; meanV12; meanV13; meanV14; meanV15];
yposVDSN = [stdV11; stdV12; stdV13; stdV14; stdV15];
ynegVDSN = [stdV11; stdV12; stdV13; stdV14; stdV15];
xC20DSN = [27; 31; 49; 94; 198];
yC20DSN = [meanC2011; meanC2012; meanC2013; meanC2014; meanC2015];
yposC20DSN = [stdC2011; stdC2012; stdC2013; stdC2014; stdC2015];
ynegC20DSN = [stdC2011; stdC2012; stdC2013; stdC2014; stdC2015];
yC22DSN = [meanC2211; meanC2212; meanC2213; meanC2214; meanC2215];
yposC22DSN = [stdC2211; stdC2212; stdC2213; stdC2214; stdC2215];
ynegC22DSN = [stdC2211; stdC2212; stdC2213; stdC2214; stdC2215];
% Same thing with the libration angle
xLib_DSN = [27; 31; 49; 94; 198];
yLib_DSN = [mean11; mean12; mean13; mean14; mean15].*180/pi;
yposLib_DSN = [std11; std12; std13; std14; std15].*180/pi;
ynegLib_DSN = [std11; std12; std13; std14; std15].*180/pi;
% PlotComparison(Est15, Est14, Est13, Est12, Est11, fine1, fineCss1)
%% No range
name20 = 'QSOH_PN10_alpha71_16_NORange.mat';
load(name20);
Est20 = Est;
name19 = 'QSOM_PN10_alpha1_16_NORange.mat';
load(name19);
Est19 = Est;
name18 = 'QSOLa_PN10_alpha71_16_NORange.mat';
load(name18);
Est18 = Est;
name17 = 'QSOLb_PN10_alpha1_16_NORange.mat';
load(name17);
Est17 = Est;
name16 = 'QSOLc_PN10_alpha1_16_NORange.mat';
load(name16);
Est16 = Est;
[SQRT_X16, SQRT_V16, P_t_C_20_16, P_t_C_22_16, mean16, std16, meanV16, stdV16,...
meanLib16, stdLib16, meanC2016, stdC2016, meanC2216, stdC2216] = Envelopes_Plot(Est16, fine, fineCss);
[SQRT_X17, SQRT_V17, P_t_C_20_17, P_t_C_22_17, mean17, std17, meanV17, stdV17,...
meanLib17, stdLib17, meanC2017, stdC2017, meanC2217, stdC2217] = Envelopes_Plot(Est17, fine, fineCss);
[SQRT_X18, SQRT_V18, P_t_C_20_18, P_t_C_22_18, mean18, std18, meanV18, stdV18,...
meanLib18, stdLib18, meanC2018, stdC2018, meanC2218, stdC2218] = Envelopes_Plot(Est18, fine, fineCss);
[SQRT_X19, SQRT_V19, P_t_C_20_19, P_t_C_22_19, mean19, std19, meanV19, stdV19,...
meanLib19, stdLib19, meanC2019, stdC2019, meanC2219, stdC2219] = Envelopes_Plot(Est19, fine, fineCss);
[SQRT_X20, SQRT_V20, P_t_C_20_20, P_t_C_22_20, mean20, std20, meanV20,...
stdV20, meanLib20, stdLib20, meanC2020, stdC2020, meanC2220, stdC2220] = Envelopes_Plot(Est20, fine, fineCss);
xNorho = [27; 31; 49; 94; 198];
yNorho = [mean16; mean17; mean18; mean19; mean20];
yposNorho = [std16; std17; std18; std19; std20];
ynegNorho = [std16; std17; std18; std19; std20];
yVNorho = [meanV16; meanV17; meanV18; meanV19; meanV20];
yposVNorho = [stdV16; stdV17; stdV18; stdV19; stdV20];
ynegVNorho = [stdV16; stdV17; stdV18; stdV19; stdV20];
xC20Norho = [27; 31; 49; 94; 198];
yC20Norho = [meanC2016; meanC2017; meanC208; meanC2019; meanC2020];
yposC20Norho = [stdC2016; stdC2017; stdC2018; stdC2019; stdC2020];
ynegC20Norho = [stdC2016; stdC2017; stdC2018; stdC2019; stdC2020];
yC22Norho = [meanC2216; meanC2217; meanC2218; meanC2219; meanC2220];
yposC22Norho = [stdC2216; stdC2217; stdC2218; stdC2219; stdC2220];
ynegC22Norho = [stdC2216; stdC2217; stdC2218; stdC2219; stdC2220];
% Libration
xLib_Norho = [27; 31; 49; 94; 198];
yLib_Norho = [meanLib16; meanLib17; meanLib18; meanLib19; meanLib20].*180/pi;
yposLib_Norho = [stdLib16; stdLib17; stdLib18; stdLib19; stdLib20].*180/pi;
ynegLib_Norho = [stdLib16; stdLib17; stdLib18; stdLib19; stdLib20].*180/pi;
% PlotComparison(Est20, Est19, Est18, Est17, Est16, fine, fineCss)
%% No range rate
name25 = 'QSOH_PN10_alpha1_16_NORate.mat';
load(name25);
Est25 = Est;
name24 = 'QSOM_PN10_alpha1_16_NORate.mat';
load(name24);
Est24 = Est;
name23 = 'QSOLa_PN10_alpha1_16_NORate.mat';
load(name23);
Est23 = Est;
name22 = 'QSOLb_PN10_alpha41_16_NORate.mat';
load(name22);
Est22 = Est;
name21 = 'QSOLc_PN10_alpha1_16_NORate.mat';
load(name21);
Est21 = Est;
[SQRT_X21, SQRT_V21, P_t_C_20_21, P_t_C_22_21, mean21, std21, meanV21, stdV21,...
meanLib21, stdLib21, meanC2021, stdC2021, meanC2221, stdC2221] = Envelopes_Plot(Est21, fine, fineCss);
[SQRT_X22, SQRT_V22, P_t_C_20_22, P_t_C_22_22, mean22, std22, meanV22, stdV22,...
meanLib22, stdLib22, meanC2022, stdC2022, meanC2222, stdC2222] = Envelopes_Plot(Est22, fine, fineCss);
[SQRT_X23, SQRT_V23, P_t_C_20_23, P_t_C_22_23, mean23, std23, meanV23, stdV23,...
meanLib23, stdLib23, meanC2023, stdC2023, meanC2223, stdC2223] = Envelopes_Plot(Est23, fine, fineCss);
[SQRT_X24, SQRT_V24, P_t_C_20_24, P_t_C_22_24, mean24, std24, meanV24, stdV24,...
meanLib24, stdLib24, meanC2024, stdC2024, meanC2224, stdC2224] = Envelopes_Plot(Est24, fine, fineCss);
[SQRT_X25, SQRT_V25, P_t_C_20_25, P_t_C_22_25, mean25, std25, meanV25,...
stdV25, meanLib25, stdLib25, meanC2025, stdC2025, meanC2225, stdC2225] = Envelopes_Plot(Est25, fine, fineCss);
xNorate = [27; 31; 49; 94; 198];
yNorate = [mean21,; mean22; mean23; mean24; mean25];
yposNorate = [std21,; std22; std23; std24; std25];
ynegNorate = [std21,; std22; std23; std24; std25];
yVNorate = [meanV21,; meanV22; meanV23; meanV24; meanV25];
yposVNorate = [stdV21,; stdV22; stdV23; stdV24; stdV25];
ynegVNorate = [stdV21,; stdV22; stdV23; stdV24; stdV25];
xC20Norate = [27; 31; 49; 94; 198];
yC20Norate = [meanC2021,; meanC2022; meanC2023; meanC2024; meanC2025];
yposC20Norate = [stdC2021,; stdC2022; stdC2023; stdC2024; stdC2025];
ynegC20Norate = [stdC2021,; stdC2022; stdC2023; stdC2024; stdC2025];
yC22Norate = [meanC2221,; meanC2222; meanC2223; meanC2224; meanC2225];
yposC22Norate = [stdC2221,; stdC2222; stdC2223; stdC2224; stdC2225];
ynegC22Norate = [stdC2221,; stdC2222; stdC2223; stdC2224; stdC2225];
% Libration
xLib_Norate = [27; 31; 49; 94; 198];
yLib_Norate = [meanLib21; meanLib22; meanLib23; meanLib24; meanLib25].*180/pi;
yposLib_Norate = [stdLib21; stdLib22; stdLib23; stdLib24; stdLib25].*180/pi;
ynegLib_Norate = [stdLib21; stdLib22; stdLib23; stdLib24; stdLib25].*180/pi;
% PlotComparison(Est25, Est24, Est23, Est22, Est21, fine, fineCss)
%% No LOS
name30 = 'QSOH_PN10_alpha51_16_NOLOS.mat';
load(name30);
Est30 = Est;
name29 = 'QSOM_PN10_alpha1_16_NOLOS.mat';
load(name29);
Est29 = Est;
name28 = 'QSOLa_PN10_alpha71_16_NOLOS.mat';
load(name28);
Est28 = Est;
name27 = 'QSOLb_PN10_alpha771_16_NOLOS.mat';
load(name27);
Est27 = Est;
name26 = 'QSOLc_PN10_alpha551_16_NOLOS.mat';
load(name26);
Est26 = Est;
[SQRT_X26, SQRT_V26, P_t_C_20_26, P_t_C_22_26, mean26, std26, meanV26, stdV26,...
meanLib26, stdLib26, meanC2026, stdC2026, meanC2226, stdC2226] = Envelopes_Plot(Est26, fine, fineCss);
[SQRT_X27, SQRT_V27, P_t_C_20_27, P_t_C_22_27, mean27, std27, meanV27, stdV27,...
meanLib27, stdLib27, meanC2027, stdC2027, meanC2227, stdC2227] = Envelopes_Plot(Est27, fine, fineCss);
[SQRT_X28, SQRT_V28, P_t_C_20_28, P_t_C_22_28, mean28, std28, meanV28, stdV28,...
meanLib28, stdLib28, meanC2028, stdC2028, meanC2228, stdC2228] = Envelopes_Plot(Est28, fine, fineCss);
[SQRT_X29, SQRT_V29, P_t_C_20_29, P_t_C_22_29, mean29, std29, meanV29, stdV29,...
meanLib29, stdLib29, meanC2029, stdC2029, meanC2229, stdC2229] = Envelopes_Plot(Est29, fine, fineCss);
[SQRT_X30, SQRT_V30, P_t_C_20_30, P_t_C_22_30, mean30, std30, meanV30,...
stdV30, meanLib30, stdLib30, meanC2030, stdC2030, meanC2230, stdC2230] = Envelopes_Plot(Est30, fine-300, fineCss-300);
% MMX state vector RMS
xNoLOS = [27; 31; 49; 94; 198];
yNoLOS = [mean26; mean27; mean8; mean29; mean30];
yposNoLOS = [std26; std27; std28; std29; std30];
ynegNoLOS = [std26; std27; std28; std29; std30];
yVNoLOS = [meanV26; meanV27; meanV8; meanV29; meanV30];
yposVNoLOS = [stdV26; stdV27; stdV28; stdV29; stdV30];
ynegVNoLOS = [stdV26; stdV27; stdV28; stdV29; stdV30];
% Css
xC20NoLOS = [27; 31; 49; 94; 198];
yC20NoLOS = [meanC206; meanC207; meanC2028; meanC2029; meanC2030];
yposC20NoLOS = [stdC2026; stdC2027; stdC2028; stdC2029; stdC2030];
ynegC20NoLOS = [stdC2026; stdC2027; stdC2028; stdC2029; stdC2030];
yC22NoLOS = [meanC2216; meanC2227; meanC2228; meanC2229; meanC2230];
yposC22NoLOS = [stdC2226; stdC2227; stdC2228; stdC2229; stdC2230];
ynegC22NoLOS = [stdC2226; stdC2227; stdC2228; stdC2229; stdC2230];
% Libration
xLib_NoLOS = [27; 31; 49; 94; 198];
yLib_NoLOS = [meanLib26; meanLib27; meanLib28; meanLib29; meanLib30].*180/pi;
yposLib_NoLOS = [stdLib26; stdLib27; stdLib28; stdLib29; stdLib30].*180/pi;
ynegLib_NoLOS = [stdLib26; stdLib27; stdLib28; stdLib29; stdLib30].*180/pi;
% PlotComparison(Est30, Est29, Est28, Est27, Est26, fine, fineCss)
%% Plots
figure()
subplot(1,2,1)
errorbar(x,y,yneg,ypos,'-s','LineWidth',2.2,'MarkerSize',5)
hold on
errorbar(xNorho,yNorho,ynegNorho,yposNorho,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xNorate,yNorate,ynegNorate,yposNorate,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xNo_lidar,yNo_lidar,ynegNo_lidar,yposNo_lidar,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xNoLOS,yNoLOS,ynegNoLOS,yposNoLOS,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xDSN,yDSN,ynegDSN,yposDSN,'-s',...
'LineWidth',1.2,'MarkerSize',5)
set(gca,'YScale','log')
set(gca,'TickLabelInterpreter','latex')
set(gca,'XScale','log');
set(gca,'XTick',[27; 31; 49; 94; 198]);
set(gca,'XTickLabel',labels,'Fontsize',26);
set(gca,'XTickLabelRotation',45)
legend('Full','No $\rho$','No $\dot{\rho}$','No Lidar','No LOS','DSN only','Interpreter','latex','Fontsize',26)
ylabel('$[km]$','Fontsize',26)
xlim([2e1,4e2])
grid on
subplot(1,2,2)
errorbar(x,yV,ynegV,yposV,'-s','LineWidth',2.2,'MarkerSize',5)
hold on
errorbar(xNorho,yVNorho,ynegVNorho,yposVNorho,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xNorate,yVNorate,ynegVNorate,yposVNorate,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xNo_lidar,yVNo_lidar,ynegVNo_lidar,yposVNo_lidar,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xNoLOS,yVNoLOS,ynegVNoLOS,yposVNoLOS,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xDSN,yVDSN,ynegVDSN,yposVDSN,'-s',...
'LineWidth',1.2,'MarkerSize',5)
grid on
set(gca,'YScale','log')
set(gca,'TickLabelInterpreter','latex')
set(gca,'XScale','log')
set(gca,'XTick',[27; 31; 49; 94; 198]);
set(gca,'XTickLabel',labels,'Fontsize',26);
set(gca,'XTickLabelRotation',45)
legend('Full','No $\rho$','No $\dot{\rho}$','No Lidar','No LOS','DSN only','Interpreter','latex','Fontsize',26)
ylabel('$[km/s]$','Fontsize',26)
xlim([2e1,4e2])
% Css
figure()
subplot(1,2,1)
errorbar(xC20,yC20,ynegC20,yposC20,'-s','LineWidth',2.2,'MarkerSize',5)
hold on
errorbar(xC20Norho,yC20Norho,ynegC20Norho,yposC20Norho,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xC20Norate,yC20Norate,ynegC20Norate,yposC20Norate,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xC20No_lidar,yC20No_lidar,ynegC20No_lidar,yposC20No_lidar,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xC20NoLOS,yC20NoLOS,ynegC20NoLOS,yposC20NoLOS,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xC20DSN,yC20DSN,ynegC20DSN,yposC20DSN,'-s',...
'LineWidth',1.2,'MarkerSize',5)
set(gca,'YScale','log')
set(gca,'TickLabelInterpreter','latex')
set(gca,'XScale','log')
set(gca,'XTick',[27; 31; 49; 94; 198]);
set(gca,'XTickLabel',labels,'Fontsize',26);
set(gca,'XTickLabelRotation',45)
legend('Full','No $\rho$','No $\dot{\rho}$','No Lidar','No LOS','DSN only','Interpreter','latex','Fontsize',26)
ylabel('$3\sigma_{C_{20}}$','Fontsize',30)
xlim([2e1,4e2])
grid on
subplot(1,2,2)
errorbar(x,yC22,ynegC22,yposC22,'-s','LineWidth',2.2,'MarkerSize',5)
hold on
errorbar(xNorho,yC22Norho,ynegC22Norho,yposC22Norho,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xNorate,yC22Norate,ynegC22Norate,yposC22Norate,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xNo_lidar,yC22No_lidar,ynegC22No_lidar,yposC22No_lidar,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xNoLOS,yC22NoLOS,ynegC22NoLOS,yposC22NoLOS,'-s',...
'LineWidth',1.2,'MarkerSize',5)
errorbar(xDSN,yC22DSN,ynegC22DSN,yposC22DSN,'-s',...
'LineWidth',1.2,'MarkerSize',5)
grid on
set(gca,'YScale','log')
set(gca,'TickLabelInterpreter','latex')
set(gca,'XScale','log')
set(gca,'XTick',[27; 31; 49; 94; 198]);
set(gca,'XTickLabel',labels,'Fontsize',26);
set(gca,'XTickLabelRotation',45)
legend('Full','No $\rho$','No $\dot{\rho}$','No Lidar','No LOS','DSN only','Interpreter','latex','Fontsize',26)
ylabel('$3\sigma_{C_{22}}$','Fontsize',30)
xlim([2e1,4e2])
% Libration
figure()
errorbar(xLib,yLib,ynegLib,yposLib,'-s','LineWidth',2.5,'MarkerSize',5)
hold on
errorbar(xLib_Norho,yLib_Norho,ynegLib_Norho,yposLib_Norho,'-s',...
'LineWidth',1.5,'MarkerSize',5)
errorbar(xLib_Norate,yLib_Norate,ynegLib_Norate,yposLib_Norate,'-s',...
'LineWidth',1.5,'MarkerSize',5)
errorbar(xLib_NoLidar,yLib_NoLidar,ynegLib_NoLidar,yposLib_NoLidar,'-s',...
'LineWidth',1.5,'MarkerSize',5)
errorbar(xLib_NoLOS,yLib_NoLOS,ynegLib_NoLOS,yposLib_NoLOS,'-s',...
'LineWidth',1.5,'MarkerSize',5)
errorbar(xLib_DSN,yLib_DSN,ynegLib_DSN,yposLib_DSN,'-s',...
'LineWidth',1.5,'MarkerSize',5)
set(gca,'YScale','log')
set(gca,'TickLabelInterpreter','latex')
set(gca,'XScale','log')
set(gca,'XTick',[27; 31; 49; 94; 198]);
set(gca,'XTickLabel',labelsLib,'Fontsize',30);
set(gca,'XTickLabelRotation',45)
ylabel('$[deg]$','Fontsize',30)
legend('Full','No $\rho$','No $\dot{\rho}$','No Lidar','No LOS','DSN only','Interpreter','latex','Fontsize',30)
xlim([2e1,4e2])
grid on
%% Confronto geometrie sulla Lb
% load('QSOM_PN10_alpha1_16.mat');
% EstQSO = Est;
% load('3DQSOM_PN10_alpha91_16.mat');
% Est3D = Est;
% load('SwingQSOM_PN10_alpha91_16.mat');
% EstSwing = Est;
% load('QSOLa_PN10_alpha71_16.mat');
% EstQSO = Est;
% load('3DQSOLa_PN10_alpha71_16.mat');
% Est3D = Est;
% load('SwingQSOLa_PN10_alpha71_16.mat');
% EstSwing = Est;
load('QSOLb_PN10_alpha61_16.mat');
EstQSO = Est;
load('3DQSOLb_PN10_alpha61_16.mat');
Est3D = Est;
load('SwingQSOLb_PN10_alpha61_16.mat');
EstSwing = Est;
coeff = .99;
t_obs = EstQSO.t(1,:);
fine = round(coeff*size(t_obs,2));
fineCss = round(coeff*size(t_obs,2));
[par,~] = MMX_DefineNewModelParametersAndUnits;
C_20 = par.SH.Clm(3,1);
C_22 = par.SH.Clm(3,3);
t_obs = EstQSO.t(1,:);
[SQRT_X_QSO, SQRT_V_QSO, P_t_C_20_QSO, P_t_C_22_QSO, meanQSO, stdQSO, meanVQSO, stdVQSO,...
meanLibQSO, stdLibQSO,] = Envelopes_Plot(EstQSO, fine, fineCss);
[SQRT_X_3D, SQRT_V_3D, P_t_C_20_3D, P_t_C_22_3D, mean3D, std3D, meanV3D, stdV3D,...
meanLib3D, stdLib3D] = Envelopes_Plot(Est3D, fine, fineCss);
[SQRT_X_Swing, SQRT_V_Swing, P_t_C_20_Swing, P_t_C_22_Swing, meanSwing, stdSwing, meanVSwing, stdVSwing,...
meanLibSwing, stdLibSwing] = Envelopes_Plot(EstSwing, fine, fineCss);
C_20_QSO_perc= abs(3*real(sqrt(P_t_C_20_QSO))/C_20);
C_22_QSO_perc= abs(3*real(sqrt(P_t_C_22_QSO))/C_22);
C_20_3D_perc= abs(3*real(sqrt(P_t_C_20_3D))/C_20);
C_22_3D_perc= abs(3*real(sqrt(P_t_C_22_3D))/C_22);
C_20_Swing_perc= abs(3*real(sqrt(P_t_C_20_Swing))/C_20);
C_22_Swing_perc= abs(3*real(sqrt(P_t_C_22_Swing))/C_22);
figure()
subplot(1,2,1)
semilogy(t_obs(1:end-1)/3600,3.*real(sqrt(P_t_C_20_QSO)),'LineWidth',1.2);
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,3.*real(sqrt(P_t_C_20_3D)),'LineWidth',1.2);
semilogy(t_obs(1:end-1)/3600,3.*real(sqrt(P_t_C_20_Swing)),'LineWidth',1.2);
xlabel('Time $[hour]$','Fontsize',26)
ylabel('$3\sigma_{C_{20}}$','Fontsize',30)
legend('QSO','3D-QSO','Swing-QSO','Interpreter','latex','Fontsize',26)
subplot(1,2,2)
semilogy(t_obs(1:end-1)/3600,3.*real(sqrt(P_t_C_22_QSO)),'LineWidth',1.2);
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,3.*real(sqrt(P_t_C_22_3D)),'LineWidth',1.2);
semilogy(t_obs(1:end-1)/3600,3.*real(sqrt(P_t_C_22_Swing)),'LineWidth',1.2);
xlabel('Time $[hour]$','Fontsize',26)
ylabel('$3\sigma_{C_{22}}$','Fontsize',30)
legend('QSO','3D-QSO','Swing-QSO','Interpreter','latex','Fontsize',26)
% figure()
% subplot(1,2,1)
% semilogy(t_obs(1:end-1)/3600,C_20_QSO_perc,'LineWidth',1.2);
% grid on;
% hold on;
% semilogy(t_obs(1:end-1)/3600,C_20_3D_perc,'LineWidth',1.2);
% semilogy(t_obs(1:end-1)/3600,C_20_Swing_perc,'LineWidth',1.2);
% xlabel('Time $[hour]$','Fontsize',26)
% ylabel('%','Fontsize',26)
% legend('QSO','3D-QSO','Swing-QSO','Interpreter','latex','Fontsize',26)
% subplot(1,2,2)
% semilogy(t_obs(1:end-1)/3600,C_22_QSO_perc,'LineWidth',1.2);
% grid on;
% hold on;
% semilogy(t_obs(1:end-1)/3600,C_22_3D_perc,'LineWidth',1.2);
% semilogy(t_obs(1:end-1)/3600,C_22_Swing_perc,'LineWidth',1.2);
% xlabel('Time $[hour]$','Fontsize',26)
% ylabel('%','Fontsize',26)
% legend('QSO','3D-QSO','Swing-QSO','Interpreter','latex','Fontsize',26)
figure()
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstQSO.P_t(13,13,1:end-1)))),'LineWidth',1.2)
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(Est3D.P_t(13,13,1:end-1)))),'LineWidth',1.2)
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstSwing.P_t(13,13,1:end-1)))),'LineWidth',1.2)
title('Libration angle $3\sigma$ envelopes','FontSize',26)
xlabel('Time [hour]','Interpreter','latex','Fontsize',26)
ylabel('$3\sigma_{\Phi_{Ph}}$ [deg]','Interpreter','latex','Fontsize',30)
legend('QSO','3D-QSO','Swing-QSO','Interpreter','latex','Fontsize',26)
% MMX Position and velocity
figure()
subplot(1,2,1)
semilogy(t_obs(1:end-1)/3600,SQRT_X_QSO)
hold on;
grid on;
semilogy(t_obs(1:end-1)/3600,SQRT_X_3D)
semilogy(t_obs(1:end-1)/3600,SQRT_X_Swing)
xlabel('time $[hour]$')
ylabel('$[km]$')
title('MMX position vector $3\sigma$ envelopes','Interpreter','latex','FontSize',16)
legend('QSO','3D-QSO','Swing-QSO','Interpreter','latex','FontSize',14)
subplot(1,2,2)
semilogy(t_obs(1:end-1)/3600,SQRT_V_QSO)
hold on;
grid on;
semilogy(t_obs(1:end-1)/3600,SQRT_V_3D)
semilogy(t_obs(1:end-1)/3600,SQRT_V_Swing)
xlabel('time $[hour]$')
ylabel('$[km/s]$')
title('MMX velocity vector $3\sigma$ envelopes','Interpreter','latex','FontSize',16)
legend('QSO','3D-QSO','Swing-QSO','Interpreter','latex','FontSize',14)
% Phobos states
figure()
subplot(2,4,1)
semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(EstQSO.P_t(7,7,1:end-1)))))
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est3D.P_t(7,7,1:end-1)))))
semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(EstSwing.P_t(7,7,1:end-1)))))
xlabel('time [hour]')
ylabel('$R_{Ph}$ [km]')
subplot(2,4,2)
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstQSO.P_t(9,9,1:end-1)))))
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(Est3D.P_t(9,9,1:end-1)))))
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstSwing.P_t(9,9,1:end-1)))))
xlabel('time [hour]')
ylabel('$\theta_{Ph}$ [deg]')
subplot(2,4,3)
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstQSO.P_t(11,11,1:end-1)))))
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(Est3D.P_t(11,11,1:end-1)))))
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstSwing.P_t(11,11,1:end-1)))))
xlabel('time [hour]')
ylabel('$\Phi_{M}$ [deg]')
subplot(2,4,4)
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstQSO.P_t(13,13,1:end-1)))))
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(Est3D.P_t(13,13,1:end-1)))))
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstSwing.P_t(13,13,1:end-1)))))
xlabel('time [hour]')
ylabel('$\Phi_{Ph}$ [deg]')
subplot(2,4,5)
semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(EstQSO.P_t(8,8,1:end-1)))))
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(Est3D.P_t(8,8,1:end-1)))))
semilogy(t_obs(1:end-1)/3600,3.*squeeze(real(sqrt(EstSwing.P_t(8,8,1:end-1)))))
xlabel('time [hour]')
ylabel('$\dot{R}_{Ph}$ [km/s]')
subplot(2,4,6)
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstQSO.P_t(10,10,1:end-1)))))
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(Est3D.P_t(10,10,1:end-1)))))
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstSwing.P_t(10,10,1:end-1)))))
xlabel('time [hour]')
ylabel('$\dot{\theta}_{Ph}$ [deg/s]')
subplot(2,4,7)
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstQSO.P_t(12,12,1:end-1)))))
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(Est3D.P_t(12,12,1:end-1)))))
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstSwing.P_t(12,12,1:end-1)))))
xlabel('time [hour]')
ylabel('$\dot{\Phi}_{M}$ [deg/s]')
subplot(2,4,8)
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstQSO.P_t(14,14,1:end-1)))))
grid on;
hold on;
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(Est3D.P_t(14,14,1:end-1)))))
semilogy(t_obs(1:end-1)/3600,180/pi*3.*squeeze(real(sqrt(EstSwing.P_t(14,14,1:end-1)))))
xlabel('time [hour]')
ylabel('$\dot{\Phi}_{Ph}$ [deg/s]')