Science makes it known,
Engineering makes it work,
Art makes it beautiful.
|
|
Rocket/Glider External Structural/Stabilizing Body Tubes
Estes TR-4 Model Rocket Technical Report Boost Gliders, p. 12
(image reproduced and modified at right) depicts a swing wing rocket/glider with
external body tubes attached to the central (or main fuselage) body tube,
which in turn may have vertical and horizontal stabilizers attached as a H-Tail
variant.
RG001 / FrmStabTubes is a sub-form used in Lazarus multiform application
glider01 to input external body tubes data, including which
fins/wings/stabilizers (if any) are attached. Fins/wings/stabilizers
(or flight surfaces) are identified using a csDropDownList;
these may be Main Wing, Horzontal Stabilizer, Vertical_Stabilizer,
Left Vertical Stabilizer, Right Vertical Stabilizer,
or Forward Canard Stabilizer for rocket/gliders. Since
TStrings.CommaText treats a space as a delimiter, using '_' for space.
Uses TStringGrid for external body tube I/O, PickList editor
to select which fin/wing/stabilizer are attached to external
body tube. Up to two fins/wings/stabilizers may be
attached to external body tube. The grid's event OnSelectEditor is used.
|
|
As long as the external body tubes are hollow and thin-walled, its
CD 1 can be
calculated as a launch lug.
Sub-form can be expanded to include model rockets (some
model rocket designs use these instead of fins) and lifting bodies.
Files:
-
rg001.pas -
Lazarus External Structural/Stabilizing Body Tubes unit source file (class
name TFrmStabTubes); contains user interface event procedures; has
{ public declarations } data and interface procedures that
can be accessed by other units
-
rg001.lfm -
Lazarus External Structural/Stabilizing Body Tubes Sub-Form (FrmStabTubes;
shown below)
-
NumRecGlbl.pas
- Numerical Recipes2
global constants/variables/procedures Lazarus unit, reused in other Lazarus projects
& Object Pascal Librarys; has rudimentary data validation functions
genetyp.inc3
- include file developed from major rewrite of Dawkins8 Biomorphs;
contains useful CONSTant and TYPE declarations
nrtyp.inc
- Numerical Recipes include file; CONSTant and TYPE
declarations
-
MRcommon.pas -
Model Rocket global constants/variables/procedures Lazarus unit;
refer to source file comments for global variables' description;
MRcommon.pas is still being developed for
future sub-forms
missle.inc -
include file used by MRcommon.pas; rocket related CONSTant and TYPE
declarations
-
missle18.pas
- Fin/Wing/Stabilizer Lazarus unit source file (class name TFrmFinShpArea); uses
{ public declarations } data and interface functions.
aero021.inc
- include file used by missle18.pas; glider related CONSTant
declarations
-
RGhelp.pas - RGhelp / FrmRGhlp; simple help unit with public CONSTant
declarations and { public declarations } data, currently incomplete
and not available for download. References to it may be safely commented out
for now.
-
missle02.pas -
source code for Object Pascal Library missle02.dll (rocket related
functions/procedures); callable by Object Pascal command console programs,
Object Pascal Windows programs, Lazarus, and D programs. Uses include files
genetyp.inc, nrtyp.inc, and missle.inc; UOM conversion,
Error Message, compute glider/rocket components' surface area, overall rocket
cp/CNα,
and other functions/procedures; calls FORTRAN subroutines in mathproc.dll
and Pascal procedures in hwndio.dll;
refer to source file comments for variables' description
For rocket/gliders, only the first row is used; for model rockets, up to
<number of stages> rows may be used (row 1 is for stage 1, etc.).
Nmbr Stab. Tubes : Number of external body tubes, restricted
by Radius
Dist. Nose Tip : X axis length from nose cone tip to leading
edge of external body tube
Length : external body tube length; used to calculate external
body tube CD
(missle13.dll
function eTubeCD (...)4).
Radius : external body tube radius; used to calculate external
body tube CD.
External body tube radius is added to the central body tube radius to determine
total radial distance (Y-Z plane; radius) from fuselage centerline to any flight surfaces
attached to external body tube. Total radius is used to calculate
CDint (attached flight surfaces'
interference drag coefficient, missle13.dll function intrfncCD (...)4).
Mass : mass of one external body tube
Radial Pos is the angle (Y-Z plane) φ in diagram at page top;
radial position of first body tube. Limited to 0° through 359°.
Flght Surface Attached specifies the first flight surface (Main_Wing,
Horzontal_Stabilizer, etc.) attached to external body tube (csDropDownList).
2nd Flght Surface Attchd specifies the second flight surface (if any)
attached to external body tube (csDropDownList).
File Commands:
- Close Form
sets ModalResult:=mrClose;
returns control to main form
Help Commands:
- Overview
invokes FrmRGhlp.ShowModal()
glider01 event procedure TmrGliderFrm.BtnStabTubesClick(...)
invoking RG001 / FrmStabTubes
Compiling / Linking :5
-
compile
Missle18 / FrmFinShpArea
-
add RG001 / FrmStabTubes to project, Save (only have to
do this step during initial build)
-
compile
At present, will need to supply your own version of
glider01.lpr (Lazarus Project) and glider1.pas (main form).
1. Gregorek, Gerald M.
TIR-11 Aerodynamic Drag of Model Rockets
2. Press, William H., Brian P. Flannery, Saul A Teukolsky,
and William T. Vetterling (1986). Numerical Recipes: The Art of
Scientific Computing.
New York : Press Syndicate of the University of Cambridge. A
student version (in English) of Numerical Recipes In 'C': The Art Of Scientific
Computing, Second Edition, © 1988-1992 is available from the
University of Trieste
at no cost.
3. Rietman, Edward (1994). Genesis Redux: Experiments Creating Artificial
Life. Windcrest (McGraw-Hill).
4. Called in another application.
5. This is a complex project demonstrating as much re-use as possible of Librarys
from other projects, resulting in a large compile/link list and multiple
.dlls. For compatibility with other programs, using 32 bit compilers.
|