Ejemplo n.º 1
0
 public Gear(Aerodata a):base(a)
 {
     MaxSteer = new DenominatedAmount(0, "DEG");
     dynamic_friction = new DenominatedAmount(0.5,null);
     rolling_friction = new DenominatedAmount(0.02,null);
     static_friction = new DenominatedAmount(0.8, null);
     spring_coeff = new DenominatedAmount(a.EmptyWeight.Amount * 0.9,  "LBS/FT");
     damping_coeff = new DenominatedAmount(a.EmptyWeight.Amount * 0.05, "LBS/FT/SEC");
 }
Ejemplo n.º 2
0
        public static void AddExtra(Aerodata aero)
        {
            var mach_table = @"0.202	1.2579450
0.306	1.1412150
0.400	1.0627178
0.503	1.0219124
0.608	1.0000000
0.705	0.9909509
0.802	1.0008701
0.901	1.0107093
0.923	1.0417084
0.934	1.0793344
0.945	1.1295980
1.009	1.8800483
1.029	2.0249037
1.048	2.1444697
1.092	2.2317526
1.170	2.2611620
1.603	2.1857642
1.797	2.1360697
1.948	2.0812627
1.999	2.0608600
2.091	2.0330027
";
            var ad = aero.Add("Lift Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "ClMach", "mach");
            ad.data = parse(ad, 1, mach_table);

            ad = aero.Add("Yaw factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CyMach", "mach");
            ad.data = parse(ad, 1, mach_table);
            ad = aero.Add("Roll Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CLMach", "mach");
            ad.data = parse(ad, 1, mach_table);
            ad = aero.Add("Pitch Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CMMach", "mach");
            ad.data = parse(ad, 1, mach_table);
            ad = aero.Add("Yaw Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CNMach", "mach");
            ad.data = parse(ad, 1, mach_table);
            //            var ad = aero.Add("Lift Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "ClMach", "mach", "alpha");

            //            ad.data = parse(ad, 2, @"   0.0         0.2         0.6         0.9         1.1         1.3         1.5         1.8         2.1         2.6         3.0
            //                           -20	1.00000000	1.00000000	0.96610485	1.23950808	1.41632259	1.34327421	1.13294356	0.93062904	0.76851372	0.58968226	0.51614275
            //                           -15	1.00000000	1.00000000	0.96116198	1.23316641	1.40907629	1.33640164	1.12714710	0.92586768	0.76458179	0.58666528	0.51350202
            //                           -10	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
            //                            -5	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
            //                             4	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
            //                             8	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
            //                            12	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
            //                            16	1.00000000	1.00000000	0.98015728	1.25753729	1.43692365	1.36281274	1.14942274	0.94416546	0.77969210	0.59825946	0.52365028
            //                            20	1.00000000	1.00000000	0.96074823	1.23263556	1.40846972	1.33582635	1.12666189	0.92546912	0.76425265	0.58641274	0.51328097
            //                            24	1.00000000	1.00000000	0.96503140	1.23813085	1.41474891	1.34178168	1.13168474	0.92959501	0.76765981	0.58902706	0.51556926
            //                            28	1.00000000	1.00000000	0.96044147	1.23224199	1.40802001	1.33539984	1.12630217	0.92517363	0.76400864	0.58622551	0.51311708
            //                            32	1.00000000	1.00000000	0.96642959	1.23992472	1.41679867	1.34372573	1.13332438	0.93094186	0.76877204	0.58988048	0.51631624
            //                            40	1.00000000	1.00000000	0.95223257	1.22171001	1.39598566	1.32398617	1.11667565	0.91726616	0.75747865	0.58121503	0.50873147
            //                            45	1.00000000	1.00000000	0.95617790	1.22677185	1.40176956	1.32947176	1.12130231	0.92106662	0.76061706	0.58362314	0.51083926
            //                            50	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
            //");
            //            ad = aero.Add("Sideforce Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CyMach", "mach", "alpha");

            //            ad.data = parse(ad, 2, @"    0.0         0.2         0.6         0.9         1.1         1.3         1.5         1.8         2.1         2.6         3.0
            //                                -20	1.00000000	1.00000000	0.96610485	1.23950808	1.41632259	1.34327421	1.13294356	0.93062904	0.76851372	0.58968226	0.51614275
            //                                -15	1.00000000	1.00000000	0.96116198	1.23316641	1.40907629	1.33640164	1.12714710	0.92586768	0.76458179	0.58666528	0.51350202
            //                                -10	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
            //                                -5	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
            //                                 4	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
            //                                 8	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
            //                                12	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
            //                                16	1.00000000	1.00000000	0.98015728	1.25753729	1.43692365	1.36281274	1.14942274	0.94416546	0.77969210	0.59825946	0.52365028
            //                                20	1.00000000	1.00000000	0.96074823	1.23263556	1.40846972	1.33582635	1.12666189	0.92546912	0.76425265	0.58641274	0.51328097
            //                                24	1.00000000	1.00000000	0.96503140	1.23813085	1.41474891	1.34178168	1.13168474	0.92959501	0.76765981	0.58902706	0.51556926
            //                                28	1.00000000	1.00000000	0.96044147	1.23224199	1.40802001	1.33539984	1.12630217	0.92517363	0.76400864	0.58622551	0.51311708
            //                                32	1.00000000	1.00000000	0.96642959	1.23992472	1.41679867	1.34372573	1.13332438	0.93094186	0.76877204	0.58988048	0.51631624
            //                                40	1.00000000	1.00000000	0.95223257	1.22171001	1.39598566	1.32398617	1.11667565	0.91726616	0.75747865	0.58121503	0.50873147
            //                                45	1.00000000	1.00000000	0.95617790	1.22677185	1.40176956	1.32947176	1.12130231	0.92106662	0.76061706	0.58362314	0.51083926
            //                                50	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
            //");
            //            ad = aero.Add("Roll Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CLMach", "mach", "alpha");

            //            ad.data = parse(ad, 2, @"    0.0         0.2         0.6         0.9         1.1         1.3         1.5         1.8         2.1         2.6         3.0
            //                                -20	1.00000000	1.00000000	0.96610485	1.23950808	1.41632259	1.34327421	1.13294356	0.93062904	0.76851372	0.58968226	0.51614275
            //                                -15	1.00000000	1.00000000	0.96116198	1.23316641	1.40907629	1.33640164	1.12714710	0.92586768	0.76458179	0.58666528	0.51350202
            //                                -10	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
            //                                -5	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
            //                                 4	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
            //                                 8	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
            //                                12	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
            //                                16	1.00000000	1.00000000	0.98015728	1.25753729	1.43692365	1.36281274	1.14942274	0.94416546	0.77969210	0.59825946	0.52365028
            //                                20	1.00000000	1.00000000	0.96074823	1.23263556	1.40846972	1.33582635	1.12666189	0.92546912	0.76425265	0.58641274	0.51328097
            //                                24	1.00000000	1.00000000	0.96503140	1.23813085	1.41474891	1.34178168	1.13168474	0.92959501	0.76765981	0.58902706	0.51556926
            //                                28	1.00000000	1.00000000	0.96044147	1.23224199	1.40802001	1.33539984	1.12630217	0.92517363	0.76400864	0.58622551	0.51311708
            //                                32	1.00000000	1.00000000	0.96642959	1.23992472	1.41679867	1.34372573	1.13332438	0.93094186	0.76877204	0.58988048	0.51631624
            //                                40	1.00000000	1.00000000	0.95223257	1.22171001	1.39598566	1.32398617	1.11667565	0.91726616	0.75747865	0.58121503	0.50873147
            //                                45	1.00000000	1.00000000	0.95617790	1.22677185	1.40176956	1.32947176	1.12130231	0.92106662	0.76061706	0.58362314	0.51083926
            //                                50	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
            //");
            //            ad = aero.Add("Pitch Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CMMach", "mach", "alpha");

            //            ad.data = parse(ad, 2, @"    0.0         0.2         0.6         0.9         1.1         1.3         1.5         1.8         2.1         2.6         3.0
            //                                -20	1.00000000	1.00000000	0.96610485	1.23950808	1.41632259	1.34327421	1.13294356	0.93062904	0.76851372	0.58968226	0.51614275
            //                                -15	1.00000000	1.00000000	0.96116198	1.23316641	1.40907629	1.33640164	1.12714710	0.92586768	0.76458179	0.58666528	0.51350202
            //                                -10	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
            //                                -5	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
            //                                 4	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
            //                                 8	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
            //                                12	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
            //                                16	1.00000000	1.00000000	0.98015728	1.25753729	1.43692365	1.36281274	1.14942274	0.94416546	0.77969210	0.59825946	0.52365028
            //                                20	1.00000000	1.00000000	0.96074823	1.23263556	1.40846972	1.33582635	1.12666189	0.92546912	0.76425265	0.58641274	0.51328097
            //                                24	1.00000000	1.00000000	0.96503140	1.23813085	1.41474891	1.34178168	1.13168474	0.92959501	0.76765981	0.58902706	0.51556926
            //                                28	1.00000000	1.00000000	0.96044147	1.23224199	1.40802001	1.33539984	1.12630217	0.92517363	0.76400864	0.58622551	0.51311708
            //                                32	1.00000000	1.00000000	0.96642959	1.23992472	1.41679867	1.34372573	1.13332438	0.93094186	0.76877204	0.58988048	0.51631624
            //                                40	1.00000000	1.00000000	0.95223257	1.22171001	1.39598566	1.32398617	1.11667565	0.91726616	0.75747865	0.58121503	0.50873147
            //                                45	1.00000000	1.00000000	0.95617790	1.22677185	1.40176956	1.32947176	1.12130231	0.92106662	0.76061706	0.58362314	0.51083926
            //                                50	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
            //");
            //            ad = aero.Add("Yaw Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CNMach", "mach", "alpha");

            //            ad.data = parse(ad, 2, @"    0.0         0.2         0.6         0.9         1.1         1.3         1.5         1.8         2.1         2.6         3.0
            //                                -20	1.00000000	1.00000000	0.96610485	1.23950808	1.41632259	1.34327421	1.13294356	0.93062904	0.76851372	0.58968226	0.51614275
            //                                -15	1.00000000	1.00000000	0.96116198	1.23316641	1.40907629	1.33640164	1.12714710	0.92586768	0.76458179	0.58666528	0.51350202
            //                                -10	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
            //                                -5	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
            //                                 4	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
            //                                 8	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
            //                                12	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
            //                                16	1.00000000	1.00000000	0.98015728	1.25753729	1.43692365	1.36281274	1.14942274	0.94416546	0.77969210	0.59825946	0.52365028
            //                                20	1.00000000	1.00000000	0.96074823	1.23263556	1.40846972	1.33582635	1.12666189	0.92546912	0.76425265	0.58641274	0.51328097
            //                                24	1.00000000	1.00000000	0.96503140	1.23813085	1.41474891	1.34178168	1.13168474	0.92959501	0.76765981	0.58902706	0.51556926
            //                                28	1.00000000	1.00000000	0.96044147	1.23224199	1.40802001	1.33539984	1.12630217	0.92517363	0.76400864	0.58622551	0.51311708
            //                                32	1.00000000	1.00000000	0.96642959	1.23992472	1.41679867	1.34372573	1.13332438	0.93094186	0.76877204	0.58988048	0.51631624
            //                                40	1.00000000	1.00000000	0.95223257	1.22171001	1.39598566	1.32398617	1.11667565	0.91726616	0.75747865	0.58121503	0.50873147
            //                                45	1.00000000	1.00000000	0.95617790	1.22677185	1.40176956	1.32947176	1.12130231	0.92106662	0.76061706	0.58362314	0.51083926
            //                                50	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
            //");
            ad = aero.Add("Incremental Cd due to external tanks", "CdTNK", "mach");
            ad.AddFactor("fcs/external-tanks-fitted");
            ad.data = parse(ad, 1, @"0.4 	0.0005
                        0.6 	0.0005
                        0.7 	0.0005
                        0.8 	0.0005
                        0.85	0.0011
                        0.9 	0.0065
                        0.94	0.0074
                        0.98	0.0077
                        1   	0.0078
                        1.1 	0.0079
                        1.2 	0.0080
                        2   	0.0081");

            ad = aero.Add("Delta Cl due to mean  flap position", "ClDFM", "alpha", "fcs/flap-pos-deg");
            ad.data = parse(ad, 2, @"                            	-20     	  -5	      0 	  5 	 10 	 25 	 50
                          0	 0.00000	 0.00000	0.00000	0.00000	0.00000	0.00000	0.00000
                         10	-0.01400	-0.13160	0.13440	0.13160	0.12880	0.10920	0.01400
                         35	-0.09016	-0.25872	0.25480	0.25872	0.29872	0.21560	0.22540
                         50	-0.24500	-0.60200	0.59500	0.60200	0.58800	0.46200	0.24500
");
            ad = aero.Add("Cl increment due to gear", "ClUC", "alpha");
            ad.AddFactor("gear/gear-pos-norm");
            ad.data = parse(ad, 1, @"-10	 -0.00
                        0 	 -0.0012
                        8 	 -0.0010
                        12    -0.0004
                        14    -0.0002
                        16    -0.0001
                        18    -0.000");

            ad = aero.Add("Cd increment due to gear", "CdUC", "alpha");
            ad.AddFactor("gear/gear-pos-norm");

            ad.data = parse(ad, 1, @"                        -10 0
                        -5	0.00017
                        0	0.00001
                        5	0.00005
                        10  0");
            ad = aero.Add("Drag due to speedbrakes", "CdDBRK", "alpha");
            ad.AddFactor("fcs/speedbrake-pos-norm");
            ad.data = parse(ad, 1, @"                        -25	0.0210
                        -20	0.0310
                        -15	0.0414
                        -5	0.0650
                        0	0.0784
                        5	0.0650
                        15	0.0514
                        35	0.0210
                        40	0.0188");

            ad = aero.Add("Drag mach factor (NASA CR-152391-VOL-1 Figure 3-2 p54)", "CdMach", "mach");
            ad.data = parse(ad, 1, @"
0.202	1.2579450
0.306	1.1412150
0.400	1.0627178
0.503	1.0219124
0.608	1.0000000
0.705	0.9909509
0.802	1.0008701
0.901	1.0107093
0.923	1.0417084
0.934	1.0793344
0.945	1.1295980
1.009	1.8800483
1.029	2.0249037
1.048	2.1444697
1.092	2.2317526
1.170	2.2611620
1.603	2.1857642
1.797	2.1360697
1.948	2.0812627
1.999	2.0608600
2.091	2.0330027
");
            ad = aero.Add("Delta Cd due to mean flap position", "CdDFM", "alpha", "fcs/flap-pos-deg");
            ad.data = parse(ad, 2, @"                            	-20 	 -5 	  0 	  5 	 10 	 25	 50
                       0	0.00000	0.00000	0.00000	0.00000	0.00000	0.00000	0.00000
                      10	0.01400	0.02268	0.01932	0.02268	0.02548	0.02856	0.09590
                      35	0.09016	0.06894	0.06222	0.06894	0.09862	0.14286	0.55734");
            ad = aero.Add("Pitch moment increment due to aim missiles", "DCMAIM", "alpha", "mach");
            ad.AddFactor("fcs/aim-fitted");
            ad.data = parse(ad, 2, @"-6     	-5     	-4     	-3     	-2     	-1     	0     	1     	2     	3     	4     	5     	6     	7     	8     	9     	10     	20
                        0.80	-0.0150	-0.0150	-0.0150	-0.0100	-0.0050	-0.0030	-0.0020	-0.0010	0.0000	0.0020	0.0030	0.0050	0.0100	0.0100	0.0050	0.0030	0.0000	0.0000
                        0.85	-0.0330	-0.0310	-0.0300	-0.0220	-0.0100	-0.0040	-0.0030	-0.0020	0.0000	0.0030	0.0060	0.0070	0.0080	0.0100	0.0100	0.0060	0.0040	0.0040
                        0.90	-0.0320	-0.0310	-0.0300	-0.0280	-0.0200	-0.0060	-0.0020	0.0000	0.0020	0.0040	0.0070	0.0070	0.0060	0.0160	0.0120	0.0120	0.0120	0.0120");
            //            ad = aero.Add("CM increment due speedbrakes", "CMBRK", "alpha");
            //            ad.AddFactor("fcs/speedbrake-pos-norm");
            //            ad.data = parse(ad, 1, @"                        -14   0
            //                        -5   0.0219
            //                        -3	 0
            //                        0	 0.0003
            //                        5	 0.0000
            //                        8	-0.0180
            //                        12	-0.0220
            //                        14	 0");
            ad = aero.Add("CM increment due to gear", "CMUC", "alpha");
            ad.AddFactor("gear/gear-pos-norm");
            ad.data = parse(ad, 1, @"-10	 0.00000
                        -4	 0.00000
                        0	-0.01750
                        5	-0.01000
                        10	-0.00250
                        20	 0.00000");
            ad = aero.Add("CM increment due to flap mean position", "CMDFM", "alpha", "fcs/flap-pos-deg");
            ad.data = parse(ad, 2, @"                    	          0		  5	 	 10		 15		 20	 	 60
                         0	0.00000	0.00000	0.00000	0.00000	0.00000	0.00000
                         5	0.01320	0.00396	0.00589	0.00762	0.00798	0.00342
                        15	0.01520	0.00456	0.00649	0.01045	0.00798	0.00342
                        35	0.01696	0.01523	0.01355	0.01092	0.01148	0.01148");

        


//            ad = aero.Add("Engine 0 EGT Rankine", "propulsion/engine[0]/EGT-R", "propulsion/engine[0]/n1");
//            ad.AddComponent("atmosphere/T-R");
//            ad.data = parse(ad, 1, @"
//                         0.0	0.0
//                        20.0	0.0
//                        30.0	541.7
//                        49.0	541.7
//                        62.0	631.7
//                        78.0	1171.7
//                        95.0	1405.7
//                        99.9	1684.7
//                       104.0	1684.7");

//            ad = aero.Add("Engine 1 EGT Rankine", "propulsion/engine[1]/EGT-R", "propulsion/engine[1]/n1");
//            ad.AddComponent("atmosphere/T-R");
//            ad.data = parse(ad, 1, @"
//                         0.0	0.0
//                        20.0	0.0
//                        30.0	541.7
//                        49.0	541.7
//                        62.0	631.7
//                        78.0	1171.7
//                        95.0	1405.7
//                        99.9	1684.7
//                       104.0	1684.7");

            ad = aero.Add("Cd increment due to ramps, NASA TP-3627, p14 Figure 10", "DCdRamp", "alpha");
            ad.AddFactor("propulsion/inlet/ramp1-position-norm");
            ad.data = parse(ad, 1, @" -5	-0.000497134
1.25	0.00100614
7.5	0.00670196
13.75	0.0126305
20	0.0163277
");
            ad = aero.Add("CM increment due to ramps, NASA TP-3627, p14 Figure 10", "DCMRamp", "alpha");
            ad.AddFactor("propulsion/inlet/ramp1-position-norm");
            ad.data = parse(ad, 1, @"-5	-0.00197787
1.25	0.00134069
7.5	0.00981163
13.75	0.0215084
20	0.0319462
");
            ad = aero.Add("Cl increment due to ramps, NASA TP-3627, p14 Figure 10", "DClRamp", "alpha");
            ad.AddFactor("propulsion/inlet/ramp1-position-norm");
            ad.data = parse(ad, 1, @"
-5	0.000055925
1.25	-0.000010545
7.5	0.000098660
13.75	0.000622195
20	0.001254030
");

       }
Ejemplo n.º 3
0
 public PointMassElement(Aerodata a)
 {
 }
 public GroundReactionElement(Aerodata a)
 {
     spring_coeff = a.EmptyWeight;
     spring_coeff = new DenominatedAmount(a.EmptyWeight.Amount * 0.9, "LBS/FT");
     damping_coeff = new DenominatedAmount(a.EmptyWeight.Amount * 0.2, "LBS/FT/SEC");
 }
Ejemplo n.º 5
0
        private void OutputExtraIndependentVariables(Aerodata aero, HtmlTextWriter writer, DataElement aero_element)
        {
            foreach (var xx in aero_element.Factors)
            {
                var name = aero.Lookup(xx);
                var v = aero.LookupValue(name);
                if (v.HasValue)
                {
                    // use the lookup value to find out if it is numeric; but lookup will add an xml comment for constants
                    // so output with the original name, rather than v
                    writer.Write("          <value>{0}</value>\n", name);
                }
                else
                {
                    if (!name.Contains("/") && !Char.IsDigit(name[0]))
                        name = "aero/coefficients/" + name;

                    writer.Write("          <property>{0}</property>\n", name);
                }
            }
        }
Ejemplo n.º 6
0
        private void WriteFunctionDataToWriter(Aerodata aero, HtmlTextWriter writer, DataElement aero_element, DataElement aerodat_item)
        {
            if (aero.Is3d(aero_element))
            {

                writer.Write("    <function name=\"{0}\">\n", aerodat_item.GetVariable());
                writer.Write("    <description>{0}</description>\n", aerodat_item.Title);
                if (aero_element.Components.Any())
                {
                    writer.Write("    <sum>\n");
                    foreach (var c in aero_element.Components)
                        writer.Write("    <property>{0}</property>\n", c);
                }

                writer.Write("    <product>\n");
                OutputExtraIndependentVariables(aero, writer, aero_element);
                writer.Write("          <table>\n");
                writer.Write("            <independentVar lookup=\"row\">{0}</independentVar>\n", aero.Lookup(aero_element.IndependentVars[0]));
                writer.Write("            <independentVar lookup=\"column\">{0}</independentVar>\n", aero.Lookup(aero_element.IndependentVars[1]));
                writer.Write("            <independentVar lookup=\"table\">{0}</independentVar>\n", aero.Lookup(aero_element.IndependentVars[2]));
                var table_data_element = aero_element.data.GroupBy(xx => xx.iv3).Select(xx => new { Key = xx.Key, Values = xx });
                foreach (var table in table_data_element)
                {
                    writer.Write("              <tableData breakPoint=\"{0}\">", table.Key);
                    var leading = "                 ";
                    var aero_data_element = table.Values.GroupBy(xx => xx.iv1).Select(xx => new { Key = xx.Key, Values = xx });

                    writer.Write("\n" + leading);
                    writer.Write("{0,6}", " ");
                    foreach (var iv2 in aero_data_element.First().Values)
                    {
                        writer.Write(FormatIntValue(iv2.iv2, 10));
                    }


                    foreach (var iv1 in aero_data_element)
                    {
                        writer.Write("\n" + leading);
                        writer.Write(FormatIntValue(iv1.Key, 6));

                        foreach (var vv in iv1.Values)
                        {
                            writer.Write(FormatValue(vv.Value, 10));
                        }
                    }
                    writer.Write("\n              </tableData>\n");
                }
                writer.Write("          </table>\n");
                writer.Write("       </product>\n");
                if (aero_element.Components.Any())
                {
                    writer.Write("    </sum>\n");
                }
                writer.Write("    </function>\n");

                //                      writer.Write("<pre>\n");

            }
            else if (aero.Is2d(aero_element))
            {
                //                          writer.Write("<h2>{0}</h2>", aero_element);
                //                          writer.Write("<pre>\n");

                writer.Write("    <function name=\"{0}\">\n", aerodat_item.GetVariable());
                writer.Write("    <description>{0}</description>\n", aerodat_item.Title);
                if (aero_element.Components.Any())
                {
                    writer.Write("    <sum>\n");
                    foreach (var c in aero_element.Components)
                        writer.Write("    <property>{0}</property>\n", c);
                }
                writer.Write("    <product>\n");
                OutputExtraIndependentVariables(aero, writer, aero_element);
                writer.Write("          <table>\n");
                writer.Write("            <independentVar lookup=\"row\">{0}</independentVar>\n", aero.Lookup(aero_element.IndependentVars[0]));
                writer.Write("            <independentVar lookup=\"column\">{0}</independentVar>\n", aero.Lookup(aero_element.IndependentVars[1]));
                writer.Write("            <tableData>");
                var leading = "                 ";
                var aero_data_element = aero_element.data.GroupBy(xx => xx.iv1).Select(xx => new { Key = xx.Key, Values = xx });

                writer.Write("\n" + leading);
                writer.Write("       ");
                foreach (var iv2 in aero_data_element.First().Values)
                {
                    writer.Write(" {0,10}\t", iv2.iv2);
                }


                foreach (var iv1 in aero_data_element)
                {
                    writer.Write("\n{0}{1}", leading, FormatIntValue(iv1.Key, 6));
                    foreach (var vv in iv1.Values)
                    {
                        writer.Write(FormatValue(vv.Value, 10));
                    }
                }
                writer.Write("\n            </tableData>\n");
                writer.Write("          </table>\n");
                writer.Write("       </product>\n");
                if (aero_element.Components.Any())
                {
                    writer.Write("    </sum>\n");
                }
                writer.Write("    </function>\n");

                //                      writer.Write("<pre>\n");
            }
            else if (aero_element.IndependentVars.Count == 1)
            {

                var aero_data_element = aero_element.data.Select(xx => new { Key = xx.iv1, Value = xx.Value });
                if (aero_data_element != null)
                    if (aero_data_element != null)
                    {
                        //                        writer.Write("<h2>{0}</h2>", aero_element);
                        //                        writer.Write("<pre>\n");

                        writer.Write("    <function name=\"{0}\">\n", aerodat_item.GetVariable());
                        writer.Write("    <description>{0}</description>\n", aero_element.Title);
                        if (aero_element.Components.Any())
                        {
                            writer.Write("    <sum>\n");
                            foreach (var c in aero_element.Components)
                                writer.Write("    <property>{0}</property>\n", c);
                        }
                        writer.Write("    <product>\n");
                        OutputExtraIndependentVariables(aero, writer, aero_element);
                        writer.Write("          <table>\n");
                        writer.Write("            <independentVar lookup=\"row\">{0}</independentVar>\n", aero.Lookup(aero_element.IndependentVars[0]));
                        writer.Write("            <tableData>\n");
                        var leading = "                 ";
                        foreach (var q in aero_data_element)
                        {
                            writer.Write("{0}{1}\t{2}\n", leading, FormatIntValue(q.Key, 6), FormatValue(q.Value, 10));
                        }
                        writer.Write("            </tableData>\n");
                        writer.Write("          </table>\n");
                        writer.Write("       </product>\n");
                        if (aero_element.Components.Any())
                        {
                            writer.Write("    </sum>\n");
                        }
                        writer.Write("    </function>\n");
                        //                        writer.Write("<pre>\n");
                    }
            }
            else
            {
                writer.Write("    <!-- cannot handle {0} -->", aero_element.Variable);
            }

            if (!aero.IsUsed(aero_element))
                writer.Write("    -->\n");
        }
Ejemplo n.º 7
0
 public string GetComputeValue(Aerodata aero)
 {
     var vals = new List<String>();
     vals.Add(Variable);
     foreach (var xx in Factors)
     {
         if (aero != null)
         {
             var name = aero.Lookup(xx);
             var v = aero.LookupValue(xx);
             if (v.HasValue)
             {
                 vals.Add(v.ToString());
             }
             else
             {
                 vals.Add(xx);
             }
         }
         else
             vals.Add(xx);
     }
     return string.Join("*", vals);
 }
Ejemplo n.º 8
0
        public static void AddExtra(Aerodata aero)
        {
            var ad = aero.Add("Lift Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "ClMach", "mach");
            ad.data = parse(ad, 1, @"0	1
                                    0.2	1
                                    0.6	0.95837601
                                    0.9	0.5
                                    1.1	1
                                    2.4	0.5
");
            ad = aero.Add("Yaw factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CyMach", "mach");
            ad.data = parse(ad, 1, @"0	1
                                    0.2	1
                                    0.6	0.95837601
                                    0.9	0.5
                                    1.1	1
                                    2.4	0.5
");
            ad = aero.Add("Roll Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CLMach", "mach");
            ad.data = parse(ad, 1, @"0	1
                                    0.2	1
                                    0.6	0.95837601
                                    0.9	0.5
                                    1.1	1
                                    2.4	0.5
");
            ad = aero.Add("Pitch Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CMMach", "mach");
            ad.data = parse(ad, 1, @"0	1
                                    0.2	1
                                    0.6	0.95837601
                                    0.9	0.5
                                    1.1	1
                                    2.4	0.5
");
            ad = aero.Add("Yaw Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CNMach", "mach");
            ad.data = parse(ad, 1, @"0	1
                                    0.2	1
                                    0.6	0.95837601
                                    0.9	0.5
                                    1.1	1
                                    2.4	0.5
");
            //            var ad = aero.Add("Lift Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "ClMach", "mach", "alpha");

//            ad.data = parse(ad, 2, @"   0.0         0.2         0.6         0.9         1.1         1.3         1.5         1.8         2.1         2.6         3.0
//                           -20	1.00000000	1.00000000	0.96610485	1.23950808	1.41632259	1.34327421	1.13294356	0.93062904	0.76851372	0.58968226	0.51614275
//                           -15	1.00000000	1.00000000	0.96116198	1.23316641	1.40907629	1.33640164	1.12714710	0.92586768	0.76458179	0.58666528	0.51350202
//                           -10	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
//                            -5	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
//                             4	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
//                             8	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
//                            12	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
//                            16	1.00000000	1.00000000	0.98015728	1.25753729	1.43692365	1.36281274	1.14942274	0.94416546	0.77969210	0.59825946	0.52365028
//                            20	1.00000000	1.00000000	0.96074823	1.23263556	1.40846972	1.33582635	1.12666189	0.92546912	0.76425265	0.58641274	0.51328097
//                            24	1.00000000	1.00000000	0.96503140	1.23813085	1.41474891	1.34178168	1.13168474	0.92959501	0.76765981	0.58902706	0.51556926
//                            28	1.00000000	1.00000000	0.96044147	1.23224199	1.40802001	1.33539984	1.12630217	0.92517363	0.76400864	0.58622551	0.51311708
//                            32	1.00000000	1.00000000	0.96642959	1.23992472	1.41679867	1.34372573	1.13332438	0.93094186	0.76877204	0.58988048	0.51631624
//                            40	1.00000000	1.00000000	0.95223257	1.22171001	1.39598566	1.32398617	1.11667565	0.91726616	0.75747865	0.58121503	0.50873147
//                            45	1.00000000	1.00000000	0.95617790	1.22677185	1.40176956	1.32947176	1.12130231	0.92106662	0.76061706	0.58362314	0.51083926
//                            50	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
//");
//            ad = aero.Add("Sideforce Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CyMach", "mach", "alpha");

//            ad.data = parse(ad, 2, @"    0.0         0.2         0.6         0.9         1.1         1.3         1.5         1.8         2.1         2.6         3.0
//                                -20	1.00000000	1.00000000	0.96610485	1.23950808	1.41632259	1.34327421	1.13294356	0.93062904	0.76851372	0.58968226	0.51614275
//                                -15	1.00000000	1.00000000	0.96116198	1.23316641	1.40907629	1.33640164	1.12714710	0.92586768	0.76458179	0.58666528	0.51350202
//                                -10	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
//                                -5	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
//                                 4	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
//                                 8	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
//                                12	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
//                                16	1.00000000	1.00000000	0.98015728	1.25753729	1.43692365	1.36281274	1.14942274	0.94416546	0.77969210	0.59825946	0.52365028
//                                20	1.00000000	1.00000000	0.96074823	1.23263556	1.40846972	1.33582635	1.12666189	0.92546912	0.76425265	0.58641274	0.51328097
//                                24	1.00000000	1.00000000	0.96503140	1.23813085	1.41474891	1.34178168	1.13168474	0.92959501	0.76765981	0.58902706	0.51556926
//                                28	1.00000000	1.00000000	0.96044147	1.23224199	1.40802001	1.33539984	1.12630217	0.92517363	0.76400864	0.58622551	0.51311708
//                                32	1.00000000	1.00000000	0.96642959	1.23992472	1.41679867	1.34372573	1.13332438	0.93094186	0.76877204	0.58988048	0.51631624
//                                40	1.00000000	1.00000000	0.95223257	1.22171001	1.39598566	1.32398617	1.11667565	0.91726616	0.75747865	0.58121503	0.50873147
//                                45	1.00000000	1.00000000	0.95617790	1.22677185	1.40176956	1.32947176	1.12130231	0.92106662	0.76061706	0.58362314	0.51083926
//                                50	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
//");
//            ad = aero.Add("Roll Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CLMach", "mach", "alpha");

//            ad.data = parse(ad, 2, @"    0.0         0.2         0.6         0.9         1.1         1.3         1.5         1.8         2.1         2.6         3.0
//                                -20	1.00000000	1.00000000	0.96610485	1.23950808	1.41632259	1.34327421	1.13294356	0.93062904	0.76851372	0.58968226	0.51614275
//                                -15	1.00000000	1.00000000	0.96116198	1.23316641	1.40907629	1.33640164	1.12714710	0.92586768	0.76458179	0.58666528	0.51350202
//                                -10	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
//                                -5	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
//                                 4	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
//                                 8	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
//                                12	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
//                                16	1.00000000	1.00000000	0.98015728	1.25753729	1.43692365	1.36281274	1.14942274	0.94416546	0.77969210	0.59825946	0.52365028
//                                20	1.00000000	1.00000000	0.96074823	1.23263556	1.40846972	1.33582635	1.12666189	0.92546912	0.76425265	0.58641274	0.51328097
//                                24	1.00000000	1.00000000	0.96503140	1.23813085	1.41474891	1.34178168	1.13168474	0.92959501	0.76765981	0.58902706	0.51556926
//                                28	1.00000000	1.00000000	0.96044147	1.23224199	1.40802001	1.33539984	1.12630217	0.92517363	0.76400864	0.58622551	0.51311708
//                                32	1.00000000	1.00000000	0.96642959	1.23992472	1.41679867	1.34372573	1.13332438	0.93094186	0.76877204	0.58988048	0.51631624
//                                40	1.00000000	1.00000000	0.95223257	1.22171001	1.39598566	1.32398617	1.11667565	0.91726616	0.75747865	0.58121503	0.50873147
//                                45	1.00000000	1.00000000	0.95617790	1.22677185	1.40176956	1.32947176	1.12130231	0.92106662	0.76061706	0.58362314	0.51083926
//                                50	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
//");
//            ad = aero.Add("Pitch Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CMMach", "mach", "alpha");

//            ad.data = parse(ad, 2, @"    0.0         0.2         0.6         0.9         1.1         1.3         1.5         1.8         2.1         2.6         3.0
//                                -20	1.00000000	1.00000000	0.96610485	1.23950808	1.41632259	1.34327421	1.13294356	0.93062904	0.76851372	0.58968226	0.51614275
//                                -15	1.00000000	1.00000000	0.96116198	1.23316641	1.40907629	1.33640164	1.12714710	0.92586768	0.76458179	0.58666528	0.51350202
//                                -10	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
//                                -5	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
//                                 4	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
//                                 8	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
//                                12	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
//                                16	1.00000000	1.00000000	0.98015728	1.25753729	1.43692365	1.36281274	1.14942274	0.94416546	0.77969210	0.59825946	0.52365028
//                                20	1.00000000	1.00000000	0.96074823	1.23263556	1.40846972	1.33582635	1.12666189	0.92546912	0.76425265	0.58641274	0.51328097
//                                24	1.00000000	1.00000000	0.96503140	1.23813085	1.41474891	1.34178168	1.13168474	0.92959501	0.76765981	0.58902706	0.51556926
//                                28	1.00000000	1.00000000	0.96044147	1.23224199	1.40802001	1.33539984	1.12630217	0.92517363	0.76400864	0.58622551	0.51311708
//                                32	1.00000000	1.00000000	0.96642959	1.23992472	1.41679867	1.34372573	1.13332438	0.93094186	0.76877204	0.58988048	0.51631624
//                                40	1.00000000	1.00000000	0.95223257	1.22171001	1.39598566	1.32398617	1.11667565	0.91726616	0.75747865	0.58121503	0.50873147
//                                45	1.00000000	1.00000000	0.95617790	1.22677185	1.40176956	1.32947176	1.12130231	0.92106662	0.76061706	0.58362314	0.51083926
//                                50	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
//");
//            ad = aero.Add("Yaw Mach factor (NASA-TM-84643 Figure 3 Clalpha) and values for AOA derived from NASA-aaia-2000-0900 Figure 4", "CNMach", "mach", "alpha");

//            ad.data = parse(ad, 2, @"    0.0         0.2         0.6         0.9         1.1         1.3         1.5         1.8         2.1         2.6         3.0
//                                -20	1.00000000	1.00000000	0.96610485	1.23950808	1.41632259	1.34327421	1.13294356	0.93062904	0.76851372	0.58968226	0.51614275
//                                -15	1.00000000	1.00000000	0.96116198	1.23316641	1.40907629	1.33640164	1.12714710	0.92586768	0.76458179	0.58666528	0.51350202
//                                -10	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
//                                -5	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
//                                 4	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
//                                 8	1.00000000	1.00000000	0.99142346	1.27199174	1.45344001	1.37847726	1.16263449	0.95501794	0.78865408	0.60513601	0.52966925
//                                12	1.00000000	1.00000000	0.96759116	1.24141501	1.41850155	1.34534078	1.13468655	0.93206078	0.76969605	0.59058947	0.51693681
//                                16	1.00000000	1.00000000	0.98015728	1.25753729	1.43692365	1.36281274	1.14942274	0.94416546	0.77969210	0.59825946	0.52365028
//                                20	1.00000000	1.00000000	0.96074823	1.23263556	1.40846972	1.33582635	1.12666189	0.92546912	0.76425265	0.58641274	0.51328097
//                                24	1.00000000	1.00000000	0.96503140	1.23813085	1.41474891	1.34178168	1.13168474	0.92959501	0.76765981	0.58902706	0.51556926
//                                28	1.00000000	1.00000000	0.96044147	1.23224199	1.40802001	1.33539984	1.12630217	0.92517363	0.76400864	0.58622551	0.51311708
//                                32	1.00000000	1.00000000	0.96642959	1.23992472	1.41679867	1.34372573	1.13332438	0.93094186	0.76877204	0.58988048	0.51631624
//                                40	1.00000000	1.00000000	0.95223257	1.22171001	1.39598566	1.32398617	1.11667565	0.91726616	0.75747865	0.58121503	0.50873147
//                                45	1.00000000	1.00000000	0.95617790	1.22677185	1.40176956	1.32947176	1.12130231	0.92106662	0.76061706	0.58362314	0.51083926
//                                50	1.00000000	1.00000000	0.95837601	1.22959201	1.40499202	1.33252801	1.12388001	0.92318401	0.76236561	0.58496481	0.51201361
//");
            ad = aero.Add("Incremental Cd due to external tanks", "CdTNK", "mach");
            ad.AddFactor("fcs/external-tanks-fitted");
            ad.data = parse(ad, 1, @"0.4 	0.0005
                        0.6 	0.0005
                        0.7 	0.0005
                        0.8 	0.0005
                        0.85	0.0011
                        0.9 	0.0065
                        0.94	0.0074
                        0.98	0.0077
                        1   	0.0078
                        1.1 	0.0079
                        1.2 	0.0080
                        2   	0.0081");

            ad = aero.Add("Delta Cl due to mean  flap position", "ClDFM", "alpha", "fcs/flap-pos-deg");
            ad.data = parse(ad, 2, @"                            	-20     	  -5	      0 	  5 	 10 	 25 	 50
                          0	 0.00000	 0.00000	0.00000	0.00000	0.00000	0.00000	0.00000
                         10	-0.01400	-0.13160	0.13440	0.13160	0.12880	0.10920	0.01400
                         35	-0.09016	-0.25872	0.25480	0.25872	0.29872	0.21560	0.22540
                         50	-0.24500	-0.60200	0.59500	0.60200	0.58800	0.46200	0.24500
");
            ad= aero.Add("Cl increment due to gear", "ClUC", "alpha");
            ad.AddFactor("gear/gear-pos-norm");
            ad.data = parse(ad, 1, @"-10	 -0.00
                        0 	 -0.0012
                        8 	 -0.0010
                        12    -0.0004
                        14    -0.0002
                        16    -0.0001
                        18    -0.000");

            ad= aero.Add("Cd increment due to gear", "CdUC", "alpha");
ad.AddFactor("gear/gear-pos-norm");

            ad.data = parse(ad, 1, @"                        -10 0
                        -5	0.00017
                        0	0.00001
                        5	0.00005
                        10  0");
            ad= aero.Add("Drag due to speedbrakes", "CdDBRK", "alpha");
            ad.AddFactor("fcs/speedbrake-pos-norm");
            ad.data = parse(ad, 1, @"                        -25	0.0210
                        -20	0.0210
                        -15	0.0414
                        -5	0.0650
                        0	0.0784
                        5	0.0650
                        15	0.0514
                        25	0.0210
                        40	0.0210");

            ad= aero.Add("Drag increment due to mach (NASA-TP-2580 Figure 16)", "CdMach", "mach");
            ad.data = parse(ad, 1, @"
                        0.20	0.0000000
                        0.80	0.0123600
                        0.84	0.0138600
                        0.90	0.0126000
                        0.94	0.0286800
                        0.98	0.0383800
                        0.99	0.0414400
                        1.00	0.0424750
                        1.03	0.0274150
                        1.20	0.0255100
                        1.25	0.0168750
                        1.70	0.0125000
                        2.00	-0.0063000
                        2.17	-0.0122500
                        2.47	-0.0130500");
            ad = aero.Add("Delta Cd due to mean flap position", "CdDFM", "alpha", "fcs/flap-pos-deg");
            ad.data = parse(ad, 2, @"                            	-20 	 -5 	  0 	  5 	 10 	 25	 50
                       0	0.00000	0.00000	0.00000	0.00000	0.00000	0.00000	0.00000
                      10	0.01400	0.02268	0.01932	0.02268	0.02548	0.02856	0.09590
                      35	0.09016	0.06894	0.06222	0.06894	0.09862	0.14286	0.55734");
            ad = aero.Add("Pitch moment increment due to aim missiles", "DCMAIM", "alpha", "mach");
            ad.AddFactor("fcs/aim-fitted");
            ad.data = parse(ad, 2, @"-6     	-5     	-4     	-3     	-2     	-1     	0     	1     	2     	3     	4     	5     	6     	7     	8     	9     	10     	20
                        0.80	-0.0150	-0.0150	-0.0150	-0.0100	-0.0050	-0.0030	-0.0020	-0.0010	0.0000	0.0020	0.0030	0.0050	0.0100	0.0100	0.0050	0.0030	0.0000	0.0000
                        0.85	-0.0330	-0.0310	-0.0300	-0.0220	-0.0100	-0.0040	-0.0030	-0.0020	0.0000	0.0030	0.0060	0.0070	0.0080	0.0100	0.0100	0.0060	0.0040	0.0040
                        0.90	-0.0320	-0.0310	-0.0300	-0.0280	-0.0200	-0.0060	-0.0020	0.0000	0.0020	0.0040	0.0070	0.0070	0.0060	0.0160	0.0120	0.0120	0.0120	0.0120");
//            ad = aero.Add("CM increment due speedbrakes", "CMBRK", "alpha");
//            ad.AddFactor("fcs/speedbrake-pos-norm");
//            ad.data = parse(ad, 1, @"                        -14   0
//                        -5   0.0219
//                        -3	 0
//                        0	 0.0003
//                        5	 0.0000
//                        8	-0.0180
//                        12	-0.0220
//                        14	 0");
            ad = aero.Add("CM increment due to gear", "CMUC", "alpha");
            ad.AddFactor("gear/gear-pos-norm");
            ad.data = parse(ad, 1, @"-10	 0.00000
                        -4	 0.00000
                        0	-0.01750
                        5	-0.01000
                        10	-0.00250
                        20	 0.00000");
            ad = aero.Add("CM increment due to flap mean position", "CMDFM", "alpha", "fcs/flap-pos-deg");
            ad.data = parse(ad, 2, @"                    	          0		  5	 	 10		 15		 20	 	 60
                         0	0.00000	0.00000	0.00000	0.00000	0.00000	0.00000
                         5	0.01320	0.00396	0.00589	0.00762	0.00798	0.00342
                        15	0.01520	0.00456	0.00649	0.01045	0.00798	0.00342
                        35	0.01696	0.01523	0.01355	0.01092	0.01148	0.01148");
        }