RCAIDE.Library.Methods.Aerodynamics.Vortex_Lattice_Method.deflect_control_surface

deflect_control_surface#

Functions

deflect_control_surface(VD, wing)

Deflects the panels of a vortex distribution that correspond to the given VLM_wing.

deflect_control_surface_strip(wing, raw_VD, ...)

Rotates existing points in the VD with respect to current values of a delta deflection

deflect_control_surfaces(VD, geometry, settings)

Goes through a vehicle and updates the control surface deflections in the VD.

flip_1(A, B, T1, T2)

This swaps values based on a double boolean

flip_2(A, B, T1, T2)

This swaps values based on a double boolean

make_hinge_quaternion(point_on_line, ...)

This make a quaternion that will rotate a vector about a the line that passes through the point 'point_on_line' and has direction 'direction_unit_vector'.

rotate_points_with_quaternion(quat, points)

This rotates the points by a quaternion

deflect_control_surfaces(VD, geometry, settings)[source]#

Goes through a vehicle and updates the control surface deflections in the VD. Crucially this rebuilds the VD as a postprocess step

Assumptions:

Source:

Inputs: VD - vehicle vortex distribution [Unitless] geometry.wings [Unitless] settings.floating_point_precision [np.dtype]

Outputs: VD - vehicle vortex distribution [Unitless]

Properties Used: N/A

deflect_control_surface(VD, wing)[source]#

Deflects the panels of a vortex distribution that correspond to the given VLM_wing.

Assumptions: If the user calls this function outside of generate_vortex_distribution, RCAIDE.Library.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.postprocess_VD MUST be called right after

Source:

Inputs: VD - vehicle vortex distribution [Unitless] wing - a VLM_wing object that was generated in the [Unitless]

original generate_vortex_distribution call.

wing.deflection_last - last deflection applied to this wing [radians] wing.deflection - deflection to set this wing to. [radians]

Outputs: VD - vehicle vortex distribution [Unitless] wing - VLM_wing object [Unitless]

Properties Used: N/A

deflect_control_surface_strip(wing, raw_VD, is_first_strip, sym_sign)[source]#

Rotates existing points in the VD with respect to current values of a delta deflection

Assumptions:

Source:

Inputs: wing - a VLM_wing object that was generated in the [Unitless]

original generate_vortex_distribution call.

wing.deflection_last - last deflection applied to this wing [radians] wing.deflection - deflection to set this wing to. [radians]

raw_VD - undeflected VD pertaining a strip of wing [Unitless] is_first_strip - whether this is the first strip of wing [Unitless] sym_sign - 1 for original side, -1 for symmetric side [Unitless]

Outputs: raw_VD - deflected VD values pertaining to wing [Unitless]

Properties Used: N/A

make_hinge_quaternion(point_on_line, direction_unit_vector, rotation_angle)[source]#

This make a quaternion that will rotate a vector about a the line that passes through the point ‘point_on_line’ and has direction ‘direction_unit_vector’. The quat rotates ‘rotation_angle’ radians. The quat is meant to be multiplied by the vector [x y z 1]

Assumptions: None

Source: https://sites.google.com/site/glennmurray/Home/rotation-matrices-and-formulas/rotation-about-an-arbitrary-axis-in-3-dimensions

Inputs: point_on_line - a list or array of size 3 corresponding to point coords (a,b,c) direction_unit_vector - a list or array of size 3 corresponding to unit vector <u,v,w> rotation_angle - angle of rotation in radians n_points - number of points that will be rotated

Properties Used: N/A

rotate_points_with_quaternion(quat, points)[source]#

This rotates the points by a quaternion

Assumptions: None

Source: https://sites.google.com/site/glennmurray/Home/rotation-matrices-and-formulas/rotation-about-an-arbitrary-axis-in-3-dimensions

Inputs: quat - a quaternion that will rotate the given points about a line which

is not necessarily at the origin

points - a list or array of size 3 corresponding to the lists (xs, ys, zs)

where xs, ys, and zs are the (x,y,z) coords of the points that will be rotated

Outputs: xs, ys, zs - np arrays of the rotated points’ xyz coordinates

Properties Used: N/A

flip_1(A, B, T1, T2)[source]#

This swaps values based on a double boolean

If T1 is false A and B are kept as is. T2 is not used

If T1 is true A and B are swapped T2 is applied at the first position

Assumptions: None

Source: N/A

Inputs: input_A [int,float,array] input_B [int,float,array] T1 [bool] T2 [bool/int/float]

Outputs: swapped or not values

Properties Used: N/A

flip_2(A, B, T1, T2)[source]#

This swaps values based on a double boolean

If T1 is false A and B are kept as is. T2 is not used

If T1 is true A and B are swapped T2 is applied at the second position

Assumptions: None

Source: N/A

Inputs: input_A [int,float,array] input_B [int,float,array] T1 [bool] T2 [bool/int/float]

Outputs: swapped or not values

Properties Used: N/A