]> git.mxchange.org Git - flightgear.git/blob - src/FDM/UIUCModel/uiuc_betaprobe.cpp
I tested:
[flightgear.git] / src / FDM / UIUCModel / uiuc_betaprobe.cpp
1 /********************************************************************** 
2  
3  FILENAME:     uiuc_betaprobe.cpp 
4
5 ---------------------------------------------------------------------- 
6
7  DESCRIPTION:  Computes flow angle, beta, for use in ice detection 
8                scheme
9
10 ----------------------------------------------------------------------
11  
12  STATUS:       alpha version
13
14 ----------------------------------------------------------------------
15  
16  REFERENCES:   
17  
18 ----------------------------------------------------------------------
19
20  HISTORY:      05/15/2000   initial release
21  
22 ----------------------------------------------------------------------
23  
24  AUTHOR(S):    Jeff Scott         <jscott@mail.com>
25
26 ----------------------------------------------------------------------
27
28  VARIABLES:
29
30 ----------------------------------------------------------------------
31
32  INPUTS:       CLclean_wing
33                CLiced_wing
34                CLclean_tail
35                CLiced_tail
36
37 ----------------------------------------------------------------------
38
39  OUTPUTS:      Dbeta_flow_wing
40                Dbeta_flow_tail
41
42 ----------------------------------------------------------------------
43  
44  CALLED BY:    uiuc_wrapper
45  
46 ----------------------------------------------------------------------
47  
48  CALLS TO:     none
49  
50 ----------------------------------------------------------------------
51  
52  COPYRIGHT:    (C) 2000 by Michael Selig
53  
54  This program is free software; you can redistribute it and/or
55  modify it under the terms of the GNU General Public License
56  as published by the Free Software Foundation.
57  
58  This program is distributed in the hope that it will be useful,
59  but WITHOUT ANY WARRANTY; without even the implied warranty of
60  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
61  GNU General Public License for more details.
62  
63  You should have received a copy of the GNU General Public License
64  along with this program; if not, write to the Free Software
65  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
66  USA or view http://www.gnu.org/copyleft/gpl.html.
67  
68 **********************************************************************/
69
70 #include "uiuc_betaprobe.h"
71
72
73 void uiuc_betaprobe()
74 {
75   if (CX && CZ)
76     {
77       CLclean_wing = CXclean_wing * sin(Alpha) - CZclean_wing * cos(Alpha);
78       CLiced_wing  = CXiced_wing * sin(Alpha) - CZiced_wing * cos(Alpha);
79       CLclean_tail = CXclean_tail * sin(Alpha) - CZclean_tail * cos(Alpha);
80       CLiced_tail  = CXiced_tail * sin(Alpha) - CZiced_tail * cos(Alpha);
81     }
82
83   /* calculate lift per unit span*/
84   Lift_clean_wing = CLclean_wing * Dynamic_pressure * Sw / bw;
85   Lift_iced_wing = CLiced_wing * Dynamic_pressure * Sw / bw;
86   Lift_clean_tail = CLclean_tail * Dynamic_pressure * Sh / bh;
87   Lift_iced_tail = CLiced_tail * Dynamic_pressure * Sh / bh;
88
89   Gamma_clean_wing = Lift_clean_wing / (Density * V_rel_wind);
90   Gamma_iced_wing = Lift_iced_wing / (Density * V_rel_wind);
91   Gamma_clean_tail = Lift_clean_tail / (Density * V_rel_wind);
92   Gamma_iced_tail = Lift_iced_tail / (Density * V_rel_wind);
93
94   w_clean_wing = Gamma_clean_wing / (2 * LS_PI * x_probe_wing);
95   w_iced_wing = Gamma_iced_wing / (2 * LS_PI * x_probe_wing);
96   w_clean_tail = Gamma_clean_tail / (2 * LS_PI * x_probe_tail);
97   w_iced_tail = Gamma_iced_tail / (2 * LS_PI * x_probe_tail);
98
99   V_total_clean_wing = sqrt(w_clean_wing*w_clean_wing + 
100                             V_rel_wind*V_rel_wind - 
101                             2*w_clean_wing*V_rel_wind * 
102                             cos(LS_PI/2 + Alpha));
103   V_total_iced_wing = sqrt(w_iced_wing*w_iced_wing + 
104                            V_rel_wind*V_rel_wind - 
105                            2*w_iced_wing*V_rel_wind * 
106                            cos(LS_PI/2 + Alpha));
107   V_total_clean_tail = sqrt(w_clean_tail*w_clean_tail + 
108                             V_rel_wind*V_rel_wind - 
109                             2*w_clean_tail*V_rel_wind * 
110                             cos(LS_PI/2 + Alpha));
111   V_total_iced_tail = sqrt(w_iced_tail*w_iced_tail + 
112                            V_rel_wind*V_rel_wind - 
113                            2*w_iced_tail*V_rel_wind * 
114                            cos(LS_PI/2 + Alpha));
115
116   beta_flow_clean_wing = asin((w_clean_wing / V_total_clean_wing) * 
117                               sin (LS_PI/2 + Alpha));
118   beta_flow_iced_wing = asin((w_iced_wing / V_total_iced_wing) * 
119                              sin (LS_PI/2 + Alpha));
120   beta_flow_clean_tail = asin((w_clean_tail / V_total_clean_tail) * 
121                               sin (LS_PI/2 + Alpha));
122   beta_flow_iced_tail = asin((w_iced_tail / V_total_iced_tail) * 
123                              sin (LS_PI/2 + Alpha));
124
125   Dbeta_flow_wing = fabs(beta_flow_clean_wing - beta_flow_iced_wing);
126   Dbeta_flow_tail = fabs(beta_flow_clean_tail - beta_flow_iced_tail);
127
128   pct_beta_flow_wing = beta_flow_iced_wing / beta_flow_clean_wing;
129   pct_beta_flow_tail = beta_flow_iced_tail / beta_flow_clean_tail;
130 }
131
132 //end uiuc_betaprobe.cpp