Thank you, Jim.
Here's a function coded in R:
e_pilot_density_altitude <-
function(
pres_alt = 0
, temp_C = 15
, dist_takeoff_sea_level = 1000
, climb_rate_sea_level = 500
, sw_propeller = c("fixed_pitch", "constant_speed")[2]
) {
density_altitude <-
145426 *
(1 -
(
( (288.16 - pres_alt * 0.001981) / 288.16 )^5.2563
/
( (273.16 + temp_C ) / 288.16 )
)^0.235
)
if(sw_propeller == c("fixed_pitch", "constant_speed")[1]) {
dist_takeoff_dens_alt <-
dist_takeoff_sea_level * (1 + ((density_altitude / 1000) * 0.150))
climb_rate_dens_alt <-
climb_rate_sea_level * (1 - ((density_altitude / 1000) * 0.075))
}
if(sw_propeller == c("fixed_pitch", "constant_speed")[2]) {
dist_takeoff_dens_alt <-
dist_takeoff_sea_level * (1 + ((density_altitude / 1000) * 0.130))
climb_rate_dens_alt <-
climb_rate_sea_level * (1 - ((density_altitude / 1000) * 0.070))
}
out <-
c(
density_altitude = round(density_altitude)
, dist_takeoff_dens_alt = round(dist_takeoff_dens_alt)
, climb_rate_dens_alt = round(climb_rate_dens_alt)
)
return(out)
}
Here are examples that are consistent with the Koch chart: e_pilot_density_altitude(
pres_alt = 0
, temp_C = 15
, dist_takeoff_sea_level = 1000
, climb_rate_sea_level = 500
, sw_propeller = c("fixed_pitch", "constant_speed")[1]
)
density_altitude dist_takeoff_dens_alt climb_rate_dens_alt
0 1000 500
e_pilot_density_altitude(
pres_alt = 7170
, temp_C = 30
, dist_takeoff_sea_level = 770
, climb_rate_sea_level = 900
, sw_propeller = c("fixed_pitch", "constant_speed")[1]
)
density_altitude dist_takeoff_dens_alt climb_rate_dens_alt
10422 1974 197
e_pilot_density_altitude(
pres_alt = 7170
, temp_C = 30
, dist_takeoff_sea_level = 770
, climb_rate_sea_level = 900
, sw_propeller = c("fixed_pitch", "constant_speed")[2]
)
density_altitude dist_takeoff_dens_alt climb_rate_dens_alt
10422 1813 243
https://github.com/erikerhardt/erikmisc
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)