Skip to content

ENH: Calculate Bending Moments on Rail Buttons #893

@Gui-FernandesBR

Description

@Gui-FernandesBR

Is your feature request related to a problem? Please describe.
Currently, the Flight class successfully calculates the forces acting on the rail buttons during the launch phase. We have access to:

  • Flight.rail_button1_normal_force & shear_force
  • Flight.rail_button2_normal_force & shear_force

However, 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 Flight class (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:

"The challenge arises when attempting to divide this into two Rail Buttons, assuming they can apply any force and moment, leading to a statically indeterminate system."

To solve this, the contributor needs to define a clear free-body diagram (FBD) assumption. A potential approach:

  1. Use the Normal and Shear forces already calculated in udot_rail1.
  2. Assume the rail buttons act as simple supports (pinned) or sliding supports, but consider the torque generated by the off-axis application of Thrust and Drag relative to the rail line.
  3. Calculate the moment required to balance the rotational equation of motion ($\sum M = I \alpha$) given the geometric positions of Button 1 and Button 2 relative to the Center of Mass.
Image

Implementation Details

  • Target File: rocketpy/flight/flight.py
  • Key Methods: udot_rail1 (and udot_rail2 if implemented).
  • Verification: The sum of moments and forces should balance the calculated linear and angular acceleration of the rocket while on the rail.

Acceptance Criteria

  • Implement the calculation of bending moments for both rail buttons.
  • Expose these values as Function objects in the Flight class.
  • Add unit tests ensuring values are non-zero when off-axis forces (like misalignment or wind) are present.

Additional Context

  • This is the final step to complete the "Rail Buttons Simulation" feature set started in 2019.
  • See Flight.rail_button1_normal_force implementation for reference on how the forces are currently stored.
  • Please read the Rail Buttons Force Calculation #27 for more details

Metadata

Metadata

Assignees

Labels

EnhancementNew feature or request, including adjustments in current codesFlightFlight Class related features

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions