The simulation now uses mass data from the entire motor as a unit,
rather than separating out the propellant data. This commit clarifies the code by replacing instances of "propellant" with "motor" in variable names and messages where appropriate. It does not update the translations into other languages.
This commit is contained in:
parent
3f7009b9f7
commit
b64a3b3fa8
@ -1632,7 +1632,7 @@ FlightDataType.TYPE_ROLL_RATE = Roll rate
|
||||
FlightDataType.TYPE_PITCH_RATE = Pitch rate
|
||||
FlightDataType.TYPE_YAW_RATE = Yaw rate
|
||||
FlightDataType.TYPE_MASS = Mass
|
||||
FlightDataType.TYPE_PROPELLANT_MASS = Propellant mass
|
||||
FlightDataType.TYPE_MOTOR_MASS = Motor mass
|
||||
FlightDataType.TYPE_LONGITUDINAL_INERTIA = Longitudinal moment of inertia
|
||||
FlightDataType.TYPE_ROTATIONAL_INERTIA = Rotational moment of inertia
|
||||
FlightDataType.TYPE_CP_LOCATION = CP location
|
||||
|
@ -314,7 +314,7 @@ FlightDataType.TYPE_POSITION_X = Posici\u00f3n contra el viento
|
||||
FlightDataType.TYPE_POSITION_XY = Distancia lateral
|
||||
FlightDataType.TYPE_POSITION_Y = Posici\u00f3n a favor del viento
|
||||
FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Presi\u00f3n del Coeficiente de rozamiento
|
||||
FlightDataType.TYPE_PROPELLANT_MASS = Masa del propulsor
|
||||
FlightDataType.TYPE_MOTOR_MASS = Masa del propulsor
|
||||
FlightDataType.TYPE_REFERENCE_AREA = \u00c1rea de referencia
|
||||
FlightDataType.TYPE_REFERENCE_LENGTH = Longitud de referencia
|
||||
FlightDataType.TYPE_REYNOLDS_NUMBER = N\u00famero de Reynolds
|
||||
|
@ -305,7 +305,7 @@ FlightDataType.TYPE_POSITION_X = Position contre le vent
|
||||
FlightDataType.TYPE_POSITION_XY = Distance lat\u00E9rale
|
||||
FlightDataType.TYPE_POSITION_Y = Position parall\u00E8le au vent
|
||||
FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Coefficient de tra\u00EEn\u00E9e de pression
|
||||
FlightDataType.TYPE_PROPELLANT_MASS = Masse du propergol
|
||||
FlightDataType.TYPE_MOTOR_MASS = Masse du propergol
|
||||
FlightDataType.TYPE_REFERENCE_AREA = Surface de r\u00E9f\u00E9rence
|
||||
FlightDataType.TYPE_REFERENCE_LENGTH = Longueur de r\u00E9f\u00E9rence
|
||||
FlightDataType.TYPE_REYNOLDS_NUMBER = Nombre de Reynolds
|
||||
|
@ -1385,7 +1385,7 @@ FlightDataType.TYPE_ROLL_RATE = \u89D2\u901F\u5EA6\uFF08\u30ED\u30FC\u30EB\uFF0
|
||||
FlightDataType.TYPE_PITCH_RATE = \u89D2\u901F\u5EA6\uFF08\u30D4\u30C3\u30C1\uFF09
|
||||
FlightDataType.TYPE_YAW_RATE = \u89D2\u901F\u5EA6\uFF08\u30E8\u30FC\uFF09
|
||||
FlightDataType.TYPE_MASS = \u8CEA\u91CF
|
||||
FlightDataType.TYPE_PROPELLANT_MASS = \u8EF8\u65B9\u5411\u6163\u6027\u30E2\u30FC\u30E1\u30F3\u30C8
|
||||
FlightDataType.TYPE_MOTOR_MASS = \u8EF8\u65B9\u5411\u6163\u6027\u30E2\u30FC\u30E1\u30F3\u30C8
|
||||
FlightDataType.TYPE_LONGITUDINAL_INERTIA = \u9577\u624B\u65B9\u5411\u6163\u6027\u30E2\u30FC\u30E1\u30F3\u30C8
|
||||
FlightDataType.TYPE_ROTATIONAL_INERTIA = \u30ED\u30FC\u30EB\u65B9\u5411\u6163\u6027\u30E2\u30FC\u30E1\u30F3\u30C8
|
||||
FlightDataType.TYPE_CP_LOCATION = CP\u4F4D\u7F6E
|
||||
|
@ -294,7 +294,7 @@ FlightDataType.TYPE_POSITION_X = Posi\u00e7\u00e3o a favor do ve
|
||||
FlightDataType.TYPE_POSITION_XY = Dist\u00e2ncia lateral
|
||||
FlightDataType.TYPE_POSITION_Y = Posi\u00e7\u00e3o paralela ao vento
|
||||
FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Coeficiente de arrasto de press\u00e3o
|
||||
FlightDataType.TYPE_PROPELLANT_MASS = Massa do propelente
|
||||
FlightDataType.TYPE_MOTOR_MASS = Massa do propelente
|
||||
FlightDataType.TYPE_REFERENCE_AREA = \u00c1rea de refer\u00eancia
|
||||
FlightDataType.TYPE_REFERENCE_LENGTH = Comprimento de refer\u00eancia
|
||||
FlightDataType.TYPE_REYNOLDS_NUMBER = N\u00famero de Reynolds
|
||||
|
@ -1477,7 +1477,7 @@ FlightDataType.TYPE_ROLL_RATE = \u0423\u0433\u043b\u043e\u0432\u0430\u044f \u044
|
||||
FlightDataType.TYPE_PITCH_RATE = \u0423\u0433\u043b\u043e\u0432\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0442\u0430\u043d\u0433\u0430\u0436\u0430
|
||||
FlightDataType.TYPE_YAW_RATE = \u0423\u0433\u043b\u043e\u0432\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u044b\u0441\u043a\u0430\u043d\u044c\u044f
|
||||
FlightDataType.TYPE_MASS = \u041c\u0430\u0441\u0441\u0430
|
||||
FlightDataType.TYPE_PROPELLANT_MASS = \u041c\u0430\u0441\u0441\u0430 \u0442\u043e\u043f\u043b\u0438\u0432\u0430
|
||||
FlightDataType.TYPE_MOTOR_MASS = \u041c\u0430\u0441\u0441\u0430 \u0442\u043e\u043f\u043b\u0438\u0432\u0430
|
||||
FlightDataType.TYPE_LONGITUDINAL_INERTIA = \u041f\u0440\u043e\u0434\u043e\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u043d\u0435\u0440\u0446\u0438\u0438
|
||||
FlightDataType.TYPE_ROTATIONAL_INERTIA = \u041a\u0440\u0443\u0442\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u043d\u0435\u0440\u0446\u0438\u0438
|
||||
FlightDataType.TYPE_CP_LOCATION = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0426\u0414
|
||||
|
@ -1483,7 +1483,7 @@ FlightDataType.TYPE_ROLL_RATE = Roll rate
|
||||
FlightDataType.TYPE_PITCH_RATE = Pitch rate
|
||||
FlightDataType.TYPE_YAW_RATE = Yaw rate
|
||||
FlightDataType.TYPE_MASS = Mass
|
||||
FlightDataType.TYPE_PROPELLANT_MASS = Propellant mass
|
||||
FlightDataType.TYPE_MOTOR_MASS = Motor mass
|
||||
FlightDataType.TYPE_LONGITUDINAL_INERTIA = Longitudinal moment of inertia
|
||||
FlightDataType.TYPE_ROTATIONAL_INERTIA = Rotational moment of inertia
|
||||
FlightDataType.TYPE_CP_LOCATION = CP location
|
||||
|
@ -330,7 +330,7 @@ FlightDataType.TYPE_POSITION_X = \u8FCE\u98CE\u4F4D\u7F6E
|
||||
FlightDataType.TYPE_POSITION_XY = \u6A2A\u5411\u8DE8\u8DDD
|
||||
FlightDataType.TYPE_POSITION_Y = \u5E73\u884C\u98CE\u4F4D\u7F6E
|
||||
FlightDataType.TYPE_PRESSURE_DRAG_COEFF = \u538B\u5DEE\u963B\u529B\u7CFB\u6570
|
||||
FlightDataType.TYPE_PROPELLANT_MASS = \u63A8\u8FDB\u5242\u8D28\u91CF
|
||||
FlightDataType.TYPE_MOTOR_MASS = \u63A8\u8FDB\u5242\u8D28\u91CF
|
||||
FlightDataType.TYPE_REFERENCE_AREA = \u53C2\u8003\u9762\u79EF
|
||||
FlightDataType.TYPE_REFERENCE_LENGTH = \u53C2\u8003\u957F\u5EA6
|
||||
FlightDataType.TYPE_REYNOLDS_NUMBER = \u96F7\u8BFA\u6570
|
||||
|
@ -390,15 +390,15 @@ public class MassCalculation {
|
||||
// }
|
||||
|
||||
if (component.isMotorMount()) {
|
||||
MassCalculation propellant = this.copy(component, parentTransform);
|
||||
MassCalculation motor = this.copy(component, parentTransform);
|
||||
|
||||
propellant.calculateMountData();
|
||||
motor.calculateMountData();
|
||||
|
||||
this.merge( propellant );
|
||||
this.merge( motor );
|
||||
|
||||
// // vvv DEBUG
|
||||
// if( 0 < propellant.getMass() ) {
|
||||
// System.err.println(String.format( "%s........++ propellantData: %s", prefix, propellant.toCMDebug()));
|
||||
// if( 0 < motor.getMass() ) {
|
||||
// System.err.println(String.format( "%s........++ motorData: %s", prefix, propellant.toCMDebug()));
|
||||
// }
|
||||
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ public class MassCalculator implements Monitorable {
|
||||
*/
|
||||
// private HashMap< Integer, MassData> stageMassCache = new HashMap<Integer, MassData >();
|
||||
// private MassData rocketSpentMassCache;
|
||||
// private MassData propellantMassCache;
|
||||
// private MassData motorMassCache;
|
||||
|
||||
private int modId = 0;
|
||||
|
||||
|
@ -122,7 +122,7 @@ public class BasicLandingStepper extends AbstractSimulationStepper {
|
||||
data.setValue(FlightDataType.TYPE_MACH_NUMBER, mach);
|
||||
|
||||
data.setValue(FlightDataType.TYPE_MASS, mass);
|
||||
data.setValue(FlightDataType.TYPE_PROPELLANT_MASS, 0.0); // Is this a reasonable assumption? Probably.
|
||||
data.setValue(FlightDataType.TYPE_MOTOR_MASS, 0.0); // Is this a reasonable assumption? Probably.
|
||||
|
||||
data.setValue(FlightDataType.TYPE_THRUST_FORCE, 0);
|
||||
data.setValue(FlightDataType.TYPE_DRAG_FORCE, dragForce);
|
||||
|
@ -121,7 +121,7 @@ public class BasicTumbleStepper extends AbstractSimulationStepper {
|
||||
data.setValue(FlightDataType.TYPE_MACH_NUMBER, mach);
|
||||
|
||||
data.setValue(FlightDataType.TYPE_MASS, mass);
|
||||
data.setValue(FlightDataType.TYPE_PROPELLANT_MASS, 0.0); // Is this a reasonable assumption? Probably.
|
||||
data.setValue(FlightDataType.TYPE_MOTOR_MASS, 0.0); // Is this a reasonable assumption? Probably.
|
||||
|
||||
data.setValue(FlightDataType.TYPE_THRUST_FORCE, 0);
|
||||
data.setValue(FlightDataType.TYPE_DRAG_FORCE, dragForce);
|
||||
|
@ -91,8 +91,8 @@ public class FlightDataType implements Comparable<FlightDataType> {
|
||||
//// Stability information
|
||||
//// Mass
|
||||
public static final FlightDataType TYPE_MASS = newType(trans.get("FlightDataType.TYPE_MASS"), "m", UnitGroup.UNITS_MASS, 50);
|
||||
//// Propellant mass
|
||||
public static final FlightDataType TYPE_PROPELLANT_MASS = newType(trans.get("FlightDataType.TYPE_PROPELLANT_MASS"), "mp", UnitGroup.UNITS_MASS, 51);
|
||||
//// Motor mass
|
||||
public static final FlightDataType TYPE_MOTOR_MASS = newType(trans.get("FlightDataType.TYPE_MOTOR_MASS"), "mp", UnitGroup.UNITS_MASS, 51);
|
||||
//// Longitudinal moment of inertia
|
||||
public static final FlightDataType TYPE_LONGITUDINAL_INERTIA = newType(trans.get("FlightDataType.TYPE_LONGITUDINAL_INERTIA"), "Il", UnitGroup.UNITS_INERTIA, 52);
|
||||
//// Rotational moment of inertia
|
||||
@ -209,7 +209,7 @@ public class FlightDataType implements Comparable<FlightDataType> {
|
||||
TYPE_PITCH_RATE,
|
||||
TYPE_YAW_RATE,
|
||||
TYPE_MASS,
|
||||
TYPE_PROPELLANT_MASS,
|
||||
TYPE_MOTOR_MASS,
|
||||
TYPE_LONGITUDINAL_INERTIA,
|
||||
TYPE_ROTATIONAL_INERTIA,
|
||||
TYPE_CP_LOCATION,
|
||||
|
@ -62,7 +62,7 @@ public class GroundStepper extends AbstractSimulationStepper {
|
||||
data.setValue(FlightDataType.TYPE_MACH_NUMBER, 0.0);
|
||||
|
||||
data.setValue(FlightDataType.TYPE_MASS, calculateStructureMass(status).getMass());
|
||||
data.setValue(FlightDataType.TYPE_PROPELLANT_MASS, 0.0); // Is this a reasonable assumption? Probably.
|
||||
data.setValue(FlightDataType.TYPE_MOTOR_MASS, 0.0); // Is this a reasonable assumption? Probably.
|
||||
|
||||
data.setValue(FlightDataType.TYPE_THRUST_FORCE, 0.0);
|
||||
data.setValue(FlightDataType.TYPE_DRAG_FORCE, 0.0);
|
||||
|
@ -613,9 +613,9 @@ public class RK4SimulationStepper extends AbstractSimulationStepper {
|
||||
}
|
||||
|
||||
if( null != store.motorMass ){
|
||||
data.setValue(FlightDataType.TYPE_PROPELLANT_MASS, store.motorMass.getMass());
|
||||
//data.setValue(FlightDataType.TYPE_PROPELLANT_LONGITUDINAL_INERTIA, store.propellantMassData.getLongitudinalInertia());
|
||||
//data.setValue(FlightDataType.TYPE_PROPELLANT_ROTATIONAL_INERTIA, store.propellantMassData.getRotationalInertia());
|
||||
data.setValue(FlightDataType.TYPE_MOTOR_MASS, store.motorMass.getMass());
|
||||
//data.setValue(FlightDataType.TYPE_MOTOR_LONGITUDINAL_INERTIA, store.motorMassData.getLongitudinalInertia());
|
||||
//data.setValue(FlightDataType.TYPE_MOTOR_ROTATIONAL_INERTIA, store.motorMassData.getRotationalInertia());
|
||||
}
|
||||
if (store.rocketMass != null) {
|
||||
// N.B.: These refer to total mass
|
||||
|
@ -41,7 +41,7 @@ public class DampingMoment extends AbstractSimulationListener {
|
||||
// dm/dt = (thrust - ma)/v
|
||||
FlightDataBranch data = status.getFlightData();
|
||||
|
||||
List<Double> mpAll = data.get(FlightDataType.TYPE_PROPELLANT_MASS);
|
||||
List<Double> mpAll = data.get(FlightDataType.TYPE_MOTOR_MASS);
|
||||
List<Double> time = data.get(FlightDataType.TYPE_TIME);
|
||||
if (mpAll == null || time == null) {
|
||||
return Double.NaN;
|
||||
|
@ -145,7 +145,7 @@ public class DesignReport {
|
||||
private static final String MAX_THRUST = "Max Thrust";
|
||||
private static final String TOTAL_IMPULSE = "Total Impulse";
|
||||
private static final String THRUST_TO_WT = "Thrust to Wt";
|
||||
private static final String PROPELLANT_WT = "Propellant Wt";
|
||||
private static final String MOTOR_WT = "Motor Wt";
|
||||
private static final String SIZE = "Size";
|
||||
private static final String ALTITUDE = "Altitude";
|
||||
private static final String FLIGHT_TIME = "Flight Time";
|
||||
@ -377,7 +377,7 @@ public class DesignReport {
|
||||
motorTable.addCell(ITextHelper.createCell(MAX_THRUST, PdfPCell.BOTTOM, PrintUtilities.SMALL));
|
||||
motorTable.addCell(ITextHelper.createCell(TOTAL_IMPULSE, PdfPCell.BOTTOM, PrintUtilities.SMALL));
|
||||
motorTable.addCell(ITextHelper.createCell(THRUST_TO_WT, PdfPCell.BOTTOM, PrintUtilities.SMALL));
|
||||
motorTable.addCell(ITextHelper.createCell(PROPELLANT_WT, PdfPCell.BOTTOM, PrintUtilities.SMALL));
|
||||
motorTable.addCell(ITextHelper.createCell(MOTOR_WT, PdfPCell.BOTTOM, PrintUtilities.SMALL));
|
||||
motorTable.addCell(ITextHelper.createCell(SIZE, PdfPCell.BOTTOM, PrintUtilities.SMALL));
|
||||
|
||||
DecimalFormat ttwFormat = new DecimalFormat("0.00");
|
||||
|
Loading…
x
Reference in New Issue
Block a user