1   package org.wcb.e6b;
2   
3   /**
4    * Created by IntelliJ IDEA.
5    * User: wbogaardt
6    * Date: Aug 24, 2005
7    * Time: 5:06:46 PM
8    * To change this template use File | Settings | File Templates.
9    */
10  
11  public class TrueAirspeed extends AbstractE6B {
12  
13      private double cas;
14      private double oat;
15      private double pa;
16  
17      private double tas;
18      private double tat;
19      private double mach;
20  
21      public double getCalibratedAirspeed() {
22          return cas;
23      }
24  
25      public void setCalibratedAirspeed(double calibratedAirspeed) {
26          this.cas = calibratedAirspeed;
27      }
28  
29      public double getOutsideAirTemp() {
30          return oat;
31      }
32  
33      public void setOutsideAirTemp(double outsideAirTemp) {
34          this.oat = outsideAirTemp;
35      }
36  
37      public double getPressureAltitude() {
38          return pa;
39      }
40  
41      public void setPressureAltitude(double pressureAltitude) {
42          this.pa = pressureAltitude;
43      }
44  
45      public void calculate() {
46          double densityPressure = 29.92126 * (Math.pow((1 + 0.2 * Math.pow((cas / 661.4786), 2)), 3.5) - 1);
47          double p = 29.92126 * Math.pow((1 - 6.8755856 * Math.pow(10, -6) * pa), 5.2558797);
48          mach = Math.pow((5 * (Math.pow((densityPressure / p + 1), (2.0 / 7.0)) - 1)), 0.5);
49          tat = ((oat + 273.15) / (1 + 0.2 * 0.8 * Math.pow(mach, 2)) - 273.15);
50          double calibratedSpeed = 38.967854 * Math.sqrt(tat + 273.15);
51          tas = calibratedSpeed * 0.4523;
52      }
53  
54      public double getTAS() {
55          return Math.rint(tas);
56      }
57  
58      public double getTrueAirTemperature() {
59          return tat;
60      }
61  
62      public double getMach() {
63          return mach;
64      }
65  }