]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/UIUCModel/uiuc_coef_lift.cpp
Fix for bug 1304 - crash loading XML route
[flightgear.git] / src / FDM / UIUCModel / uiuc_coef_lift.cpp
index d7fb6e73d27e1986f7e71a8e1c461f2e06f4f92e..c7de49eecf030b8bf93c45396c18d1860e24d1f5 100644 (file)
@@ -81,8 +81,7 @@
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- USA or view http://www.gnu.org/copyleft/gpl.html.
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 **********************************************************************/
 
@@ -119,7 +118,7 @@ void uiuc_coef_lift()
                   }
               }
            CLo_save = CLo;
-            CL += CLo;
+            CL += CLo_save;
             break;
           }
         case CL_a_flag:
@@ -129,14 +128,14 @@ void uiuc_coef_lift()
                 CL_a = uiuc_ice_filter(CL_a_clean,kCL_a);
                 if (beta_model)
                   {
-                    CLclean_wing += CL_a_clean * Alpha;
-                    CLclean_tail += CL_a_clean * Alpha;
-                    CLiced_wing += CL_a * Alpha;
-                    CLiced_tail += CL_a * Alpha;
+                    CLclean_wing += CL_a_clean * Std_Alpha;
+                    CLclean_tail += CL_a_clean * Std_Alpha;
+                    CLiced_wing += CL_a * Std_Alpha;
+                    CLiced_tail += CL_a * Std_Alpha;
                   }
               }
-           CL_a_save = CL_a * Alpha;
-            CL += CL_a * Alpha;
+           CL_a_save = CL_a * Std_Alpha;
+            CL += CL_a_save;
             break;
           }
         case CL_adot_flag:
@@ -146,16 +145,16 @@ void uiuc_coef_lift()
                 CL_adot = uiuc_ice_filter(CL_adot_clean,kCL_adot);
                 if (beta_model)
                   {
-                    CLclean_wing += CL_adot_clean * Alpha_dot * cbar_2U;
-                    CLclean_tail += CL_adot_clean * Alpha_dot * ch_2U;
-                    CLiced_wing += CL_adot * Alpha_dot * cbar_2U;
-                    CLiced_tail += CL_adot * Alpha_dot * ch_2U;
+                    CLclean_wing += CL_adot_clean * Std_Alpha_dot * cbar_2U;
+                    CLclean_tail += CL_adot_clean * Std_Alpha_dot * ch_2U;
+                    CLiced_wing += CL_adot * Std_Alpha_dot * cbar_2U;
+                    CLiced_tail += CL_adot * Std_Alpha_dot * ch_2U;
                   }
               }
             /* CL_adot must be mulitplied by cbar/2U 
                (see Roskam Control book, Part 1, pg. 147) */
-           CL_adot_save = CL_adot * Alpha_dot * cbar_2U;
-            CL += CL_adot * Alpha_dot * cbar_2U;
+           CL_adot_save = CL_adot * Std_Alpha_dot * cbar_2U;
+            CL += CL_adot_save;
             break;
           }
         case CL_q_flag:
@@ -177,13 +176,13 @@ void uiuc_coef_lift()
                that is what is done in c172_aero.c; assume it 
                has something to do with axes systems */
            CL_q_save = CL_q * Theta_dot * cbar_2U;
-            CL += CL_q * Theta_dot * cbar_2U;
+            CL += CL_q_save;
             break;
           }
         case CL_ih_flag:
           {
            CL_ih_save = CL_ih * ih;
-            CL += CL_ih * ih;
+            CL += CL_ih_save;
             break;
           }
         case CL_de_flag:
@@ -200,7 +199,25 @@ void uiuc_coef_lift()
                   }
               }
            CL_de_save = CL_de * elevator;
-            CL += CL_de * elevator;
+            CL += CL_de_save;
+            break;
+          }
+        case CL_df_flag:
+          {
+           CL_df_save = CL_df * flap_pos;
+            CL += CL_df_save;
+            break;
+          }
+        case CL_ds_flag:
+          {
+           CL_ds_save = CL_ds * spoiler_pos;
+            CL += CL_ds_save;
+            break;
+          }
+        case CL_dg_flag:
+          {
+           CL_dg_save = CL_dg * gear_pos_norm;
+            CL += CL_dg_save;
             break;
           }
         case CLfa_flag:
@@ -208,7 +225,7 @@ void uiuc_coef_lift()
             CLfaI = uiuc_1Dinterpolation(CLfa_aArray,
                                          CLfa_CLArray,
                                          CLfa_nAlpha,
-                                         Alpha);
+                                         Std_Alpha);
             CL += CLfaI;
             break;
           }
@@ -219,7 +236,7 @@ void uiuc_coef_lift()
                                            CLfade_CLArray,
                                            CLfade_nAlphaArray,
                                            CLfade_nde,
-                                           Alpha,
+                                           Std_Alpha,
                                            elevator);
             CL += CLfadeI;
             break;
@@ -229,7 +246,7 @@ void uiuc_coef_lift()
             CLfdfI = uiuc_1Dinterpolation(CLfdf_dfArray,
                                           CLfdf_CLArray,
                                           CLfdf_ndf,
-                                          flap);
+                                          flap_pos);
             CL += CLfdfI;
             break;
           }
@@ -240,8 +257,8 @@ void uiuc_coef_lift()
                                            CLfadf_CLArray,
                                            CLfadf_nAlphaArray,
                                            CLfadf_ndf,
-                                           Alpha,
-                                           flap);
+                                           Std_Alpha,
+                                           flap_pos);
             CL += CLfadfI;
             break;
           }
@@ -259,7 +276,7 @@ void uiuc_coef_lift()
                   }
               }
            CZo_save = CZo;
-            CZ += CZo;
+            CZ += CZo_save;
             break;
           }
         case CZ_a_flag:
@@ -269,14 +286,14 @@ void uiuc_coef_lift()
                 CZ_a = uiuc_ice_filter(CZ_a_clean,kCZ_a);
                 if (beta_model)
                   {
-                    CZclean_wing += CZ_a_clean * Alpha;
-                    CZclean_tail += CZ_a_clean * Alpha;
-                    CZiced_wing += CZ_a * Alpha;
-                    CZiced_tail += CZ_a * Alpha;
+                    CZclean_wing += CZ_a_clean * Std_Alpha;
+                    CZclean_tail += CZ_a_clean * Std_Alpha;
+                    CZiced_wing += CZ_a * Std_Alpha;
+                    CZiced_tail += CZ_a * Std_Alpha;
                   }
               }
-           CZ_a_save = CZ_a * Alpha;
-            CZ += CZ_a * Alpha;
+           CZ_a_save = CZ_a * Std_Alpha;
+            CZ += CZ_a_save;
             break;
           }
         case CZ_a2_flag:
@@ -286,14 +303,14 @@ void uiuc_coef_lift()
                 CZ_a2 = uiuc_ice_filter(CZ_a2_clean,kCZ_a2);
                 if (beta_model)
                   {
-                    CZclean_wing += CZ_a2_clean * Alpha * Alpha;
-                    CZclean_tail += CZ_a2_clean * Alpha * Alpha;
-                    CZiced_wing += CZ_a2 * Alpha * Alpha;
-                    CZiced_tail += CZ_a2 * Alpha * Alpha;
+                    CZclean_wing += CZ_a2_clean * Std_Alpha * Std_Alpha;
+                    CZclean_tail += CZ_a2_clean * Std_Alpha * Std_Alpha;
+                    CZiced_wing += CZ_a2 * Std_Alpha * Std_Alpha;
+                    CZiced_tail += CZ_a2 * Std_Alpha * Std_Alpha;
                   }
               }
-           CZ_a2_save = CZ_a2 * Alpha * Alpha;
-            CZ += CZ_a2 * Alpha * Alpha;
+           CZ_a2_save = CZ_a2 * Std_Alpha * Std_Alpha;
+            CZ += CZ_a2_save;
             break;
           }
         case CZ_a3_flag:
@@ -303,14 +320,14 @@ void uiuc_coef_lift()
                 CZ_a3 = uiuc_ice_filter(CZ_a3_clean,kCZ_a3);
                 if (beta_model)
                   {
-                    CZclean_wing += CZ_a3_clean * Alpha * Alpha * Alpha;
-                    CZclean_tail += CZ_a3_clean * Alpha * Alpha * Alpha;
-                    CZiced_wing += CZ_a3 * Alpha * Alpha * Alpha;
-                    CZiced_tail += CZ_a3 * Alpha * Alpha * Alpha;
+                    CZclean_wing += CZ_a3_clean * Std_Alpha * Std_Alpha * Std_Alpha;
+                    CZclean_tail += CZ_a3_clean * Std_Alpha * Std_Alpha * Std_Alpha;
+                    CZiced_wing += CZ_a3 * Std_Alpha * Std_Alpha * Std_Alpha;
+                    CZiced_tail += CZ_a3 * Std_Alpha * Std_Alpha * Std_Alpha;
                   }
               }
-           CZ_a3_save = CZ_a3 * Alpha * Alpha * Alpha;
-            CZ += CZ_a3 * Alpha * Alpha * Alpha;
+           CZ_a3_save = CZ_a3 * Std_Alpha * Std_Alpha * Std_Alpha;
+            CZ += CZ_a3_save;
             break;
           }
         case CZ_adot_flag:
@@ -320,16 +337,16 @@ void uiuc_coef_lift()
                 CZ_adot = uiuc_ice_filter(CZ_adot_clean,kCZ_adot);
                 if (beta_model)
                   {
-                    CZclean_wing += CZ_adot_clean * Alpha_dot * cbar_2U;
-                    CZclean_tail += CZ_adot_clean * Alpha_dot * ch_2U;
-                    CZiced_wing += CZ_adot * Alpha_dot * cbar_2U;
-                    CZiced_tail += CZ_adot * Alpha_dot * ch_2U;
+                    CZclean_wing += CZ_adot_clean * Std_Alpha_dot * cbar_2U;
+                    CZclean_tail += CZ_adot_clean * Std_Alpha_dot * ch_2U;
+                    CZiced_wing += CZ_adot * Std_Alpha_dot * cbar_2U;
+                    CZiced_tail += CZ_adot * Std_Alpha_dot * ch_2U;
                   }
               }
             /* CZ_adot must be mulitplied by cbar/2U 
                (see Roskam Control book, Part 1, pg. 147) */
-           CZ_adot_save = CZ_adot * Alpha_dot * cbar_2U;
-            CZ += CZ_adot * Alpha_dot * cbar_2U;
+           CZ_adot_save = CZ_adot * Std_Alpha_dot * cbar_2U;
+            CZ += CZ_adot_save;
             break;
           }
         case CZ_q_flag:
@@ -348,7 +365,7 @@ void uiuc_coef_lift()
             /* CZ_q must be mulitplied by cbar/2U 
                (see Roskam Control book, Part 1, pg. 147) */
            CZ_q_save = CZ_q * Q_body * cbar_2U;
-            CZ += CZ_q * Q_body * cbar_2U;
+            CZ += CZ_q_save;
             break;
           }
         case CZ_de_flag:
@@ -365,7 +382,7 @@ void uiuc_coef_lift()
                   }
               }
            CZ_de_save = CZ_de * elevator;
-            CZ += CZ_de * elevator;
+            CZ += CZ_de_save;
             break;
           }
         case CZ_deb2_flag:
@@ -375,14 +392,14 @@ void uiuc_coef_lift()
                 CZ_deb2 = uiuc_ice_filter(CZ_deb2_clean,kCZ_deb2);
                 if (beta_model)
                   {
-                    CZclean_wing += CZ_deb2_clean * elevator * Beta * Beta;
-                    CZclean_tail += CZ_deb2_clean * elevator * Beta * Beta;
-                    CZiced_wing += CZ_deb2 * elevator * Beta * Beta;
-                    CZiced_tail += CZ_deb2 * elevator * Beta * Beta;
+                    CZclean_wing += CZ_deb2_clean * elevator * Std_Beta * Std_Beta;
+                    CZclean_tail += CZ_deb2_clean * elevator * Std_Beta * Std_Beta;
+                    CZiced_wing += CZ_deb2 * elevator * Std_Beta * Std_Beta;
+                    CZiced_tail += CZ_deb2 * elevator * Std_Beta * Std_Beta;
                   }
               }
-           CZ_deb2_save = CZ_deb2 * elevator * Beta * Beta;
-            CZ += CZ_deb2 * elevator * Beta * Beta;
+           CZ_deb2_save = CZ_deb2 * elevator * Std_Beta * Std_Beta;
+            CZ += CZ_deb2_save;
             break;
           }
         case CZ_df_flag:
@@ -392,14 +409,14 @@ void uiuc_coef_lift()
                 CZ_df = uiuc_ice_filter(CZ_df_clean,kCZ_df);
                 if (beta_model)
                   {
-                    CZclean_wing += CZ_df_clean * flap;
-                    CZclean_tail += CZ_df_clean * flap;
-                    CZiced_wing += CZ_df * flap;
-                    CZiced_tail += CZ_df * flap;
+                    CZclean_wing += CZ_df_clean * flap_pos;
+                    CZclean_tail += CZ_df_clean * flap_pos;
+                    CZiced_wing += CZ_df * flap_pos;
+                    CZiced_tail += CZ_df * flap_pos;
                   }
               }
-           CZ_df_save = CZ_df * flap;
-            CZ += CZ_df * flap;
+           CZ_df_save = CZ_df * flap_pos;
+            CZ += CZ_df_save;
             break;
           }
         case CZ_adf_flag:
@@ -409,14 +426,14 @@ void uiuc_coef_lift()
                 CZ_adf = uiuc_ice_filter(CZ_adf_clean,kCZ_adf);
                 if (beta_model)
                   {
-                    CZclean_wing += CZ_adf_clean * Alpha * flap;
-                    CZclean_tail += CZ_adf_clean * Alpha * flap;
-                    CZiced_wing += CZ_adf * Alpha * flap;
-                    CZiced_tail += CZ_adf * Alpha * flap;
+                    CZclean_wing += CZ_adf_clean * Std_Alpha * flap_pos;
+                    CZclean_tail += CZ_adf_clean * Std_Alpha * flap_pos;
+                    CZiced_wing += CZ_adf * Std_Alpha * flap_pos;
+                    CZiced_tail += CZ_adf * Std_Alpha * flap_pos;
                   }
               }
-           CZ_adf_save = CZ_adf * Alpha * flap;
-            CZ += CZ_adf * Alpha * flap;
+           CZ_adf_save = CZ_adf * Std_Alpha * flap_pos;
+            CZ += CZ_adf_save;
             break;
           }
         case CZfa_flag:
@@ -424,7 +441,7 @@ void uiuc_coef_lift()
             CZfaI = uiuc_1Dinterpolation(CZfa_aArray,
                                          CZfa_CZArray,
                                          CZfa_nAlpha,
-                                         Alpha);
+                                         Std_Alpha);
             CZ += CZfaI;
             break;
           }
@@ -439,8 +456,8 @@ void uiuc_coef_lift()
                                               CZfabetaf_nb_nice,
                                               CZfabetaf_nf,
                                               flap_pos,
-                                              Alpha,
-                                              Beta);
+                                              Std_Alpha,
+                                              Std_Beta);
            else
              CZfabetafI = uiuc_3Dinterpolation(CZfabetaf_fArray,
                                                CZfabetaf_aArray,
@@ -450,8 +467,8 @@ void uiuc_coef_lift()
                                                CZfabetaf_nbeta,
                                                CZfabetaf_nf,
                                                flap_pos,
-                                               Alpha,
-                                               Beta);
+                                               Std_Alpha,
+                                               Std_Beta);
             CZ += CZfabetafI;
             break;
           }
@@ -466,7 +483,7 @@ void uiuc_coef_lift()
                                             CZfadef_nde_nice,
                                             CZfadef_nf,
                                             flap_pos,
-                                            Alpha,
+                                            Std_Alpha,
                                             elevator);
            else
              CZfadefI = uiuc_3Dinterpolation(CZfadef_fArray,
@@ -477,7 +494,7 @@ void uiuc_coef_lift()
                                              CZfadef_nde,
                                              CZfadef_nf,
                                              flap_pos,
-                                             Alpha,
+                                             Std_Alpha,
                                              elevator);
             CZ += CZfadefI;
             break;
@@ -494,7 +511,7 @@ void uiuc_coef_lift()
                                            CZfaqf_nq_nice,
                                            CZfaqf_nf,
                                            flap_pos,
-                                           Alpha,
+                                           Std_Alpha,
                                            q_nondim);
            else
              CZfaqfI = uiuc_3Dinterpolation(CZfaqf_fArray,
@@ -505,7 +522,7 @@ void uiuc_coef_lift()
                                             CZfaqf_nq,
                                             CZfaqf_nf,
                                             flap_pos,
-                                            Alpha,
+                                            Std_Alpha,
                                             q_nondim);
             CZ += CZfaqfI;
             break;