diff --git a/RoccarasoFlight/postprocessing/RPS/cleanData/ROC2/engineFlightData.mat b/RoccarasoFlight/postprocessing/RPS/cleanData/ROC2/engineFlightData.mat
index aef81bab5ef6ee0f4df703b96c10110556d95a46..580fd2205e9eaad10b14e2b4a6085a66b9a27bdc 100644
Binary files a/RoccarasoFlight/postprocessing/RPS/cleanData/ROC2/engineFlightData.mat and b/RoccarasoFlight/postprocessing/RPS/cleanData/ROC2/engineFlightData.mat differ
diff --git a/RoccarasoFlight/postprocessing/RPS/configDataAnalyzer.m b/RoccarasoFlight/postprocessing/RPS/configDataAnalyzer.m
index 441dcc97598c2c3f464aa411ec2b11bf716684e7..d8ff216dafbd62b3d4b5de2232a2d0ad686884f6 100644
--- a/RoccarasoFlight/postprocessing/RPS/configDataAnalyzer.m
+++ b/RoccarasoFlight/postprocessing/RPS/configDataAnalyzer.m
@@ -22,6 +22,7 @@ clear CEA_db
 
 %% SIMULATION SETTINGS
 settings.interpMthd = 1;
+settings.saveResults = 1;
 
 %% CONSTANTS
 settings.g0 = 9.806;                                % [m/s2] Acceleration of Gravity, constant
diff --git a/RoccarasoFlight/postprocessing/RPS/dataAnalyzer.m b/RoccarasoFlight/postprocessing/RPS/dataAnalyzer.m
index ca73d482882adb77bf26974dfaa359276ef2373b..081f1fdd1e5451b9665d1ced8464a8e4c3c9ef40 100644
--- a/RoccarasoFlight/postprocessing/RPS/dataAnalyzer.m
+++ b/RoccarasoFlight/postprocessing/RPS/dataAnalyzer.m
@@ -36,7 +36,7 @@ engine = tankEvacuation(engine);
 % Simulating the engine
 engineSim = combustionSimulation(engine, settings);
 
-% Computing actual performance
+% Computing actual performances
 engineFly = performanceReconstruction(engine, engineSim);
 
 %% PLOTTING
@@ -44,6 +44,16 @@ fprintf('DATA ANALYSIS CONCLUDED: \n\n')
 fprintf('\t - Total Impulse simulated: %.2f\n', engineSim.performances.Itot)
 fprintf('\t - Total Impulse computed: %.2f\n', engineFly.Itot)
 
+if settings.saveResults
+    msaEngineData.Mp     = engineSim.mass.Mp;
+    msaEngineData.Mox    = engineSim.mass.Mox;
+    msaEngineData.Mfu    = engineSim.mass.Mfu;
+    msaEngineData.mp     = engineSim.mfr.mp;
+    msaEngineData.time   = engineSim.time;
+    msaEngineData.Thrust = engineSim.performances.T;
+    save('msaEngineData', 'msaEngineData');
+end
+
 if settings.plots
     f1 = figure;
     yyaxis left
diff --git a/RoccarasoFlight/postprocessing/RPS/engineData/engines/CEA_db.mat b/RoccarasoFlight/postprocessing/RPS/engineData/engines/CEA_db.mat
index 92de427b9ecb77f7f42a48eb7eda47fdef275435..e1e3861b8edc88853c5be0794f2974b912720d30 100644
Binary files a/RoccarasoFlight/postprocessing/RPS/engineData/engines/CEA_db.mat and b/RoccarasoFlight/postprocessing/RPS/engineData/engines/CEA_db.mat differ
diff --git a/RoccarasoFlight/postprocessing/RPS/engineData/engines/Furia/Furia.m b/RoccarasoFlight/postprocessing/RPS/engineData/engines/Furia/Furia.m
index 7190b74c04cf1b46d10ba6f40da6562379955075..343a6d76c4a146f4025f6851f0575307881f0054 100644
--- a/RoccarasoFlight/postprocessing/RPS/engineData/engines/Furia/Furia.m
+++ b/RoccarasoFlight/postprocessing/RPS/engineData/engines/Furia/Furia.m
@@ -58,7 +58,7 @@ engine.data.lambda  = 0.985;          % [-] Loss due to nozzle divergence
 engine.data.Rc_CM   = 0.5;
 engine.data.R_pre   = 1.15;           % [-] Ratio between pre-chamber length and port radius
 engine.data.R_post  = 2.35;           % [-] ratio between post-chamber length and port radius
-engine.data.Pc0     = 10;             % [bar] Initial pressure value
+engine.data.Pc0     = 2;              % [bar] Initial pressure value
 
 %%% PRE CC
 engine.data.Dpre    = 66e-3;
@@ -74,3 +74,8 @@ engine.data.Vpost   = pi/4*engine.data.Dpost^2*engine.data.Lpost;
 engine.data.zopt       = 0;           % [m] Altitude of optimal expansion
 engine.data.RAO_Lratio = 0.8;         % [-] Rao length ratio
 
+
+%% ENGINE TEST PARAMETERS
+engine.postFire.Mox = 0.4445;         % [kg] Oxidizer residual mass @ X = 1
+engine.postFire.Mfu = 0.7799;         % [kg] Fuel residual mass
+
diff --git a/RoccarasoFlight/postprocessing/RPS/msaEngineData.mat b/RoccarasoFlight/postprocessing/RPS/msaEngineData.mat
new file mode 100644
index 0000000000000000000000000000000000000000..1603214baff3dd313ed2ff0b4e98cc1f8bbf7a99
Binary files /dev/null and b/RoccarasoFlight/postprocessing/RPS/msaEngineData.mat differ
diff --git a/RoccarasoFlight/postprocessing/RPS/src/combustionSimulation.m b/RoccarasoFlight/postprocessing/RPS/src/combustionSimulation.m
index 19cad597d0dd54d74ed290e02fa2abc746045092..bdacbf726dbde03c0ea8d8ea92a7cf194c9893e7 100644
--- a/RoccarasoFlight/postprocessing/RPS/src/combustionSimulation.m
+++ b/RoccarasoFlight/postprocessing/RPS/src/combustionSimulation.m
@@ -83,8 +83,11 @@ OF = engineSim.mfr.mox./engineSim.mfr.mf;
 OF(1) = OF(2);
 engineSim.performances.OF = OF;
 
+ii = find(OF < 2);
+OF(ii) = 2;
+
 % Integration of mass balance equation to retrieve pressure
-[solution] = ode45(@(t, Pc) massBalance(t, Pc, engine, engineSim, settings, interpFun), tSpan, Pc0);
+[solution] = ode23s(@(t, Pc) massBalance(t, Pc, engine, engineSim, settings, interpFun), tSpan, Pc0);
 
 % Evaluating solution derivative
 [Pc, ~] = deval(tSpan, solution);
@@ -108,7 +111,7 @@ for ii = 1:length(Pc)
 end
 
 % Turning the array
-Pe = Pe';
+Pe = real(Pe');
 
 % Thrust coefficient
 cT = sqrt(2*y.^2./(y - 1).*(2./(y + 1)).^((y + 1)./(y - 1))).*sqrt(1 - (Pe./Pc).^((y - 1)./y)) * lambda + (Pe - Pamb)./Pc.*epsilon;
@@ -122,6 +125,19 @@ Isp = T./engineSim.mfr.mox/g0;
 % Total impulse
 Itot = trapz(engineSim.time, T);
 
+% Computing the oxidizer mass evolution
+Mox = @(t, y) interp1(engineSim.time, engineSim.mfr.mox, t);
+[~, Mox] = ode45(Mox, engineSim.time, engine.postFire.Mox);
+Mox = flip(Mox);
+
+% Computing the fuel mass evolution
+Mfu = @(t, y) interp1(engineSim.time, engineSim.mfr.mf, t);
+[~, Mfu] = ode45(Mfu, engineSim.time, engine.postFire.Mfu);
+Mfu = flip(Mfu);
+
+% Computing the propellant mass evolution
+Mp = Mfu + Mox;
+
 
 %% OUTPUT
 engineSim.cc.dr             = dr;
@@ -132,5 +148,8 @@ engineSim.performances.cT   = cT;
 engineSim.performances.Isp  = Isp;
 engineSim.performances.Itot = Itot;
 engineSim.mfr.mp            = engineSim.mfr.mox + engineSim.mfr.mf;
+engineSim.mass.Mox          = Mox;
+engineSim.mass.Mfu          = Mfu;
+engineSim.mass.Mp           = Mp;
 
 
diff --git a/RoccarasoFlight/postprocessing/RPS/src/dataLoader.m b/RoccarasoFlight/postprocessing/RPS/src/dataLoader.m
index 253274bc6057b1794967114771f7c2cc552b8f9e..e84abd52a4b7f233f30f1a538ef4b17990015490 100644
--- a/RoccarasoFlight/postprocessing/RPS/src/dataLoader.m
+++ b/RoccarasoFlight/postprocessing/RPS/src/dataLoader.m
@@ -52,8 +52,8 @@ if strcmp(settings.testName, 'ROC1')
     flightData.srvVent  = rawData.srvVent(is:js);
 
 elseif strcmp(settings.testName, 'ROC2')
-    % Defining the burning time
-    tb = 4.0;
+    % Defining the burning time - without ending transitory
+    tb = 3.5;
 
     % Defining the first index
     ip = 8481 * settings.frPT;
@@ -78,8 +78,8 @@ elseif strcmp(settings.testName, 'ROC2')
 
 
     % Defining manual cutting indeces
-    [~, ic] = min(abs(0.980 - flightData.timePTop));
-    [~, jc] = min(abs(0.980 + tb - flightData.timePTop));
+    [~, ic] = min(abs(1.3 - flightData.timePTop));
+    [~, jc] = min(abs(1.3 + tb - flightData.timePTop));
 
     flightData.cutData.timePTop = flightData.timePTop(ic:jc);
     flightData.cutData.timePEng = flightData.timePEng(ic:jc);
diff --git a/RoccarasoFlight/postprocessing/RPS/src/massBalance.m b/RoccarasoFlight/postprocessing/RPS/src/massBalance.m
index cccae0b178926426dd03cfc3d989501114729b20..d5cd381a54c737dc82d0bb0db54e8f7f8678873d 100644
--- a/RoccarasoFlight/postprocessing/RPS/src/massBalance.m
+++ b/RoccarasoFlight/postprocessing/RPS/src/massBalance.m
@@ -21,8 +21,8 @@ mf  = eval(strcat(interpFun, '(engineSim.time,  engineSim.mfr.mf, t)'));
 dAp = eval(strcat(interpFun, '(engineSim.time,  engineSim.cc.dAp, t)'));
 Ap  = eval(strcat(interpFun, '(engineSim.time,  engineSim.cc.Ap, t)'));
 
-if t == 0
-    OF = engineSim.performances.OF(2);
+if mox/mf < 2 || isnan(mox/mf)
+    OF = 2;
 else
     OF = mox/mf;
 end
diff --git a/RoccarasoFlight/postprocessing/RPS/src/tankEvacuation.m b/RoccarasoFlight/postprocessing/RPS/src/tankEvacuation.m
index 89e9769dacf413a1737cc0b58d072067c8a0c694..ff911f16855c7160d2f54a11064c65605452b6bb 100644
--- a/RoccarasoFlight/postprocessing/RPS/src/tankEvacuation.m
+++ b/RoccarasoFlight/postprocessing/RPS/src/tankEvacuation.m
@@ -63,6 +63,14 @@ for i = 1 : length(p1)
     v(i + 1)     = mox(i)./rho1(i)/(pi*d_pipe^2/4);
 end
 
+% Adding transitory to injection mox
+% tTrans = 0.1;
+% [~, j] = min(abs(engine.acquisition.cutData.timePTop - engine.acquisition.cutData.timePTop(1)  - tTrans));
+% moxTrans = linspace(mox(1), mox(2), j)';
+% mox = [moxTrans ; mox(3:end)];
+% time = [linspace(0, engine.acquisition.cutData.timePTop(j) - engine.acquisition.cutData.timePTop(1), j)' ; engine.acquisition.cutData.timePTop(3:end) - 2*engine.acquisition.cutData.timePTop(1) + engine.acquisition.cutData.timePTop(j)];
+% mox = interp1(time, mox(1:end-1), engine.acquisition.cutData.timePTop - engine.acquisition.cutData.timePTop(1));
+
 %% OUTPUT
 
 % ozydizer mass flow rate