File:Rocket mass.c

From NPrize
Jump to navigationJump to search

Rocket_mass.c(file size: 21 KB, MIME type: text/x-c)

Warning: This file type may contain malicious code. By executing it, your system may be compromised.


This program is an implementation of the iteration required to compute a rocket's mass. It supports single stage rockets (SSTO) with one engine, takes many input parameters such as thrust-to-weight ratios, propellants data, mass ratio or Isp and Delta V, and computes the dry and wet mass of the rocket. Each subsystem's mass is evaluated and the formulas are simple enough to be changed to suit your needs.

The rocket is modelled as depicted below:

The fairing jettison is currently (v3) not accounted for in the delta V calculation. It is made of aluminium, so it's generally quite heavy, even if it's thin. The pipes and valves have been added in v3 too, also adding an important mass that was forgotten in previous versions. This result in the rocket being around 150kg heavier, because each kg of rocket has approximately 50kg of propellant needed to lift it. The structure's mass has been improved too, taking into account solid tanks for the structure.


See the beginning of the file for all input parameters. Each subsystem has a function computing its mass given the rocket length or other parameters, they can be easily modified. See first approximation for the list of output parameters and an example.

The mass ratio can be either given or computed from Isp and Delta V. The formula used is very simple but assumes the exhaust velocity (or Isp) to be constant (source): e^(-DeltaV/Ve), Ve being the gas exhaust velocity, which can be calculated from Isp: Ve = Isp * g0.

The dimensions of the tanks is a major issue. In version 1 and 2, both tanks are computed with the same inner diameter. The goal is to have them roughly the same size so that the rocket can be a simple cylinder. In version 2, tank insulation has been added for the mass concern only.

In future version (coming soon) the insulation and wall thickness will be taken into account in the outer diameter of tanks, so that they can really fit in the same cylinder in any case. Insulation is Aerogel, 13kg/m3 density. The insulation thickness can be calculated from heat and thermal transmission data using this other program: File:Heat transfer to rocket tank.c.

Tank wall thickness is not properly computed from the pressure and heat, but only estimated as 1mm per 10 atmospheres of pressure, with a minimum value of 1mm for pressurized tanks. The storable fuel tank is currently made of plastic to reduce weight, since pumps will probably be used instead of pressurized tanks.

Structural parts are made of aluminium, except the ullage (v2) and soft tank skirts (v3) which is a carbon/epoxy composite. The vehicle's frame is composed of 5 profiled rods, 2mm thick, 15mm wide. This may be enough to support the aircraft staging mechanism and the rocket's weight and flight stress.


Compile with gcc -O2 -Wall rocket_mass.c -o rocket_mass -lm for normal use, and add -DMAKE_GRAPH after gcc on the command line if you want to create graph data as visible on the first approximations page.

File history

Click on a date/time to view the file as it appeared at that time.

current01:42, 12 December 2012 (21 KB)Vincent (talk | contribs)clarification about the propellant mass. vehicle_wet_mass is the dry mass + the burnt propellant mass, but it doesn't include the propellant taken aboard and evaporated during the ascent. The output indicates the ground value now. This is still version 3.
13:26, 11 December 2012 (20 KB)Vincent (talk | contribs)Refining the model: better structure, more realistic fairing, adding forgotten pipes and valves, tanks alignment on outer shell, composite skirts for non-structural or soft tanks.
03:51, 7 November 2012 (14 KB)Vincent (talk | contribs)composite skirts, propellant venting and tank insulation (given data, not computed), mass ratio computed from delta V and Isp.
02:47, 2 November 2012 (12 KB)Vincent (talk | contribs)Program that iterates to compute an SSTO rocket's dry and wet mass (and other parameters). Compile with gcc -O2 -Wall rocket_mass.c -o rocket_mass -lm for normal use, and add -DMAKE_GRAPH after gcc on the command line if you want to create graph data as