diff --git a/simulator/src/printOutput.m b/simulator/src/printOutput.m
index ca3949680c6edf1c4a413340302469d7a735ad82..1038637374d369fee5e4397bc52157e5c439d742 100644
--- a/simulator/src/printOutput.m
+++ b/simulator/src/printOutput.m
@@ -42,7 +42,8 @@ fprintf('OUTCOMES:\n\n\n')
 % fprintf('max step omputational Time: %.3f [s]: \n\n', max(cpuTimes))
 
 fprintf('apogee: %.1f [m] \n', max_z);
-fprintf('@time: %g [sec] \n\n', T_apo)
+fprintf('@time: %g [sec] \n', T_apo)
+fprintf('@vz: %g [sec] \n\n', structIn.apogee_vz)
 
 fprintf('max speed reached: %g [m/s] \n', max_v)
 fprintf('@altitude: %g [m] \n', z(imax_v))
diff --git a/simulator/src/std_run.m b/simulator/src/std_run.m
index 8a8b98a4689830f2f8a55e906331d65bcaa88f3b..0b31a2515ee76df3aab7e5171cda28a9cecf2501 100644
--- a/simulator/src/std_run.m
+++ b/simulator/src/std_run.m
@@ -252,6 +252,12 @@ while settings.flagStopIntegration && n_old < nmax                          % St
             % drogue_descent if full_flight,
             % landed if apogee was never detected
             if flagApogee
+                v_ned = quatrotate(quatconj(Y0(end, 10:13)), Y0(end, 4:6));
+                struct_out.apogee_vz = v_ned(3);
+                if abs(v_ned(3)) > 5
+                    disp(v_ned(3))
+                    error("CRITICAL FAILURE: Expulsion at a too high speed!");  
+                end
                 state_lastTime(currentState) = t0;
 
                 % Exit condition of unpowered_ascent / Entry condition of drogue_descent: