Merge pull request #1047 from JoePfeiffer/fix-1004

Keep correct motor mass when switching to tumble stepper, landing stepper, and ground stepper
This commit is contained in:
Neil Weinstock 2021-10-29 08:01:38 -04:00 committed by GitHub
commit 17ba70987a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 6 deletions

View File

@ -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);

View File

@ -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);

View File

@ -61,8 +61,14 @@ public class GroundStepper extends AbstractSimulationStepper {
data.setValue(FlightDataType.TYPE_VELOCITY_TOTAL, 0.0);
data.setValue(FlightDataType.TYPE_MACH_NUMBER, 0.0);
data.setValue(FlightDataType.TYPE_MASS, calculateStructureMass(status).getMass());
data.setValue(FlightDataType.TYPE_MOTOR_MASS, 0.0); // Is this a reasonable assumption? Probably.
// Calculate mass data
double rocketMass = calculateStructureMass(status).getMass();
double motorMass = calculateMotorMass(status).getMass();
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);