Fins Abstract Class#
- class rocketpy.Fins[source]#
Abstract class that holds common methods for the fin classes. Cannot be instantiated.
Note
- Local coordinate system:
Origin located at the top of the root chord.
Z axis along the longitudinal axis of symmetry, positive downwards (top -> bottom).
Y axis perpendicular to the Z axis, in the span direction, positive upwards.
X axis completes the right-handed coordinate system.
- Variables:
Fins.n (
int) – Number of fins in fin set.Fins.rocket_radius (
float) – The reference rocket radius used for lift coefficient normalization, in meters.Fins.airfoil (
tuple) – Tuple of two items. First is the airfoil lift curve. Second is the unit of the curve (radians or degrees).Fins.cant_angle (
float) – Fins cant angle with respect to the rocket centerline, in degrees.Fins.changing_attribute_dict (
dict) – Dictionary that stores the name and the values of the attributes that may be changed during a simulation. Useful for control systems.Fins.cant_angle_rad (
float) – Fins cant angle with respect to the rocket centerline, in radians.Fins.root_chord (
float) – Fin root chord in meters.Fins.tip_chord (
float) – Fin tip chord in meters.Fins.span (
float) – Fin span in meters.Fins.name (
string) – Name of fin set.Fins.sweep_length (
float) – Fins sweep length in meters. By sweep length, understand the axial distance between the fin root leading edge and the fin tip leading edge measured parallel to the rocket centerline.Fins.sweep_angle (
float) – Fins sweep angle with respect to the rocket centerline. Must be given in degrees.Fins.d (
float) – Reference diameter of the rocket. Has units of length and is given in meters.Fins.ref_area (
float) – Reference area of the rocket.Fins.Af (
float) – Area of the longitudinal section of each fin in the set.Fins.AR (
float) – Aspect ratio of each fin in the set.Fins.gamma_c (
float) – Fin mid-chord sweep angle.Fins.Yma (
float) – Span wise position of the mean aerodynamic chord.Fins.roll_geometrical_constant (
float) – Geometrical constant used in roll calculations.Fins.tau (
float) – Geometrical relation used to simplify lift and roll calculations.Fins.lift_interference_factor (
float) – Factor of Fin-Body interference in the lift coefficient.Fins.cp (
tuple) – Tuple with the x, y and z local coordinates of the fin set center of pressure. Has units of length and is given in meters.Fins.cpx (
float) – Fin set local center of pressure x coordinate. Has units of length and is given in meters.Fins.cpy (
float) – Fin set local center of pressure y coordinate. Has units of length and is given in meters.Fins.cpz (
float) – Fin set local center of pressure z coordinate. Has units of length and is given in meters.Fins.cl (
Function) – Function which defines the lift coefficient as a function of the angle of attack and the Mach number. Takes as input the angle of attack in radians and the Mach number. Returns the lift coefficient.Fins.clalpha (
float) – Lift coefficient slope. Has units of 1/rad.Fins.roll_parameters (
list) – List containing the roll moment lift coefficient, the roll moment damping coefficient and the cant angle in radians.
- __init__(n, root_chord, span, rocket_radius, cant_angle=0, airfoil=None, name='Fins')[source]#
Initialize Fins class.
- Parameters:
n (
int) – Number of fins, must be larger than 2.root_chord (
int,float) – Fin root chord in meters.span (
int,float) – Fin span in meters.rocket_radius (
int,float) – Reference rocket radius used for lift coefficient normalization.cant_angle (
int,float, optional) – Fins cant angle with respect to the rocket centerline. Must be given in degrees.airfoil (
tuple, optional) – Default is null, in which case fins will be treated as flat plates. Otherwise, if tuple, fins will be considered as airfoils. The tuple’s first item specifies the airfoil’s lift coefficient by angle of attack and must be either a .csv, .txt, ndarray or callable. The .csv and .txt files can contain a single line header and the first column must specify the angle of attack, while the second column must specify the lift coefficient. The ndarray should be as [(x0, y0), (x1, y1), (x2, y2), …] where x0 is the angle of attack and y0 is the lift coefficient. If callable, it should take an angle of attack as input and return the lift coefficient at that angle of attack. The tuple’s second item is the unit of the angle of attack, accepting either “radians” or “degrees”.name (
str) – Name of fin set.
- Return type:
None
- evaluate_lift_coefficient()[source]#
Calculates and returns the fin set’s lift coefficient. The lift coefficient is saved and returned. This function also calculates and saves the lift coefficient derivative for a single fin and the lift coefficient derivative for a number of n fins corrected for Fin-Body interference.
- Return type:
None
- evaluate_roll_parameters()[source]#
Calculates and returns the fin set’s roll coefficients. The roll coefficients are saved in a list.
- Returns:
self.roll_parameters – List containing the roll moment lift coefficient, the roll moment damping coefficient and the cant angle in radians
- Return type:
list
- static fin_num_correction(n)[source]#
Calculates a correction factor for the lift coefficient of multiple fins. The specifics values are documented at: Niskanen, S. (2013). “OpenRocket technical documentation”. In: Development of an Open Source model rocket simulation software.
- Parameters:
n (
int) – Number of fins.- Returns:
Corrector factor – Factor that accounts for the number of fins.
- Return type:
int
- compute_forces_and_moments(stream_velocity, stream_speed, stream_mach, rho, cp, omega, *args)[source]#
Computes the forces and moments acting on the aerodynamic surface.
- Parameters:
stream_velocity (
tupleoffloat) – The velocity of the airflow relative to the surface.stream_speed (
float) – The magnitude of the airflow speed.stream_mach (
float) – The Mach number of the airflow.rho (
float) – Air density.cp (
Vector) – Center of pressure coordinates in the body frame.omega (
tuple[float,float,float]) – Tuple containing angular velocities around the x, y, z axes.
- Returns:
The aerodynamic forces (lift, side_force, drag) and moments (pitch, yaw, roll) in the body frame.
- Return type:
tupleoffloat
- draw(*, filename=None)[source]#
Draw the fin shape along with some important information, including the center line, the quarter line and the center of pressure position.
- Parameters:
filename (
str | None, optional) – The path the plot should be saved to. By default None, in which case the plot will be shown instead of saved. Supported file endings are: eps, jpg, jpeg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff and webp (these are the formats supported by matplotlib).- Return type:
None