FOR IBM and IBM COMPATIBLES INTRODUCTION TO THE PANKNIN TWIST PROGRAM: This first program asks for certain data about your preliminary design. Initially, all variables will have zero values. Fill in the data as requested. When complete, the program will print the input information along with a series of derived parameters. Following that, a sequence of stability factors will be printed, each followed by the twist required and the location of the CG. During the second and subsequent run-throughs, the data originally input will be repeated on the screen. If you wish to retain a single piece of data, simply press . If a change is needed, input the new data and then press . In this way the program can go through a series of single or multiple variable changes, giving relevant information for each iteration. 10 CLS 20 PRINT "**********PANKNIN TWIST**********" 30 FOR X = 0 TO 5000: NEXT X 45 ON ERROR GOTO 5000 50 CLS: PRINT "PLANE TYPE OR NAME ---- = "; AC$: INPUT Z$: IF Z$<>"" THEN AC$ = Z$ 52 OPEN "I", #1, AC$ 53 INPUT #1, AC$ 54 INPUT #1, A$ 55 INPUT #1, B$ 56 INPUT #1, LW 57 INPUT #1, LA 58 INPUT #1, B 59 INPUT #1, PF 60 INPUT #1, CA 65 INPUT #1, W 70 CLOSE #1 78 PRINT "AIRFOIL NAME ROOT ---- "; A$: INPUT Z$: IF Z$ <> "" THEN A$ = Z$ 79 PRINT "AIRFOIL NAME TIP ---- ";B$: INPUT Z$: IF Z$ <> "" THEN B$ = Z$ 80 PRINT "ROOT CHORD ---- ";: IF LW = 0 THEN GOTO 100 90 PRINT LW 100 INPUT Z$: IF Z$ <> "" THEN LW = VAL(Z$) 110 PRINT "TIP CHORD ---- ";: IF LA = 0 THEN GOTO 130 120 PRINT LA 130 INPUT Z$: IF Z$ <> "" THEN LA = VAL(Z$) 140 PRINT "SPAN ---- ";: IF B = 0 THEN GOTO 160 150 PRINT B 160 INPUT Z$: IF Z$ <> "" THEN B = VAL(Z$) 170 PRINT "SWEEPBACK ANGLE OF 1/4 CHORD LINE = ";: IF PF = 0 THEN GOTO 190 180 PRINT PF 190 INPUT Z$: IF Z$ <> "" THEN PF = VAL(Z$) 200 PRINT "CALCULATE WITH CL = ";: IF CA = 0 THEN GOTO 220 210 PRINT CA 220 INPUT Z$: IF Z$ <> "" THEN CA = VAL(Z$) 230 PRINT "WEIGHT IN OUNCES = ";: IF W = 0 THEN GOTO 250 240 PRINT W 250 INPUT Z$: IF Z$ <> "" THEN W = VAL(Z$) 260 OPEN "I", #1, A$ 270 INPUT #1, NR$, CLR, CDR, OW, MW, THR, CR 280 CLOSE #1 290 OPEN "I", #1, B$ 300 INPUT #1, NT$, CLT, CDT, OA, MA, THT, CT 310 CLOSE #1 320 TM = (LW + LA) / 2: AR = B / TM 330 TR = LA / LW 340 PRINT: PRINT 350 PRINT "IF YOU WISH A PRINTOUT OF THE DATA, PRESS AND ,": PRINT "THEN NOW!": PRINT: PRINT "FOR NO PRINTOUT, PRESS ALONE." 360 INPUT Z$: PRINT Z$ 370 CLS 380 PRINT "AIRCRAFT NAME: "; AC$: PRINT "ROOT SECTION = ";A$: PRINT "TIP SECTION = ";B$ 390 PRINT "ROOT CHORD = ";LW: PRINT "TIP CHORD = ";LA 400 PRINT "SPAN = ";B: PRINT "SWEEP ANGLE OF 1/4 CHORD LINE = ";PF: PRINT "WEIGHT = ";W;" OUNCES": PRINT "CALCULATED FOR CL = ";CA 410 PRINT 420 PRINT "AVERAGE CHORD = ";TM: PRINT "TAPER RATIO = ";TR 430 PRINT "ASPECT RATIO = "; AR 440 K1 = 1/4 * (3 + 2 * TR + TR ^ 2)/(1 + TR + TR ^ 2) 450 K2 = 1 - K1 460 B1 = B / 2 470 D = TAN (PF * 3.1414927# / 180) * B1 480 LW1 = LW * .25 490 LA1 = LA * .25 500 D1 = (LW1 - LA1) + D 510 AC = (LW ^ 2 + (LW * LA) + LA ^ 2) / (6 * (LW + LA)) + (((2 * LA) + LW) * D1) / (3 * (LW + LA)) 520 PRINT "AERODYNAMIC CENTER = "; AC; " INCHES BEHIND LEADING EDGE AT ROOT" 530 PRINT: PRINT "D1 (DISTANCE LEADING EDGE OF WINGTIP": PRINT "IS BEHIND LEADING EDGE OF ROOT) = "; D1: PRINT 540 PRINT "WING AREA = ";B * TM; "SQ.IN.": PRINT TAB(13) B * TM /144; "SQ.FT." 550 PRINT "WING LOADING = ";W / (B * TM / 144);" OZ./SQ.FT." 560 INPUT Z$: PRINT Z$ : CLS 570 FOR ST = .01 TO .03 STEP .005: GOSUB 610: NEXT ST 580 INPUT Z$: PRINT Z$: CLS 590 FOR ST = .035 TO .051 STEP .005: GOSUB 610: NEXT ST 600 INPUT Z$: PRINT Z$ 605 PRINT "DO YOU WANT THE RAW DATA SAVED TO DISK? (Y/N) ";:INPUT Z$: IF Z$ ="Y" THEN GOTO 900 607 PRINT "ANOTHER? (Y/N) ";:INPUT Z$: IF Z$ = "Y" THEN GOTO 50 608 END 610 TWIST = ((K1 * MW + K2 * MA) - CA * ST) / (.000014 * AR ^1.43 * PF) 620 PRINT "ST = "; ST; " AERODYNAMIC TWIST REQ¼D = "; TWIST 630 TWIST = TWIST - (OW - OA) 640 PRINT "GEOMETRIC TWIST REQ¼D = "; TWIST 650 CG = AC - TM * ST 660 PRINT "CG = "; CG; " BACK FROM LEADING EDGE AT ROOT" 670 PRINT 680 RETURN 900 REM DISK SAVE 910 CLS: PRINT "THIS AIRCRAFT IS CURRENTLY NAMED "; AC$ 920 PRINT: PRINT "IF THIS IS OK, PRESS , OTHERWISE ENTER THE NEW NAME" 930 INPUT Z$: IF Z$ <> "" THEN AC$ = Z$ 950 CLS: PRINT "SAVING TO DISK..." 1020 OPEN "O", #1, AC$ 1100 PRINT #1, AC$ 1110 PRINT #1, A$ 1120 PRINT #1, B$ 1130 PRINT #1, LW 1140 PRINT #1, LA 1150 PRINT #1, B 1160 PRINT #1, PF 1161 PRINT #1, CA 1162 PRINT #1, W 1170 CLOSE #1 1180 GOTO 607 5000 RESUME 78 INTRODUCTION TO THE AIRFOIL DATA PROGRAM: This small program places input airfoil information on disk for use by the above program. Other programs, of your own design perhaps, can be written to make use of the information as well. The program runs in a self explanatory manner. 5 PRINT "AIRFOIL NAME = ": PRINT "ENTER åDONE¼ IF NO MORE ";: INPUT N$ 10 IF N$= "DONE" THEN END 40 INPUT"CL = "; CL 50 INPUT"CD = "; CD 60 INPUT"ZERO LIFT ANGLE =";ZLA 70 INPUT"PITCHING MOMENT =";CM 80 INPUT"THICKNESS = ";TH 90 INPUT"CAMBER =";C 95 OPEN "O", #1, N$ 100 PRINT #1, N$ 110 PRINT #1, CL 120 PRINT #1, CD 130 PRINT #1, ZLA 140 PRINT #1, CM 150 PRINT #1, TH 160 PRINT #1, C 170 CLOSE #1 180 GOTO 5