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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
66 
67 **********************************************************************/
68 
69 #include "uiuc_betaprobe.h"
70 
71 
uiuc_betaprobe()72 void uiuc_betaprobe()
73 {
74   if (CX && CZ)
75     {
76       CLclean_wing = CXclean_wing * sin(Std_Alpha) - CZclean_wing * cos(Std_Alpha);
77       CLiced_wing  = CXiced_wing * sin(Std_Alpha) - CZiced_wing * cos(Std_Alpha);
78       CLclean_tail = CXclean_tail * sin(Std_Alpha) - CZclean_tail * cos(Std_Alpha);
79       CLiced_tail  = CXiced_tail * sin(Std_Alpha) - CZiced_tail * cos(Std_Alpha);
80     }
81 
82   /* calculate lift per unit span*/
83   Lift_clean_wing = CLclean_wing * Dynamic_pressure * Sw / bw;
84   Lift_iced_wing = CLiced_wing * Dynamic_pressure * Sw / bw;
85   Lift_clean_tail = CLclean_tail * Dynamic_pressure * Sh / bh;
86   Lift_iced_tail = CLiced_tail * Dynamic_pressure * Sh / bh;
87 
88   Gamma_clean_wing = Lift_clean_wing / (Density * V_rel_wind);
89   Gamma_iced_wing = Lift_iced_wing / (Density * V_rel_wind);
90   Gamma_clean_tail = Lift_clean_tail / (Density * V_rel_wind);
91   Gamma_iced_tail = Lift_iced_tail / (Density * V_rel_wind);
92 
93   w_clean_wing = Gamma_clean_wing / (2 * LS_PI * x_probe_wing);
94   w_iced_wing = Gamma_iced_wing / (2 * LS_PI * x_probe_wing);
95   w_clean_tail = Gamma_clean_tail / (2 * LS_PI * x_probe_tail);
96   w_iced_tail = Gamma_iced_tail / (2 * LS_PI * x_probe_tail);
97 
98   V_total_clean_wing = sqrt(w_clean_wing*w_clean_wing +
99                             V_rel_wind*V_rel_wind -
100                             2*w_clean_wing*V_rel_wind *
101                             cos(LS_PI/2 + Std_Alpha));
102   V_total_iced_wing = sqrt(w_iced_wing*w_iced_wing +
103                            V_rel_wind*V_rel_wind -
104                            2*w_iced_wing*V_rel_wind *
105                            cos(LS_PI/2 + Std_Alpha));
106   V_total_clean_tail = sqrt(w_clean_tail*w_clean_tail +
107                             V_rel_wind*V_rel_wind -
108                             2*w_clean_tail*V_rel_wind *
109                             cos(LS_PI/2 + Std_Alpha));
110   V_total_iced_tail = sqrt(w_iced_tail*w_iced_tail +
111                            V_rel_wind*V_rel_wind -
112                            2*w_iced_tail*V_rel_wind *
113                            cos(LS_PI/2 + Std_Alpha));
114 
115   beta_flow_clean_wing = asin((w_clean_wing / V_total_clean_wing) *
116                               sin (LS_PI/2 + Std_Alpha));
117   beta_flow_iced_wing = asin((w_iced_wing / V_total_iced_wing) *
118                              sin (LS_PI/2 + Std_Alpha));
119   beta_flow_clean_tail = asin((w_clean_tail / V_total_clean_tail) *
120                               sin (LS_PI/2 + Std_Alpha));
121   beta_flow_iced_tail = asin((w_iced_tail / V_total_iced_tail) *
122                              sin (LS_PI/2 + Std_Alpha));
123 
124   Dbeta_flow_wing = fabs(beta_flow_clean_wing - beta_flow_iced_wing);
125   Dbeta_flow_tail = fabs(beta_flow_clean_tail - beta_flow_iced_tail);
126 
127   pct_beta_flow_wing = beta_flow_iced_wing / beta_flow_clean_wing;
128   pct_beta_flow_tail = beta_flow_iced_tail / beta_flow_clean_tail;
129 }
130 
131 //end uiuc_betaprobe.cpp
132