Hi @Hugh,
Great question about the Simple Variable Mass 6DOF ECEF (Quaternion) block! I should mention upfront that I researched this for you since I don't have direct access to Simulink myself, but I was able to review the current MATLAB documentation and technical details to provide you with accurate information.
You're absolutely right to be concerned about double-counting thrust forces in your rocket simulation. Let me walk you through exactly what's happening with that "Include mass flow relative velocity" checkbox and how it affects your force calculations.
First, let me help you understand the mass flow relative velocity featutre. The “*Include mass flow relative velocity*" checkbox controls whether the block accounts for the momentum change due to mass ejection/addition when calculating the translational dynamics. When this option is enabled, the block internally adds a force component based on:
F_mass_flow = m × V_reb
Where: * m (dm/dt) is your mass flow rate input * V_reb is the relative velocity of the ejected mass in body axes
This force represents the momentum change due to mass being expelled from (or added to) the vehicle.
Since you mentioned that your engine model already computes the total thrust force (which inherently includes the momentum effects of mass ejection), you definitely want to leave this checkbox UNCHECKED.
Here's why: 1. Your engine model already calculates: F_thrust = ṁ × V_exhaust + (P_exit - P_ambient) × A_exit 2. If checkbox is checked, the 6DOF block would add: F_additional = ṁ × V_reb 3. Result: You'd be double-counting the thrust force!
So, with the checkbox unchecked, the dm/dt input serves two important purposes:
1. Inertia Tensor Interpolation: The inertia tensor is determined using a table lookup which linearly interpolates between Ifull and Iempty based on mass (m) 2. Mass Integration: The block integrates dm/dt to update the vehicle mass over time for use in F=ma calculations
The dm/dt input does NOT contribute any additional force to the equations of motion when "Include mass flow relative velocity" is unchecked.
To double-check your setup, you can verify this behavior by: 1. Running a simple test case with known thrust and mass flow 2. Comparing vehicle acceleration with and without the checkbox enabled 3. Ensuring that with the checkbox unchecked, your computed thrust force produces the expected acceleration (F/m = a)
In addition, I would suggest a couple of other points worth noting for your rocket simulation: * Make sure your empty and full inertia matrices are properly defined to capture the changing mass distribution as propellant is consumed * The block assumes forces are applied at the center of gravity, so if your thrust vector doesn't pass through the CG, you'll need to account for the resulting moments * Consider whether your coordinate frame definitions (body vs ECEF) align with your engine model outputs
So, bottom line, leaving "Include mass flow relative velocity" unchecked is exactly the right approach for your application. The dm/dt input will still properly handle the inertia interpolation and mass integration without introducing spurious force terms that would conflict with your engine model's thrust calculations.
Hope this clarifies things! While I don't have hands-on Simulink access to test this directly, the documentation and theory are pretty clear on this behavior. Feel free to reach out if you have any other questions about the 6DOF block implementation or need help with other aspects of your rocket simulation.
P.S. - If you're interested in validating your overall simulation setup, the Aerospace Blockset documentation has some excellent examples of rocket trajectory simulations that might serve as useful references for comparison. I'd recommend testing with a simple known case to verify the behavior matches your expectations.