1 package org.wcb.e6b;
2
3
4
5
6
7
8
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 }