@@ -7,12 +7,11 @@ Aerodynamic Surfaces
77This page provides an overview of the aerodynamic surfaces available in
88RocketPy and explains how they connect to the rocket's simulation.
99
10- RocketPy models the aerodynamic forces and moments generated by three types
11- of surfaces: **nose cones **, **fins **, and **tails **. Each surface is
12- defined by its geometric parameters and, optionally, by an airfoil profile.
13- The aerodynamic coefficients are computed internally using the Barrowman
14- method and are used during the flight simulation to evaluate the rocket's
15- stability and control.
10+ RocketPy models the aerodynamic forces and moments generated by **nose
11+ cones **, **planar fins **, **tube fins **, and **tails **. Each surface is defined
12+ by its geometric parameters. Planar fins can also use a measured airfoil lift
13+ curve. The resulting aerodynamic coefficients are used during the flight
14+ simulation to evaluate the rocket's stability and control.
1615
1716.. seealso ::
1817
@@ -112,6 +111,10 @@ RocketPy distinguishes between two levels of fin definition:
112111 separately. Individual fins are useful for canards, asymmetric
113112 configurations, or when you need fine-grained control.
114113
114+ - **Tube-fin sets ** (:class: `rocketpy.TubeFins `): This class defines a
115+ symmetric ring of cylindrical fins. Its normal-force derivative follows
116+ Ribner's ring-airfoil model rather than the planar-fin Barrowman equations.
117+
115118.. seealso ::
116119
117120 For the mathematical model of individual fins, including the moment
@@ -178,6 +181,31 @@ Parameters:
178181- ``coordinates ``: A list of ``(x, y) `` tuples defining the fin shape
179182 in the fin coordinate frame.
180183
184+ Tube Fins
185+ ~~~~~~~~~
186+
187+ Tube fins are defined by the number and length of the tubes, their inner and
188+ outer radii, and the rocket-body radius at the mounting position. Add them to a
189+ rocket with :meth: `rocketpy.Rocket.add_tube_fins ` or create a
190+ :class: `rocketpy.TubeFins ` object and pass it to
191+ :meth: `rocketpy.Rocket.add_surfaces `.
192+
193+ The current implementation is a subsonic normal-force model with these
194+ limits:
195+
196+ - The center of pressure is fixed at one quarter of the tube length, measured
197+ from the leading edge. Use the model only through Mach 0.5.
198+ - Lift is capped at an absolute angle of attack of 20 degrees.
199+ - At least three uncanted tubes must be distributed evenly around the body.
200+ Every tube must touch the body and both adjacent tubes. Separated and
201+ overlapping tube layouts are rejected.
202+ - The model does not calculate tube-fin friction drag, pressure drag, roll,
203+ side force, or yaw. Include tube-fin drag in the rocket's power-on and
204+ power-off drag curves.
205+
206+ For the equations and geometry constraint, see
207+ :doc: `Tube Fin Aerodynamics </technical/aerodynamics/tube_fins >`.
208+
181209Common Fin Set Parameters
182210-------------------------
183211
@@ -260,6 +288,7 @@ Fins can be added to a rocket using the ``Rocket`` class methods:
260288 - :meth: `rocketpy.Rocket.add_trapezoidal_fins `
261289 - :meth: `rocketpy.Rocket.add_elliptical_fins `
262290 - :meth: `rocketpy.Rocket.add_free_form_fins `
291+ - :meth: `rocketpy.Rocket.add_tube_fins `
263292 - :meth: `rocketpy.Rocket.add_surfaces ` (for individual fins)
264293
265294Tail
0 commit comments