10 REM MCGYRO, APRIL 1986, BY R. L. MCCOY. 20 REM ESTIMATE OF GYROSCOPIC STABILITY FACTOR (SG) 30 REM FOR A UNIFORM DENSITY PROJECTILE. USES THE 40 REM MCDRAG INPUT FORMAT, WITH TWO ADDITIONAL QUANTITIES; 50 REM PROJECTILE DENSITY (GRAMS/CC), AND RIFLING TWIST 60 REM RATE (CALIBERS/TURN). OUTPUT IS ECHO OF INPUT 70 REM FOLLOWED BY A TABLE OF LAUNCH MACH NUMBER, LAUNCH 80 REM GYROSCOPIC STABILITY FACTOR, AND RIFLING TWIST RATE 90 REM REQUIRED TO GIVE SG=1.5 (SLOWEST ACCEPTABLE TWIST RATE). 100 REM 110 REM THE STANDARD DEVIATION OF THE SG ESTIMATE IS 120 REM 5 PERCENT AT SUBSONIC AND SUPERSONIC SPEEDS, AND 130 REM 10 PERCENT AT TRANSONIC SPEEDS. 150 CLS 160 KEY OFF 170 COLOR 7, 1, 8: CLS 180 KEY ON 190 DIM M(22), N15(22), S6(22) 200 REM 210 REM define table of launch mach numbers 220 REM 230 DATA 0.5,0.6,0.7,0.8,0.9,0.95 240 DATA 1.0,1.1,1.2,1.3,1.4,1.5 250 DATA 1.6,1.7,1.8,2.0,2.2,2.5 260 DATA 3.0,3.5,4.0,5.0 270 FOR I = 1 TO 22 280 READ M(I) 290 NEXT I 300 RESTORE 310 REM input projectile dimensions 320 CLS 330 PRINT "Enter the McGyro Inputs, one quantity at a time." 340 PRINT 350 PRINT "Enter projectile reference diameter (mm):"; 360 INPUT D1 370 PRINT 380 PRINT "Enter projectile total length (Calibers):"; 390 INPUT L1 400 PRINT 410 PRINT "Enter nose length (Calibers):"; 420 INPUT L2 430 PRINT 440 PRINT "Enter RT/R (Headshape parameter):"; 450 INPUT R1 460 PRINT 470 PRINT "Enter boattail length (Calibers):"; 480 INPUT L3 490 PRINT 500 PRINT "Enter base diameter (Calibers):"; 510 INPUT D2 520 PRINT 530 PRINT "Enter meplat diameter (Calibers):"; 540 INPUT D3 550 PRINT 560 PRINT "[NOTE: Do not enter the center of gravity" 570 PRINT "location. Program assumes the center" 580 PRINT "of gravity is at the volume centroid]" 590 PRINT 600 PRINT "Enter projectile density (grams/cc):"; 610 INPUT R10 620 PRINT 630 PRINT "Enter rifling twist rate (Calibers/turn):"; 640 INPUT N 650 PRINT 660 PRINT "Enter projectile identification:"; 670 INPUT K$ 680 PRINT 690 CLS 700 PRINT "McGyro, April 1986, R. L. McCoy." 710 PRINT 720 REM echo input data 730 PRINT "Projectile Identification: "; K$ 740 PRINT 750 PRINT "DREF", "LT", "LN", "RT/R" 760 PRINT "(MM)", "(CAL)", "(CAL)" 770 PRINT D1, L1, L2, R1 780 PRINT 790 PRINT "LBT", "DB", "DM", "RHOB", "TWIST" 800 PRINT "(CAL)", "(CAL)", "(CAL)"; "(GM/CC)", "(CAL/TURN)" 810 PRINT L3, D2, D3, R10, N 820 PRINT 830 PRINT " LAUNCH", "LAUNCH", " N" 840 PRINT "MACH NO."; SG; ","; (SG = 1.5); "" 850 PRINT 860 S1 = SQR(1 - D3) 870 S2 = 1 - D2 ^ 2 880 FOR I = 1 TO 22 890 IF M(I) <= .95 THEN 930 900 IF M(I) >= 1.1 THEN 950 910 G1 = 71.73001 - 42.433 * M(I) 920 GOTO 960 930 G1 = 20.082 + 3.726 * (M(I) / SQR(1 - M(I) ^ 2)) 940 GOTO 960 950 G1 = 35.079 - 24.066 * (SQR(M(I) ^ 2 - 1) / M(I)) 960 A1 = G1 * S2 970 IF M(I) < 1 THEN 990 980 IF M(I) >= 1 THEN 1030 990 B1 = SQR(1 - M(I) ^ 2) 1000 B = .82112 + .36971 * B1 1010 A = 34.779 + (24.091 + (8.977 - 12.804 * R1 + 8.38 * R1 ^ 2) * L2) * S1 * B1 - A1 1020 GOTO 1060 1030 B1 = SQR(M(I) ^ 2 - 1) / M(I) 1040 B = 1.0528 + .23379 * B1 - .004884 * (M(I) - 1) 1050 A = 58.873 + (8.115 + (14.15 - 15.348 * R1 + 7.216 * R1 ^ 2) * L2) * S1 * B1 ^ 2 - A1 1060 N15(I) = (A * SQR(R10)) / (L1 ^ B) 1070 S6(I) = 1.5 * ((N15(I)) / N) ^ 2 1080 NEXT I 1090 REM Print McGyro Output 1100 U$ = " #.## ##.## ###.##" 1110 FOR I = 1 TO 22 1120 PRINT USING U$; M(I); S6(I); N15(I) 1130 NEXT I 1140 PRINT 1150 PRINT 1160 PRINT "Copy this? (Enter Y for Yes, N for No):"; 1170 INPUT K2$ 1180 IF K2$ = "N" THEN 1410 1190 LPRINT 1200 LPRINT 1210 LPRINT "McGryo, April 1986, R. L. McCoy." 1220 LPRINT 1230 LPRINT "PROJECTILE IDENTIFICATION: "; K$ 1240 LPRINT 1250 LPRINT "DREF", "LT", "LN", "RT/R" 1260 LPRINT "(MM)", "(CAL)", "(CAL)" 1270 LPRINT D1, L1, L2, R1 1280 LPRINT 1290 LPRINT "LBT", "DB", "DM", "RHOB", "TWIST" 1300 LPRINT "(CAL)", "(CAL)", "(CAL)", "(GM/CC)", "(CAL/TURN)" 1310 LPRINT L3, D2, D3, R10, N 1320 LPRINT 1330 LPRINT "MACH NO.", " SG", "(SG=1.5)" 1350 LPRINT 1360 FOR I = 1 TO 22 1370 LPRINT USING U$; M(I); S6(I); N15(I) 1380 NEXT I 1390 LPRINT 1400 LPRINT 1410 REM CHECK FOR ANOTHER CASE 1420 PRINT 1430 PRINT 1440 PRINT "Run another case" 1450 PRINT "Enter Y for Yes, N for No:"; 1460 INPUT K1$ 1470 IF K1$ = "Y" THEN 310 1480 END