GithubHelp home page GithubHelp logo

igorborovik / bell-nozzle Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ravi4ram/bell-nozzle

0.0 0.0 0.0 575 KB

This script plots Bell Nozzle (Thrust Optimised Parabolic (TOP) nozzle) for the given area-ratio and throat radius.

License: MIT License

Python 100.00%

bell-nozzle's Introduction

Plotting a Bell nozzle

This script plots Bell Nozzle (Thrust Optimised Parabolic (TOP) nozzle) for the given area-ratio and throat radius.

##Update

Code updated to provide a 3D view in addition to the 2D contour.

Table of contents

Screenshots

Nozzle contours generated by the script.
 
Upper stage nozzle for e = 25 and Rt = 40
results

Lower stage nozzle for e = 7 and Rt = 800
results

General info

Main parameters required for plotting Rao Nozzle (thrust optimized) contours are section ratio (Exit Area/Throat Area) value and throat radius.
 
Calculation requires couple of angles which are inferred from wall-angle empirical data. They are θn (throat inflection angle) and θe (exit angle).

Length of the resulting nozzles are expressed as fractions of the length of a standard 15 degree half-angle conical nozzle. This parameter is mentioned as the variable 'l_percent = 80' in the code. This 'length percentage' parameter along with the user defined parameters (section ratio, throat radius) are used to extract θn and θe.
 

Image is from Reference 3. given below

results  

Instead of manual extraction of data from the the wall-angle graph, code is written to interpolate graph values of θn and θe for three different length-percentages (60, 80 and 90).

Assumption made as mentioned in the reference,
'The initial angle isn’t defined and is up to the combustion chamber designer, -135 degrees is typical.'

 
Plot is displayed with nozzle contour and its dimensions. Code is independent of the length unit. If the throat radius is given in mm, displayed plot values are in mm. If it is given in inch, plot displayed values will be in inch.
 

Implemented the code based on this technical note
The thrust optimised parabolic nozzle


results  
The first curve, of radius 1.5 Rt, is drawn from an angle of say, -135 degrees, to the throat at -90 degrees (angles measured from the arc’s origin).
 
Then the second curve of radius 0.382 Rt is drawn from this angle of -90 degrees to an angle of (θn - 90) at inflection point N. (Rt is the throat radius, Re is the exit radius.)
 
Then a skewed parabola is drawn from point N to nozzle exit point E, tangent to the throat curve, and starting at an angle of θn and ending at an angle of θe.
 
The radius of the nozzle exit:
Re = √ε * Rt [Eqn. 2]
and nozzle length
LN = 0.8 ((√∈−1) * Rt )/ tan(15) [Eqn. 3]
 
For the throat entrant section:
x = 1.5 Rt cosθ
y = 1.5 Rt sinθ + 1.5 Rt + Rt [Eqn. 4]
where: −135 ≤ θ ≤ −90
 
(The initial angle isn’t defined and is up to the combustion chamber designer, -135 degrees is typical.)
 
For the throat exit section:
x = 0.382 Rt cosθ
y = 0.382 Rt sinθ + 0.382 Rt + Rt [Eqn. 5]
where: −90 ≤ θ ≤ (θn − 90)
 
The bell is a quadratic Bézier curve, which has equations:
x(t) = (1 − t)^2 * Nx + 2(1 − t)t * Qx + t^2 * Ex, 0≤t≤1
y(t) = (1 − t)^2 * Ny + 2(1 − t)t * Qy + t^2 * Ey, 0≤t≤1 [Eqn. 6]
 
Selecting equally spaced divisions between 0 and 1 produces the points described earlier in the graphical method, for example 0.25, 0.5, and 0.75.
 
Equations 6 are defined by points N, Q, and E (see the graphical method earlier for the locations of these points).
 
Point N is defined by equations 5 setting the angle to (θn – 90).
Nx = 0.382 Rt cos(θn – 90)
Ny = 0.382 Rt sin(θn – 90) + 0.382 Rt + Rt
 
Coordinate Ex is defined by equation 3, and coordinate Ey is defined by equation 2.
Ex = 0.8*(((√ε−1)-1)*Rt)/(tan(15)) # degrees in rad
Ey = √ε * Rt
 
Point Q is the intersection of the lines:
NQ = m1 x + C1 and:
QE = m2 x + C2 [Eqn. 7]
 
where: gradient
m1 = tan(θn ) , m2 = tan(θe ) [Eqn. 8]
 
and: intercept
C1 = Ny − m1 Nx
C2 = Ey − m2 Ex [Eqn. 9]
 

The intersection of these two lines (at point Q) is given by:
Qx = (C2 − C1 ) /(m1 − m2 )
Qy = (m1 C2 − m2 C1 ) / (m1 − m2 ) [Eqn. 10]
 

References

  1. The thrust optimised parabolic nozzle

  2. Exhaust Nozzle Contour for Optimum Thrust (Journal of Jet Propulsion 1958.28:377-382) G. V R. Rao

  3. Recent Developments in Rocket Nozzle Configurations (ARS Journal 1961.31:1488-1494 ) G. V R. Rao

  4. Liquid Rocket Engine Nozzles-NASA SP-8120


Setup

Script is written with python (Version: 3.6) on linux. Additional modules required :

  • numpy (tested with Version: 1.18.4 )
  • matplotlib (tested with Version: 2.1.1 )

How to run

  • Verify and install required modules
  • Modify in main function, the variables
    'aratio = 7.72',
    'throat_radius = 40' and
    'l_percent = 80' (only 60, 80 and 90 data values are built-in)
  • run python bell_nozzle.py

Updates

  • [29Jan2021] - Included a 3D view along with the 2D contour plot

To-do list

bell-nozzle's People

Contributors

ravi4ram avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.