Repository navigation
ENH: Calculate Bending Moments on Rail Buttons #893
Description
Activity
- addedEnhancementNew feature or request, including adjustments in current codesNew feature or request, including adjustments in current codes
on Nov 29, 2025 - addedFlightFlight Class related featuresFlight Class related features
on Nov 29, 2025 - added a parent issue
on Nov 29, 2025 - removed a parent issue
on Nov 29, 2025 Hello! Our "contributing to open-source projects" assignment is due next week so I'd like to implement one more feature. I did some quick research on the physics of the problem. My approach is to calculate the internal bending moments in the rocket structure at the rail button attachment points using beam theory. I'll use the already-calculated normal and shear forces (I'll assume the rail buttons are simple supports providing reaction forces but no moments at the contact point i.e ΣF!=0 and M_contact=0), along with the off-axis thrust/drag loads and button geometry(positions), to determine moments via equilibrium (ΣM = Iα). This will provide the structural data needed to assess both airframe stress and fastener loading. The implementation will add the four new Function attributes as specified. Does this approach align with what you're looking for?
Reacted by GuiHello! Our "contributing to open-source projects" assignment is due next week so I'd like to implement one more feature. I did some quick research on the physics of the problem. My approach is to calculate the internal bending moments in the rocket structure at the rail button attachment points using beam theory. I'll use the already-calculated normal and shear forces (I'll assume the rail buttons are simple supports providing reaction forces but no moments at the contact point i.e ΣF!=0 and M_contact=0), along with the off-axis thrust/drag loads and button geometry(positions), to determine moments via equilibrium (ΣM = Iα). This will provide the structural data needed to assess both airframe stress and fastener loading. The implementation will add the four new Function attributes as specified. Does this approach align with what you're looking for?
@Monta120 You have green light to proceed. Your plan looks good.
Something I don't know yet how to consider is the rail button height:
But you can leave a
TODOin the code so we implementrail_button_heightin the future.
When is the deadline exactly? Do you need your contributions to be merged onto the
masterbranch?
If you or your colleagues need help to speed up the review process please let me know which PRs I should prioritize.Thank you I'll start working on this right away!
We're a group (@IDL-IMTA-Students) of 5: @Marchma0 @hogatata @C8H10O2 @Bizo883 and myself. Our deadline is a week from now. Our contributions don't have to be merged into the "master" branch. What matters most for our project is that they're reviewed and ideally approved. If they meet the criteria and get merged into any branch, that would be excellent. I really appreciate your willingness to prioritize our PRs. Thank you!
Reacted by Gui@Monta120 noted!
I'm leading reviews at this repo during this month.
I can approve all your PRs before Dec 9th, but I would like to see most (or all) of them to be merged intodevelopat least.We are planning one final release this month, most likely near Dec 25th, and I would be glad to include your contributions into our next version (rocketpy 1.12.0).
Thank you for your contributions.
Reacted by Monta120- linked a pull request that will close this issueFEAT/Rail Button Bending Moments #901
on Dec 3, 2025
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsClosed
Is your feature request related to a problem? Please describe.
Currently, the
Flightclass successfully calculates the forces acting on the rail buttons during the launch phase. We have access to:Flight.rail_button1_normal_force&shear_forceFlight.rail_button2_normal_force&shear_forceHowever, we do not calculate the Bending Moments acting on the rocket structure at the rail button locations. This data is crucial for structural analysis, specifically to determine if the rail button attachment point (or the screw) might fail due to torque or bending loads during launch.
Describe the solution you'd like
I would like to extend the
Flightclass (specifically the rail phase derivative methods) to calculate and store the bending moments at the upper and lower rail buttons.New attributes should be added to the class, similar to the existing force attributes:
Flight.rail_button1_bending_moment(Function)Flight.max_rail_button1_bending_moment(float)Flight.rail_button2_bending_moment(Function)Flight.max_rail_button2_bending_moment(float)Mathematical Context & Challenges
As noted by
@giovaniceotto:To solve this, the contributor needs to define a clear free-body diagram (FBD) assumption. A potential approach:
NormalandShearforces already calculated inudot_rail1.Implementation Details
rocketpy/flight/flight.pyudot_rail1(andudot_rail2if implemented).Acceptance Criteria
Functionobjects in theFlightclass.Additional Context
Flight.rail_button1_normal_forceimplementation for reference on how the forces are currently stored.