HalfCatSim
HalfCatSim is a tool for simulation of nitrous oxide blowdown liquid bipropellant motors using a fuel piston. It is intended to be used in combination with the design principles given on this website so that anyone can create a liquid bipropellant motor both in practice and in theory - most sources will give you one or the other, but we strive to provide a complete solution.
The following is a brief guide to using HalfCatSim. All instructions needed to use the program are embedded in the spreadsheet. Please send any feedback to contact@halfcatrocketry.com or use our contact form.
If you find HalfCatSim useful, please consider donating. A lot of time went into making an easy-to-use simulator backed by real data that allows anyone to design a flyable liquid bipropellant motor with a high degree of confidence.
HalfCatSim v1.3.8 has been released.
See bottom of page for complete changelog
Home Page
The home page gives an overview of the program, as well as a basic index of all the tabs. Please read all of the notifications and warnings, and observe the standoff distance table.
Motor Simulation
The simulation page is the main interface of HalfCatSim. Here you will enter all the parameters of your design and the spreadsheet will automatically output a simulation. It is important to give it realistic and reasonable inputs, otherwise it will break and give garbage results. Oftentimes it will be fail to give a result because something about the engine would not work. Example: If at some point the feed pressure drops below combustion pressure, the calculation will break.
Some cells are “Advanced Settings” as noted in the cells of particular inputs. These may be ignored by less experienced users, but are available for those who want finer control over certain aspects of the simulation.
The back-end calculations can be found in the Math tab, but it is not meant to be interacted with. Since it began as back-of-the-envelope calculations and slowly evolved into a much more sophisticated program, it is built on a very rudimentary calculation system of discrete time-steps that propagate down a large number of rows. It also relies on a lot of hand-waving and approximations in the first few rows to prevent the simulation from becoming unstable and breaking immediately; this is not the most optimal way to do it, but it is one that works quite robustly.
In the top right there is a block for generating a thrust curve. The only values that can be entered in this are the three under the “Thrust Curve” table. These values (the actual diameter, length, and dry weight of your engine) are translated into the rightmost column, which you can copy and paste into a text file with an .eng extension to create a thrust curve that OpenRocket, RockSim, and RASAero will recognize. The units are all drop-downs to switch between English and metric. Sometimes, it is necessary to manually edit the .eng file so that the final thrust value is zero (or else the file may not be recognized).
Please read all of the notes by highlighting the red markers. They explain what each parameter does.
Pressure Vessel
This page is a companion to the “How to Design a Rocket Motor Casing” guide. The PDF on that page goes into great depth on the calculations and has worked examples.
The Fuel, N2O, References, and Isentropic Flow tabs contain reference information that is used by the back-end calculations. You do not need to interact with these. ‘License’ has a copyright statement and version 3 of the GNU General Public License stating that you may freely distribute and modify the program, as long as you attribute Half Cat Rocketry and also make any modifications freely available.
Changelogs
V1.3.8
Calculation
Further adjusted damping coefficients
The program should now be able to handle much lower stiffnesses than previously
V1.3.7
Calculation
Adjusted damping coefficient methodology to eliminate corner cases where behavior became unusual
Numerical oscillations may still be present in chamber pressure and thrust curves; these are not a concern, but they may be mitigated by changing the timestep
V1.3.6
Renamed Math to Calculation
Calculation
Added new damping coefficients to Pc and Thrust (F) to reduce numerical oscillations, especially at low stiffness
Enforced the timestep at 0.01s for the first 15 iterations to implement damping mitigations during the startup
V1.3.5
Motor Simulation
Broke Isp out into ‘Start’ and ‘Cumulative. Start is the same as past versions, displaying Isp at the beginning of the burn. Cumulative displays Isp for the entire burn (total impulse divided by propellant weight).
V1.3.4
Math
Fixed dP calculation so it includes the Cv pressure loss now (was only taking line loss)
V1.3.3
Motor Simulation
Finally actually for real fixed the thrust curve generation. It now works properly in all cases.
Fixed issue with burn time not being able to accurately figure out when burnout occurs
Added Cv input field for adding valves, etc which calculates to a dP. Only has one input (one component) for now, but will be expanded later
Pressure Vessel
Rearranged modules
Added thrust chamber clamping force calculator for chambers like Mojave Sphinx
Changed all fonts to Bahnschrift SemiCondensed
V1.3.2
Motor Simulation
KNOWN ISSUE: Thrust curve generation is still not giving the last value correctly (it should have a time value along with the zero thrust)
Added stiffness and pressure delta for fuel
V1.3.1
Motor Simulation
Fixed bug in thrust curve generation so that it correctly sets the propellant and empty masses
Minor quality of life changes
V1.3.0
Home page
Removed reference to the Tripoli Research Safety Code
Added standoff distance table
Pressure vessel
Fixed minor error in screw tear out calculation
Changed all “safety factors” to margins of safety for yield and ultimate strength
Motor Simulation
Many results are now in imperial units by default, but have dropdowns to pick between imperial and metric units
Altitude no longer rounds to the nearest 500 ft, and will work for any altitude
Ambient pressure calculates at any altitude
Added nozzle half-angle as an input to correctly account for the cosine loss of a nozzle
Added contraction ratio and L* as results under the Combustion Chamber block
Swapped tank inner diameter inputs for wall thickness, and made ID an output instead
N2O temperature is now available in 1°F increments
Added decay constant inputs for liquid and gas phase to help with data anchoring
Fuel choices now include:
Isopropanol
Ethanol
E98
E85
Diesel #2 (kerosene)
Acetone
Toluene
Meowjave Green
Methanol
Nitro 50-50
Added feed system blocks for both propellants as an advanced setting to calculate line losses
Made injector hole diameters a dropdown of available drill bit sizes, since most users were looking up this table anyway
Annulus element input now multiplies by element number
Added oxidizer vent block to estimate the fill time of a rocket, depending on tank size and temperature
Burn time now counts to when mass flow has dropped off to near zero
Added tank O:F ratio result to show how closely matched the loaded propellant masses are to the injector
Motor classification now correctly uses the average thrust value
Added unit converter blocks
Math
Added columns for calculating line pressure losses
Changed thermochemistry model to directly pull c* from CEA data
Several downstream effects from this, and anchors better to Mojave Sphinx test data
Propellants
Separated N2O and Fuel tabs since information about both propellants grew substantially
N2O now includes data for both liquid and gaseous phases in 1°F increments
Fuel now includes c* data