Source code for RCAIDE.Library.Mission.Common.Pre_Process.energy
# RCAIDE/Library/Missions/Common/Pre_Process/energy.py
#
#
# Created: Jul 2023, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE
# ----------------------------------------------------------------------------------------------------------------------
import RCAIDE
# ----------------------------------------------------------------------------------------------------------------------
# energy
# ----------------------------------------------------------------------------------------------------------------------
[docs]
def energy(mission):
""" Pre-processes energy network by appending all unknowns and residuals
"""
for segment in mission.segments:
for network in segment.analyses.energy.vehicle.networks:
if type(network) == RCAIDE.Framework.Networks.Hybrid:
if segment.hybrid_power_split_ratio == None:
raise AssertionError('Hybridization power split ratio not set! Specify in mission segment')
if segment.battery_fuel_cell_power_split_ratio == None:
raise AssertionError('Battery/Fuel cell power split ratio not set! Specify in mission segment')
elif type(network) == RCAIDE.Framework.Networks.Fuel:
if segment.hybrid_power_split_ratio == None:
segment.hybrid_power_split_ratio = 0.0
segment.battery_fuel_cell_power_split_ratio = 0.0
elif type(network) == RCAIDE.Framework.Networks.Electric:
if segment.hybrid_power_split_ratio == None:
segment.hybrid_power_split_ratio = 1.0
segment.battery_fuel_cell_power_split_ratio = 1.0
elif type(network) == RCAIDE.Framework.Networks.Fuel_Cell:
if segment.hybrid_power_split_ratio == None:
segment.hybrid_power_split_ratio = 1.0
segment.battery_fuel_cell_power_split_ratio = 0.0
segment.state.conditions.energy.hybrid_power_split_ratio = segment.hybrid_power_split_ratio * segment.state.ones_row(1)
segment.state.conditions.energy.battery_fuel_cell_power_split_ratio = segment.battery_fuel_cell_power_split_ratio * segment.state.ones_row(1)
network.add_unknowns_and_residuals_to_segment(segment)
return