-
-
Notifications
You must be signed in to change notification settings - Fork 237
Description
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_forceFlight.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:
- Use the
NormalandShearforces already calculated inudot_rail1. - 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.
- 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.
Implementation Details
- Target File:
rocketpy/flight/flight.py - Key Methods:
udot_rail1(andudot_rail2if 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
Functionobjects in theFlightclass. - 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_forceimplementation for reference on how the forces are currently stored. - Please read the Rail Buttons Force Calculation #27 for more details