Calculations

=Altitude prediction and rocket performance=

I used to use **Rogers Aeroscience**. It was a great programme (and probably still is) but I do not use it anymore.

[]

For many years now I have been using the freeware program **wRASP**

[]

I also now use **Winroc**

[]

= Centre of pressure programme (By Dave Thomson) =

Many software packages are available today to determine rocket performance and centre of pressure calculations. But they do cost money. I have started to develop my own 'as user friendly as possible' programme to determine centre of pressure.

This programme is written in QBASIC and can be run in DOS or in a DOS window so long as you have QBASIC loaded. Only one file is required and can be 'cut and pasted' from the bottom of this page. Create as a file with a name of your choice in MS Word etc. and save as a text file in a directory of your choice and then log into QBASIC. Goto the directory where the file is held and click on it and then follow then RUN the programme.

You may get one or two errors coming up but this is due to some of the string lengths wrapping over to the next line when pasted into Word. You may have to rebuild a line or two by a back space and insertion of a commer or two. QBASIC will advise what is wrong.

You will first be asked if you wish to use a model from the database or a new one. The ones in the database are some of my own but you may overwrite these by going into the QBASIC file and modifying the values against each rocket and re-saving the file.

If you choose to create a new one then you will asked to input the dimensions in order. A dummy rocket is drawn at the side to make clear what the dimensions are. When complete the programme will work out the Centre of pressure and the optimum centre of gravity. It will then display the values and draw a scaled version of your rocket along side to visually show the values that you put in. CP and CG are marked on the rocket also.

You may copy this programme and develop it yourself and pass it on to other amateur's. I am offering the information as freeware; commercial use of the code or diagrams is prohibited.

Note that it is possible to download QBASIC from the net and use it in XP etc. The following link may still work. If not a google search will find it.

http://www.geocities.com/area51/5967/qbasic.html

The programme is given in text form at the bottom of the page. Or, click here to open it in a window. Save it as a text file (txt) and then rename it as a BAS file. Open QBASIC and then open the BAS file to run.

__SCREEN 1__ This screen shows the 'dummy' rocket outline and dimentions required by the programme. I t will first ask you if you are to use one from the database or a new one. Enter 1 or 2. If a new design then follow the instructions. You may enter whatever units you like so long as they are consistant thoughout!

__SCREEN 2__ This screen shows the database rockets to choose from

__SCREEN 3__ This screen gives the output values and a drawing of the rocket you requeted. This particular screen shows the type 4 from my database.



__THE PROGRAMME__ 100 SCREEN 12 120 CLS 149 REM draw generic rocket outline 168 LINE (100, 100)-(150, 400), 12, B 170 LINE (100, 100)-(125, 20), 12 172 LINE (150, 100)-(125, 20), 12 174 LINE (100, 300)-(50, 350), 12 176 LINE (50, 350)-(50, 400), 12 178 LINE (50, 400)-(100, 390), 12 180 LINE (150, 300)-(200, 350), 12 182 LINE (200, 350)-(200, 400), 12 184 LINE (200, 400)-(150, 390), 12 190 REM plot rocket dimension letter inputs 200 LOCATE 10, 15: PRINT ; "D/DR" 210 LOCATE 15, 3: PRINT ; "XB" 220 LOCATE 21, 3: PRINT ; "XR" 230 LOCATE 24, 3: PRINT ; "CT" 240 LOCATE 23, 9: PRINT ; "LF" 250 LOCATE 28, 10: PRINT ; "S" 260 LOCATE 22, 16: PRINT ; "CR" 270 LOCATE 5, 8: PRINT ; "LN" 300 REM plot letter input dimension lines 310 LINE (90, 20)-(0, 20), 10 320 LINE (40, 100)-(90, 100), 10 330 LINE (0, 300)-(90, 300), 10 340 LINE (0, 350)-(40, 350), 10 350 LINE (0, 400)-(40, 400), 10 360 LINE (50, 410)-(50, 450), 10 370 LINE (100, 410)-(100, 450), 10 380 LINE (110, 300)-(110, 390), 9 382 LINE (102, 300)-(120, 300), 10 384 LINE (102, 390)-(120, 390), 10 390 LINE (98, 350)-(52, 375), 9 400 LINE (10, 20)-(10, 300), 9 410 LINE (102, 170)-(148, 170), 9 420 LINE (10, 300)-(10, 350), 9 430 LINE (10, 350)-(10, 400), 9 440 LINE (50, 20)-(50, 100), 9 450 LINE (50, 430)-(100, 430), 9 460 LINE (90, 20)-(0, 20), 10 470 LINE (90, 20)-(0, 20), 10 490 GOTO 1000 500 REM input values for drawing scaled rocket as a test before inputting to programme 502 SCREEN 12 505 CLS 510 LOCATE 2, 30: PRINT "MODEL TYPE", MODEL 511 LOCATE 4, 30: PRINT "LALL: OVERALL LENGTH" 512 LOCATE 4, 75: PRINT lall 520 LOCATE 5, 30: PRINT "NC: NOSE CONE TYPE, CONICAL 1 OR OGIVE 2" 522 LOCATE 5, 75: PRINT NC 530 LOCATE 6, 30: PRINT "LN: NOSE CONE LENGTH" 532 LOCATE 6, 75: PRINT LN 540 LOCATE 7, 30: PRINT "F : FINS?, IF 3 THEN 12 IF 4 THEN 16" 542 LOCATE 7, 75: PRINT F 550 LOCATE 8, 30: PRINT "XB: LENGTH, NOSE TIP TO FRONT EDGE OF FIN" 552 LOCATE 8, 75: PRINT XB 560 LOCATE 9, 30: PRINT "D : OVERALL DIAMETER" 562 LOCATE 9, 75: PRINT D 570 LOCATE 10, 30: PRINT "CR: LENGTH OF FIN TO SIDE OF BODY" 572 LOCATE 10, 75: PRINT CR 580 LOCATE 11, 30: PRINT "XR: LENGTH OF FIN LEADING EDGE SWEEP BACK" 582 LOCATE 11, 75: PRINT xr 583 LOCATE 12, 30: PRINT "CT: LENGTH OF OUTSIDE FIN EDGE" 584 LOCATE 12, 75: PRINT CT 585 LOCATE 13, 30: PRINT "S : WIDTH OF FIN PERPENDICULAR TO BODY" 586 LOCATE 13, 75: PRINT S 587 LOCATE 14, 30: PRINT "LF: FIN MID-CHORD LENGTH" 588 LOCATE 14, 75: PRINT LF 589 LOCATE 15, 30: PRINT "R : RADIUS OF BODY TUBE AT BASE" 590 LOCATE 15, 75: PRINT R 594 LET lallx = lall 595 IF lall < (XB + xr + CT) THEN LET lall = (XB + xr + CT) 600 REM draw actual rocket outline from data inputed 610 REM this draws a scaled box LINE (0, 0)-(((D / lall) * 460), 460), 12, B 650 REM draw nose cone ogive 651 IF NC = 1 THEN GOTO 668 652 CIRCLE (150, ((LN / lall) * 460)), (((LN / lall) * 460)), 10, 0, 3.142, (LN / (D / 2)) 666 GOTO 674 667 REM draw nose cone conical 668 LINE (150, 0)-((150 - (((D / lall) * 460) / 2)), ((LN / lall) * 460)), 10 670 LINE (150, 0)-((150 + (((D / lall) * 460) / 2)), ((LN / lall) * 460)), 10 672 LINE ((150 - (((D / lall) * 460) / 2)), ((LN / lall) * 460))-((150 + (((D / lall) * 460) / 2)), ((LN / lall) * 460)), 10 674 REM draw body 675 LINE ((150 - (((D / lall) * 460) / 2)), ((LN / lall) * 460))-((150 + (((D / lall) * 460) / 2)), ((lallx / lall) * 460)), 10, B 677 REM draw left fin 678 LINE ((150 - (((D / lall) * 460) / 2)), (XB / lall) * 460)-(150 - ((S / lall) * 460), (((XB + xr) / lall) * 460)), 10 679 LINE (150 - ((S / lall) * 460), (((XB + xr + CT) / lall) * 460))-(150 - ((S / lall) * 460), (((XB + xr) / lall) * 460)), 10 680 LINE (150 - ((S / lall) * 460), (((XB + xr + CT) / lall) * 460))-((150 - (((D / lall) * 460) / 2)), ((XB + CR) / lall) * 460), 10 700 REM draw right fin 710 LINE ((150 + (((D / lall) * 460) / 2)), (XB / lall) * 460)-(150 + ((S / lall) * 460), (((XB + xr) / lall) * 460)), 10 720 LINE (150 + ((S / lall) * 460), (((XB + xr + CT) / lall) * 460))-(150 + ((S / lall) * 460), (((XB + xr) / lall) * 460)), 10 730 LINE (150 + ((S / lall) * 460), (((XB + xr + CT) / lall) * 460))-((150 + (((D / lall) * 460) / 2)), ((XB + CR) / lall) * 460), 10 800 RETURN 1000 GOTO 1500 1500 LOCATE 1, 30: INPUT "CHOOSE FROM DATABASE 1=Y, 2=N : ", DB IF DB = 2 THEN GOTO 1505 END IF IF DB = 1 THEN GOTO 8001 END IF GOTO 1505 1505 LOCATE 3, 30: PRINT "INPUT: STANDARD 1, NON-STANDARD 2" 1507 LOCATE 3, 75: INPUT T 1510 LOCATE 4, 30: PRINT "LALL: INPUT OVERALL LENGTH" 1512 LOCATE 4, 75: INPUT lall 1520 LOCATE 5, 30: PRINT "NC: NOSE CONE TYPE, CONICAL 1 OR OGIVE 2" 1522 LOCATE 5, 75: INPUT NC 1530 LOCATE 6, 30: PRINT "LN: NOSE CONE LENGTH" 1532 LOCATE 6, 75: INPUT LN 1545 LET XN = LN * .466 1540 LOCATE 7, 30: PRINT "F : FINS?, IF 3 THEN 12 IF 4 THEN 16" 1542 LOCATE 7, 75: INPUT F 1550 LOCATE 8, 30: PRINT "XB: LENGTH, NOSE TIP TO FRONT EDGE OF FIN" 1552 LOCATE 8, 75: INPUT XB 1560 LOCATE 9, 30: PRINT "D : OVERALL DIAMETER" 1562 LOCATE 9, 75: INPUT D 1570 LOCATE 10, 30: PRINT "CR: LENGTH OF FIN TO SIDE OF BODY" 1572 LOCATE 10, 75: INPUT CR 1580 LOCATE 11, 30: PRINT "XR: LENGTH OF FIN LEADING EDGE SWEEP BACK" 1582 LOCATE 11, 75: INPUT xr 1590 LOCATE 12, 30: PRINT "CT: LENGTH OF OUTSIDE FIN EDGE" 1592 LOCATE 12, 75: INPUT CT 1600 LOCATE 13, 30: PRINT "S : WIDTH OF FIN PERPENDICULAR TO BODY" 1622 LOCATE 13, 75: INPUT S 1630 LOCATE 14, 30: PRINT "LF: FIN MID-CHORD LENGTH" 1632 LOCATE 14, 75: INPUT LF 1640 LOCATE 15, 30: PRINT "R : RADIUS OF BODY TUBE AT BASE" 1642 LOCATE 15, 75: INPUT R 3000 LET Z1 = S + R 3010 LET Z2 = R / Z1 3020 LET Z3 = Z2 + 1 3030 LET Z4 = S / D 3040 LET Z5 = Z4 * Z4 3050 LET Z6 = Z5 * F 3060 LET Z7 = LF * 2 3070 LET Z8 = CR + CT 3080 LET Z9 = Z7 / Z8 3090 LET Z10 = Z9 * Z9 3100 LET Z11 = Z10 + 1 3110 LET Z12 = SQR(Z11) 3120 LET Z13 = Z12 + 1 3130 LET Z14 = Z6 / Z13 3140 LET CNF = Z3 * Z14 3150 LET Z15 = xr / 3 3160 LET Z16 = CT * 2 3170 LET Z17 = Z16 + CR 3180 LET Z18 = CR + CT 3190 LET Z19 = Z17 / Z18 3200 LET Z20 = Z15 * Z19 3210 LET Z21 = CR * CT 3220 LET Z22 = Z21 / Z18 3230 LET Z23 = Z18 - Z22 3240 LET Z24 = Z23 * .1667 3250 LET Z25 = Z24 + Z20 3260 LET XF = Z25 + XB 3270 LET CNR = CNF + 2 3280 LET Z26 = XN * 2 3290 LET Z27 = CNF * XF 3300 LET Z28 = Z26 + Z27 3310 LET Z29 = Z28 / CNR 4000 GOSUB 500 5000 LOCATE 17, 30: PRINT "CENTRE OF PRESSURE FROM NOSE TIP IS" 5002 LOCATE 17, 70: PRINT Z29 5005 LOCATE 19, 30: PRINT "C OF G MUST BE < OR = TO FROM NOSE TIP" 5006 LET CG = Z29 - D 5007 LOCATE 19, 55: PRINT CG 5010 LOCATE 21, 30: PRINT "FIRST CHECK: Is the center of pressure closer to " 5020 LOCATE 22, 30: PRINT "the tail of the rocket than the center of gravity." 5030 LOCATE 23, 30: PRINT "If NO then it is unstable and you will have to " 5035 LOCATE 24, 30: PRINT "add weight to the nose." 5040 LOCATE 26, 30: PRINT "SECOND CHECK: Is distance between CP and CG greater" 5050 LOCATE 27, 30: PRINT "than at least ONE body tube diameter. If not add " 5060 LOCATE 28, 30: PRINT "weight to the nose untill it is." 5070 CIRCLE (150, ((Z29 / lall) * 460)), 6 5750 CIRCLE (150, ((CG / lall) * 460)), 6 5760 LINE (90, 0)-(0, 0), 10 5780 LINE (90, ((Z29 / lall) * 460))-(0, ((Z29 / lall) * 460)), 10 5095 LINE (90, ((CG / lall) * 460))-(30, ((CG / lall) * 460)), 10 5100 LINE (40, 0)-(40, ((CG / lall) * 460)), 9 5110 LINE (20, 0)-(20, ((Z29 / lall) * 460)), 9 5120 LINE ((150 - 6), ((Z29 / lall) * 460))-((150 + 6), ((Z29 / lall) * 460)), 12 5130 LINE ((150 - 6), ((CG / lall) * 460))-((150 + 6), ((CG / lall) * 460)), 12 5140 LINE (150, (((Z29 / lall) * 460) - 6))-(150, (((Z29 / lall) * 460) + 6)), 12 5150 LINE (150, (((CG / lall) * 460) - 6))-(150, (((CG / lall) * 460) + 6)), 12 5180 LOCATE 12, 5: PRINT ; "CG" 5190 LOCATE 9, 3: PRINT ; "CP" 6000 LOCATE 30, 30: INPUT "INPUT ANOTHER = 1, QUIT = 2: ", QQ IF QQ = 2 THEN GOTO 8000 END IF IF QQ = 1 THEN GOTO 100 END IF GOTO 8000 8000 END 8001 REM DATABASE MODELS 8003 LOCATE 4, 30: PRINT "CHOOSE FROM MODELS BEOLW" 8005 LOCATE 6, 30: PRINT "MINIMUM DIAMETER TEST ROCKET '1x29mm G' =1" 8006 LOCATE 8, 30: PRINT "SILVER 50MM DIAMETER '1x29mm G' ROCKET =2" 8007 LOCATE 10, 30: PRINT "1/3 SCALE PATRIOT ROCKET '4x29MM G' =3" 8008 LOCATE 12, 30: PRINT "5 INCH DIAMETER '1x38mm I211W' =4" 8009 LOCATE 14, 30: PRINT "EXPERIMENTAL WITH REAR FIN SWEEP =5" 8010 LOCATE 16, 30: PRINT "SPARE =6" 8026 LOCATE 4, 75: INPUT MODEL 8027 IF MODEL = 1 THEN GOTO 8120 8028 IF MODEL = 2 THEN GOTO 8220 8029 IF MODEL = 3 THEN GOTO 8320 8030 IF MODEL = 4 THEN GOTO 8420 8031 IF MODEL = 5 THEN GOTO 8520 8032 IF MODEL = 6 THEN GOTO 8620 8119 REM "MINIMUM DIAMETER TEST ROCKET '1x29mm G' =1" 8120 LET T = 1 8121 LET lall = 800 8122 LET NC = 1 8123 LET LN = 100 8124 LET XN = LN * .466 8125 LET F = 12 8126 LET XB = 650 8127 LET D = 33 8128 LET CR = 130 8129 LET xr = 100 8130 LET CT = 0 8131 LET S = 66 8132 LET LF = 90 8133 LET R = 66 8134 GOTO 3000 8219 REM "SILVER 50MM DIAMETER '1x29mm G' ROCKET =2" 8220 LET T = 1 8221 LET lall = 1200 8222 LET NC = 2 8223 LET LN = 150 8224 LET XN = LN * .466 8225 LET F = 12 8226 LET XB = 920 8227 LET D = 50 8228 LET CR = 270 8229 LET xr = 170 8230 LET CT = 90 8231 LET S = 100 8232 LET LF = 120 8233 LET R = 50 8234 GOTO 3000 8319 REM "1/3 SCALE PATRIOT ROCKET '4x29MM G' =3" 8320 LET T = 1 8321 LET lall = 2000 8322 LET NC = 2 8323 LET LN = 300 8324 LET XN = LN * .466 8325 LET F = 16 8326 LET XB = 1700 8327 LET D = 130 8328 LET CR = 300 8329 LET xr = 200 8330 LET CT = 100 8331 LET S = 220 8332 LET LF = 180 8333 LET R = 130 8334 GOTO 3000 8419 REM "5 INCH DIAMETER '1x38mm I211W' =4" 8420 LET T = 1 8421 LET lall = 2200 8422 LET NC = 2 8423 LET LN = 400 8424 LET XN = LN * .466 8425 LET F = 12 8426 LET XB = 1650 8427 LET D = 102 8428 LET CR = 500 8429 LET xr = 300 8430 LET CT = 150 8431 LET S = 200 8432 LET LF = 290 8433 LET R = 102 8434 GOTO 3000 8519 REM "EXPERIMENTAL WITH REAR FIN SWEEP' =5" 8520 LET T = 1 8521 LET lall = 1000 8522 LET NC = 2 8523 LET LN = 200 8524 LET XN = LN * .466 8525 LET F = 12 8526 LET XB = 600 8527 LET D = 100 8528 LET CR = 400 8529 LET xr = 300 8530 LET CT = 200 8531 LET S = 200 8532 LET LF = 250 8533 LET R = 100 8534 GOTO 3000 8619 REM "SPARE =6" 8620 LET T = 1 8621 LET lall = 1000 8622 LET NC = 2 8623 LET LN = 200 8624 LET XN = LN * .466 8625 LET F = 12 8626 LET XB = 600 8627 LET D = 100 8628 LET CR = 400 8629 LET xr = 300 8630 LET CT = 200 8631 LET S = 200 8632 LET LF = 250 8633 LET R = 100 8634 GOTO 3000