Source code for RCAIDE.Library.Mission.Common.Update.angular_acceleration
# RCAIDE/Library/Missions/Common/Update/angular_acceleration.py
#
#
# Created: Jul 2023, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# Imports
# ----------------------------------------------------------------------------------------------------------------------
import numpy as np
from RCAIDE.Framework.Core import orientation_product, orientation_transpose
# ----------------------------------------------------------------------------------------------------------------------
# Update Acceleration
# ----------------------------------------------------------------------------------------------------------------------
[docs]
def angular_acceleration(segment):
""" Differentiates the angular velocity vector to get angular accelerations
Assumptions:
Assumes a flat earth, this is planar motion.
Inputs:
segment.state.conditions:
frames.inertial.angular_velocity_vector [rad/second]
segment.state.numerics.time.differentiate [float]
Outputs:
segment.state.conditions:
frames.inertial.angular_acceleration_vector [rad/s^2]
Properties Used:
N/A
"""
# unpack conditions
omega = segment.state.conditions.frames.inertial.angular_velocity_vector
D = segment.state.numerics.time.differentiate
T_wind2inertial = segment.state.conditions.frames.wind.transform_to_inertial
T_inertia2wind = orientation_transpose(T_wind2inertial)
# accelerations
ang_acc_i = np.dot(D,omega)
ang_acc_w = orientation_product(T_inertia2wind,ang_acc_i )
# pack conditions
segment.state.conditions.frames.inertial.angular_acceleration_vector[:,:] = ang_acc_i[:,:]
segment.state.conditions.frames.wind.angular_acceleration_vector[:,:] = ang_acc_w[:,:]