@@ -59,71 +59,78 @@ void AirDC::RhoAir(int mode)
5959 p=_p;
6060 T=_T;
6161 RH=_RH;
62- for (int i=1 ;i<5 ;i++){
63- switch (i){
64- case 1 :
65- {
66- p=p+10 ;
67- break ;
68- }
69- case 2 :
70- {
71- p=p+10 ;
72- break ;
73- }
74- case 3 :
62+ for (int i=1 ; i<5 ; i++)
7563 {
76- p=p-10 ;
77- T=T+10 ;
78- break ;
79- }
80- case 4 :
81- {
82- T=T-10 ;
83- RH=RH+0.1 ;
84- break ;
85- }
86- }
87- psv=1 *exp (A*pow (T,2 )+B*T+C+D/T);
88- t=T-273.15 ;
89- f=alfa+bet*p+gama*pow (t,2 );
90- xv=RH*f*psv/p;
91- Z=1 -p/T*(a0+a1*t+a2*pow (t,2 )+(b0+b1*t)*xv+(c0+c1*t)*pow (xv,2 ))+pow (p,2 )/pow (T,2 )*(d+e*pow (xv,2 ));
64+ switch (i)
65+ {
66+ case 1 :
67+ {
68+ p=p+10 ;
69+ break ;
70+ }
71+ case 2 :
72+ {
73+ p=p+10 ;
74+ break ;
75+ }
76+ case 3 :
77+ {
78+ p=p-10 ;
79+ T=T+10 ;
80+ break ;
81+ }
82+ case 4 :
83+ {
84+ T=T-10 ;
85+ RH=RH+0.1 ;
86+ break ;
87+ }
88+ }
89+ psv=1 *exp (A*pow (T,2 )+B*T+C+D/T);
90+ t=T-273.15 ;
91+ f=alfa+bet*p+gama*pow (t,2 );
92+ xv=RH*f*psv/p;
93+ Z=1 -p/T*(a0+a1*t+a2*pow (t,2 )+(b0+b1*t)*xv+(c0+c1*t)*pow (xv,2 ))+pow (p,2 )/pow (T,2 )*(d+e*pow (xv,2 ));
9294
93- switch (i){
94- case 1 :
95+ switch (i)
9596 {
96- // Calculates Sensibility factor for p
97- _Rho=p*Ma/(Z*R*T)*(1 -xv*(1 -Mv/Ma))*0.001 ;
98- break ;
99- }
100- case 2 :
97+ case 1 :
10198 {
102- // Calculates Sensibility factor for p
103- Sp=(( p*Ma/(Z*R*T)*(1 -xv*(1 -Mv/Ma))*0.001 )-_Rho)/ 10 ;
104- break ;
105- }
106- case 3 :
99+ // Calculates Sensibility factor for p
100+ _Rho= p*Ma/(Z*R*T)*(1 -xv*(1 -Mv/Ma))*0.001 ;
101+ break ;
102+ }
103+ case 2 :
107104 {
108- // Calculates Sensibility factor for T
109- ST=((p*Ma/(Z*R*T)*(1 -xv*(1 -Mv/Ma))*0.001 )-_Rho)/10 ;
110- break ;
111- }
112- case 4 :
105+ // Calculates Sensibility factor for p
106+ Sp=((p*Ma/(Z*R*T)*(1 -xv*(1 -Mv/Ma))*0.001 )-_Rho)/10 ;
107+ break ;
108+ }
109+ case 3 :
110+ {
111+ // Calculates Sensibility factor for T
112+ ST=((p*Ma/(Z*R*T)*(1 -xv*(1 -Mv/Ma))*0.001 )-_Rho)/10 ;
113+ break ;
114+ }
115+ case 4 :
113116 {
114117 // Calculates Sensibility factor for RH
115- SRH=((p*Ma/(Z*R*T)*(1 -xv*(1 -Mv/Ma))*0.001 )-_Rho)*10 ;
116- _uRho=sqrt (Sp*Sp*_up*_up+ST*ST*_uT*_uT+SRH*SRH*_uRH*_uRH);
117- break ;
118- }
119- }
118+ SRH=((p*Ma/(Z*R*T)*(1 -xv*(1 -Mv/Ma))*0.001 )-_Rho)*10 ;
119+ _uRho=sqrt (Sp*Sp*_up*_up+ST*ST*_uT*_uT+SRH*SRH*_uRH*_uRH);
120+ break ;
121+ }
122+ }
120123 }
121124 break ;
122125 }
123126
124127}
125128void AirDC::IAS (int mode)
126129{
130+ // Indicated Airspeed
131+ // IAS=ASI=EAS
132+ // http://www.basicairdata.eu/pitot-tube.html
133+ // https://en.wikipedia.org/wiki/Equivalent_airspeed
127134 switch (mode)
128135 {
129136 case 1 :
@@ -143,3 +150,11 @@ void AirDC::IAS(int mode)
143150 break ;
144151 }
145152}
153+ void AirDC::TAS (int mode)
154+ {
155+ // True Airspeed
156+ // http://www.basicairdata.eu/pitot-tube.html
157+ // TAS=IAS*(rhostandard/rhoair)^0.5
158+ _TAS=_IAS*sqrt (1.225 /_Rho);
159+ _uTAS= sqrt ((1.225 /_Rho)*pow (_uIAS,2 )+ pow (0.5 *_IAS*1.225 /(pow (_Rho,1.5 )),2 )*pow (_uRho,2 ));
160+ }
0 commit comments