Source code for RCAIDE.Library.Methods.Aerodynamics.Vortex_Lattice_Method.build_VLM_surrogates

# RCAIDE/Library/Methods/Aerodynamics/Vortex_Lattice_Method/build_VLM_surrogates.py
#  
# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ----------------------------------------------------------------------------------------------------------------------

# RCAIDE imports
from RCAIDE.Framework.Core import  Data 

# package imports 
from scipy.interpolate                                           import RegularGridInterpolator
from scipy import interpolate

# ----------------------------------------------------------------------------------------------------------------------
#  Vortex_Lattice
# ----------------------------------------------------------------------------------------------------------------------   
[docs] def build_VLM_surrogates(aerodynamics): """Build a surrogate using sample evaluation results. Assumptions: None Source: None Args: aerodynamics : VLM analysis [unitless] Returns: None """ surrogates = aerodynamics.surrogates training = aerodynamics.training Mach = aerodynamics.training.Mach training = aerodynamics.training sub_len = int(sum(Mach<1.)) sup_Mach = Mach[sub_len:] surrogates.subsonic = build_surrogate(aerodynamics, training.subsonic) # only build supersonic surrogates if necessary if len(sup_Mach) > 2: surrogates.supersonic = build_surrogate(aerodynamics, training.supersonic) surrogates.transonic = build_surrogate(aerodynamics, training.transonic) else: surrogates.supersonic = no_surrogate(aerodynamics, training.supersonic) surrogates.transonic = no_surrogate(aerodynamics, training.transonic) return
[docs] def build_surrogate(aerodynamics, training): # unpack data surrogates = Data() mach_data = training.Mach vehicle = aerodynamics.vehicle AoA_data = aerodynamics.training.angle_of_attack Beta_data = aerodynamics.training.sideslip_angle u_data = aerodynamics.training.u v_data = aerodynamics.training.v w_data = aerodynamics.training.w p_data = aerodynamics.training.roll_rate q_data = aerodynamics.training.pitch_rate r_data = aerodynamics.training.yaw_rate aileron_data = aerodynamics.training.aileron_deflection elevator_data = aerodynamics.training.elevator_deflection rudder_data = aerodynamics.training.rudder_deflection flap_data = aerodynamics.training.flap_deflection slat_data = aerodynamics.training.slat_deflection surrogates.Clift_wing_alpha = Data() surrogates.Cdrag_wing_alpha = Data() for wing in vehicle.wings: surrogates.Clift_wing_alpha[wing.tag] = RegularGridInterpolator((AoA_data ,mach_data),training.Clift_wing_alpha[wing.tag],method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_wing_alpha[wing.tag] = RegularGridInterpolator((AoA_data ,mach_data),training.Cdrag_wing_alpha[wing.tag],method = 'linear', bounds_error=False, fill_value=None) # Pack the outputs surrogates.Clift_alpha = RegularGridInterpolator((AoA_data ,mach_data),training.Clift_alpha ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Clift_beta = RegularGridInterpolator((Beta_data,mach_data),training.Clift_beta ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Clift_u = RegularGridInterpolator((u_data,mach_data),training.Clift_u ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Clift_v = RegularGridInterpolator((v_data,mach_data),training.Clift_v ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Clift_w = RegularGridInterpolator((w_data,mach_data),training.Clift_w ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Clift_p = RegularGridInterpolator((p_data,mach_data),training.Clift_p ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Clift_q = RegularGridInterpolator((q_data,mach_data),training.Clift_q ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Clift_r = RegularGridInterpolator((r_data,mach_data),training.Clift_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_alpha = RegularGridInterpolator((AoA_data,mach_data),training.Cdrag_alpha ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_beta = RegularGridInterpolator((Beta_data,mach_data),training.Cdrag_beta ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_u = RegularGridInterpolator((u_data,mach_data),training.Cdrag_u ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_v = RegularGridInterpolator((v_data,mach_data),training.Cdrag_v ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_w = RegularGridInterpolator((w_data,mach_data),training.Cdrag_w ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_p = RegularGridInterpolator((p_data,mach_data),training.Cdrag_p ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_q = RegularGridInterpolator((q_data,mach_data),training.Cdrag_q ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_r = RegularGridInterpolator((r_data,mach_data),training.Cdrag_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_alpha = RegularGridInterpolator((AoA_data,mach_data),training.CX_alpha ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_beta = RegularGridInterpolator((Beta_data,mach_data),training.CX_beta ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_u = RegularGridInterpolator((u_data,mach_data),training.CX_u ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_v = RegularGridInterpolator((v_data,mach_data),training.CX_v ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_w = RegularGridInterpolator((w_data,mach_data),training.CX_w ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_p = RegularGridInterpolator((p_data,mach_data),training.CX_p ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_q = RegularGridInterpolator((q_data,mach_data),training.CX_q ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_r = RegularGridInterpolator((r_data,mach_data),training.CX_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_alpha = RegularGridInterpolator((AoA_data,mach_data),training.CY_alpha ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_beta = RegularGridInterpolator((Beta_data,mach_data),training.CY_beta ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_u = RegularGridInterpolator((u_data,mach_data),training.CY_u ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_v = RegularGridInterpolator((v_data,mach_data),training.CY_v ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_w = RegularGridInterpolator((w_data,mach_data),training.CY_w ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_p = RegularGridInterpolator((p_data,mach_data),training.CY_p ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_q = RegularGridInterpolator((q_data,mach_data),training.CY_q ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_r = RegularGridInterpolator((r_data,mach_data),training.CY_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_alpha = RegularGridInterpolator((AoA_data,mach_data),training.CZ_alpha ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_beta = RegularGridInterpolator((Beta_data,mach_data),training.CZ_beta ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_u = RegularGridInterpolator((u_data,mach_data),training.CZ_u ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_v = RegularGridInterpolator((v_data,mach_data),training.CZ_v ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_w = RegularGridInterpolator((w_data,mach_data),training.CZ_w ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_p = RegularGridInterpolator((p_data,mach_data),training.CZ_p ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_q = RegularGridInterpolator((q_data,mach_data),training.CZ_q ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_r = RegularGridInterpolator((r_data,mach_data),training.CZ_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_alpha = RegularGridInterpolator((AoA_data,mach_data),training.CL_alpha ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_beta = RegularGridInterpolator((Beta_data,mach_data),training.CL_beta ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_u = RegularGridInterpolator((u_data,mach_data),training.CL_u ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_v = RegularGridInterpolator((v_data,mach_data),training.CL_v ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_w = RegularGridInterpolator((w_data,mach_data),training.CL_w ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_p = RegularGridInterpolator((p_data,mach_data),training.CL_p ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_q = RegularGridInterpolator((q_data,mach_data),training.CL_q ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_r = RegularGridInterpolator((r_data,mach_data),training.CL_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_alpha = RegularGridInterpolator((AoA_data,mach_data),training.CM_alpha ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_beta = RegularGridInterpolator((Beta_data,mach_data),training.CM_beta ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_u = RegularGridInterpolator((u_data,mach_data),training.CM_u ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_v = RegularGridInterpolator((v_data,mach_data),training.CM_v ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_w = RegularGridInterpolator((w_data,mach_data),training.CM_w ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_p = RegularGridInterpolator((p_data,mach_data),training.CM_p ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_q = RegularGridInterpolator((q_data,mach_data),training.CM_q ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_r = RegularGridInterpolator((r_data,mach_data),training.CM_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_alpha = RegularGridInterpolator((AoA_data,mach_data),training.CN_alpha ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_beta = RegularGridInterpolator((Beta_data,mach_data),training.CN_beta ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_u = RegularGridInterpolator((u_data,mach_data),training.CN_u ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_v = RegularGridInterpolator((v_data,mach_data),training.CN_v ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_w = RegularGridInterpolator((w_data,mach_data),training.CN_w ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_p = RegularGridInterpolator((p_data,mach_data),training.CN_p ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_q = RegularGridInterpolator((q_data,mach_data),training.CN_q ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_r = RegularGridInterpolator((r_data,mach_data),training.CN_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.dClift_dalpha = interpolate.interp1d(mach_data,training.dClift_dalpha ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dClift_dbeta = interpolate.interp1d(mach_data,training.dClift_dbeta ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dClift_du = interpolate.interp1d(mach_data,training.dClift_du ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dClift_dv = interpolate.interp1d(mach_data,training.dClift_dv ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dClift_dw = interpolate.interp1d(mach_data,training.dClift_dw ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dClift_dp = interpolate.interp1d(mach_data,training.dClift_dp ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dClift_dq = interpolate.interp1d(mach_data,training.dClift_dq ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dClift_dr = interpolate.interp1d(mach_data,training.dClift_dr ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCdrag_dalpha = interpolate.interp1d(mach_data,training.dCdrag_dalpha ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCdrag_dbeta = interpolate.interp1d(mach_data,training.dCdrag_dbeta ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCdrag_du = interpolate.interp1d(mach_data,training.dCdrag_du ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCdrag_dv = interpolate.interp1d(mach_data,training.dCdrag_dv ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCdrag_dw = interpolate.interp1d(mach_data,training.dCdrag_dw ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCdrag_dp = interpolate.interp1d(mach_data,training.dCdrag_dp ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCdrag_dq = interpolate.interp1d(mach_data,training.dCdrag_dq ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCdrag_dr = interpolate.interp1d(mach_data,training.dCdrag_dr ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCX_dalpha = interpolate.interp1d(mach_data,training.dCX_dalpha ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCX_dbeta = interpolate.interp1d(mach_data,training.dCX_dbeta ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCX_du = interpolate.interp1d(mach_data,training.dCX_du ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCX_dv = interpolate.interp1d(mach_data,training.dCX_dv ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCX_dw = interpolate.interp1d(mach_data,training.dCX_dw ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCX_dp = interpolate.interp1d(mach_data,training.dCX_dp ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCX_dq = interpolate.interp1d(mach_data,training.dCX_dq ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCX_dr = interpolate.interp1d(mach_data,training.dCX_dr ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCY_dalpha = interpolate.interp1d(mach_data,training.dCY_dalpha ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCY_dbeta = interpolate.interp1d(mach_data,training.dCY_dbeta ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCY_du = interpolate.interp1d(mach_data,training.dCY_du ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCY_dv = interpolate.interp1d(mach_data,training.dCY_dv ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCY_dw = interpolate.interp1d(mach_data,training.dCY_dw ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCY_dp = interpolate.interp1d(mach_data,training.dCY_dp ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCY_dq = interpolate.interp1d(mach_data,training.dCY_dq ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCY_dr = interpolate.interp1d(mach_data,training.dCY_dr ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCZ_dalpha = interpolate.interp1d(mach_data,training.dCZ_dalpha ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCZ_dbeta = interpolate.interp1d(mach_data,training.dCZ_dbeta ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCZ_du = interpolate.interp1d(mach_data,training.dCZ_du ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCZ_dv = interpolate.interp1d(mach_data,training.dCZ_dv ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCZ_dw = interpolate.interp1d(mach_data,training.dCZ_dw ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCZ_dp = interpolate.interp1d(mach_data,training.dCZ_dp ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCZ_dq = interpolate.interp1d(mach_data,training.dCZ_dq ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCZ_dr = interpolate.interp1d(mach_data,training.dCZ_dr ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCL_dalpha = interpolate.interp1d(mach_data,training.dCL_dalpha ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCL_dbeta = interpolate.interp1d(mach_data,training.dCL_dbeta ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCL_du = interpolate.interp1d(mach_data,training.dCL_du ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCL_dv = interpolate.interp1d(mach_data,training.dCL_dv ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCL_dw = interpolate.interp1d(mach_data,training.dCL_dw ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCL_dp = interpolate.interp1d(mach_data,training.dCL_dp ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCL_dq = interpolate.interp1d(mach_data,training.dCL_dq ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCL_dr = interpolate.interp1d(mach_data,training.dCL_dr ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCM_dalpha = interpolate.interp1d(mach_data,training.dCM_dalpha ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCM_dbeta = interpolate.interp1d(mach_data,training.dCM_dbeta ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCM_du = interpolate.interp1d(mach_data,training.dCM_du ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCM_dv = interpolate.interp1d(mach_data,training.dCM_dv ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCM_dw = interpolate.interp1d(mach_data,training.dCM_dw ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCM_dp = interpolate.interp1d(mach_data,training.dCM_dp ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCM_dq = interpolate.interp1d(mach_data,training.dCM_dq ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCM_dr = interpolate.interp1d(mach_data,training.dCM_dr ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCN_dalpha = interpolate.interp1d(mach_data,training.dCN_dalpha ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCN_dbeta = interpolate.interp1d(mach_data,training.dCN_dbeta ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCN_du = interpolate.interp1d(mach_data,training.dCN_du ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCN_dv = interpolate.interp1d(mach_data,training.dCN_dv ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCN_dw = interpolate.interp1d(mach_data,training.dCN_dw ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCN_dp = interpolate.interp1d(mach_data,training.dCN_dp ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCN_dq = interpolate.interp1d(mach_data,training.dCN_dq ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCN_dr = interpolate.interp1d(mach_data,training.dCN_dr ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") if aerodynamics.aileron_flag: surrogates.Clift_delta_a = RegularGridInterpolator((aileron_data,mach_data),training.Clift_delta_a ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_delta_a = RegularGridInterpolator((aileron_data,mach_data),training.Cdrag_delta_a ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_delta_a = RegularGridInterpolator((aileron_data,mach_data),training.CX_delta_a ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_delta_a = RegularGridInterpolator((aileron_data,mach_data),training.CY_delta_a ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_delta_a = RegularGridInterpolator((aileron_data,mach_data),training.CZ_delta_a ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_delta_a = RegularGridInterpolator((aileron_data,mach_data),training.CL_delta_a ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_delta_a = RegularGridInterpolator((aileron_data,mach_data),training.CM_delta_a ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_delta_a = RegularGridInterpolator((aileron_data,mach_data),training.CN_delta_a ,method = 'linear', bounds_error=False, fill_value=None) surrogates.dClift_ddelta_a = interpolate.interp1d(mach_data,training.dClift_ddelta_a , kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCdrag_ddelta_a = interpolate.interp1d(mach_data,training.dCdrag_ddelta_a , kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCX_ddelta_a = interpolate.interp1d(mach_data,training.dCX_ddelta_a , kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCY_ddelta_a = interpolate.interp1d(mach_data,training.dCY_ddelta_a , kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCZ_ddelta_a = interpolate.interp1d(mach_data,training.dCZ_ddelta_a , kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCL_ddelta_a = interpolate.interp1d(mach_data,training.dCL_ddelta_a , kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCM_ddelta_a = interpolate.interp1d(mach_data,training.dCM_ddelta_a , kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCN_ddelta_a = interpolate.interp1d(mach_data,training.dCN_ddelta_a , kind = 'linear', bounds_error=False, fill_value="extrapolate") if aerodynamics.elevator_flag: surrogates.Clift_delta_e = RegularGridInterpolator((elevator_data,mach_data),training.Clift_delta_e ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_delta_e = RegularGridInterpolator((elevator_data,mach_data),training.Cdrag_delta_e ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_delta_e = RegularGridInterpolator((elevator_data,mach_data),training.CX_delta_e ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_delta_e = RegularGridInterpolator((elevator_data,mach_data),training.CY_delta_e ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_delta_e = RegularGridInterpolator((elevator_data,mach_data),training.CZ_delta_e ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_delta_e = RegularGridInterpolator((elevator_data,mach_data),training.CL_delta_e ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_delta_e = RegularGridInterpolator((elevator_data,mach_data),training.CM_delta_e ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_delta_e = RegularGridInterpolator((elevator_data,mach_data),training.CN_delta_e ,method = 'linear', bounds_error=False, fill_value=None) surrogates.dClift_ddelta_e = interpolate.interp1d(mach_data,training.dClift_ddelta_e ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCdrag_ddelta_e = interpolate.interp1d(mach_data,training.dCdrag_ddelta_e ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCX_ddelta_e = interpolate.interp1d(mach_data,training.dCX_ddelta_e ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCY_ddelta_e = interpolate.interp1d(mach_data,training.dCY_ddelta_e ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCZ_ddelta_e = interpolate.interp1d(mach_data,training.dCZ_ddelta_e ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCL_ddelta_e = interpolate.interp1d(mach_data,training.dCL_ddelta_e ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCM_ddelta_e = interpolate.interp1d(mach_data,training.dCM_ddelta_e ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") surrogates.dCN_ddelta_e = interpolate.interp1d(mach_data,training.dCN_ddelta_e ,kind = 'linear', bounds_error=False, fill_value= "extrapolate") if aerodynamics.rudder_flag: surrogates.Clift_delta_r = RegularGridInterpolator((rudder_data,mach_data),training.Clift_delta_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_delta_r = RegularGridInterpolator((rudder_data,mach_data),training.Cdrag_delta_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_delta_r = RegularGridInterpolator((rudder_data,mach_data),training.CX_delta_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_delta_r = RegularGridInterpolator((rudder_data,mach_data),training.CY_delta_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_delta_r = RegularGridInterpolator((rudder_data,mach_data),training.CZ_delta_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_delta_r = RegularGridInterpolator((rudder_data,mach_data),training.CL_delta_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_delta_r = RegularGridInterpolator((rudder_data,mach_data),training.CM_delta_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_delta_r = RegularGridInterpolator((rudder_data,mach_data),training.CN_delta_r ,method = 'linear', bounds_error=False, fill_value=None) surrogates.dClift_ddelta_r = interpolate.interp1d(mach_data,training.dClift_ddelta_r ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCdrag_ddelta_r = interpolate.interp1d(mach_data,training.dCdrag_ddelta_r ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCX_ddelta_r = interpolate.interp1d(mach_data,training.dCX_ddelta_r ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCY_ddelta_r = interpolate.interp1d(mach_data,training.dCY_ddelta_r ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCZ_ddelta_r = interpolate.interp1d(mach_data,training.dCZ_ddelta_r ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCL_ddelta_r = interpolate.interp1d(mach_data,training.dCL_ddelta_r ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCM_ddelta_r = interpolate.interp1d(mach_data,training.dCM_ddelta_r ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCN_ddelta_r = interpolate.interp1d(mach_data,training.dCN_ddelta_r ,kind = 'linear', bounds_error=False, fill_value="extrapolate") if aerodynamics.flap_flag: surrogates.Clift_delta_f = RegularGridInterpolator((flap_data,mach_data),training.Clift_delta_f ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_delta_f = RegularGridInterpolator((flap_data,mach_data),training.Cdrag_delta_f ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_delta_f = RegularGridInterpolator((flap_data,mach_data),training.CX_delta_f ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_delta_f = RegularGridInterpolator((flap_data,mach_data),training.CY_delta_f ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_delta_f = RegularGridInterpolator((flap_data,mach_data),training.CZ_delta_f ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_delta_f = RegularGridInterpolator((flap_data,mach_data),training.CL_delta_f ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_delta_f = RegularGridInterpolator((flap_data,mach_data),training.CM_delta_f ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_delta_f = RegularGridInterpolator((flap_data,mach_data),training.CN_delta_f ,method = 'linear', bounds_error=False, fill_value=None) surrogates.dClift_ddelta_f = interpolate.interp1d(mach_data,training.dClift_ddelta_f ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCdrag_ddelta_f = interpolate.interp1d(mach_data,training.dCdrag_ddelta_f ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCX_ddelta_f = interpolate.interp1d(mach_data,training.dCX_ddelta_f ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCY_ddelta_f = interpolate.interp1d(mach_data,training.dCY_ddelta_f ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCZ_ddelta_f = interpolate.interp1d(mach_data,training.dCZ_ddelta_f ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCL_ddelta_f = interpolate.interp1d(mach_data,training.dCL_ddelta_f ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCM_ddelta_f = interpolate.interp1d(mach_data,training.dCM_ddelta_f ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCN_ddelta_f = interpolate.interp1d(mach_data,training.dCN_ddelta_f ,kind = 'linear', bounds_error=False, fill_value="extrapolate") if aerodynamics.slat_flag: surrogates.Clift_delta_s = RegularGridInterpolator((slat_data,mach_data),training.Clift_delta_s ,method = 'linear', bounds_error=False, fill_value=None) surrogates.Cdrag_delta_s = RegularGridInterpolator((slat_data,mach_data),training.Cdrag_delta_s ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CX_delta_s = RegularGridInterpolator((slat_data,mach_data),training.CX_delta_s ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CY_delta_s = RegularGridInterpolator((slat_data,mach_data),training.CY_delta_s ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CZ_delta_s = RegularGridInterpolator((slat_data,mach_data),training.CZ_delta_s ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CL_delta_s = RegularGridInterpolator((slat_data,mach_data),training.CL_delta_s ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CM_delta_s = RegularGridInterpolator((slat_data,mach_data),training.CM_delta_s ,method = 'linear', bounds_error=False, fill_value=None) surrogates.CN_delta_s = RegularGridInterpolator((slat_data,mach_data),training.CN_delta_s ,method = 'linear', bounds_error=False, fill_value=None) surrogates.dClift_ddelta_s = interpolate.interp1d(mach_data,training.dClift_ddelta_s ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCdrag_ddelta_s = interpolate.interp1d(mach_data,training.dCdrag_ddelta_s ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCX_ddelta_s = interpolate.interp1d(mach_data,training.dCX_ddelta_s ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCY_ddelta_s = interpolate.interp1d(mach_data,training.dCY_ddelta_s ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCZ_ddelta_s = interpolate.interp1d(mach_data,training.dCZ_ddelta_s ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCL_ddelta_s = interpolate.interp1d(mach_data,training.dCL_ddelta_s ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCM_ddelta_s = interpolate.interp1d(mach_data,training.dCM_ddelta_s ,kind = 'linear', bounds_error=False, fill_value="extrapolate") surrogates.dCN_ddelta_s = interpolate.interp1d(mach_data,training.dCN_ddelta_s ,kind = 'linear', bounds_error=False, fill_value="extrapolate") return surrogates
[docs] def no_surrogate(aerodynamics, training): # unpack data surrogates = Data() vehicle = aerodynamics.vehicle surrogates.Clift_wing_alpha = Data() surrogates.Cdrag_wing_alpha = Data() for wing in vehicle.wings: surrogates.Clift_wing_alpha[wing.tag] =None surrogates.Cdrag_wing_alpha[wing.tag] =None # Pack the outputs surrogates.Clift_alpha = None surrogates.Clift_beta = None surrogates.Clift_u = None surrogates.Clift_v = None surrogates.Clift_w = None surrogates.Clift_p = None surrogates.Clift_q = None surrogates.Clift_r = None surrogates.Cdrag_alpha = None surrogates.Cdrag_beta = None surrogates.Cdrag_u = None surrogates.Cdrag_v = None surrogates.Cdrag_w = None surrogates.Cdrag_p = None surrogates.Cdrag_q = None surrogates.Cdrag_r = None surrogates.CX_alpha = None surrogates.CX_beta = None surrogates.CX_u = None surrogates.CX_v = None surrogates.CX_w = None surrogates.CX_p = None surrogates.CX_q = None surrogates.CX_r = None surrogates.CY_alpha = None surrogates.CY_beta = None surrogates.CY_u = None surrogates.CY_v = None surrogates.CY_w = None surrogates.CY_p = None surrogates.CY_q = None surrogates.CY_r = None surrogates.CZ_alpha = None surrogates.CZ_beta = None surrogates.CZ_u = None surrogates.CZ_v = None surrogates.CZ_w = None surrogates.CZ_p = None surrogates.CZ_q = None surrogates.CZ_r = None surrogates.CL_alpha = None surrogates.CL_beta = None surrogates.CL_u = None surrogates.CL_v = None surrogates.CL_w = None surrogates.CL_p = None surrogates.CL_q = None surrogates.CL_r = None surrogates.CM_alpha = None surrogates.CM_beta = None surrogates.CM_u = None surrogates.CM_v = None surrogates.CM_w = None surrogates.CM_p = None surrogates.CM_q = None surrogates.CM_r = None surrogates.CN_alpha = None surrogates.CN_beta = None surrogates.CN_u = None surrogates.CN_v = None surrogates.CN_w = None surrogates.CN_p = None surrogates.CN_q = None surrogates.CN_r = None surrogates.dClift_dalpha = None surrogates.dClift_dbeta = None surrogates.dClift_du = None surrogates.dClift_dv = None surrogates.dClift_dw = None surrogates.dClift_dp = None surrogates.dClift_dq = None surrogates.dClift_dr = None surrogates.dCdrag_dalpha = None surrogates.dCdrag_dbeta = None surrogates.dCdrag_du = None surrogates.dCdrag_dv = None surrogates.dCdrag_dw = None surrogates.dCdrag_dp = None surrogates.dCdrag_dq = None surrogates.dCdrag_dr = None surrogates.dCX_dalpha = None surrogates.dCX_dbeta = None surrogates.dCX_du = None surrogates.dCX_dv = None surrogates.dCX_dw = None surrogates.dCX_dp = None surrogates.dCX_dq = None surrogates.dCX_dr = None surrogates.dCY_dalpha = None surrogates.dCY_dbeta = None surrogates.dCY_du = None surrogates.dCY_dv = None surrogates.dCY_dw = None surrogates.dCY_dp = None surrogates.dCY_dq = None surrogates.dCY_dr = None surrogates.dCZ_dalpha = None surrogates.dCZ_dbeta = None surrogates.dCZ_du = None surrogates.dCZ_dv = None surrogates.dCZ_dw = None surrogates.dCZ_dp = None surrogates.dCZ_dq = None surrogates.dCZ_dr = None surrogates.dCL_dalpha = None surrogates.dCL_dbeta = None surrogates.dCL_du = None surrogates.dCL_dv = None surrogates.dCL_dw = None surrogates.dCL_dp = None surrogates.dCL_dq = None surrogates.dCL_dr = None surrogates.dCM_dalpha = None surrogates.dCM_dbeta = None surrogates.dCM_du = None surrogates.dCM_dv = None surrogates.dCM_dw = None surrogates.dCM_dp = None surrogates.dCM_dq = None surrogates.dCM_dr = None surrogates.dCN_dalpha = None surrogates.dCN_dbeta = None surrogates.dCN_du = None surrogates.dCN_dv = None surrogates.dCN_dw = None surrogates.dCN_dp = None surrogates.dCN_dq = None surrogates.dCN_dr = None if aerodynamics.aileron_flag: surrogates.Clift_delta_a = None surrogates.Cdrag_delta_a = None surrogates.CX_delta_a = None surrogates.CY_delta_a = None surrogates.CZ_delta_a = None surrogates.CL_delta_a = None surrogates.CM_delta_a = None surrogates.CN_delta_a = None surrogates.dClift_ddelta_a = None surrogates.dCdrag_ddelta_a = None surrogates.dCX_ddelta_a = None surrogates.dCY_ddelta_a = None surrogates.dCZ_ddelta_a = None surrogates.dCL_ddelta_a = None surrogates.dCM_ddelta_a = None surrogates.dCN_ddelta_a = None if aerodynamics.elevator_flag: surrogates.Clift_delta_e = None surrogates.Cdrag_delta_e = None surrogates.CX_delta_e = None surrogates.CY_delta_e = None surrogates.CZ_delta_e = None surrogates.CL_delta_e = None surrogates.CM_delta_e = None surrogates.CN_delta_e = None surrogates.dClift_ddelta_e = None surrogates.dCdrag_ddelta_e = None surrogates.dCX_ddelta_e = None surrogates.dCY_ddelta_e = None surrogates.dCZ_ddelta_e = None surrogates.dCL_ddelta_e = None surrogates.dCM_ddelta_e = None surrogates.dCN_ddelta_e = None if aerodynamics.rudder_flag: surrogates.Clift_delta_r = None surrogates.Cdrag_delta_r = None surrogates.CX_delta_r = None surrogates.CY_delta_r = None surrogates.CZ_delta_r = None surrogates.CL_delta_r = None surrogates.CM_delta_r = None surrogates.CN_delta_r = None surrogates.dClift_ddelta_r = None surrogates.dCdrag_ddelta_r = None surrogates.dCX_ddelta_r = None surrogates.dCY_ddelta_r = None surrogates.dCZ_ddelta_r = None surrogates.dCL_ddelta_r = None surrogates.dCM_ddelta_r = None surrogates.dCN_ddelta_r = None if aerodynamics.flap_flag: surrogates.Clift_delta_f = None surrogates.Cdrag_delta_f = None surrogates.CX_delta_f = None surrogates.CY_delta_f = None surrogates.CZ_delta_f = None surrogates.CL_delta_f = None surrogates.CM_delta_f = None surrogates.CN_delta_f = None surrogates.dClift_ddelta_f = None surrogates.dCdrag_ddelta_f = None surrogates.dCX_ddelta_f = None surrogates.dCY_ddelta_f = None surrogates.dCZ_ddelta_f = None surrogates.dCL_ddelta_f = None surrogates.dCM_ddelta_f = None surrogates.dCN_ddelta_f = None if aerodynamics.slat_flag: surrogates.Clift_delta_s = None surrogates.Cdrag_delta_s = None surrogates.CX_delta_s = None surrogates.CY_delta_s = None surrogates.CZ_delta_s = None surrogates.CL_delta_s = None surrogates.CM_delta_s = None surrogates.CN_delta_s = None surrogates.dClift_ddelta_s = None surrogates.dCdrag_ddelta_s = None surrogates.dCX_ddelta_s = None surrogates.dCY_ddelta_s = None surrogates.dCZ_ddelta_s = None surrogates.dCL_ddelta_s = None surrogates.dCM_ddelta_s = None surrogates.dCN_ddelta_s = None return surrogates