8000 ENH: Enable only radial burning · Issue #801 · RocketPy-Team/RocketPy · GitHub
[go: up one dir, main page]

Skip to content

ENH: Enable only radial burning #801

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

Open
caioessouza opened this issue Apr 4, 2025 · 4 comments · May be fixed by #815
Open

ENH: Enable only radial burning #801

caioessouza opened this issue Apr 4, 2025 · 4 comments · May be fixed by #815
Assignees
Labels
Enhancement New feature or request, including adjustments in current codes Motors Every propulsion related issue or PR

Comments

@caioessouza
Copy link
Contributor

Is your feature request related to a problem? Please describe.

Rocketpy SolidMotor class only simulates radial and axial simoultaneos burn, but the regression rate on hybrid motor are modeled to be a function of the oxidizer mass flux entering the grain, so it only takes into consideration the radial burn.

Describe the solution you'd like

The idea is to implement the option to simulate only radial burn for the cases of a axially inhibited grain or hybrid motors.

Additional context

Image

Image

Heeg, F., Kilzer, L., Seitz, R., & Stoll, E. (05 2020). Design and Test of a Student Hybrid Rocket Engine with an External Carbon Fiber Composite Structure. Aerospace, 7, 57. doi:10.3390/aerospace7050057

@Gui-FernandesBR
Copy link
Member

does it happen with every hybrid motor?

@caioessouza
Copy link
Contributor Author
caioessouza commented Apr 24, 2025

does it happen with every hybrid motor?

I can't ensure you that it happens to every hybrid motor. It's a model, as the combustion happens in the boundary layer between the liquid oxidizer and the solid fuel, the hypothesis is that the reaction is much more prominent in the port, where the burn is axial, because of the stronger oxidizer flow velocity, while the reaction in the bases of the grain are negligible.

But this model is based on the source below, which is largely cited, including in NASA SP7002-02.
G. A. MARXMAN, C. E. WOOLDRIDGE and R. J. MUZZY. Fundamentals of Hybrid
Boundary-Layer Combustion. In: Heterogeneous Combustion. Vol. 15. Progress in As-
tronautics and Rocketry.

caioessouza added a commit to caioessouza/RocketPy that referenced this issue Apr 24, 2025
only_radial_burn optional parameter added and used in the functions related to the grain regression as a conditon to change the applied equations.

Still need to update the comment section, the CHANGELOG and maybe the dict related functions, but not sure about the last one yet.
caioessouza added a commit to caioessouza/RocketPy that referenced this issue Apr 30, 2025
The new parameter of the SolidMotor class was removed from super, since it's not on the Motor class. The dict functions were updated to take this new parameter into acount. Also the comments about the SolidMotor class parameters were updated.

Still need to do some tests running the code to be sure everything is ok, then I can open the PR.
@Gui-FernandesBR Gui-FernandesBR added Enhancement New feature or request, including adjustments in current codes Motors Every propulsion related issue or PR labels May 1, 2025
@caioessouza
Copy link
Contributor Author

I runned some sanity check tests, just to see if the physical behaviour is correct, I used the motor Pro75M1670, defined in the getting started file.

Image

  1. I was expecting to the burn rate to grow in the begining, since it's calculated using
    $r = - \frac{\dot m}{A_b \rho}$
    and it was exactly what I got.

Image

  1. The second step was to analyse the burn area, and here is where the things started to get weird. I was expecting to both of the curves to end at the same time, the one with radial + axial burn being something similar to a parabola and the one with only radial burn being progressive. The tendecies were what I expected, but the radial burn only arrived at the final value earlier, what indicates that the burn finishes earlier.

Image

  1. To check better the behaviour, I plotted the inner radius evolution for both cases.

Image

The results are coherent since $\dot{R_i} = r$, but once this behaviour is leading to the grain to end while the motor still generates thrust, I'm having some problems to interpretate it.

  1. The last sanity check I did was to plot the product of the burn rate with the burn area, since it should be constant to the same motor, and it actually is, so the problem is really in the evaluation of the burn area.

Image

I will keep trying to interpret the results and correct the physical behaviour.

@caioessouza
Copy link
Contributor Author

Discovered the error, I forgot to change the grain_height_derivative, so, besides all te calculations were being done with only the port area, the height was still being consumed.

Image

Now I just changed that and the behaviour is correct, so I will open the PR.

Image
Image
Image
Image
Image

caioessouza added a commit to caioessouza/RocketPy that referenced this issue May 3, 2025
Corrected some minor code erros, like calling evaluate geometry before defining self.only_radial_burn. Also had to change the grain_height_derivative to zero in the case of only radial burn, it was leading to some physical incoherences, because the grain was still burning axially. The last tests to evaluate the physical behaviour went pretty well, so I'll open the PR.
@caioessouza caioessouza linked a pull request May 9, 2025 that will close this issue
5 tasks
@Gui-FernandesBR Gui-FernandesBR linked a pull request May 16, 2025 that will close this issue
5 tasks
caioessouza added a commit to caioessouza/RocketPy that referenced this issue May 30, 2025
The "only_radial_burning" parameter was added and set as default on the hybrid class. Also, the description of the new parameter was updated and 2 coments about derivatives set to zero were added.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request, including adjustments in current codes Motors Every propulsion related issue or PR
Projects
Status: Backlog
Development

Successfully merging a pull request may close this issue.

2 participants
0