Source code for RCAIDE.Library.Methods.Powertrain.Sources.Fuel_Tanks.compute_fuel_tank_properties

# RCAIDE/Methods/Powertrain/Sources/Fuel_Tanks/compute_fuel_tank_properties.py
# 
# 
# Created:  Jul 2023, M. Clarke

# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE imports
import RCAIDE
from RCAIDE.Library.Methods.Mass_Properties.Moment_of_Inertia.update_moments_of_inertia import update_fuel_tank_moment_of_inertia

# package imports 
import numpy as np  
# ----------------------------------------------------------------------------------------------------------------------
#  METHOD
# ----------------------------------------------------------------------------------------------------------------------  
[docs] def compute_fuel_tank_properties(tank,state,distributor): """ Computes fuel comsumtion of tanks """ # unpack I = state.numerics.time.integrate fuel = tank.fuel # pull out distributor if type(distributor) == RCAIDE.Library.Components.Powertrain.Distributors.Electrical_Bus: distributor_conditions = state.conditions.energy.busses[distributor.tag] elif type(distributor) == RCAIDE.Library.Components.Powertrain.Distributors.Fuel_Line: distributor_conditions = state.conditions.energy.fuel_lines[distributor.tag] tank_conditions = distributor_conditions.fuel_tanks[tank.tag] if type(tank.fuel) == RCAIDE.Library.Attributes.Propellants.Liquid_Hydrogen: # unpack T_amb = state.conditions.freestream.temperature T_s = tank_conditions.surface_temperature h = 0 # NEED TO UPDATE # unpack tank properties epsilon = 0 # tant. NEED TO UPDATE # check this h_fg = 0 # tank.fuel NEED TO UPDATE sigma = 0 # NEED TO UPDATE # compute head added o system (tank) Q_radianton = epsilon * sigma * (T_amb ** 4 - T_s ** 4) Q_convection = h * (T_amb - T_s) Q_total = Q_convection + Q_radianton m_dot_boil_off = 0 # Q_dot_liquid / h_fg tank_conditions.boil_off_flow_rate = m_dot_boil_off m_0_fuel = state.conditions.weights.components.mass[fuel.tag][0,0] mass_flow_rate = tank.fuel_flow_split_ratio*distributor_conditions.fuel_mass_flow_rate + tank_conditions.boil_off_flow_rate + tank_conditions.secondary_mass_flow_rate tank_conditions.mass_flow_rate = mass_flow_rate if len(mass_flow_rate) > 1: # update mass state.conditions.weights.components.mass[fuel.tag][:,0] = m_0_fuel + np.dot(I, -mass_flow_rate).flatten() return