Projects‎ > ‎Rocketry‎ > ‎

Software


Downloads

MotorSim 2.0 BETA

MotorSim 1.0

Older Versions:


MotorSim 0.1

MotorSim 0.2

Motor Simulation

I am working on some motor sim software, to increase both my understanding of the math involved and to increase the flexibility of the calculations I am able to do beyond the SRM.XLS spreadsheet I have been using. My eventual goal is to have a pretty flexible test bed for motor simulation that will support heterogeneous sets of grains, non BATES style grains such as c-slot, moon burner, star core etc I would also like to be able to simulate factors such as delayed ignition of the grain, including delayed end face ignition.

Feature Ideas

  • Non BATES grains
  • Delayed end face ignition
  • Multiple grain geometries
  • Multiple fuels
  • Delay element simulation (Special case of multiple geometries and fuels)

YouTube Video


Non-BATES Grains

I am including non-bates grain support. Currently the shapes are constructed using boolean geometry on elipses and rectangles. This covers C-Slot, Star-Slot, Moon Burner,

Approximation


I am trying various ways to calculate the volume and surface area of an extruded grain with an arbitrary cross section. This turns into the problem of determining the surface area and perimeter of this cross section respectively.


Using java.awt.geom I can use Flattening path iterator to determine the perimeter of the cross section to a reasonable error. In this method the first and second derivatives of the perimeter function are stable. Determining the area of the cross section is not easy. I tried a Monte Carlo approach, testing points to approximate how much of the bounding rectangle is filled. Unfortunately with this method, and a linear interpolation in between, the first derivative of volume is a stair-step function and the second derivative is degenerate. 

Increasing the sampling only increases the frequency.

Changing the burn calculation from using dV/dR to Area * delta-R times fixes the problem. Here the results are stable, but I see the initial ringing from having too large a delta-R. (Actually I suspect that the ringing is caused by too large a simulation step relative to chamber free space)

Reducing the regression step rate cleans it up. There are still artifacts from the poor volume calculations introduced by the surface area of the burning ends (Calculated via cross-section area) and the fact that the volume is used in calculating chamber pressure. Only V(R) not dV/dR is used, so there are no longer instabilities

Calculation


Searching on the web I found an easy way to calculate the area of an irregular concave polygon. Combining the boolean geometry in java.awt.geom and the method described at http://valis.cs.uiuc.edu/~sariel/research/CG/compgeom/msg00831.html I am able to calculate the area of the grain directly rather than using a statistical approximation (Monte Carlo). I am still approximating the grain as a polygon to do this (via FlatteningPathIterator).
ą
Grain.PNG
(28k)
Bill Kuker,
Mar 1, 2009, 1:07 PM
ą
Bill Kuker,
Apr 13, 2009, 8:35 AM
ą
a.png
(35k)
Bill Kuker,
Mar 1, 2009, 1:07 PM
ą
b.png
(26k)
Bill Kuker,
Mar 1, 2009, 1:07 PM
ą
c.png
(23k)
Bill Kuker,
Mar 1, 2009, 1:07 PM
ą
d.png
(15k)
Bill Kuker,
Mar 1, 2009, 1:07 PM
ą
e.png
(13k)
Bill Kuker,
Mar 1, 2009, 1:07 PM
ą
Bill Kuker,
Mar 2, 2009, 7:42 PM
Comments