projects
/
sw
/
motorsim
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9dd2f63
)
Make atmospheric pressure editable
author
Bill Kuker
<bkuker@billkuker.com>
Thu, 2 Dec 2010 02:40:21 +0000
(
02:40
+0000)
committer
Bill Kuker
<bkuker@billkuker.com>
Thu, 2 Dec 2010 02:40:21 +0000
(
02:40
+0000)
src/com/billkuker/rocketry/motorsim/Burn.java
patch
|
blob
|
history
diff --git
a/src/com/billkuker/rocketry/motorsim/Burn.java
b/src/com/billkuker/rocketry/motorsim/Burn.java
index 771e715fe03defbe55c6c77a157c8b9e5d1bc632..0416d1ec0892a087710627ceb61555854534f99c 100644
(file)
--- a/
src/com/billkuker/rocketry/motorsim/Burn.java
+++ b/
src/com/billkuker/rocketry/motorsim/Burn.java
@@
-54,6
+54,7
@@
public class Burn {
private double regStepDecreaseFactor = .5;
\r
private Amount<Pressure> chamberPressureMaxDelta = Amount.valueOf(.5, SI.MEGA(SI.PASCAL));
\r
private Amount<Pressure> endPressure = Amount.valueOf(.1, RocketScience.PSI);
\r
private double regStepDecreaseFactor = .5;
\r
private Amount<Pressure> chamberPressureMaxDelta = Amount.valueOf(.5, SI.MEGA(SI.PASCAL));
\r
private Amount<Pressure> endPressure = Amount.valueOf(.1, RocketScience.PSI);
\r
+ private Amount<Pressure> atmosphereicPressure = Amount.valueOf(101000, SI.PASCAL);
\r
\r
public void setVolumeMethod(BurnVolumeMethod volumeMethod) {
\r
this.volumeMethod = volumeMethod;
\r
\r
public void setVolumeMethod(BurnVolumeMethod volumeMethod) {
\r
this.volumeMethod = volumeMethod;
\r
@@
-85,6
+86,12
@@
public class Burn {
public void setEndPressure(Amount<Pressure> endPressure) {
\r
this.endPressure = endPressure;
\r
}
\r
public void setEndPressure(Amount<Pressure> endPressure) {
\r
this.endPressure = endPressure;
\r
}
\r
+ public Amount<Pressure> getAtmosphereicPressure() {
\r
+ return atmosphereicPressure;
\r
+ }
\r
+ public void setAtmosphereicPressure(Amount<Pressure> atmosphereicPressure) {
\r
+ this.atmosphereicPressure = atmosphereicPressure;
\r
+ }
\r
}
\r
\r
protected final Motor motor;
\r
}
\r
\r
protected final Motor motor;
\r
@@
-96,14
+103,9
@@
public class Burn {
public void setProgress(float p);
\r
public void burnComplete();
\r
}
\r
public void setProgress(float p);
\r
public void burnComplete();
\r
}
\r
-
\r
-
\r
-
\r
-
\r
+
\r
private Set<BurnProgressListener> bpls = new HashSet<Burn.BurnProgressListener>();
\r
private Set<BurnProgressListener> bpls = new HashSet<Burn.BurnProgressListener>();
\r
-
\r
- private static final Amount<Pressure> atmosphereicPressure = Amount.valueOf(101000, SI.PASCAL);
\r
-
\r
+
\r
public class Interval{
\r
public Amount<Duration> time;
\r
public Amount<Duration> dt;
\r
public class Interval{
\r
public Amount<Duration> time;
\r
public Amount<Duration> dt;
\r
@@
-168,7
+170,7
@@
public class Burn {
initial.time = Amount.valueOf(0, SI.SECOND);
\r
initial.dt = Amount.valueOf(0, SI.SECOND);
\r
initial.regression = Amount.valueOf(0, SI.MILLIMETER);
\r
initial.time = Amount.valueOf(0, SI.SECOND);
\r
initial.dt = Amount.valueOf(0, SI.SECOND);
\r
initial.regression = Amount.valueOf(0, SI.MILLIMETER);
\r
- initial.chamberPressure =
atmosphereicPressure
;
\r
+ initial.chamberPressure =
settings.getAtmosphereicPressure()
;
\r
initial.chamberProduct = Amount.valueOf(0, SI.KILOGRAM);
\r
initial.thrust = Amount.valueOf(0, SI.NEWTON);
\r
\r
initial.chamberProduct = Amount.valueOf(0, SI.KILOGRAM);
\r
initial.thrust = Amount.valueOf(0, SI.NEWTON);
\r
\r
@@
-241,7
+243,7
@@
public class Burn {
\r
Amount<MassFlowRate> mNozzle;
\r
{
\r
\r
Amount<MassFlowRate> mNozzle;
\r
{
\r
- Amount<Pressure> pDiff = prev.chamberPressure.minus(
atmosphereicPressure
);
\r
+ Amount<Pressure> pDiff = prev.chamberPressure.minus(
settings.getAtmosphereicPressure()
);
\r
//log.debug("Pdiff: " + pDiff);
\r
Amount<Area> aStar = motor.getNozzle().throatArea();
\r
double k = motor.getFuel().getCombustionProduct().getRatioOfSpecificHeats();
\r
//log.debug("Pdiff: " + pDiff);
\r
Amount<Area> aStar = motor.getNozzle().throatArea();
\r
double k = motor.getFuel().getCombustionProduct().getRatioOfSpecificHeats();
\r
@@
-274,7
+276,7
@@
public class Burn {
\r
log.debug("Product Density: " + combustionProductDensity);
\r
\r
\r
log.debug("Product Density: " + combustionProductDensity);
\r
\r
- next.chamberPressure = combustionProductDensity.times(specificGasConstant).times(chamberTemp).plus(
atmosphereicPressure
).to(Pressure.UNIT);
\r
+ next.chamberPressure = combustionProductDensity.times(specificGasConstant).times(chamberTemp).plus(
settings.getAtmosphereicPressure()
).to(Pressure.UNIT);
\r
assert(positive(next.chamberPressure));
\r
\r
next.chamberPressure = Amount.valueOf(
\r
assert(positive(next.chamberPressure));
\r
\r
next.chamberPressure = Amount.valueOf(
\r
@@
-288,10
+290,10
@@
public class Burn {
continue step;
\r
}
\r
\r
continue step;
\r
}
\r
\r
- next.thrust = motor.getNozzle().thrust(next.chamberPressure,
atmosphereicPressure, atmosphereicPressure
, motor.getFuel().getCombustionProduct().getRatioOfSpecificHeats2Phase());
\r
+ next.thrust = motor.getNozzle().thrust(next.chamberPressure,
settings.getAtmosphereicPressure(), settings.getAtmosphereicPressure()
, motor.getFuel().getCombustionProduct().getRatioOfSpecificHeats2Phase());
\r
assert(positive(next.thrust));
\r
\r
assert(positive(next.thrust));
\r
\r
- if ( i > 100 && next.chamberPressure.minus(
atmosphereicPressure
).abs().isLessThan(settings.getEndPressure())){
\r
+ if ( i > 100 && next.chamberPressure.minus(
settings.getAtmosphereicPressure()
).abs().isLessThan(settings.getEndPressure())){
\r
log.info("Pressure at ~Patm on step " + i);
\r
endPressureSteps++;
\r
if ( endPressureSteps > 5 )
\r
log.info("Pressure at ~Patm on step " + i);
\r
endPressureSteps++;
\r
if ( endPressureSteps > 5 )
\r