Skip to content

Remove the extra factor of 2 from the fin flutter equation - #1201

Open
rundvd wants to merge 1 commit into
RocketPy-Team:developfrom
rundvd:bug/fin-flutter-factor-of-two
Open

rundvd wants to merge 1 commit into
RocketPy-Team:developfrom
rundvd:bug/fin-flutter-factor-of-two

Conversation

@rundvd

@rundvd rundvd commented Sep 26, 2026

Copy link
Copy Markdown

Pull request type

  • Code changes (bugfix, features)

Checklist

  • Tests for the changes have been added
  • ruff check, ruff format --check and pylint pass on the changed files
  • tests/unit passes locally, except tests/unit/simulation, which I did not run (slow, and it does not use fin_flutter_analysis); the integration tests pass apart from the Monte Carlo and weather-download tests, which I deselected

Current behavior

Closes #1200. _flutter_mach_number uses the Peak of Flight issue 291 form of Martin's equation, whose constant 1.337 already includes Martin's factor of 1/2 while the numerator multiplies by 2 again. Flutter Mach numbers and safety factors are sqrt(2) too high for every fin.

New behavior

The extra factor is removed, with a comment showing how 1.337 follows from Martin's constants, and the docstring now cites Martin's NACA Technical Note 4197.

A new parametrized test runs fin_flutter_analysis on TrapezoidalFins for five fins and compares the result with Bennett's reference calculator (v1.3) for fins whose centroid is at mid-root-chord, where it reduces to Martin's equation. These cases, and the recorded Calisto values, fail on the previous formula by a factor of 1.414 and pass now; the Calisto values are the previous ones divided by sqrt(2).

Breaking change

  • Yes: flutter Mach numbers and safety factors drop by a factor of sqrt(2).

Additional information

The issue also describes Bennett's epsilon correction for swept fins, which I have left out because it changes the model rather than fixing an error. I can follow up with it if you want it.

Found and fixed with AI assistance (Claude Opus 5.5). I checked the formula against Martin's report, Bennett's article and his calculator, and confirmed the new tests fail on the old formula and pass on the new one.

fin_flutter_analysis used the form of Martin's flutter boundary (NACA TN
4197) given in Apogee Peak of Flight issue 291. Its constant 1.337 is
Martin's 39.3 psi divided by the sea-level pressure and by 2, and the form
multiplies the numerator by 2 again, so the flutter velocity came out
sqrt(2) too high for every fin. Bennett identified the error in Peak of
Flight issue 615 (2023).

Add tests against Bennett's reference calculator for fins with the
centroid at mid-root-chord, where it reduces to Martin's equation, run
through fin_flutter_analysis with TrapezoidalFins, and update the
recorded Calisto values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017KkQuxkQhvUHzSJbU9Va8a
@rundvd
rundvd requested a review from a team as a code owner September 26, 2026 03:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant