Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update inconsistent naming for angle of attack #647

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open
26 changes: 13 additions & 13 deletions aviary/mission/flops_based/ode/landing_eom.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def setup(self):
Dynamic.Vehicle.LIFT,
Dynamic.Vehicle.Propulsion.THRUST_TOTAL,
Dynamic.Vehicle.DRAG,
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
]

Expand Down Expand Up @@ -113,7 +113,7 @@ def setup(self):
Dynamic.Vehicle.MASS,
Dynamic.Vehicle.LIFT,
Dynamic.Vehicle.DRAG,
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
]

Expand Down Expand Up @@ -165,7 +165,7 @@ def setup(self):
add_aviary_input(self, Dynamic.Vehicle.LIFT, val=np.ones(nn), units='N')
add_aviary_input(self, Dynamic.Vehicle.DRAG, val=np.ones(nn), units='N')

self.add_input('angle_of_attack', val=np.zeros(nn), units='rad')
self.add_input(Dynamic.Vehicle.ANGLE_OF_ATTACK, val=np.zeros(nn), units='rad')

add_aviary_input(
self, Dynamic.Mission.FLIGHT_PATH_ANGLE, val=np.zeros(nn), units='rad'
Expand Down Expand Up @@ -204,7 +204,7 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):

weight = mass * grav_metric

alpha = inputs['angle_of_attack']
alpha = inputs[Dynamic.Vehicle.ANGLE_OF_ATTACK]
gamma = inputs[Dynamic.Mission.FLIGHT_PATH_ANGLE]

# FLOPS measures glideslope below horizontal
Expand Down Expand Up @@ -242,7 +242,7 @@ def compute_partials(self, inputs, J, discrete_inputs=None):

weight = mass * grav_metric

alpha = inputs['angle_of_attack']
alpha = inputs[Dynamic.Vehicle.ANGLE_OF_ATTACK]
gamma = inputs[Dynamic.Mission.FLIGHT_PATH_ANGLE]

# FLOPS measures glideslope below horizontal
Expand Down Expand Up @@ -284,8 +284,8 @@ def compute_partials(self, inputs, J, discrete_inputs=None):
f_h = t_angle * (drag - weight * s_gamma) / c_angle
f_v = -(weight * c_gamma - lift) / (s_angle * t_angle)

J[forces_key, 'angle_of_attack'] = f_h - f_v
J[thrust_key, 'angle_of_attack'] = (f_h + f_v) / (2.)
J[forces_key, Dynamic.Vehicle.ANGLE_OF_ATTACK] = f_h - f_v
J[thrust_key, Dynamic.Vehicle.ANGLE_OF_ATTACK] = (f_h + f_v) / (2.)

f_h = -weight * c_gamma / c_angle
f_v = -weight * s_gamma / s_angle
Expand Down Expand Up @@ -320,7 +320,7 @@ def setup(self):
val=np.ones(nn), units='N')
add_aviary_input(self, Dynamic.Vehicle.DRAG, val=np.ones(nn), units='N')

self.add_input('angle_of_attack', val=np.zeros(nn), units='rad')
self.add_input(Dynamic.Vehicle.ANGLE_OF_ATTACK, val=np.zeros(nn), units='rad')

add_aviary_input(
self, Dynamic.Mission.FLIGHT_PATH_ANGLE, val=np.zeros(nn), units='rad'
Expand Down Expand Up @@ -351,7 +351,7 @@ def setup_partials(self):
Dynamic.Vehicle.LIFT,
Dynamic.Vehicle.Propulsion.THRUST_TOTAL,
Dynamic.Vehicle.DRAG,
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
]

Expand All @@ -370,7 +370,7 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
thrust = inputs[Dynamic.Vehicle.Propulsion.THRUST_TOTAL]
drag = inputs[Dynamic.Vehicle.DRAG]

alpha = inputs['angle_of_attack']
alpha = inputs[Dynamic.Vehicle.ANGLE_OF_ATTACK]
gamma = inputs[Dynamic.Mission.FLIGHT_PATH_ANGLE]

# FLOPS measures glideslope below horizontal
Expand Down Expand Up @@ -408,7 +408,7 @@ def compute_partials(self, inputs, J, discrete_inputs=None):
thrust = inputs[Dynamic.Vehicle.Propulsion.THRUST_TOTAL]
drag = inputs[Dynamic.Vehicle.DRAG]

alpha = inputs['angle_of_attack']
alpha = inputs[Dynamic.Vehicle.ANGLE_OF_ATTACK]
gamma = inputs[Dynamic.Mission.FLIGHT_PATH_ANGLE]

# FLOPS measures glideslope below horizontal
Expand All @@ -434,8 +434,8 @@ def compute_partials(self, inputs, J, discrete_inputs=None):
J[f_h_key, Dynamic.Vehicle.DRAG] = c_gamma
J[f_v_key, Dynamic.Vehicle.DRAG] = s_gamma

J[f_h_key, 'angle_of_attack'] = thrust * s_angle
J[f_v_key, 'angle_of_attack'] = thrust * c_angle
J[f_h_key, Dynamic.Vehicle.ANGLE_OF_ATTACK] = thrust * s_angle
J[f_v_key, Dynamic.Vehicle.ANGLE_OF_ATTACK] = thrust * c_angle

f_h = -drag * s_gamma - lift * c_gamma - thrust * s_angle
J[f_h_key, Dynamic.Mission.FLIGHT_PATH_ANGLE] = -f_h
Expand Down
2 changes: 1 addition & 1 deletion aviary/mission/flops_based/ode/landing_ode.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ def setup(self):
Dynamic.Vehicle.LIFT,
Dynamic.Vehicle.Propulsion.THRUST_TOTAL,
Dynamic.Vehicle.DRAG,
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
'angle_of_attack_rate',
Mission.Landing.FLARE_RATE,
],
Expand Down
26 changes: 13 additions & 13 deletions aviary/mission/flops_based/ode/takeoff_eom.py
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@ def setup(self):
val=np.ones(nn), units='N')
add_aviary_input(self, Dynamic.Vehicle.DRAG, val=np.ones(nn), units='N')

self.add_input('angle_of_attack', val=np.zeros(nn), units='rad')
self.add_input(Dynamic.Vehicle.ANGLE_OF_ATTACK, val=np.zeros(nn), units='rad')

add_aviary_input(
self, Dynamic.Mission.FLIGHT_PATH_ANGLE, val=np.zeros(nn), units='rad'
Expand Down Expand Up @@ -586,7 +586,7 @@ def setup_partials(self):
Dynamic.Vehicle.Propulsion.THRUST_TOTAL,
Dynamic.Vehicle.LIFT,
Dynamic.Vehicle.DRAG,
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
]

Expand Down Expand Up @@ -635,7 +635,7 @@ def setup_partials(self):

self.declare_partials(
'forces_horizontal',
['angle_of_attack', Dynamic.Mission.FLIGHT_PATH_ANGLE],
[Dynamic.Vehicle.ANGLE_OF_ATTACK, Dynamic.Mission.FLIGHT_PATH_ANGLE],
dependent=False,
)

Expand Down Expand Up @@ -664,7 +664,7 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):
alpha0 = \
aviary_options.get_val(Mission.Takeoff.ANGLE_OF_ATTACK_RUNWAY, 'rad')

alpha = inputs['angle_of_attack']
alpha = inputs[Dynamic.Vehicle.ANGLE_OF_ATTACK]
gamma = inputs[Dynamic.Mission.FLIGHT_PATH_ANGLE]

angle = alpha - alpha0 + t_inc + gamma
Expand Down Expand Up @@ -713,7 +713,7 @@ def compute_partials(self, inputs, J, discrete_inputs=None):
thrust = inputs[Dynamic.Vehicle.Propulsion.THRUST_TOTAL]
drag = inputs[Dynamic.Vehicle.DRAG]

alpha = inputs['angle_of_attack']
alpha = inputs[Dynamic.Vehicle.ANGLE_OF_ATTACK]
gamma = inputs[Dynamic.Mission.FLIGHT_PATH_ANGLE]

angle = alpha - alpha0 + t_inc + gamma
Expand All @@ -733,8 +733,8 @@ def compute_partials(self, inputs, J, discrete_inputs=None):
J['forces_horizontal', Dynamic.Vehicle.DRAG] = -c_gamma
J['forces_vertical', Dynamic.Vehicle.DRAG] = -s_gamma

J['forces_horizontal', 'angle_of_attack'] = -thrust * s_angle
J['forces_vertical', 'angle_of_attack'] = thrust * c_angle
J['forces_horizontal', Dynamic.Vehicle.ANGLE_OF_ATTACK] = -thrust * s_angle
J['forces_vertical', Dynamic.Vehicle.ANGLE_OF_ATTACK] = thrust * c_angle

J['forces_horizontal', Dynamic.Mission.FLIGHT_PATH_ANGLE] = (
-thrust * s_angle + drag * s_gamma - lift * c_gamma
Expand Down Expand Up @@ -772,7 +772,7 @@ def setup(self):
)
add_aviary_input(self, Dynamic.Vehicle.DRAG, val=np.ones(nn), units='N')

self.add_input('angle_of_attack', val=np.zeros(nn), units='rad')
self.add_input(Dynamic.Vehicle.ANGLE_OF_ATTACK, val=np.zeros(nn), units='rad')

add_aviary_input(
self, Dynamic.Mission.FLIGHT_PATH_ANGLE, val=np.zeros(nn), units='rad'
Expand Down Expand Up @@ -800,7 +800,7 @@ def setup_partials(self):
[
Dynamic.Vehicle.MASS,
Dynamic.Vehicle.Propulsion.THRUST_TOTAL,
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
],
rows=rows_cols,
Expand Down Expand Up @@ -846,7 +846,7 @@ def compute(self, inputs, outputs, discrete_inputs=None, discrete_outputs=None):

weight = mass * grav_metric

alpha = inputs['angle_of_attack']
alpha = inputs[Dynamic.Vehicle.ANGLE_OF_ATTACK]
gamma = inputs[Dynamic.Mission.FLIGHT_PATH_ANGLE]

angle = alpha - alpha0 + t_inc
Expand Down Expand Up @@ -880,7 +880,7 @@ def compute_partials(self, inputs, J, discrete_inputs=None):

weight = mass * grav_metric

alpha = inputs['angle_of_attack']
alpha = inputs[Dynamic.Vehicle.ANGLE_OF_ATTACK]
gamma = inputs[Dynamic.Mission.FLIGHT_PATH_ANGLE]

angle = alpha - alpha0 + t_inc
Expand All @@ -900,8 +900,8 @@ def compute_partials(self, inputs, J, discrete_inputs=None):
J[f_h_key, Dynamic.Vehicle.Propulsion.THRUST_TOTAL] = c_angle
J[f_v_key, Dynamic.Vehicle.Propulsion.THRUST_TOTAL] = s_angle

J[f_h_key, 'angle_of_attack'] = -thrust * s_angle
J[f_v_key, 'angle_of_attack'] = thrust * c_angle
J[f_h_key, Dynamic.Vehicle.ANGLE_OF_ATTACK] = -thrust * s_angle
J[f_v_key, Dynamic.Vehicle.ANGLE_OF_ATTACK] = thrust * c_angle

J[f_h_key, Dynamic.Mission.FLIGHT_PATH_ANGLE] = -weight * c_gamma
J[f_v_key, Dynamic.Mission.FLIGHT_PATH_ANGLE] = weight * s_gamma
2 changes: 1 addition & 1 deletion aviary/mission/flops_based/ode/takeoff_ode.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ def setup(self):
Dynamic.Vehicle.LIFT,
Dynamic.Vehicle.Propulsion.THRUST_TOTAL,
Dynamic.Vehicle.DRAG,
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
],
promotes_outputs=[
Dynamic.Mission.DISTANCE_RATE,
Expand Down
6 changes: 3 additions & 3 deletions aviary/mission/flops_based/ode/test/test_landing_eom.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def test_case(self):
input_validation_data=detailed_landing_flare,
output_validation_data=detailed_landing_flare,
input_keys=[
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
Dynamic.Mission.VELOCITY,
Dynamic.Vehicle.MASS,
Expand Down Expand Up @@ -107,7 +107,7 @@ def test_GlideSlopeForces(self):
units="N",
)
prob.model.set_input_defaults(
"angle_of_attack", np.array([5.086, 6.834]), units="deg"
Dynamic.Vehicle.ANGLE_OF_ATTACK, np.array([5.086, 6.834]), units="deg"
)
prob.model.set_input_defaults(
Dynamic.Mission.FLIGHT_PATH_ANGLE, np.array([-3.0, -2.47]), units="deg"
Expand Down Expand Up @@ -153,7 +153,7 @@ def test_FlareSumForces(self):
Dynamic.Vehicle.Propulsion.THRUST_TOTAL, np.array([4980.3, 4102]), units="N"
)
prob.model.set_input_defaults(
"angle_of_attack", np.array([5.086, 6.834]), units="deg"
Dynamic.Vehicle.ANGLE_OF_ATTACK, np.array([5.086, 6.834]), units="deg"
)
prob.model.set_input_defaults(
Dynamic.Mission.FLIGHT_PATH_ANGLE, np.array([-3.0, -2.47]), units="deg"
Expand Down
2 changes: 1 addition & 1 deletion aviary/mission/flops_based/ode/test/test_landing_ode.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def test_case(self):
input_validation_data=detailed_landing_flare,
output_validation_data=detailed_landing_flare,
input_keys=[
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
Dynamic.Mission.VELOCITY,
Dynamic.Vehicle.MASS,
Expand Down
6 changes: 3 additions & 3 deletions aviary/mission/flops_based/ode/test/test_takeoff_eom.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def test_case_ground(self):
input_validation_data=detailed_takeoff_ground,
output_validation_data=detailed_takeoff_ground,
input_keys=[
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
Dynamic.Mission.VELOCITY,
Dynamic.Vehicle.MASS,
Expand All @@ -54,7 +54,7 @@ def test_case_climbing(self):
input_validation_data=detailed_takeoff_climbing,
output_validation_data=detailed_takeoff_climbing,
input_keys=[
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
Dynamic.Mission.VELOCITY,
Dynamic.Vehicle.MASS,
Expand Down Expand Up @@ -395,7 +395,7 @@ def test_ClimbGradientForces(self):
Dynamic.Mission.FLIGHT_PATH_ANGLE, np.array([0.612, 4.096]), units="rad"
)
prob.model.set_input_defaults(
"angle_of_attack", np.array([5.086, 6.834]), units="rad"
Dynamic.Vehicle.ANGLE_OF_ATTACK, np.array([5.086, 6.834]), units="rad"
)

prob.setup(check=False, force_alloc_complex=True)
Expand Down
4 changes: 2 additions & 2 deletions aviary/mission/flops_based/ode/test/test_takeoff_ode.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def test_case_ground(self):
input_validation_data=detailed_takeoff_ground,
output_validation_data=detailed_takeoff_ground,
input_keys=[
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
Dynamic.Mission.ALTITUDE,
Dynamic.Mission.VELOCITY,
Expand Down Expand Up @@ -60,7 +60,7 @@ def test_case_climbing(self):
input_validation_data=detailed_takeoff_climbing,
output_validation_data=detailed_takeoff_climbing,
input_keys=[
'angle_of_attack',
Dynamic.Vehicle.ANGLE_OF_ATTACK,
Dynamic.Mission.FLIGHT_PATH_ANGLE,
Dynamic.Mission.ALTITUDE,
Dynamic.Mission.VELOCITY,
Expand Down
20 changes: 10 additions & 10 deletions aviary/mission/flops_based/phases/detailed_landing_phases.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ def build_phase(self, aviary_options: AviaryValues = None):
angle_of_attack_ref = user_options.get_val('angle_of_attack_ref', units)

phase.add_control(
'angle_of_attack', opt=True, units=units,
Dynamic.Vehicle.ANGLE_OF_ATTACK, opt=True, units=units,
upper=upper_angle_of_attack, lower=lower_angle_of_attack,
ref=angle_of_attack_ref
)
Expand Down Expand Up @@ -275,7 +275,7 @@ def _extra_ode_init_kwargs(self):
LandingApproachToMicP3._add_meta_data('initial_height', val=1., units='ft')

LandingApproachToMicP3._add_initial_guess_meta_data(
InitialGuessControl('angle_of_attack'))
InitialGuessControl(Dynamic.Vehicle.ANGLE_OF_ATTACK))

LandingApproachToMicP3._add_initial_guess_meta_data(InitialGuessState('altitude'))

Expand Down Expand Up @@ -530,7 +530,7 @@ def build_phase(self, aviary_options: AviaryValues = None):
opt=False
)

phase.add_control('angle_of_attack', opt=False, units='deg')
phase.add_control(Dynamic.Vehicle.ANGLE_OF_ATTACK, opt=False, units='deg')

phase.add_timeseries_output(
Dynamic.Vehicle.DRAG, output_name=Dynamic.Vehicle.DRAG, units='lbf'
Expand Down Expand Up @@ -590,7 +590,7 @@ def _extra_ode_init_kwargs(self):
LandingObstacleToFlare._add_meta_data('altitude_ref', val=1., units='ft')

LandingObstacleToFlare._add_initial_guess_meta_data(
InitialGuessControl('angle_of_attack'))
InitialGuessControl(Dynamic.Vehicle.ANGLE_OF_ATTACK))

LandingObstacleToFlare._add_initial_guess_meta_data(InitialGuessState('altitude'))

Expand Down Expand Up @@ -763,7 +763,7 @@ def build_phase(self, aviary_options: AviaryValues = None):
angle_of_attack_ref = user_options.get_val('angle_of_attack_ref', units)

phase.add_polynomial_control(
'angle_of_attack', opt=True, units=units, order=1,
Dynamic.Vehicle.ANGLE_OF_ATTACK, opt=True, units=units, order=1,
lower=lower_angle_of_attack, upper=upper_angle_of_attack,
ref=angle_of_attack_ref,
rate_targets="angle_of_attack_rate"
Expand Down Expand Up @@ -829,7 +829,7 @@ def _extra_ode_init_kwargs(self):
LandingFlareToTouchdown._add_meta_data('angle_of_attack_ref', val=10., units='deg')

LandingFlareToTouchdown._add_initial_guess_meta_data(
InitialGuessPolynomialControl('angle_of_attack'))
InitialGuessPolynomialControl(Dynamic.Vehicle.ANGLE_OF_ATTACK))

LandingFlareToTouchdown._add_initial_guess_meta_data(InitialGuessState('altitude'))

Expand Down Expand Up @@ -974,7 +974,7 @@ def build_phase(self, aviary_options=None):
max_angle_of_attack = user_options.get_val('max_angle_of_attack', units)

phase.add_polynomial_control(
'angle_of_attack', opt=True, units=units, order=1,
Dynamic.Vehicle.ANGLE_OF_ATTACK, opt=True, units=units, order=1,
lower=0, upper=max_angle_of_attack, fix_final=True,
fix_initial=False, ref=max_angle_of_attack)

Expand Down Expand Up @@ -1019,7 +1019,7 @@ def _extra_ode_init_kwargs(self):
LandingTouchdownToNoseDown._add_meta_data('max_angle_of_attack', val=10.0, units='deg')

LandingTouchdownToNoseDown._add_initial_guess_meta_data(
InitialGuessPolynomialControl('angle_of_attack'))
InitialGuessPolynomialControl(Dynamic.Vehicle.ANGLE_OF_ATTACK))


@_init_initial_guess_meta_data
Expand Down Expand Up @@ -1155,7 +1155,7 @@ def build_phase(self, aviary_options=None):
opt=False
)

phase.add_parameter('angle_of_attack', val=0.0, opt=False, units='deg')
phase.add_parameter(Dynamic.Vehicle.ANGLE_OF_ATTACK, val=0.0, opt=False, units='deg')

phase.add_timeseries_output(
Dynamic.Vehicle.Propulsion.THRUST_TOTAL,
Expand Down Expand Up @@ -1196,7 +1196,7 @@ def _extra_ode_init_kwargs(self):
LandingNoseDownToStop._add_meta_data('max_velocity', val=100.0, units='ft/s')

LandingNoseDownToStop._add_initial_guess_meta_data(
InitialGuessParameter('angle_of_attack'))
InitialGuessParameter(Dynamic.Vehicle.ANGLE_OF_ATTACK))


class LandingTrajectory:
Expand Down
Loading
Loading