-
-
Notifications
You must be signed in to change notification settings - Fork 238
enh:Airfoil fins normal force coefficient derivative calculation. #117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Fixed airfoil lift calculation
|
A masterpiece!!!!!!!!!!!!!!!!!!!!!!!!! @MateusStano thanks for showing up... Great contribution " It is not as exact as the formula that is currently used for trapezoidal fins but is a good approximation."
|
The equations are documented here: docs/technical/aerodynamics/Fins_Lift_Coefficient.pdf I wrote it as an explanation/documentation. I don't know if its any good but everything I used should be in there |
|
Great Stano, really appreciate your expertise writing this document, it will definetely help a lot! I think the best candidates to revivew the calculations here are @Lucas-KB and @lucasfourier , as they were working on aerodynamic. Perhaps in the next week they will be able to review and merge. Otherwise, I hope @giovaniceotto could hep earlier, or evene @brunosorban . |
giovaniceotto
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@MateusStano, incredible work! I still need to understand the equations a little bit better before I can fully review your code, but for now, here is a suggestion:
- When defining a Function object based on a callable (i.e. a python function or a lambda), it does not make sence to set interpolation and extrapolation methods. Example:
This:
cldata = Function(
lambda x, mach: clalpha * x,
["Alpha (rad)", "Mach"],
"Cl",
interpolation="linear",
extrapolation="natural",
)Can be replaced by:
cldata = Function(
source=lambda alpha, mach: clalpha * alpha,
inputs=["Alpha (rad)", "Mach"],
outputs="Cl",
)One question: how different are equations 6 and 15 of the theory you submitted? In termos of relative change, what's the percentage difference for a typical fin?
|
To be honest, I am quite intrigued by the difference. I would like to first review this difference before proceeding to merging this PR. |

Pull request type
Please check the type of change your PR introduces:
Pull request checklist
Please check if your PR fulfills the following requirements, depending on the type of PR:
ReadMe, Docs and GitHub maintenance:
Code base maintenance (refactoring, formatting, renaming):
black rocketpy) has passed locally and any fixes were madepytest --runslow) have passed locallyCode base additions (for bug fixes / features):
black rocketpy) has passed locally and any fixes were madepytest --runslow) have passed locallyWhat is the current behavior?
The current calculation of the normal force coefficient derivative for airfoil fins assumes that the term where the derivative of the lift coefficient is multiplied by alpha is a constant value. However, for curves that are not linear that simplification does not apply due to another intermediate derivative term.
What is the new behavior?
The calculations now use a generic formula of the lift coefficient derivative based on thin airfoil theory, which is more in the lines of what Barrowman showed in his paper. This calculation works for any fin shape, with airfoil or not. It is not as exact as the formula that is currently used for trapezoidal fins but is a good approximation.
Does this introduce a breaking change?
Other information
Since the new calculation of the lift coefficient derivative takes into account the number of Mach I had to change a bit more of the code than just what relates to the fins. The changes are nothing major but they can be useful when adding supersonic calculations. I also made a pdf with more in-depth documentation.