diff --git a/core/src/net/sf/openrocket/simulation/BasicLandingStepper.java b/core/src/net/sf/openrocket/simulation/BasicLandingStepper.java index 75259962a..a111d1227 100644 --- a/core/src/net/sf/openrocket/simulation/BasicLandingStepper.java +++ b/core/src/net/sf/openrocket/simulation/BasicLandingStepper.java @@ -38,8 +38,12 @@ public class BasicLandingStepper extends AbstractSimulationStepper { // Compute drag force double dynP = (0.5 * atmosphere.getDensity() * airSpeed.length2()); double dragForce = totalCD * dynP * refArea; - double mass = calculateStructureMass(status).getMass(); + + // Calculate mass data + double rocketMass = calculateStructureMass(status).getMass(); + double motorMass = calculateMotorMass(status).getMass(); + double mass = rocketMass + motorMass; // Compute drag acceleration Coordinate linearAcceleration; @@ -122,7 +126,7 @@ public class BasicLandingStepper extends AbstractSimulationStepper { data.setValue(FlightDataType.TYPE_MACH_NUMBER, mach); data.setValue(FlightDataType.TYPE_MASS, mass); - data.setValue(FlightDataType.TYPE_MOTOR_MASS, 0.0); // Is this a reasonable assumption? Probably. + data.setValue(FlightDataType.TYPE_MOTOR_MASS, motorMass); data.setValue(FlightDataType.TYPE_THRUST_FORCE, 0); data.setValue(FlightDataType.TYPE_DRAG_FORCE, dragForce); diff --git a/core/src/net/sf/openrocket/simulation/BasicTumbleStepper.java b/core/src/net/sf/openrocket/simulation/BasicTumbleStepper.java index 97a387976..0c0824dd4 100644 --- a/core/src/net/sf/openrocket/simulation/BasicTumbleStepper.java +++ b/core/src/net/sf/openrocket/simulation/BasicTumbleStepper.java @@ -37,8 +37,10 @@ public class BasicTumbleStepper extends AbstractSimulationStepper { double dragForce = tumbleDrag * dynP; // n.b. this is constant, and could be calculated once at the beginning of this simulation branch... - double mass = calculateStructureMass(status).getMass(); + double rocketMass = calculateStructureMass(status).getMass(); + double motorMass = calculateMotorMass(status).getMass(); + double mass = rocketMass + motorMass; // Compute drag acceleration Coordinate linearAcceleration; @@ -121,7 +123,7 @@ public class BasicTumbleStepper extends AbstractSimulationStepper { data.setValue(FlightDataType.TYPE_MACH_NUMBER, mach); data.setValue(FlightDataType.TYPE_MASS, mass); - data.setValue(FlightDataType.TYPE_MOTOR_MASS, 0.0); // Is this a reasonable assumption? Probably. + data.setValue(FlightDataType.TYPE_MOTOR_MASS, motorMass); data.setValue(FlightDataType.TYPE_THRUST_FORCE, 0); data.setValue(FlightDataType.TYPE_DRAG_FORCE, dragForce); diff --git a/core/src/net/sf/openrocket/simulation/GroundStepper.java b/core/src/net/sf/openrocket/simulation/GroundStepper.java index 27c50014f..db9ea466d 100644 --- a/core/src/net/sf/openrocket/simulation/GroundStepper.java +++ b/core/src/net/sf/openrocket/simulation/GroundStepper.java @@ -60,9 +60,15 @@ public class GroundStepper extends AbstractSimulationStepper { data.setValue(FlightDataType.TYPE_VELOCITY_TOTAL, 0.0); data.setValue(FlightDataType.TYPE_MACH_NUMBER, 0.0); + + + // Calculate mass data + double rocketMass = calculateStructureMass(status).getMass(); + double motorMass = calculateMotorMass(status).getMass(); - data.setValue(FlightDataType.TYPE_MASS, calculateStructureMass(status).getMass()); - data.setValue(FlightDataType.TYPE_MOTOR_MASS, 0.0); // Is this a reasonable assumption? Probably. + double mass = rocketMass + motorMass; + data.setValue(FlightDataType.TYPE_MASS, mass); + data.setValue(FlightDataType.TYPE_MOTOR_MASS, motorMass); data.setValue(FlightDataType.TYPE_THRUST_FORCE, 0.0); data.setValue(FlightDataType.TYPE_DRAG_FORCE, 0.0);