aerosandbox.library.aerodynamics.unsteady ========================================= .. py:module:: aerosandbox.library.aerodynamics.unsteady Attributes ---------- .. autoapisummary:: aerosandbox.library.aerodynamics.unsteady.time Functions --------- .. autoapisummary:: aerosandbox.library.aerodynamics.unsteady.calculate_reduced_time aerosandbox.library.aerodynamics.unsteady.wagners_function aerosandbox.library.aerodynamics.unsteady.kussners_function aerosandbox.library.aerodynamics.unsteady.indicial_pitch_response aerosandbox.library.aerodynamics.unsteady.indicial_gust_response aerosandbox.library.aerodynamics.unsteady.calculate_lift_due_to_transverse_gust aerosandbox.library.aerodynamics.unsteady.calculate_lift_due_to_pitching_profile aerosandbox.library.aerodynamics.unsteady.added_mass_due_to_pitching aerosandbox.library.aerodynamics.unsteady.pitching_through_transverse_gust aerosandbox.library.aerodynamics.unsteady.top_hat_gust aerosandbox.library.aerodynamics.unsteady.sine_squared_gust aerosandbox.library.aerodynamics.unsteady.gaussian_pitch aerosandbox.library.aerodynamics.unsteady.linear_ramp_pitch Module Contents --------------- .. py:function:: calculate_reduced_time(time, velocity, chord) Calculates reduced time from time in seconds and velocity history in m/s. For constant velocity it reduces to s = 2*U*t/c The reduced time is the number of semichords travelled by the airfoil/aircaft i.e. 2 / chord * integral from t0 to t of velocity dt :param time: Time in seconds :type time: float,np.ndarray :param velocity: Either a constant velocity or array of velocities at corresponding reduced times :type velocity: float,np.ndarray :param chord: The chord of the airfoil :type chord: float :returns: The reduced time as an ndarray or float similar to the input. The first element is 0. .. py:function:: wagners_function(reduced_time) A commonly used approximation to Wagner's function (Jones, R.T. The Unsteady Lift of a Finite Wing; Technical Report NACA TN-682; NACA: Washington, DC, USA, 1939) :param reduced_time: Equal to the number of semichords travelled. See function calculate_reduced_time :type reduced_time: float,np.ndarray .. py:function:: kussners_function(reduced_time) A commonly used approximation to Kussner's function (Sears and Sparks 1941) :param reduced_time: This is equal to the number of semichords travelled. See function calculate_reduced_time :type reduced_time: float,np.ndarray .. py:function:: indicial_pitch_response(reduced_time, angle_of_attack) Computes the evolution of the lift coefficient in Wagner's problem which can be interpreted as follows 1) An impulsively started flat plate at constant angle of attack 2) An impuslive change in the angle of attack of a flat plate at constant velocity The model predicts infinite added mass at the first instant due to the infinite acceleration The delta function term (and therefore added mass) has been ommited in this case. Reduced_time = 0 corresponds to the instance the airfoil pitches/accelerates Args: reduced_time (float,np.ndarray) : Reduced time, equal to the number of semichords travelled. See function reduced_time angle_of_attack (float) : The angle of attack, in degrees .. py:function:: indicial_gust_response(reduced_time, gust_velocity, plate_velocity, angle_of_attack = 0, chord = 1) Computes the evolution of the lift coefficient of a flat plate entering a an infinitely long, sharp step gust (Heaveside function) at a constant angle of attack. Reduced_time = 0 corresponds to the instance the gust is entered (Leishman, Principles of Helicopter Aerodynamics, S8.10,S8.11) :param reduced_time: Reduced time, equal to the number of semichords travelled. See function reduced_time :type reduced_time: float,np.ndarray :param gust_velocity: velocity in m/s of the top hat gust :type gust_velocity: float :param velocity: velocity of the thin airfoil entering the gust :type velocity: float :param angle_of_attack: The angle of attack, in degrees :type angle_of_attack: float :param chord: The chord of the plate in meters :type chord: float .. py:function:: calculate_lift_due_to_transverse_gust(reduced_time, gust_velocity_profile, plate_velocity, angle_of_attack = 0, chord = 1) Calculates the lift (as a function of reduced time) caused by an arbitrary transverse gust profile by computing duhamel superposition integral of Kussner's problem at a constant angle of attack :param reduced_time: Reduced time, equal to the number of semichords travelled. See function reduced_time :type reduced_time: float,np.ndarray :param gust_velocity_profile: The transverse velocity profile that the flate plate experiences. Must be a function that takes reduced time and returns a velocity :type gust_velocity_profile: Callable[[float],float] :param plate_velocity: The velocity by which the flat plate enters the gust :type plate_velocity: float :param angle_of_attack: The angle of attack, in degrees. Can either be a float for constant angle of attack or a Callable that takes reduced time and returns angle of attack :type angle_of_attack: Union[float,Callable[[float],float]] :param chord: The chord of the plate in meters :type chord: float :returns: The lift coefficient history of the flat plate :rtype: lift_coefficient (np.ndarray) .. py:function:: calculate_lift_due_to_pitching_profile(reduced_time, angle_of_attack) Calculates the duhamel superposition integral of Wagner's problem. Given some arbitrary pitching profile. The lift coefficient as a function of reduced time of a flat plate can be computed using this function :param reduced_time: Reduced time, equal to the number of semichords travelled. See function reduced_time :type reduced_time: float,np.ndarray :param angle_of_attack: The angle of attack as a function of reduced time of the flat plate. Must be a Callable that takes reduced time and returns angle of attack :type angle_of_attack: Callable[[float],float] :returns: The lift coefficient history of the flat plate :rtype: lift_coefficient (np.ndarray) .. py:function:: added_mass_due_to_pitching(reduced_time, angle_of_attack) This function calculate the lift coefficient due to the added mass of a flat plate pitching about its midchord while moving at constant velocity. :param reduced_time: Reduced time, equal to the number of semichords travelled. See function reduced_time :type reduced_time: np.ndarray :param angle_of_attack: The angle of attack as a function of reduced time of the flat plate :type angle_of_attack: Callable[[float],float] :returns: The lift coefficient history of the flat plate :rtype: lift_coefficient (np.ndarray) .. py:function:: pitching_through_transverse_gust(reduced_time, gust_velocity_profile, plate_velocity, angle_of_attack, chord = 1) This function calculates the lift as a function of time of a flat plate pitching about its midchord through an arbitrary transverse gust. It combines Kussner's gust response with wagners pitch response as well as added mass. The following physics are accounted for 1) Vorticity shed from the trailing edge due to gust profile 2) Vorticity shed from the trailing edge due to pitching profile 3) Added mass (non-circulatory force) due to pitching about midchord The following physics are NOT taken accounted for 1) Any type of flow separation 2) Leading edge vorticity shedding 3) Deflected wake due to gust (flat wake assumption) :param reduced_time: Reduced time, equal to the number of semichords travelled. See function reduced_time :type reduced_time: float,np.ndarray :param gust_velocity_profile: The transverse velocity profile that the flate plate experiences. Must be a function that takes reduced time and returns a velocity :type gust_velocity_profile: Callable[[float],float] :param plate_velocity: The velocity by which the flat plate enters the gust :type plate_velocity: float :param angle_of_attack: The angle of attack, in degrees. Can either be a float for constant angle of attack or a Callable that takes reduced time and returns angle of attack :type angle_of_attack: Union[float,Callable[[float],float]] :param chord: The chord of the plate in meters :type chord: float :returns: The lift coefficient history of the flat plate :rtype: lift_coefficient (np.ndarray) .. py:function:: top_hat_gust(reduced_time) A canonical example gust. :param reduced_time: :type reduced_time: float :returns: gust_velocity (float) .. py:function:: sine_squared_gust(reduced_time) A canonical gust of used by the FAA to show 'compliance with the requirements of Title 14, Code of Federal Regulations (14 CFR) 25.341, Gust and turbulence loads. Section 25.341 specifies the discrete gust and continuous turbulence dynamic load conditions that apply to the airplane and engines.' :param reduced_time: :type reduced_time: float :returns: gust_velocity (float) .. py:function:: gaussian_pitch(reduced_time) A pitch maneuver resembling a guassian curve :param reduced_time: :type reduced_time: float :returns: in degrees :rtype: angle_of_attack (float) .. py:function:: linear_ramp_pitch(reduced_time) A pitch maneuver resembling a linear ramp :param reduced_time: :type reduced_time: float :returns: in degrees :rtype: angle_of_attack (float) .. py:data:: time