Update tube fin stabililty calculations #1413
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Finally got back to this.
This PR changes the tube fin stability calculations to use calculated stability of tube fins instead of the "three fin hack" previously in use. It completes the rewrite of tubeFinCalc.java.
The stability calculated with this code is close, but not identical, to that using the code from 15.03. In the case of the tube fin example rocket, the CP location in centimeters from the nose of the rocket is:
A bit of background: originally, neither RockSim nor OpenRocket was able to simulate tube fins. Bruce Levinson developed a technique for simulating tube fins using flat fins: he used three times as many rectangular fins as there were tubes, with a total area equal to the tube fin area (frustratingly, I am unable find his original article. He mentions it in an article he wrote in Apogee's Peak of Flight newsletter #27, "Simulation of ring fin designs using RockSim 4.0", but the link in that article is dead and google isn't helping me). This is known as the "three fin hack".
OpenRocket, as of version 15.03 (and no doubt earlier, but I didn't go looking) had the three fin hack embedded in the code. The tube fin calculation took pretty much all of the code from FinSetCalc.java, and set the geometry according to the three fin hack. This PR removes all that and replaces it with calculations from a paper cited in the code.
Fixes #1258