Source code for RCAIDE.Library.Mission.Common.Unpack_Unknowns.energy
# RCAIDE/Library/Missions/Common/Unpack_Unknowns/energy.py
#
#
# Created: Jul 2023, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# Unpack Unknowns
# ----------------------------------------------------------------------------------------------------------------------
[docs]
def unknowns(segment):
ACV_T = segment.assigned_control_variables.throttle
ACV_TA = segment.assigned_control_variables.thrust_vector_angle
ACV_RBPC = segment.assigned_control_variables.rotor_blade_pitch_command
for network in segment.analyses.energy.vehicle.networks:
if 'throttle' in segment:
for propulsor in network.propulsors:
segment.state.conditions.energy.propulsors[propulsor.tag].throttle[:,0] = segment.throttle
if ACV_T.active:
for i in range(len(ACV_T.assigned_propulsors)):
propulsor_group = ACV_T.assigned_propulsors[i]
for propulsor_name in propulsor_group:
segment.state.conditions.energy.propulsors[propulsor_name].throttle = segment.state.unknowns["throttle_" + str(i)]
## Thrust Vector Control
#if ACV_TA.active:
#for i in range(len(ACV_TA.assigned_propulsors)):
#propulsor_group = ACV_TA.assigned_propulsors[i]
#for propulsor_name in propulsor_group:
#segment.state.conditions.energy.propulsors[propulsor_name].commanded_thrust_vector_angle = segment.state.unknowns["thrust_vector_" + str(i)]
## Thrust Vector Control
#if ACV_RBPC.active:
#for i in range(len(ACV_RBPC.assigned_propulsors)):
#propulsor_group = ACV_RBPC.assigned_propulsors[i]
#for propulsor_name in propulsor_group:
#propulsor = network.propulsors[propulsor_name]
#rotor = propulsor.rotor
#segment.state.conditions.energy.propulsors[propulsor_name][rotor.tag].blade_pitch_command = segment.state.unknowns["blade_pitch_command_" + str(i)]
return