1 /**********************************************************************
3 FILENAME: uiuc_recorder.cpp
5 ----------------------------------------------------------------------
7 DESCRIPTION: outputs variables specified in input file to recorder
10 ----------------------------------------------------------------------
14 ----------------------------------------------------------------------
16 REFERENCES: Liberty, Jesse. "Sam's Teach Yourself C++ in 21 Days,"
19 ----------------------------------------------------------------------
21 HISTORY: 01/31/2000 initial release
22 03/02/2000 (JS) added record options for 1D and 2D
23 interpolated variables
24 04/01/2000 (JS) added throttle, longitudinal, lateral,
25 and rudder inputs to record map
26 04/24/2000 (JS) added rest of variables in
28 07/06/2001 (RD) changed Flap handle output
29 07/20/2001 (RD) fixed Lat_control and Rudder_pedal
30 10/25/2001 (RD) Added new variables needed for the non-
31 linear Twin Otter model at zero flaps
33 11/12/2001 (RD) Added new variables needed for the non-
34 linear Twin Otter model at zero flaps
35 (CxfxxfI). Removed zero flap variables.
36 Added flap_pos and flap_goal.
37 02/13/2002 (RD) Added variables so linear aero model
38 values can be recorded
40 ----------------------------------------------------------------------
42 AUTHOR(S): Jeff Scott <jscott@mail.com>
43 Robert Deters <rdeters@uiuc.edu>
45 ----------------------------------------------------------------------
49 ----------------------------------------------------------------------
53 ----------------------------------------------------------------------
55 OUTPUTS: -variables recorded in uiuc_recorder.dat
57 ----------------------------------------------------------------------
59 CALLED BY: uiuc_wrapper.cpp
61 ----------------------------------------------------------------------
65 ----------------------------------------------------------------------
67 COPYRIGHT: (C) 2000 by Michael Selig
69 This program is free software; you can redistribute it and/or
70 modify it under the terms of the GNU General Public License
71 as published by the Free Software Foundation.
73 This program is distributed in the hope that it will be useful,
74 but WITHOUT ANY WARRANTY; without even the implied warranty of
75 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
76 GNU General Public License for more details.
78 You should have received a copy of the GNU General Public License
79 along with this program; if not, write to the Free Software
80 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
81 USA or view http://www.gnu.org/copyleft/gpl.html.
83 **********************************************************************/
85 #include "uiuc_recorder.h"
87 #if !defined (SG_HAVE_NATIVE_SGI_COMPILERS)
88 SG_USING_STD(endl); // -dw
91 void uiuc_recorder( double dt )
96 static int recordStep = 0;
97 string record_variables = "# ";
99 int modulus = recordStep % recordRate;
101 if ((recordStep % recordRate) == 0)
103 command_list = recordParts->getCommands();
107 for (command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
108 record_variables += recordParts->getToken(*command_line,2) + " ";
110 fout << record_variables << endl;
111 for (command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
113 linetoken = recordParts->getToken(*command_line, 2);
115 switch(record_map[linetoken])
117 /************************* Time ************************/
120 fout << Simtime << " ";
129 /************************* Mass ************************/
132 fout << Weight << " ";
161 /*********************** Geometry **********************/
162 case Dx_pilot_record:
164 fout << Dx_pilot << " ";
167 case Dy_pilot_record:
169 fout << Dy_pilot << " ";
172 case Dz_pilot_record:
174 fout << Dz_pilot << " ";
179 fout << Dx_cg << " ";
184 fout << Dy_cg << " ";
189 fout << Dz_cg << " ";
193 /********************** Positions **********************/
194 case Lat_geocentric_record:
196 fout << Lat_geocentric << " ";
199 case Lon_geocentric_record:
201 fout << Lon_geocentric << " ";
204 case Radius_to_vehicle_record:
206 fout << Radius_to_vehicle << " ";
209 case Latitude_record:
211 fout << Latitude << " ";
214 case Longitude_record:
216 fout << Longitude << " ";
219 case Altitude_record:
221 fout << Altitude << " ";
231 fout << Theta << " ";
240 /******************** Accelerations ********************/
241 case V_dot_north_record:
243 fout << V_dot_north << " ";
246 case V_dot_east_record:
248 fout << V_dot_east << " ";
251 case V_dot_down_record:
253 fout << V_dot_down << " ";
256 case U_dot_body_record:
258 fout << U_dot_body << " ";
261 case V_dot_body_record:
263 fout << V_dot_body << " ";
266 case W_dot_body_record:
268 fout << W_dot_body << " ";
271 case A_X_pilot_record:
273 fout << A_X_pilot << " ";
276 case A_Y_pilot_record:
278 fout << A_Y_pilot << " ";
281 case A_Z_pilot_record:
283 fout << A_Z_pilot << " ";
288 fout << A_X_cg << " ";
293 fout << A_Y_cg << " ";
298 fout << A_Z_cg << " ";
301 case N_X_pilot_record:
303 fout << N_X_pilot << " ";
306 case N_Y_pilot_record:
308 fout << N_Y_pilot << " ";
311 case N_Z_pilot_record:
313 fout << N_Z_pilot << " ";
318 fout << N_X_cg << " ";
323 fout << N_Y_cg << " ";
328 fout << N_Z_cg << " ";
331 case P_dot_body_record:
333 fout << P_dot_body << " ";
336 case Q_dot_body_record:
338 fout << Q_dot_body << " ";
341 case R_dot_body_record:
343 fout << R_dot_body << " ";
347 /********************** Velocities *********************/
350 fout << V_north << " ";
355 fout << V_east << " ";
360 fout << V_down << " ";
363 case V_north_rel_ground_record:
365 fout << V_north_rel_ground << " ";
368 case V_east_rel_ground_record:
370 fout << V_east_rel_ground << " ";
373 case V_down_rel_ground_record:
375 fout << V_down_rel_ground << " ";
378 case V_north_airmass_record:
380 fout << V_north_airmass << " ";
383 case V_east_airmass_record:
385 fout << V_east_airmass << " ";
388 case V_down_airmass_record:
390 fout << V_down_airmass << " ";
393 case V_north_rel_airmass_record:
395 fout << V_north_rel_airmass << " ";
398 case V_east_rel_airmass_record:
400 fout << V_east_rel_airmass << " ";
403 case V_down_rel_airmass_record:
405 fout << V_down_rel_airmass << " ";
410 fout << U_gust << " ";
415 fout << V_gust << " ";
420 fout << W_gust << " ";
425 fout << U_body << " ";
430 fout << V_body << " ";
435 fout << W_body << " ";
438 case V_rel_wind_record:
440 fout << V_rel_wind << " ";
443 case V_true_kts_record:
445 fout << V_true_kts << " ";
448 case V_rel_ground_record:
450 fout << V_rel_ground << " ";
453 case V_inertial_record:
455 fout << V_inertial << " ";
458 case V_ground_speed_record:
460 fout << V_ground_speed << " ";
465 fout << V_equiv << " ";
468 case V_equiv_kts_record:
470 fout << V_equiv_kts << " ";
473 case V_calibrated_record:
475 fout << V_calibrated << " ";
478 case V_calibrated_kts_record:
480 fout << V_calibrated_kts << " ";
485 fout << P_local << " ";
490 fout << Q_local << " ";
495 fout << R_local << " ";
500 fout << P_body << " ";
505 fout << Q_body << " ";
510 fout << R_body << " ";
515 fout << P_total << " ";
520 fout << Q_total << " ";
525 fout << R_total << " ";
530 fout << Phi_dot << " ";
533 case Theta_dot_record:
535 fout << Theta_dot << " ";
540 fout << Psi_dot << " ";
543 case Latitude_dot_record:
545 fout << Latitude_dot << " ";
548 case Longitude_dot_record:
550 fout << Longitude_dot << " ";
553 case Radius_dot_record:
555 fout << Radius_dot << " ";
559 /************************ Angles ***********************/
562 fout << Alpha << " ";
565 case Alpha_deg_record:
567 fout << Alpha * RAD_TO_DEG << " ";
570 case Alpha_dot_record:
572 fout << Alpha_dot << " ";
575 case Alpha_dot_deg_record:
577 fout << Alpha_dot * RAD_TO_DEG << " ";
585 case Beta_deg_record:
587 fout << Beta * RAD_TO_DEG << " ";
590 case Beta_dot_record:
592 fout << Beta_dot << " ";
595 case Beta_dot_deg_record:
597 fout << Beta_dot * RAD_TO_DEG << " ";
600 case Gamma_vert_record:
602 fout << Gamma_vert_rad << " ";
605 case Gamma_vert_deg_record:
607 fout << Gamma_vert_rad * RAD_TO_DEG << " ";
610 case Gamma_horiz_record:
612 fout << Gamma_horiz_rad << " ";
615 case Gamma_horiz_deg_record:
617 fout << Gamma_horiz_rad * RAD_TO_DEG << " ";
621 /**************** Atmospheric Properties ***************/
624 fout << Density << " ";
629 fout << V_sound << " ";
632 case Mach_number_record:
634 fout << Mach_number << " ";
637 case Static_pressure_record:
639 fout << Static_pressure << " ";
642 case Total_pressure_record:
644 fout << Total_pressure << " ";
647 case Impact_pressure_record:
649 fout << Impact_pressure << " ";
652 case Dynamic_pressure_record:
654 fout << Dynamic_pressure << " ";
657 case Static_temperature_record:
659 fout << Static_temperature << " ";
662 case Total_temperature_record:
664 fout << Total_temperature << " ";
668 /******************** Earth Properties *****************/
671 fout << Gravity << " ";
674 case Sea_level_radius_record:
676 fout << Sea_level_radius << " ";
679 case Earth_position_angle_record:
681 fout << Earth_position_angle << " ";
684 case Runway_altitude_record:
686 fout << Runway_altitude << " ";
689 case Runway_latitude_record:
691 fout << Runway_latitude << " ";
694 case Runway_longitude_record:
696 fout << Runway_longitude << " ";
699 case Runway_heading_record:
701 fout << Runway_heading << " ";
704 case Radius_to_rwy_record:
706 fout << Radius_to_rwy << " ";
709 case D_pilot_north_of_rwy_record:
711 fout << D_pilot_north_of_rwy << " ";
714 case D_pilot_east_of_rwy_record:
716 fout << D_pilot_east_of_rwy << " ";
719 case D_pilot_above_rwy_record:
721 fout << D_pilot_above_rwy << " ";
724 case X_pilot_rwy_record:
726 fout << X_pilot_rwy << " ";
729 case Y_pilot_rwy_record:
731 fout << Y_pilot_rwy << " ";
734 case H_pilot_rwy_record:
736 fout << H_pilot_rwy << " ";
739 case D_cg_north_of_rwy_record:
741 fout << D_cg_north_of_rwy << " ";
744 case D_cg_east_of_rwy_record:
746 fout << D_cg_east_of_rwy << " ";
749 case D_cg_above_rwy_record:
751 fout << D_cg_above_rwy << " ";
754 case X_cg_rwy_record:
756 fout << X_cg_rwy << " ";
759 case Y_cg_rwy_record:
761 fout << Y_cg_rwy << " ";
764 case H_cg_rwy_record:
766 fout << H_cg_rwy << " ";
770 /********************* Engine Inputs *******************/
771 case Throttle_3_record:
773 fout << Throttle[3] << " ";
776 case Throttle_pct_record:
778 fout << Throttle_pct << " ";
782 /******************** Control Inputs *******************/
783 case Long_control_record:
785 fout << Long_control << " ";
788 case Long_trim_record:
790 fout << Long_trim << " ";
793 case Long_trim_deg_record:
795 fout << Long_trim * RAD_TO_DEG << " ";
798 case elevator_record:
800 fout << elevator << " ";
803 case elevator_deg_record:
805 fout << elevator * RAD_TO_DEG << " ";
808 case Lat_control_record:
810 fout << Lat_control << " ";
815 fout << aileron << " ";
818 case aileron_deg_record:
820 fout << aileron * RAD_TO_DEG << " ";
823 case Rudder_pedal_record:
825 fout << Rudder_pedal << " ";
830 fout << rudder << " ";
833 case rudder_deg_record:
835 fout << rudder * RAD_TO_DEG << " ";
838 case Flap_handle_record:
840 fout << Flap_handle << " ";
848 case flap_deg_record:
850 fout << flap * RAD_TO_DEG << " ";
853 case flap_goal_record:
855 fout << flap_goal << " ";
858 case flap_pos_record:
860 fout << flap_pos << " ";
864 /****************** Aero Coefficients ******************/
872 fout << CDfaI << " ";
877 fout << CDfCLI << " ";
882 fout << CDfadeI << " ";
887 fout << CDfdfI << " ";
892 fout << CDfadfI << " ";
900 case CXfabetafI_record:
902 fout << CXfabetafI << " ";
905 case CXfadefI_record:
907 fout << CXfadefI << " ";
912 fout << CXfaqfI << " ";
915 case CDo_save_record:
917 fout << CDo_save << " ";
920 case CDK_save_record:
922 fout << CDK_save << " ";
925 case CD_a_save_record:
927 fout << CD_a_save << " ";
930 case CD_adot_save_record:
932 fout << CD_adot_save << " ";
935 case CD_q_save_record:
937 fout << CD_q_save << " ";
940 case CD_ih_save_record:
942 fout << CD_ih_save << " ";
945 case CD_de_save_record:
947 fout << CD_de_save << " ";
950 case CXo_save_record:
952 fout << CXo_save << " ";
955 case CXK_save_record:
957 fout << CXK_save << " ";
960 case CX_a_save_record:
962 fout << CX_a_save << " ";
965 case CX_a2_save_record:
967 fout << CX_a2_save << " ";
970 case CX_a3_save_record:
972 fout << CX_a3_save << " ";
975 case CX_adot_save_record:
977 fout << CX_adot_save << " ";
980 case CX_q_save_record:
982 fout << CX_q_save << " ";
985 case CX_de_save_record:
987 fout << CX_de_save << " ";
990 case CX_dr_save_record:
992 fout << CX_dr_save << " ";
995 case CX_df_save_record:
997 fout << CX_df_save << " ";
1000 case CX_adf_save_record:
1002 fout << CX_adf_save << " ";
1012 fout << CLfaI << " ";
1015 case CLfadeI_record:
1017 fout << CLfadeI << " ";
1022 fout << CLfdfI << " ";
1025 case CLfadfI_record:
1027 fout << CLfadfI << " ";
1037 fout << CZfaI << " ";
1040 case CZfabetafI_record:
1042 fout << CZfabetafI << " ";
1045 case CZfadefI_record:
1047 fout << CZfadefI << " ";
1050 case CZfaqfI_record:
1052 fout << CZfaqfI << " ";
1055 case CLo_save_record:
1057 fout << CLo_save << " ";
1060 case CL_a_save_record:
1062 fout << CL_a_save << " ";
1065 case CL_adot_save_record:
1067 fout << CL_adot_save << " ";
1070 case CL_q_save_record:
1072 fout << CL_q_save << " ";
1075 case CL_ih_save_record:
1077 fout << CL_ih_save << " ";
1080 case CL_de_save_record:
1082 fout << CL_de_save << " ";
1085 case CZo_save_record:
1087 fout << CZo_save << " ";
1090 case CZ_a_save_record:
1092 fout << CZ_a_save << " ";
1095 case CZ_a2_save_record:
1097 fout << CZ_a2_save << " ";
1100 case CZ_a3_save_record:
1102 fout << CZ_a3_save << " ";
1105 case CZ_adot_save_record:
1107 fout << CZ_adot_save << " ";
1110 case CZ_q_save_record:
1112 fout << CZ_q_save << " ";
1115 case CZ_de_save_record:
1117 fout << CZ_de_save << " ";
1120 case CZ_deb2_save_record:
1122 fout << CZ_deb2_save << " ";
1125 case CZ_df_save_record:
1127 fout << CZ_df_save << " ";
1130 case CZ_adf_save_record:
1132 fout << CZ_adf_save << " ";
1142 fout << CmfaI << " ";
1145 case CmfadeI_record:
1147 fout << CmfadeI << " ";
1152 fout << CmfdfI << " ";
1155 case CmfadfI_record:
1157 fout << CmfadfI << " ";
1160 case CmfabetafI_record:
1162 fout << CmfabetafI << " ";
1165 case CmfadefI_record:
1167 fout << CmfadefI << " ";
1170 case CmfaqfI_record:
1172 fout << CmfaqfI << " ";
1175 case Cmo_save_record:
1177 fout << Cmo_save << " ";
1180 case Cm_a_save_record:
1182 fout << Cm_a_save << " ";
1185 case Cm_a2_save_record:
1187 fout << Cm_a2_save << " ";
1190 case Cm_adot_save_record:
1192 fout << Cm_adot_save << " ";
1195 case Cm_q_save_record:
1197 fout << Cm_q_save << " ";
1200 case Cm_ih_save_record:
1202 fout << Cm_ih_save << " ";
1205 case Cm_de_save_record:
1207 fout << Cm_de_save << " ";
1210 case Cm_b2_save_record:
1212 fout << Cm_b2_save << " ";
1215 case Cm_r_save_record:
1217 fout << Cm_r_save << " ";
1220 case Cm_df_save_record:
1222 fout << Cm_df_save << " ";
1230 case CYfadaI_record:
1232 fout << CYfadaI << " ";
1235 case CYfbetadrI_record:
1237 fout << CYfbetadrI << " ";
1240 case CYfabetafI_record:
1242 fout << CYfabetafI << " ";
1245 case CYfadafI_record:
1247 fout << CYfadafI << " ";
1250 case CYfadrfI_record:
1252 fout << CYfadrfI << " ";
1255 case CYfapfI_record:
1257 fout << CYfapfI << " ";
1260 case CYfarfI_record:
1262 fout << CYfarfI << " ";
1265 case CYo_save_record:
1267 fout << CYo_save << " ";
1270 case CY_beta_save_record:
1272 fout << CY_beta_save << " ";
1275 case CY_p_save_record:
1277 fout << CY_p_save << " ";
1280 case CY_r_save_record:
1282 fout << CY_r_save << " ";
1285 case CY_da_save_record:
1287 fout << CY_da_save << " ";
1290 case CY_dr_save_record:
1292 fout << CY_dr_save << " ";
1295 case CY_dra_save_record:
1297 fout << CY_dra_save << " ";
1300 case CY_bdot_save_record:
1302 fout << CY_bdot_save << " ";
1310 case ClfadaI_record:
1312 fout << ClfadaI << " ";
1315 case ClfbetadrI_record:
1317 fout << ClfbetadrI << " ";
1320 case ClfabetafI_record:
1322 fout << ClfabetafI << " ";
1325 case ClfadafI_record:
1327 fout << ClfadafI << " ";
1330 case ClfadrfI_record:
1332 fout << ClfadrfI << " ";
1335 case ClfapfI_record:
1337 fout << ClfapfI << " ";
1340 case ClfarfI_record:
1342 fout << ClfarfI << " ";
1345 case Clo_save_record:
1347 fout << Clo_save << " ";
1350 case Cl_beta_save_record:
1352 fout << Cl_beta_save << " ";
1355 case Cl_p_save_record:
1357 fout << Cl_p_save << " ";
1360 case Cl_r_save_record:
1362 fout << Cl_r_save << " ";
1365 case Cl_da_save_record:
1367 fout << Cl_da_save << " ";
1370 case Cl_dr_save_record:
1372 fout << Cl_dr_save << " ";
1375 case Cl_daa_save_record:
1377 fout << Cl_daa_save << " ";
1385 case CnfadaI_record:
1387 fout << CnfadaI << " ";
1390 case CnfbetadrI_record:
1392 fout << CnfbetadrI << " ";
1395 case CnfabetafI_record:
1397 fout << CnfabetafI << " ";
1400 case CnfadafI_record:
1402 fout << CnfadafI << " ";
1405 case CnfadrfI_record:
1407 fout << CnfadrfI << " ";
1410 case CnfapfI_record:
1412 fout << CnfapfI << " ";
1415 case CnfarfI_record:
1417 fout << CnfarfI << " ";
1420 case Cno_save_record:
1422 fout << Cno_save << " ";
1425 case Cn_beta_save_record:
1427 fout << Cn_beta_save << " ";
1430 case Cn_p_save_record:
1432 fout << Cn_p_save << " ";
1435 case Cn_r_save_record:
1437 fout << Cn_r_save << " ";
1440 case Cn_da_save_record:
1442 fout << Cn_da_save << " ";
1445 case Cn_dr_save_record:
1447 fout << Cn_dr_save << " ";
1450 case Cn_q_save_record:
1452 fout << Cn_q_save << " ";
1455 case Cn_b3_save_record:
1457 fout << Cn_b3_save << " ";
1461 /******************** Ice Detection ********************/
1462 case CL_clean_record:
1464 fout << CL_clean << " ";
1467 case CL_iced_record:
1469 fout << CL_iced << " ";
1472 case CD_clean_record:
1474 fout << CD_clean << " ";
1477 case CD_iced_record:
1479 fout << CD_iced << " ";
1482 case Cm_clean_record:
1484 fout << Cm_clean << " ";
1487 case Cm_iced_record:
1489 fout << Cm_iced << " ";
1492 case Ch_clean_record:
1494 fout << Ch_clean << " ";
1497 case Ch_iced_record:
1499 fout << Ch_iced << " ";
1502 case Cl_clean_record:
1504 fout << Cl_clean << " ";
1507 case Cl_iced_record:
1509 fout << Cl_iced << " ";
1512 case CLclean_wing_record:
1514 fout << CLclean_wing << " ";
1517 case CLiced_wing_record:
1519 fout << CLiced_wing << " ";
1522 case CLclean_tail_record:
1524 fout << CLclean_tail << " ";
1527 case CLiced_tail_record:
1529 fout << CLiced_tail << " ";
1532 case Lift_clean_wing_record:
1534 fout << Lift_clean_wing << " ";
1537 case Lift_iced_wing_record:
1539 fout << Lift_iced_wing << " ";
1542 case Lift_clean_tail_record:
1544 fout << Lift_clean_tail << " ";
1547 case Lift_iced_tail_record:
1549 fout << Lift_iced_tail << " ";
1552 case Gamma_clean_wing_record:
1554 fout << Gamma_clean_wing << " ";
1557 case Gamma_iced_wing_record:
1559 fout << Gamma_iced_wing << " ";
1562 case Gamma_clean_tail_record:
1564 fout << Gamma_clean_tail << " ";
1567 case Gamma_iced_tail_record:
1569 fout << Gamma_iced_tail << " ";
1572 case w_clean_wing_record:
1574 fout << w_clean_wing << " ";
1577 case w_iced_wing_record:
1579 fout << w_iced_wing << " ";
1582 case w_clean_tail_record:
1584 fout << w_clean_tail << " ";
1587 case w_iced_tail_record:
1589 fout << w_iced_tail << " ";
1592 case V_total_clean_wing_record:
1594 fout << V_total_clean_wing << " ";
1597 case V_total_iced_wing_record:
1599 fout << V_total_iced_wing << " ";
1602 case V_total_clean_tail_record:
1604 fout << V_total_clean_tail << " ";
1607 case V_total_iced_tail_record:
1609 fout << V_total_iced_tail << " ";
1612 case beta_flow_clean_wing_record:
1614 fout << beta_flow_clean_wing << " ";
1617 case beta_flow_clean_wing_deg_record:
1619 fout << beta_flow_clean_wing * RAD_TO_DEG << " ";
1622 case beta_flow_iced_wing_record:
1624 fout << beta_flow_iced_wing << " ";
1627 case beta_flow_iced_wing_deg_record:
1629 fout << beta_flow_iced_wing * RAD_TO_DEG << " ";
1632 case beta_flow_clean_tail_record:
1634 fout << beta_flow_clean_tail << " ";
1637 case beta_flow_clean_tail_deg_record:
1639 fout << beta_flow_clean_tail * RAD_TO_DEG << " ";
1642 case beta_flow_iced_tail_record:
1644 fout << beta_flow_iced_tail << " ";
1647 case beta_flow_iced_tail_deg_record:
1649 fout << beta_flow_iced_tail * RAD_TO_DEG << " ";
1652 case Dbeta_flow_wing_record:
1654 fout << Dbeta_flow_wing << " ";
1657 case Dbeta_flow_wing_deg_record:
1659 fout << Dbeta_flow_wing * RAD_TO_DEG << " ";
1662 case Dbeta_flow_tail_record:
1664 fout << Dbeta_flow_tail << " ";
1667 case Dbeta_flow_tail_deg_record:
1669 fout << Dbeta_flow_tail * RAD_TO_DEG << " ";
1672 case pct_beta_flow_wing_record:
1674 fout << pct_beta_flow_wing << " ";
1677 case pct_beta_flow_tail_record:
1679 fout << pct_beta_flow_tail << " ";
1682 case eta_ice_record:
1684 fout << eta_ice << " ";
1687 case eta_wing_left_record:
1689 fout << eta_wing_left << " ";
1692 case eta_wing_right_record:
1694 fout << eta_wing_right << " ";
1697 case eta_tail_record:
1699 fout << eta_tail << " ";
1702 case delta_CL_record:
1704 fout << delta_CL << " ";
1707 case delta_CD_record:
1709 fout << delta_CD << " ";
1712 case delta_Cm_record:
1714 fout << delta_Cm << " ";
1717 case delta_Cl_record:
1719 fout << delta_Cl << " ";
1722 case delta_Cn_record:
1724 fout << delta_Cn << " ";
1727 case boot_cycle_tail_record:
1729 fout << boot_cycle_tail << " ";
1732 case boot_cycle_wing_left_record:
1734 fout << boot_cycle_wing_left << " ";
1737 case boot_cycle_wing_right_record:
1739 fout << boot_cycle_wing_right << " ";
1742 case autoIPS_tail_record:
1744 fout << autoIPS_tail << " ";
1747 case autoIPS_wing_left_record:
1749 fout << autoIPS_wing_left << " ";
1752 case autoIPS_wing_right_record:
1754 fout << autoIPS_wing_right << " ";
1757 case eps_pitch_input_record:
1759 fout << eps_pitch_input << " ";
1762 case eps_alpha_max_record:
1764 fout << eps_alpha_max << " ";
1767 case eps_pitch_max_record:
1769 fout << eps_pitch_max << " ";
1772 case eps_pitch_min_record:
1774 fout << eps_pitch_min << " ";
1777 case eps_roll_max_record:
1779 fout << eps_roll_max << " ";
1782 case eps_thrust_min_record:
1784 fout << eps_thrust_min << " ";
1787 case eps_flap_max_record:
1789 fout << eps_flap_max << " ";
1792 case eps_airspeed_max_record:
1794 fout << eps_airspeed_max << " ";
1797 case eps_airspeed_min_record:
1799 fout << eps_airspeed_min << " ";
1802 case tactilefadefI_record:
1804 fout << tactilefadefI << " ";
1808 /*******************Autopilot***************************/
1809 case ap_Theta_ref_deg_record:
1811 fout << ap_Theta_ref_deg << " ";
1814 case ap_pah_on_record:
1816 fout << ap_pah_on << " ";
1820 /************************ Forces ***********************/
1821 case F_X_wind_record:
1823 fout << F_X_wind << " ";
1826 case F_Y_wind_record:
1828 fout << F_Y_wind << " ";
1831 case F_Z_wind_record:
1833 fout << F_Z_wind << " ";
1836 case F_X_aero_record:
1838 fout << F_X_aero << " ";
1841 case F_Y_aero_record:
1843 fout << F_Y_aero << " ";
1846 case F_Z_aero_record:
1848 fout << F_Z_aero << " ";
1851 case F_X_engine_record:
1853 fout << F_X_engine << " ";
1856 case F_Y_engine_record:
1858 fout << F_Y_engine << " ";
1861 case F_Z_engine_record:
1863 fout << F_Z_engine << " ";
1866 case F_X_gear_record:
1868 fout << F_X_gear << " ";
1871 case F_Y_gear_record:
1873 fout << F_Y_gear << " ";
1876 case F_Z_gear_record:
1878 fout << F_Z_gear << " ";
1896 case F_north_record:
1898 fout << F_north << " ";
1903 fout << F_east << " ";
1908 fout << F_down << " ";
1912 /*********************** Moments ***********************/
1913 case M_l_aero_record:
1915 fout << M_l_aero << " ";
1918 case M_m_aero_record:
1920 fout << M_m_aero << " ";
1923 case M_n_aero_record:
1925 fout << M_n_aero << " ";
1928 case M_l_engine_record:
1930 fout << M_l_engine << " ";
1933 case M_m_engine_record:
1935 fout << M_m_engine << " ";
1938 case M_n_engine_record:
1940 fout << M_n_engine << " ";
1943 case M_l_gear_record:
1945 fout << M_l_gear << " ";
1948 case M_m_gear_record:
1950 fout << M_m_gear << " ";
1953 case M_n_gear_record:
1955 fout << M_n_gear << " ";
1960 fout << M_l_rp << " ";
1965 fout << M_m_rp << " ";
1970 fout << M_n_rp << " ";
1974 /*********************** Moments ***********************/
1975 //case flapper_freq_record:
1977 //fout << flapper_freq << " ";
1980 //case flapper_phi_record:
1982 //fout << flapper_phi << " ";
1985 //case flapper_phi_deg_record:
1987 //fout << flapper_phi*RAD_TO_DEG << " ";
1990 //case flapper_Lift_record:
1992 //fout << flapper_Lift << " ";
1995 //case flapper_Thrust_record:
1997 //fout << flapper_Thrust << " ";
2000 //case flapper_Inertia_record:
2002 //fout << flapper_Inertia << " ";
2005 //case flapper_Moment_record:
2007 //fout << flapper_Moment << " ";
2010 /*********************** debug ***********************/
2011 /* debug variables for use in probing data */
2012 /* comment out old lines, and add new */
2013 /* only remove code that you have written */
2017 // fout << eta_q_Cm_q_fac << " ";
2018 // fout << eta_q_Cm_adot_fac << " ";
2019 // fout << eta_q_Cmfade_fac << " ";
2020 // fout << eta_q_Cl_dr_fac << " ";
2022 // fout << tc << " ";
2024 // fout << engineOmega * 60 / (2 * LS_PI)<< " ";
2025 // vertical climb rate in fpm
2026 // fout << V_down * 60 << " ";
2027 // w_induced downwash at tail due to wing
2028 //fout << w_induced << " ";
2029 // w_induced downwash at tail due to wing
2030 fout << gammaWing << " ";
2035 //Lift to drag ratio
2036 // fout << V_north/V_down << " ";
2037 // g's through the c.g. of the aircraft
2038 // fout << (-A_Z_cg/32.174) << " ";
2039 // gyroscopic moment (see uiuc_wrapper.cpp)
2040 // fout << (polarInertia * engineOmega * Q_body) << " ";
2041 // downwashAngle at tail
2042 fout << downwashAngle * 57.29 << " ";
2043 // w_induced from engine
2044 // fout << w_i << " ";
2049 // die off function for eta_q
2050 // fout << (Cos_alpha * Cos_alpha) << " ";
2051 // gyroscopic moment (see uiuc_wrapper.cpp)
2052 // fout << (-polarInertia * engineOmega * R_body) << " ";
2054 // fout << AlphaTail * 57.29 << " ";
2055 // fout << Alpha * 57.29 << " ";
2057 fout << eta_q << " ";
2067 // end uiuc_recorder.cpp