]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/UIUCModel/uiuc_coef_pitch.cpp
Make yasim accept the launchbar and hook properties. They are not tied to anything...
[flightgear.git] / src / FDM / UIUCModel / uiuc_coef_pitch.cpp
index 5a77a84ffd3a1a770f21823e660329076494cfe8..bfd5f50e31f5184114192f4fd5ccd7007e813f8e 100644 (file)
@@ -112,7 +112,7 @@ void uiuc_coef_pitch()
                 Cmo = uiuc_ice_filter(Cmo_clean,kCmo);
               }
            Cmo_save = Cmo;
-            Cm += Cmo;
+            Cm += Cmo_save;
             break;
           }
         case Cm_a_flag:
@@ -121,8 +121,8 @@ void uiuc_coef_pitch()
               {
                 Cm_a = uiuc_ice_filter(Cm_a_clean,kCm_a);
               }
-           Cm_a_save = Cm_a * Alpha;
-            Cm += Cm_a * Alpha;
+           Cm_a_save = Cm_a * Std_Alpha;
+            Cm += Cm_a_save;
             break;
           }
         case Cm_a2_flag:
@@ -131,8 +131,8 @@ void uiuc_coef_pitch()
               {
                 Cm_a2 = uiuc_ice_filter(Cm_a2_clean,kCm_a2);
               }
-           Cm_a2_save = Cm_a2 * Alpha * Alpha;
-            Cm += Cm_a2 * Alpha * Alpha;
+           Cm_a2_save = Cm_a2 * Std_Alpha * Std_Alpha;
+            Cm += Cm_a2_save;
             break;
           }
         case Cm_adot_flag:
@@ -143,8 +143,7 @@ void uiuc_coef_pitch()
               }
             /* Cm_adot must be mulitplied by cbar/2U 
                (see Roskam Control book, Part 1, pg. 147) */
-           Cm_adot_save = Cm_adot * Alpha_dot * cbar_2U;
-            //Cm        += Cm_adot * Alpha_dot * cbar_2U;
+           Cm_adot_save = Cm_adot * Std_Alpha_dot * cbar_2U;
            if (eta_q_Cm_adot_fac)
              {
                Cm += Cm_adot_save * eta_q_Cm_adot_fac;
@@ -164,7 +163,6 @@ void uiuc_coef_pitch()
             /* Cm_q must be mulitplied by cbar/2U 
                (see Roskam Control book, Part 1, pg. 147) */
            Cm_q_save = Cm_q * Q_body * cbar_2U;
-            // Cm    += Cm_q * Q_body * cbar_2U;
            if (eta_q_Cm_q_fac)
              {
                Cm += Cm_q_save * eta_q_Cm_q_fac;
@@ -178,7 +176,7 @@ void uiuc_coef_pitch()
         case Cm_ih_flag:
           {
            Cm_ih_save = Cm_ih * ih;
-            Cm += Cm_ih * ih;
+            Cm += Cm_ih_save;
             break;
           }
         case Cm_de_flag:
@@ -188,7 +186,14 @@ void uiuc_coef_pitch()
                 Cm_de = uiuc_ice_filter(Cm_de_clean,kCm_de);
               }
            Cm_de_save = Cm_de * elevator;
-            Cm += Cm_de * elevator;
+           if (eta_q_Cm_de_fac)
+             {
+               Cm += Cm_de_save * eta_q_Cm_de_fac;
+             }
+           else
+             {
+               Cm += Cm_de_save;
+             }
             break;
           }
         case Cm_b2_flag:
@@ -197,8 +202,8 @@ void uiuc_coef_pitch()
               {
                 Cm_b2 = uiuc_ice_filter(Cm_b2_clean,kCm_b2);
               }
-           Cm_b2_save = Cm_b2 * Beta * Beta;
-            Cm += Cm_b2 * Beta * Beta;
+           Cm_b2_save = Cm_b2 * Std_Beta * Std_Beta;
+            Cm += Cm_b2_save;
             break;
           }
         case Cm_r_flag:
@@ -208,7 +213,7 @@ void uiuc_coef_pitch()
                 Cm_r = uiuc_ice_filter(Cm_r_clean,kCm_r);
               }
            Cm_r_save = Cm_r * R_body * b_2U;
-            Cm += Cm_r * R_body * b_2U;
+            Cm += Cm_r_save;
             break;
           }
         case Cm_df_flag:
@@ -217,8 +222,20 @@ void uiuc_coef_pitch()
               {
                 Cm_df = uiuc_ice_filter(Cm_df_clean,kCm_df);
               }
-           Cm_df_save = Cm_df * flap;
-            Cm += Cm_df * flap;
+           Cm_df_save = Cm_df * flap_pos;
+            Cm += Cm_df_save;
+            break;
+          }
+        case Cm_ds_flag:
+          {
+           Cm_ds_save = Cm_ds * spoiler_pos;
+            Cm += Cm_ds_save;
+            break;
+          }
+        case Cm_dg_flag:
+          {
+           Cm_dg_save = Cm_dg * gear_pos_norm;
+            Cm += Cm_dg_save;
             break;
           }
         case Cmfa_flag:
@@ -226,26 +243,50 @@ void uiuc_coef_pitch()
             CmfaI = uiuc_1Dinterpolation(Cmfa_aArray,
                                          Cmfa_CmArray,
                                          Cmfa_nAlpha,
-                                         Alpha);
+                                         Std_Alpha);
             Cm += CmfaI;
             break;
           }
         case Cmfade_flag:
           {
-           // compute the induced velocity on the tail to account for tail downwash
-           gamma_wing = V_rel_wind * Sw * CL / (2.0 * bw);
-           w_coef = 0.036;
-           w_induced  = w_coef * gamma_wing;
-           downwash_angle = atan(w_induced/V_rel_wind);
-           AlphaTail = Alpha - downwash_angle;
-           CmfadeI = uiuc_2Dinterpolation(Cmfade_aArray,
-                                           Cmfade_deArray,
-                                           Cmfade_CmArray,
-                                           Cmfade_nAlphaArray,
-                                           Cmfade_nde,
-                                           AlphaTail,
-                                           elevator);
-           // Cm += CmfadeI;
+           if(b_downwashMode)
+             {
+               // compute the induced velocity on the tail to account for tail downwash
+               switch(downwashMode)
+                 {
+                 case 100:            
+                   if (V_rel_wind < dyn_on_speed)
+                     {
+                       alphaTail = Std_Alpha;
+                     }
+                   else
+                     {
+                       gammaWing = V_rel_wind * Sw * CL / (2.0 * bw);
+                       // printf("gammaWing = %.4f\n", (gammaWing));
+                       downwash  = downwashCoef * gammaWing;
+                       downwashAngle = atan(downwash/V_rel_wind);
+                       alphaTail = Std_Alpha - downwashAngle;
+                     }
+                   CmfadeI = uiuc_2Dinterpolation(Cmfade_aArray,
+                                                  Cmfade_deArray,
+                                                  Cmfade_CmArray,
+                                                  Cmfade_nAlphaArray,
+                                                  Cmfade_nde,
+                                                  alphaTail,
+                                                  elevator);
+                   break;
+                 }
+             }
+           else
+             {
+               CmfadeI = uiuc_2Dinterpolation(Cmfade_aArray,
+                                              Cmfade_deArray,
+                                              Cmfade_CmArray,
+                                              Cmfade_nAlphaArray,
+                                              Cmfade_nde,
+                                              Std_Alpha,
+                                              elevator); 
+             }
            if (eta_q_Cmfade_fac)
              {
                Cm += CmfadeI * eta_q_Cmfade_fac;
@@ -261,7 +302,7 @@ void uiuc_coef_pitch()
             CmfdfI = uiuc_1Dinterpolation(Cmfdf_dfArray,
                                           Cmfdf_CmArray,
                                           Cmfdf_ndf,
-                                          flap);
+                                          flap_pos);
             Cm += CmfdfI;
             break;
           }
@@ -272,8 +313,8 @@ void uiuc_coef_pitch()
                                            Cmfadf_CmArray,
                                            Cmfadf_nAlphaArray,
                                            Cmfadf_ndf,
-                                           Alpha,
-                                           flap);
+                                           Std_Alpha,
+                                           flap_pos);
             Cm += CmfadfI;
             break;
           }
@@ -288,8 +329,8 @@ void uiuc_coef_pitch()
                                               Cmfabetaf_nb_nice,
                                               Cmfabetaf_nf,
                                               flap_pos,
-                                              Alpha,
-                                              Beta);
+                                              Std_Alpha,
+                                              Std_Beta);
            else
              CmfabetafI = uiuc_3Dinterpolation(Cmfabetaf_fArray,
                                                Cmfabetaf_aArray,
@@ -299,8 +340,8 @@ void uiuc_coef_pitch()
                                                Cmfabetaf_nbeta,
                                                Cmfabetaf_nf,
                                                flap_pos,
-                                               Alpha,
-                                               Beta);
+                                               Std_Alpha,
+                                               Std_Beta);
             Cm += CmfabetafI;
             break;
           }
@@ -315,7 +356,7 @@ void uiuc_coef_pitch()
                                             Cmfadef_nde_nice,
                                             Cmfadef_nf,
                                             flap_pos,
-                                            Alpha,
+                                            Std_Alpha,
                                             elevator);
            else
              CmfadefI = uiuc_3Dinterpolation(Cmfadef_fArray,
@@ -326,7 +367,7 @@ void uiuc_coef_pitch()
                                              Cmfadef_nde,
                                              Cmfadef_nf,
                                              flap_pos,
-                                             Alpha,
+                                             Std_Alpha,
                                              elevator);
            Cm += CmfadefI;
             break;
@@ -343,7 +384,7 @@ void uiuc_coef_pitch()
                                            Cmfaqf_nq_nice,
                                            Cmfaqf_nf,
                                            flap_pos,
-                                           Alpha,
+                                           Std_Alpha,
                                            q_nondim);
            else
              CmfaqfI = uiuc_3Dinterpolation(Cmfaqf_fArray,
@@ -354,7 +395,7 @@ void uiuc_coef_pitch()
                                             Cmfaqf_nq,
                                             Cmfaqf_nf,
                                             flap_pos,
-                                            Alpha,
+                                            Std_Alpha,
                                             q_nondim);
             Cm += CmfaqfI;
             break;